rsaenh/tests: Add tests for the default encryption chaining mode

Bruno Jesus 00cpxxx at gmail.com
Sun Jun 29 20:56:04 CDT 2014


A few tests related to bug http://bugs.winehq.org/show_bug.cgi?id=36765
-------------- next part --------------
diff --git a/dlls/rsaenh/tests/rsaenh.c b/dlls/rsaenh/tests/rsaenh.c
index babc435..f0b7b19 100644
--- a/dlls/rsaenh/tests/rsaenh.c
+++ b/dlls/rsaenh/tests/rsaenh.c
@@ -700,6 +700,13 @@ static void test_block_cipher_modes(void)
 
     memcpy(abData, plain, sizeof(plain));
 
+    /* test default chaining mode */
+    dwMode = 0xdeadbeef;
+    dwLen = sizeof(dwMode);
+    result = CryptGetKeyParam(hKey, KP_MODE, (BYTE*)&dwMode, &dwLen, 0);
+    ok(result, "%08x\n", GetLastError());
+    ok(dwMode == CRYPT_MODE_CBC, "Wrong default chaining mode\n");
+
     dwMode = CRYPT_MODE_ECB;
     result = CryptSetKeyParam(hKey, KP_MODE, (BYTE*)&dwMode, 0);
     ok(result, "%08x\n", GetLastError());
@@ -1040,7 +1047,7 @@ static void test_aes(int keylen)
 {
     HCRYPTKEY hKey;
     BOOL result;
-    DWORD dwLen;
+    DWORD dwLen, dwMode;
     unsigned char pbData[16], enc_data[16], bad_data[16];
     int i;
 
@@ -1068,6 +1075,14 @@ static void test_aes(int keylen)
     if (result)
         ok(!dwLen, "unexpected salt length %d\n", dwLen);
 
+    /* test default chaining mode */
+    dwMode = 0xdeadbeef;
+    dwLen = sizeof(dwMode);
+    result = CryptGetKeyParam(hKey, KP_MODE, (BYTE*)&dwMode, &dwLen, 0);
+    ok(result, "%08x\n", GetLastError());
+todo_wine
+    ok(dwMode == CRYPT_MODE_CBC, "Wrong default chaining\n");
+
     dwLen = 13;
     result = CryptEncrypt(hKey, 0, TRUE, 0, pbData, &dwLen, 16);
     ok(result, "%08x\n", GetLastError());
@@ -1276,6 +1291,13 @@ static void test_rc2(void)
         result = CryptGetKeyParam(hKey, KP_KEYLEN, (BYTE*)&dwKeyLen, &dwLen, 0);
         ok(result, "%08x\n", GetLastError());
 
+        /* test default chaining mode */
+        dwMode = 0xdeadbeef;
+        dwLen = sizeof(dwMode);
+        result = CryptGetKeyParam(hKey, KP_MODE, (BYTE*)&dwMode, &dwLen, 0);
+        ok(result, "%08x\n", GetLastError());
+        ok(dwMode == CRYPT_MODE_CBC, "Wrong default chaining mode\n");
+
         dwMode = CRYPT_MODE_CBC;
         result = CryptSetKeyParam(hKey, KP_MODE, (BYTE*)&dwMode, 0);
         ok(result, "%08x\n", GetLastError());


More information about the wine-patches mailing list