Kai Blin : secur32: Fix DecryptMessage for the dummy case.
Alexandre Julliard
julliard at wine.codeweavers.com
Fri Sep 8 05:15:26 CDT 2006
Module: wine
Branch: master
Commit: 98aeac78fc6496a322050b3b9b06b0ae67835664
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=98aeac78fc6496a322050b3b9b06b0ae67835664
Author: Kai Blin <kai.blin at gmail.com>
Date: Thu Sep 7 17:32:40 2006 +0200
secur32: Fix DecryptMessage for the dummy case.
---
dlls/secur32/ntlm.c | 13 ++++++++++++-
dlls/secur32/tests/ntlm.c | 3 +--
2 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/dlls/secur32/ntlm.c b/dlls/secur32/ntlm.c
index a3f584f..930c41b 100644
--- a/dlls/secur32/ntlm.c
+++ b/dlls/secur32/ntlm.c
@@ -1445,6 +1445,8 @@ static SECURITY_STATUS SEC_ENTRY ntlm_En
static SECURITY_STATUS SEC_ENTRY ntlm_DecryptMessage(PCtxtHandle phContext,
PSecBufferDesc pMessage, ULONG MessageSeqNo, PULONG pfQOP)
{
+ SECURITY_STATUS ret;
+ ULONG ntlmssp_flags_save;
PNegoHelper helper;
TRACE("(%p %p %ld %p)\n", phContext, pMessage, MessageSeqNo, pfQOP);
@@ -1475,7 +1477,16 @@ static SECURITY_STATUS SEC_ENTRY ntlm_De
pMessage->pBuffers[1].pvBuffer, pMessage->pBuffers[1].cbBuffer);
}
- return ntlm_VerifySignature(phContext, pMessage, MessageSeqNo, pfQOP);
+ /* Make sure we use a session key for the signature check, EncryptMessage
+ * always does that, even in the dummy case */
+ ntlmssp_flags_save = helper->neg_flags;
+
+ helper->neg_flags |= NTLMSSP_NEGOTIATE_SIGN;
+ ret = ntlm_VerifySignature(phContext, pMessage, MessageSeqNo, pfQOP);
+
+ helper->neg_flags = ntlmssp_flags_save;
+
+ return ret;
}
static SecurityFunctionTableA ntlmTableA = {
diff --git a/dlls/secur32/tests/ntlm.c b/dlls/secur32/tests/ntlm.c
index 1b13948..244a502 100644
--- a/dlls/secur32/tests/ntlm.c
+++ b/dlls/secur32/tests/ntlm.c
@@ -819,10 +819,9 @@ static void testSignSeal()
memcpy(data[1].pvBuffer, crypt_message_server, data[1].cbBuffer);
sec_status = pDecryptMessage(client.ctxt, crypt, 0, &qop);
- todo_wine {
+
ok(sec_status == SEC_E_OK, "DecryptMessage returned %s, not SEC_E_OK.\n",
getSecError(sec_status));
- }
ok(!memcmp(crypt->pBuffers[1].pvBuffer, message_binary,
crypt->pBuffers[1].cbBuffer),
"Failed to decrypt message correctly.\n");
More information about the wine-cvs
mailing list