modify AES-CBC with AESNI test to check all key sizes for each message size checked

This commit is contained in:
John Safranek
2016-04-13 12:18:59 -07:00
parent 13f002f186
commit 57fce85531

View File

@@ -2722,29 +2722,37 @@ int aes_test(void)
0x70,0x6c,0x61,0x79,0x20,0x6d,0x61,0x6b, 0x70,0x6c,0x61,0x79,0x20,0x6d,0x61,0x6b,
0x65,0x73,0x20,0x4a,0x61,0x63,0x6b,0x20 0x65,0x73,0x20,0x4a,0x61,0x63,0x6b,0x20
}; };
const byte bigKey[] = "0123456789abcdeffedcba9876543210";
byte bigCipher[sizeof(bigMsg)]; byte bigCipher[sizeof(bigMsg)];
byte bigPlain[sizeof(bigMsg)]; byte bigPlain[sizeof(bigMsg)];
word32 i; word32 keySz, msgSz;
for (i = AES_BLOCK_SIZE; i <= sizeof(bigMsg); i += AES_BLOCK_SIZE) { /* Iterate from one AES_BLOCK_SIZE of bigMsg through the whole
memset(bigCipher, 0, sizeof(bigCipher)); * message by AES_BLOCK_SIZE for each size of AES key. */
memset(bigPlain, 0, sizeof(bigPlain)); for (keySz = 16; keySz <= 32; keySz += 8) {
ret = wc_AesSetKey(&enc, key, AES_BLOCK_SIZE, iv, AES_ENCRYPTION); for (msgSz = AES_BLOCK_SIZE;
if (ret != 0) msgSz <= sizeof(bigMsg);
return -1030; msgSz += AES_BLOCK_SIZE) {
ret = wc_AesSetKey(&dec, key, AES_BLOCK_SIZE, iv, AES_DECRYPTION);
if (ret != 0)
return -1031;
ret = wc_AesCbcEncrypt(&enc, bigCipher, bigMsg, i); memset(bigCipher, 0, sizeof(bigCipher));
if (ret != 0) memset(bigPlain, 0, sizeof(bigPlain));
return -1032; ret = wc_AesSetKey(&enc, bigKey, keySz, iv, AES_ENCRYPTION);
ret = wc_AesCbcDecrypt(&dec, bigPlain, bigCipher, i); if (ret != 0)
if (ret != 0) return -1030;
return -1033; ret = wc_AesSetKey(&dec, bigKey, keySz, iv, AES_DECRYPTION);
if (ret != 0)
return -1031;
if (memcmp(bigPlain, bigMsg, i)) ret = wc_AesCbcEncrypt(&enc, bigCipher, bigMsg, msgSz);
return -1034; if (ret != 0)
return -1032;
ret = wc_AesCbcDecrypt(&dec, bigPlain, bigCipher, msgSz);
if (ret != 0)
return -1033;
if (memcmp(bigPlain, bigMsg, msgSz))
return -1034;
}
} }
} }
#endif /* WOLFSSL_AESNI HAVE_AES_DECRYPT */ #endif /* WOLFSSL_AESNI HAVE_AES_DECRYPT */