s3-rpc_client: support AES encryption in netr_ServerPasswordSet2 client.
authorGünther Deschner <gd@samba.org>
Thu, 29 Nov 2012 20:34:36 +0000 (21:34 +0100)
committerStefan Metzmacher <metze@samba.org>
Sun, 9 Dec 2012 18:39:07 +0000 (19:39 +0100)
Guenther

Signed-off-by: Günther Deschner <gd@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
source3/rpc_client/init_netlogon.c

index 0d33d6fdd6afb873aac798744096db20aadbc237..4d9157bbb8c2a3e0f6e641362e913480e023ba01 100644 (file)
@@ -19,7 +19,7 @@
 
 #include "includes.h"
 #include "../libcli/auth/libcli_auth.h"
-#include "../lib/crypto/arcfour.h"
+#include "../lib/crypto/crypto.h"
 #include "rpc_client/init_netlogon.h"
 
 /*************************************************************************
@@ -34,7 +34,11 @@ void init_netr_CryptPassword(const char *pwd,
 
        encode_pw_buffer(password_buf.data, pwd, STR_UNICODE);
 
-       netlogon_creds_arcfour_crypt(creds, password_buf.data, 516);
+       if (creds->negotiate_flags & NETLOGON_NEG_SUPPORTS_AES) {
+               netlogon_creds_aes_encrypt(creds, password_buf.data, 516);
+       } else {
+               netlogon_creds_arcfour_crypt(creds, password_buf.data, 516);
+       }
        memcpy(pwd_buf->data, password_buf.data, 512);
        pwd_buf->length = IVAL(password_buf.data, 512);
 }