Alexandre Julliard : secur32/tests: Don' t compare the encrypted results if the session key is different.
Alexandre Julliard
julliard at winehq.org
Wed Jan 4 13:52:59 CST 2012
Module: wine
Branch: master
Commit: ee1e1f0fdbf7313bfd1ac1c7145be20b8530f882
URL: http://source.winehq.org/git/wine.git/?a=commit;h=ee1e1f0fdbf7313bfd1ac1c7145be20b8530f882
Author: Alexandre Julliard <julliard at winehq.org>
Date: Tue Jan 3 23:28:13 2012 +0100
secur32/tests: Don't compare the encrypted results if the session key is different.
---
dlls/secur32/tests/ntlm.c | 82 ++++++++++++++++++--------------------------
1 files changed, 34 insertions(+), 48 deletions(-)
diff --git a/dlls/secur32/tests/ntlm.c b/dlls/secur32/tests/ntlm.c
index d3cd915..7533899 100644
--- a/dlls/secur32/tests/ntlm.c
+++ b/dlls/secur32/tests/ntlm.c
@@ -1058,47 +1058,43 @@ static void testSignSeal(void)
ok(sec_status == SEC_E_OK, "EncryptMessage returned %s, not SEC_E_OK.\n",
getSecError(sec_status));
- ok(!memcmp(crypt.pBuffers[0].pvBuffer, crypt_trailer_client,
- crypt.pBuffers[0].cbBuffer), "Crypt trailer not as expected.\n");
- if (memcmp(crypt.pBuffers[0].pvBuffer, crypt_trailer_client,
- crypt.pBuffers[0].cbBuffer))
- {
- int i;
- for (i = 0; i < crypt.pBuffers[0].cbBuffer; i++)
- {
- if (i % 8 == 0) printf(" ");
- printf("0x%02x,", ((unsigned char *)crypt.pBuffers[0].pvBuffer)[i]);
- if (i % 8 == 7) printf("\n");
- }
- printf("\n");
- }
- ok(!memcmp(crypt.pBuffers[1].pvBuffer, crypt_message_client,
- crypt.pBuffers[1].cbBuffer), "Crypt message not as expected.\n");
- if (memcmp(crypt.pBuffers[1].pvBuffer, crypt_message_client,
- crypt.pBuffers[1].cbBuffer))
+ /* first 8 bytes must always be the same */
+ ok(!memcmp(crypt.pBuffers[0].pvBuffer, crypt_trailer_client, 8), "Crypt trailer not as expected.\n");
+
+ /* the rest depends on the session key */
+ if (!memcmp(crypt.pBuffers[0].pvBuffer, crypt_trailer_client, crypt.pBuffers[0].cbBuffer))
{
- int i;
- for (i = 0; i < crypt.pBuffers[1].cbBuffer; i++)
+ ok(!memcmp(crypt.pBuffers[0].pvBuffer, crypt_trailer_client,
+ crypt.pBuffers[0].cbBuffer), "Crypt trailer not as expected.\n");
+ ok(!memcmp(crypt.pBuffers[1].pvBuffer, crypt_message_client,
+ crypt.pBuffers[1].cbBuffer), "Crypt message not as expected.\n");
+ if (memcmp(crypt.pBuffers[1].pvBuffer, crypt_message_client,
+ crypt.pBuffers[1].cbBuffer))
{
- if (i % 8 == 0) printf(" ");
- printf("0x%02x,", ((unsigned char *)crypt.pBuffers[1].pvBuffer)[i]);
- if (i % 8 == 7) printf("\n");
+ int i;
+ for (i = 0; i < crypt.pBuffers[1].cbBuffer; i++)
+ {
+ if (i % 8 == 0) printf(" ");
+ printf("0x%02x,", ((unsigned char *)crypt.pBuffers[1].pvBuffer)[i]);
+ if (i % 8 == 7) printf("\n");
+ }
+ printf("\n");
}
- printf("\n");
- }
- data[0].cbBuffer = sizeof(crypt_trailer_server);
- data[1].cbBuffer = sizeof(crypt_message_server);
- memcpy(data[0].pvBuffer, crypt_trailer_server, data[0].cbBuffer);
- memcpy(data[1].pvBuffer, crypt_message_server, data[1].cbBuffer);
+ data[0].cbBuffer = sizeof(crypt_trailer_server);
+ data[1].cbBuffer = sizeof(crypt_message_server);
+ memcpy(data[0].pvBuffer, crypt_trailer_server, data[0].cbBuffer);
+ memcpy(data[1].pvBuffer, crypt_message_server, data[1].cbBuffer);
- sec_status = pDecryptMessage(&client.ctxt, &crypt, 0, &qop);
+ sec_status = pDecryptMessage(&client.ctxt, &crypt, 0, &qop);
- 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");
+ 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");
+ }
+ else trace( "A different session key is being used\n" );
trace("Testing with more than one buffer.\n");
@@ -1139,20 +1135,10 @@ static void testSignSeal(void)
ok(sec_status == SEC_E_OK, "EncryptMessage returned %s, not SEC_E_OK.\n",
getSecError(sec_status));
- ok(!memcmp(crypt.pBuffers[3].pvBuffer, crypt_trailer_client2,
- crypt.pBuffers[3].cbBuffer), "Crypt trailer not as expected.\n");
+ ok(!memcmp(crypt.pBuffers[3].pvBuffer, crypt_trailer_client2, 8), "Crypt trailer not as expected.\n");
+
if (memcmp(crypt.pBuffers[3].pvBuffer, crypt_trailer_client2,
- crypt.pBuffers[3].cbBuffer))
- {
- int i;
- for (i = 0; i < crypt.pBuffers[3].cbBuffer; i++)
- {
- if (i % 8 == 0) printf(" ");
- printf("0x%02x,", ((unsigned char *)crypt.pBuffers[3].pvBuffer)[i]);
- if (i % 8 == 7) printf("\n");
- }
- printf("\n");
- }
+ crypt.pBuffers[3].cbBuffer)) goto end;
ok(!memcmp(crypt.pBuffers[1].pvBuffer, crypt_message_client2,
crypt.pBuffers[1].cbBuffer), "Crypt message not as expected.\n");
More information about the wine-cvs
mailing list