From 71cb5749f4d7a542a1dccb250f91c58fd2bbf54c Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Tue, 7 Oct 2014 15:59:48 +0200 Subject: libcli/smb: try to negotiate SMB2_ENCRYPTION_AES128_GCM Signed-off-by: Stefan Metzmacher Reviewed-by: Jeremy Allison Autobuild-User(master): Jeremy Allison Autobuild-Date(master): Thu Oct 16 21:53:32 CEST 2014 on sn-devel-104 --- libcli/smb/smbXcli_base.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/libcli/smb/smbXcli_base.c b/libcli/smb/smbXcli_base.c index bb586ab50d..61ac6f04f1 100644 --- a/libcli/smb/smbXcli_base.c +++ b/libcli/smb/smbXcli_base.c @@ -4434,10 +4434,11 @@ static struct tevent_req *smbXcli_negprot_smb2_subreq(struct smbXcli_negprot_sta return NULL; } - SSVAL(p, 0, 1); /* ChiperCount */ - SSVAL(p, 2, SMB2_ENCRYPTION_AES128_CCM); + SSVAL(p, 0, 2); /* ChiperCount */ + SSVAL(p, 2, SMB2_ENCRYPTION_AES128_GCM); + SSVAL(p, 4, SMB2_ENCRYPTION_AES128_CCM); - b = data_blob_const(p, 4); + b = data_blob_const(p, 6); status = smb2_negotiate_context_add(state, &c, SMB2_ENCRYPTION_CAPABILITIES, b); if (!NT_STATUS_IS_OK(status)) { @@ -4720,8 +4721,11 @@ static void smbXcli_negprot_smb2_done(struct tevent_req *subreq) cipher_selected = SVAL(cipher->data.data, 2); - if (cipher_selected == SMB2_ENCRYPTION_AES128_CCM) { + switch (cipher_selected) { + case SMB2_ENCRYPTION_AES128_GCM: + case SMB2_ENCRYPTION_AES128_CCM: conn->smb2.server.cipher = cipher_selected; + break; } } } -- cgit