summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/client/client.c51
-rw-r--r--source3/libsmb/clifsinfo.c5
2 files changed, 33 insertions, 23 deletions
diff --git a/source3/client/client.c b/source3/client/client.c
index a4c75f2735..2df5c67db1 100644
--- a/source3/client/client.c
+++ b/source3/client/client.c
@@ -1789,34 +1789,39 @@ static int cmd_open(void)
static int cmd_posix_encrypt(void)
{
- fstring buf;
- fstring domain;
- fstring user;
- fstring password;
NTSTATUS status;
- if (!next_token_nr(NULL,buf,NULL,sizeof(buf))) {
- d_printf("posix_encrypt domain user password\n");
- return 1;
- }
- fstrcpy(domain,buf);
+ if (cli->use_kerberos) {
+ status = cli_gss_smb_encryption_start(cli);
+ } else {
+ fstring buf;
+ fstring domain;
+ fstring user;
+ fstring password;
- if (!next_token_nr(NULL,buf,NULL,sizeof(buf))) {
- d_printf("posix_encrypt domain user password\n");
- return 1;
- }
- fstrcpy(user,buf);
+ if (!next_token_nr(NULL,buf,NULL,sizeof(buf))) {
+ d_printf("posix_encrypt domain user password\n");
+ return 1;
+ }
+ fstrcpy(domain,buf);
- if (!next_token_nr(NULL,buf,NULL,sizeof(buf))) {
- d_printf("posix_encrypt domain user password\n");
- return 1;
- }
- fstrcpy(password,buf);
+ if (!next_token_nr(NULL,buf,NULL,sizeof(buf))) {
+ d_printf("posix_encrypt domain user password\n");
+ return 1;
+ }
+ fstrcpy(user,buf);
- status = cli_raw_ntlm_smb_encryption_start(cli,
- user,
- password,
- domain);
+ if (!next_token_nr(NULL,buf,NULL,sizeof(buf))) {
+ d_printf("posix_encrypt domain user password\n");
+ return 1;
+ }
+ fstrcpy(password,buf);
+
+ status = cli_raw_ntlm_smb_encryption_start(cli,
+ user,
+ password,
+ domain);
+ }
if (!NT_STATUS_IS_OK(status)) {
d_printf("posix_encrypt failed with error %s\n", nt_errstr(status));
diff --git a/source3/libsmb/clifsinfo.c b/source3/libsmb/clifsinfo.c
index 4924bfdba0..e46456abb1 100644
--- a/source3/libsmb/clifsinfo.c
+++ b/source3/libsmb/clifsinfo.c
@@ -614,4 +614,9 @@ NTSTATUS cli_gss_smb_encryption_start(struct cli_state *cli)
common_free_encryption_state(&es);
return status;
}
+#else
+NTSTATUS cli_gss_smb_encryption_start(struct cli_state *cli)
+{
+ return NT_STATUS_NOT_SUPPORTED;
+}
#endif