|
Lines 51-56
Link Here
|
| 51 |
cli->user_session_key = data_blob(session_key.data, session_key.length); |
54 |
cli->user_session_key = data_blob(session_key.data, session_key.length); |
| 52 |
} |
55 |
} |
| 53 |
|
56 |
|
|
|
57 |
/** |
| 58 |
* Adjust clock_skew using kerberos libraries for a kerberized session setup |
| 59 |
* @param cli The cli structure to add it to |
| 60 |
* @param time_diff The current clock_skew |
| 61 |
* |
| 62 |
*/ |
| 63 |
|
| 64 |
static void cli_set_time_diff(struct cli_state *cli, const time_t time_diff) |
| 65 |
{ |
| 66 |
cli->clockskew = time_diff; |
| 67 |
} |
| 68 |
|
| 54 |
/**************************************************************************** |
69 |
/**************************************************************************** |
| 55 |
Do an old lanman2 style session setup. |
70 |
Do an old lanman2 style session setup. |
| 56 |
****************************************************************************/ |
71 |
****************************************************************************/ |
|
Lines 553-559
Link Here
|
| 553 |
DEBUG(2,("Doing kerberos session setup\n")); |
568 |
DEBUG(2,("Doing kerberos session setup\n")); |
| 554 |
|
569 |
|
| 555 |
/* generate the encapsulated kerberos5 ticket */ |
570 |
/* generate the encapsulated kerberos5 ticket */ |
| 556 |
rc = spnego_gen_negTokenTarg(principal, 0, &negTokenTarg, &session_key_krb5, 0); |
571 |
rc = spnego_gen_negTokenTarg(principal, cli->clockskew, &negTokenTarg, &session_key_krb5, 0); |
| 557 |
|
572 |
|
| 558 |
if (rc) { |
573 |
if (rc) { |
| 559 |
DEBUG(1, ("spnego_gen_negTokenTarg failed: %s\n", error_message(rc))); |
574 |
DEBUG(1, ("spnego_gen_negTokenTarg failed: %s\n", error_message(rc))); |
|
Lines 775-783
Link Here
|
| 775 |
|
790 |
|
| 776 |
if (pass && *pass) { |
791 |
if (pass && *pass) { |
| 777 |
int ret; |
792 |
int ret; |
| 778 |
|
793 |
|
|
|
794 |
/* gd: here we need a krb5 conf prepared as the kinit expects one... - |
| 795 |
breaks krb5 connects to remote domains */ |
| 796 |
|
| 779 |
use_in_memory_ccache(); |
797 |
use_in_memory_ccache(); |
| 780 |
ret = kerberos_kinit_password(user, pass, 0 /* no time correction for now */, NULL); |
798 |
ret = kerberos_kinit_password(user, pass, cli->clockskew, NULL); |
| 781 |
|
799 |
|
| 782 |
if (ret){ |
800 |
if (ret){ |
| 783 |
SAFE_FREE(principal); |
801 |
SAFE_FREE(principal); |
|
Lines 1506-1512
Link Here
|
| 1506 |
const char *service, const char *service_type, |
1524 |
const char *service, const char *service_type, |
| 1507 |
const char *user, const char *domain, |
1525 |
const char *user, const char *domain, |
| 1508 |
const char *password, int flags, |
1526 |
const char *password, int flags, |
| 1509 |
int signing_state, |
1527 |
int signing_state, time_t time_diff, |
| 1510 |
BOOL *retry) |
1528 |
BOOL *retry) |
| 1511 |
{ |
1529 |
{ |
| 1512 |
NTSTATUS nt_status; |
1530 |
NTSTATUS nt_status; |
|
Lines 1526-1531
Link Here
|
| 1526 |
return nt_status; |
1544 |
return nt_status; |
| 1527 |
} |
1545 |
} |
| 1528 |
|
1546 |
|
|
|
1547 |
cli_set_time_diff(cli, time_diff); |
| 1548 |
|
| 1529 |
nt_status = cli_session_setup(cli, user, password, pw_len, password, |
1549 |
nt_status = cli_session_setup(cli, user, password, pw_len, password, |
| 1530 |
pw_len, domain); |
1550 |
pw_len, domain); |
| 1531 |
if (!NT_STATUS_IS_OK(nt_status)) { |
1551 |
if (!NT_STATUS_IS_OK(nt_status)) { |
|
Lines 1688-1694
Link Here
|
| 1688 |
|
1708 |
|
| 1689 |
nt_status = cli_full_connection(&cli, myname, server, server_ip, 0, "IPC$", "IPC", |
1709 |
nt_status = cli_full_connection(&cli, myname, server, server_ip, 0, "IPC$", "IPC", |
| 1690 |
user_info->username, lp_workgroup(), user_info->password, |
1710 |
user_info->username, lp_workgroup(), user_info->password, |
| 1691 |
CLI_FULL_CONNECTION_ANONYMOUS_FALLBACK, Undefined, NULL); |
1711 |
CLI_FULL_CONNECTION_ANONYMOUS_FALLBACK, Undefined, 0, NULL); |
| 1692 |
|
1712 |
|
| 1693 |
if (NT_STATUS_IS_OK(nt_status)) { |
1713 |
if (NT_STATUS_IS_OK(nt_status)) { |
| 1694 |
return cli; |
1714 |
return cli; |
|
Lines 1791-1793
Link Here
|
| 1791 |
|
1811 |
|
| 1792 |
return NULL; |
1812 |
return NULL; |
| 1793 |
} |
1813 |
} |
|
|
1814 |
|