forked from wolfSSL/wolfssl
Merge pull request #7529 from SparkiDev/aes_decrypt_fixes
AES: NO_AES_DECRYPT defined
This commit is contained in:
@ -5222,6 +5222,7 @@ void bench_aesccm(int useDeviceID)
|
|||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_AES_DECRYPT
|
||||||
RESET_MULTI_VALUE_STATS_VARS();
|
RESET_MULTI_VALUE_STATS_VARS();
|
||||||
|
|
||||||
bench_stats_start(&count, &start);
|
bench_stats_start(&count, &start);
|
||||||
@ -5248,6 +5249,7 @@ void bench_aesccm(int useDeviceID)
|
|||||||
printf("wc_AesCcmEncrypt failed, ret = %d\n", ret);
|
printf("wc_AesCcmEncrypt failed, ret = %d\n", ret);
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
exit:
|
exit:
|
||||||
|
|
||||||
|
@ -11447,6 +11447,7 @@ static WARN_UNUSED_RESULT int _AesEcbEncrypt(
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_AES_DECRYPT
|
||||||
static WARN_UNUSED_RESULT int _AesEcbDecrypt(
|
static WARN_UNUSED_RESULT int _AesEcbDecrypt(
|
||||||
Aes* aes, byte* out, const byte* in, word32 sz)
|
Aes* aes, byte* out, const byte* in, word32 sz)
|
||||||
{
|
{
|
||||||
@ -11497,6 +11498,7 @@ static WARN_UNUSED_RESULT int _AesEcbDecrypt(
|
|||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
int wc_AesEcbEncrypt(Aes* aes, byte* out, const byte* in, word32 sz)
|
int wc_AesEcbEncrypt(Aes* aes, byte* out, const byte* in, word32 sz)
|
||||||
{
|
{
|
||||||
@ -11509,6 +11511,7 @@ int wc_AesEcbEncrypt(Aes* aes, byte* out, const byte* in, word32 sz)
|
|||||||
return _AesEcbEncrypt(aes, out, in, sz);
|
return _AesEcbEncrypt(aes, out, in, sz);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_AES_DECRYPT
|
||||||
int wc_AesEcbDecrypt(Aes* aes, byte* out, const byte* in, word32 sz)
|
int wc_AesEcbDecrypt(Aes* aes, byte* out, const byte* in, word32 sz)
|
||||||
{
|
{
|
||||||
if ((in == NULL) || (out == NULL) || (aes == NULL))
|
if ((in == NULL) || (out == NULL) || (aes == NULL))
|
||||||
@ -11519,6 +11522,7 @@ int wc_AesEcbDecrypt(Aes* aes, byte* out, const byte* in, word32 sz)
|
|||||||
|
|
||||||
return _AesEcbDecrypt(aes, out, in, sz);
|
return _AesEcbDecrypt(aes, out, in, sz);
|
||||||
}
|
}
|
||||||
|
#endif /* HAVE_AES_DECRYPT */
|
||||||
#endif
|
#endif
|
||||||
#endif /* HAVE_AES_ECB */
|
#endif /* HAVE_AES_ECB */
|
||||||
|
|
||||||
|
@ -658,15 +658,21 @@ int wc_CryptKey(const char* password, int passwordSz, byte* salt,
|
|||||||
AES_ENCRYPTION);
|
AES_ENCRYPTION);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
#ifdef HAVE_AES_DECRYPT
|
||||||
ret = wc_AesSetKey(aes, key, derivedLen, cbcIv,
|
ret = wc_AesSetKey(aes, key, derivedLen, cbcIv,
|
||||||
AES_DECRYPTION);
|
AES_DECRYPTION);
|
||||||
|
#else
|
||||||
|
ret = NOT_COMPILED_IN;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ret == 0) {
|
if (ret == 0) {
|
||||||
if (enc)
|
if (enc)
|
||||||
ret = wc_AesCbcEncrypt(aes, input, input, (word32)length);
|
ret = wc_AesCbcEncrypt(aes, input, input, (word32)length);
|
||||||
|
#ifdef HAVE_AES_DECRYPT
|
||||||
else
|
else
|
||||||
ret = wc_AesCbcDecrypt(aes, input, input, (word32)length);
|
ret = wc_AesCbcDecrypt(aes, input, input, (word32)length);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
if (free_aes)
|
if (free_aes)
|
||||||
wc_AesFree(aes);
|
wc_AesFree(aes);
|
||||||
|
@ -8654,9 +8654,11 @@ EVP_TEST_END:
|
|||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
|
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
|
||||||
|
|
||||||
|
#ifdef HAVE_AES_DECRYPT
|
||||||
ret = wc_AesInit(dec, HEAP_HINT, INVALID_DEVID);
|
ret = wc_AesInit(dec, HEAP_HINT, INVALID_DEVID);
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
|
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
|
||||||
|
#endif
|
||||||
|
|
||||||
ret = wc_AesSetKey(enc, key2, sizeof(key2), iv2, AES_ENCRYPTION);
|
ret = wc_AesSetKey(enc, key2, sizeof(key2), iv2, AES_ENCRYPTION);
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
@ -8882,7 +8884,9 @@ EVP_TEST_END:
|
|||||||
out:
|
out:
|
||||||
|
|
||||||
wc_AesFree(enc);
|
wc_AesFree(enc);
|
||||||
|
#ifdef HAVE_AES_DECRYPT
|
||||||
wc_AesFree(dec);
|
wc_AesFree(dec);
|
||||||
|
#endif
|
||||||
#if defined(WOLFSSL_SMALL_STACK) && !defined(WOLFSSL_NO_MALLOC)
|
#if defined(WOLFSSL_SMALL_STACK) && !defined(WOLFSSL_NO_MALLOC)
|
||||||
if (enc)
|
if (enc)
|
||||||
XFREE(enc, HEAP_HINT, DYNAMIC_TYPE_AES);
|
XFREE(enc, HEAP_HINT, DYNAMIC_TYPE_AES);
|
||||||
@ -9211,8 +9215,10 @@ EVP_TEST_END:
|
|||||||
|
|
||||||
if (enc_inited)
|
if (enc_inited)
|
||||||
wc_AesFree(enc);
|
wc_AesFree(enc);
|
||||||
|
#ifdef HAVE_AES_DECRYPT
|
||||||
if (dec_inited)
|
if (dec_inited)
|
||||||
wc_AesFree(dec);
|
wc_AesFree(dec);
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(WOLFSSL_SMALL_STACK) && !defined(WOLFSSL_NO_MALLOC)
|
#if defined(WOLFSSL_SMALL_STACK) && !defined(WOLFSSL_NO_MALLOC)
|
||||||
if (enc)
|
if (enc)
|
||||||
@ -10933,6 +10939,8 @@ static wc_test_ret_t aes_cbc_test(void)
|
|||||||
#if defined(HAVE_AES_ECB) && !defined(HAVE_FIPS) && !defined(HAVE_SELFTEST)
|
#if defined(HAVE_AES_ECB) && !defined(HAVE_FIPS) && !defined(HAVE_SELFTEST)
|
||||||
static wc_test_ret_t aesecb_test(void)
|
static wc_test_ret_t aesecb_test(void)
|
||||||
{
|
{
|
||||||
|
wc_test_ret_t ret = 0;
|
||||||
|
#if defined(WOLFSSL_AES_256)
|
||||||
#if defined(WOLFSSL_SMALL_STACK) && !defined(WOLFSSL_NO_MALLOC)
|
#if defined(WOLFSSL_SMALL_STACK) && !defined(WOLFSSL_NO_MALLOC)
|
||||||
Aes *enc = (Aes *)XMALLOC(sizeof *enc, HEAP_HINT, DYNAMIC_TYPE_AES);
|
Aes *enc = (Aes *)XMALLOC(sizeof *enc, HEAP_HINT, DYNAMIC_TYPE_AES);
|
||||||
#else
|
#else
|
||||||
@ -10947,11 +10955,9 @@ static wc_test_ret_t aesecb_test(void)
|
|||||||
Aes dec[1];
|
Aes dec[1];
|
||||||
#endif
|
#endif
|
||||||
int dec_inited = 0;
|
int dec_inited = 0;
|
||||||
byte plain [AES_BLOCK_SIZE * 4];
|
byte plain[AES_BLOCK_SIZE * 4];
|
||||||
#endif /* HAVE_AES_DECRYPT */
|
#endif /* HAVE_AES_DECRYPT */
|
||||||
wc_test_ret_t ret = 0;
|
|
||||||
|
|
||||||
#if defined(WOLFSSL_AES_256)
|
|
||||||
{
|
{
|
||||||
WOLFSSL_SMALL_STACK_STATIC const byte niPlain[] =
|
WOLFSSL_SMALL_STACK_STATIC const byte niPlain[] =
|
||||||
{
|
{
|
||||||
@ -11026,6 +11032,7 @@ static wc_test_ret_t aesecb_test(void)
|
|||||||
ERROR_OUT(WC_TEST_RET_ENC_NC, out);
|
ERROR_OUT(WC_TEST_RET_ENC_NC, out);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_AES_DECRYPT
|
||||||
XMEMSET(plain, 0, AES_BLOCK_SIZE);
|
XMEMSET(plain, 0, AES_BLOCK_SIZE);
|
||||||
ret = wc_AesSetKey(dec, niKey, sizeof(niKey), plain, AES_DECRYPTION);
|
ret = wc_AesSetKey(dec, niKey, sizeof(niKey), plain, AES_DECRYPTION);
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
@ -11069,6 +11076,7 @@ static wc_test_ret_t aesecb_test(void)
|
|||||||
if (XMEMCMP(plain, niPlain, AES_BLOCK_SIZE) != 0)
|
if (XMEMCMP(plain, niPlain, AES_BLOCK_SIZE) != 0)
|
||||||
ERROR_OUT(WC_TEST_RET_ENC_NC, out);
|
ERROR_OUT(WC_TEST_RET_ENC_NC, out);
|
||||||
#endif
|
#endif
|
||||||
|
#endif /* HAVE_AES_DECRYPT */
|
||||||
}
|
}
|
||||||
|
|
||||||
out:
|
out:
|
||||||
@ -11796,7 +11804,7 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t aes_test(void)
|
|||||||
#endif
|
#endif
|
||||||
int enc_inited = 0;
|
int enc_inited = 0;
|
||||||
byte cipher[AES_BLOCK_SIZE * 4];
|
byte cipher[AES_BLOCK_SIZE * 4];
|
||||||
#ifdef HAVE_AES_DECRYPT
|
#if defined(HAVE_AES_DECRYPT) || defined(WOLFSSL_AES_COUNTER)
|
||||||
#if defined(WOLFSSL_SMALL_STACK) && !defined(WOLFSSL_NO_MALLOC)
|
#if defined(WOLFSSL_SMALL_STACK) && !defined(WOLFSSL_NO_MALLOC)
|
||||||
Aes *dec = (Aes *)XMALLOC(sizeof *dec, HEAP_HINT, DYNAMIC_TYPE_AES);
|
Aes *dec = (Aes *)XMALLOC(sizeof *dec, HEAP_HINT, DYNAMIC_TYPE_AES);
|
||||||
#else
|
#else
|
||||||
@ -11804,7 +11812,7 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t aes_test(void)
|
|||||||
#endif
|
#endif
|
||||||
int dec_inited = 0;
|
int dec_inited = 0;
|
||||||
byte plain [AES_BLOCK_SIZE * 4];
|
byte plain [AES_BLOCK_SIZE * 4];
|
||||||
#endif /* HAVE_AES_DECRYPT */
|
#endif /* HAVE_AES_DECRYPT || WOLFSSL_AES_COUNTER */
|
||||||
#endif /* HAVE_AES_CBC || WOLFSSL_AES_COUNTER || WOLFSSL_AES_DIRECT */
|
#endif /* HAVE_AES_CBC || WOLFSSL_AES_COUNTER || WOLFSSL_AES_DIRECT */
|
||||||
wc_test_ret_t ret = 0;
|
wc_test_ret_t ret = 0;
|
||||||
|
|
||||||
@ -11836,7 +11844,7 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t aes_test(void)
|
|||||||
if (enc == NULL)
|
if (enc == NULL)
|
||||||
ERROR_OUT(WC_TEST_RET_ENC_ERRNO, out);
|
ERROR_OUT(WC_TEST_RET_ENC_ERRNO, out);
|
||||||
#endif
|
#endif
|
||||||
#if defined(HAVE_AES_DECRYPT) || defined(WOLFSSL_AES_COUNTER) || defined(WOLFSSL_AES_DIRECT)
|
#if defined(HAVE_AES_DECRYPT) || defined(WOLFSSL_AES_COUNTER)
|
||||||
if (dec == NULL)
|
if (dec == NULL)
|
||||||
ERROR_OUT(WC_TEST_RET_ENC_ERRNO, out);
|
ERROR_OUT(WC_TEST_RET_ENC_ERRNO, out);
|
||||||
#endif
|
#endif
|
||||||
@ -12235,6 +12243,7 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t aes_test(void)
|
|||||||
if (XMEMCMP(cipher, niCipher, AES_BLOCK_SIZE) != 0)
|
if (XMEMCMP(cipher, niCipher, AES_BLOCK_SIZE) != 0)
|
||||||
ERROR_OUT(WC_TEST_RET_ENC_NC, out);
|
ERROR_OUT(WC_TEST_RET_ENC_NC, out);
|
||||||
|
|
||||||
|
#ifdef HAVE_AES_DECRYPT
|
||||||
XMEMSET(plain, 0, AES_BLOCK_SIZE);
|
XMEMSET(plain, 0, AES_BLOCK_SIZE);
|
||||||
ret = wc_AesSetKey(dec, niKey, sizeof(niKey), plain, AES_DECRYPTION);
|
ret = wc_AesSetKey(dec, niKey, sizeof(niKey), plain, AES_DECRYPTION);
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
@ -12251,6 +12260,7 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t aes_test(void)
|
|||||||
#endif
|
#endif
|
||||||
if (XMEMCMP(plain, niPlain, AES_BLOCK_SIZE) != 0)
|
if (XMEMCMP(plain, niPlain, AES_BLOCK_SIZE) != 0)
|
||||||
ERROR_OUT(WC_TEST_RET_ENC_NC, out);
|
ERROR_OUT(WC_TEST_RET_ENC_NC, out);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#endif /* WOLFSSL_AES_DIRECT && WOLFSSL_AES_256 */
|
#endif /* WOLFSSL_AES_DIRECT && WOLFSSL_AES_256 */
|
||||||
|
|
||||||
@ -12287,7 +12297,7 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t aes_test(void)
|
|||||||
wc_AesFree(enc);
|
wc_AesFree(enc);
|
||||||
#endif
|
#endif
|
||||||
(void)cipher;
|
(void)cipher;
|
||||||
#ifdef HAVE_AES_DECRYPT
|
#if defined(HAVE_AES_DECRYPT) || defined(WOLFSSL_AES_COUNTER)
|
||||||
#if defined(WOLFSSL_SMALL_STACK) && !defined(WOLFSSL_NO_MALLOC)
|
#if defined(WOLFSSL_SMALL_STACK) && !defined(WOLFSSL_NO_MALLOC)
|
||||||
if (dec) {
|
if (dec) {
|
||||||
if (dec_inited)
|
if (dec_inited)
|
||||||
@ -12299,7 +12309,7 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t aes_test(void)
|
|||||||
wc_AesFree(dec);
|
wc_AesFree(dec);
|
||||||
#endif
|
#endif
|
||||||
(void)plain;
|
(void)plain;
|
||||||
#endif /* HAVE_AES_DECRYPT */
|
#endif /* HAVE_AES_DECRYPT || WOLFSSL_AES_COUNTER */
|
||||||
#endif /* HAVE_AES_CBC || WOLFSSL_AES_COUNTER || WOLFSSL_AES_DIRECT */
|
#endif /* HAVE_AES_CBC || WOLFSSL_AES_COUNTER || WOLFSSL_AES_DIRECT */
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
@ -12423,8 +12433,8 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t aes192_test(void)
|
|||||||
ret = wc_AesInit(dec, HEAP_HINT, devId);
|
ret = wc_AesInit(dec, HEAP_HINT, devId);
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
|
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
|
||||||
#endif
|
|
||||||
dec_inited = 1;
|
dec_inited = 1;
|
||||||
|
#endif
|
||||||
|
|
||||||
ret = wc_AesSetKey(enc, key, (int) sizeof(key), iv, AES_ENCRYPTION);
|
ret = wc_AesSetKey(enc, key, (int) sizeof(key), iv, AES_ENCRYPTION);
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
@ -12476,9 +12486,11 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t aes192_test(void)
|
|||||||
#else /* !WOLFSSL_SMALL_STACK || WOLFSSL_NO_MALLOC */
|
#else /* !WOLFSSL_SMALL_STACK || WOLFSSL_NO_MALLOC */
|
||||||
if (enc_inited)
|
if (enc_inited)
|
||||||
wc_AesFree(enc);
|
wc_AesFree(enc);
|
||||||
|
#ifdef HAVE_AES_DECRYPT
|
||||||
if (dec_inited)
|
if (dec_inited)
|
||||||
wc_AesFree(dec);
|
wc_AesFree(dec);
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
#endif /* HAVE_AES_CBC */
|
#endif /* HAVE_AES_CBC */
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
@ -12557,8 +12569,8 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t aes256_test(void)
|
|||||||
ret = wc_AesInit(dec, HEAP_HINT, devId);
|
ret = wc_AesInit(dec, HEAP_HINT, devId);
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
|
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
|
||||||
#endif
|
|
||||||
dec_inited = 1;
|
dec_inited = 1;
|
||||||
|
#endif
|
||||||
|
|
||||||
ret = wc_AesSetKey(enc, key, keySz, iv, AES_ENCRYPTION);
|
ret = wc_AesSetKey(enc, key, keySz, iv, AES_ENCRYPTION);
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
@ -12688,9 +12700,11 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t aes256_test(void)
|
|||||||
#else /* !WOLFSSL_SMALL_STACK || WOLFSSL_NO_MALLOC */
|
#else /* !WOLFSSL_SMALL_STACK || WOLFSSL_NO_MALLOC */
|
||||||
if (enc_inited)
|
if (enc_inited)
|
||||||
wc_AesFree(enc);
|
wc_AesFree(enc);
|
||||||
|
#ifdef HAVE_AES_DECRYPT
|
||||||
if (dec_inited)
|
if (dec_inited)
|
||||||
wc_AesFree(dec);
|
wc_AesFree(dec);
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
#endif /* HAVE_AES_CBC */
|
#endif /* HAVE_AES_CBC */
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
@ -13982,6 +13996,7 @@ static wc_test_ret_t aesccm_256_test(void)
|
|||||||
ret = WC_TEST_RET_ENC_NC;
|
ret = WC_TEST_RET_ENC_NC;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_AES_DECRYPT
|
||||||
if (ret == 0) {
|
if (ret == 0) {
|
||||||
/* decrypt inline */
|
/* decrypt inline */
|
||||||
ret = wc_AesCcmDecrypt(aes, output, output, sizeof(output),
|
ret = wc_AesCcmDecrypt(aes, output, output, sizeof(output),
|
||||||
@ -13995,6 +14010,7 @@ static wc_test_ret_t aesccm_256_test(void)
|
|||||||
XMEMCMP(output, in_plaintext, sizeof(output))) {
|
XMEMCMP(output, in_plaintext, sizeof(output))) {
|
||||||
ret = WC_TEST_RET_ENC_NC;
|
ret = WC_TEST_RET_ENC_NC;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
wc_AesFree(aes);
|
wc_AesFree(aes);
|
||||||
|
|
||||||
@ -14135,6 +14151,7 @@ static wc_test_ret_t aesccm_128_test(void)
|
|||||||
if (XMEMCMP(t, t2, sizeof(t2)))
|
if (XMEMCMP(t, t2, sizeof(t2)))
|
||||||
ERROR_OUT(WC_TEST_RET_ENC_NC, out);
|
ERROR_OUT(WC_TEST_RET_ENC_NC, out);
|
||||||
|
|
||||||
|
#ifdef HAVE_AES_DECRYPT
|
||||||
ret = wc_AesCcmDecrypt(enc, p2, c2, sizeof(p2), iv, sizeof(iv),
|
ret = wc_AesCcmDecrypt(enc, p2, c2, sizeof(p2), iv, sizeof(iv),
|
||||||
t2, sizeof(t2), a, sizeof(a));
|
t2, sizeof(t2), a, sizeof(a));
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
@ -14154,6 +14171,7 @@ static wc_test_ret_t aesccm_128_test(void)
|
|||||||
XMEMSET(c2, 0, sizeof(c2));
|
XMEMSET(c2, 0, sizeof(c2));
|
||||||
if (XMEMCMP(p2, c2, sizeof(p2)))
|
if (XMEMCMP(p2, c2, sizeof(p2)))
|
||||||
ERROR_OUT(WC_TEST_RET_ENC_NC, out);
|
ERROR_OUT(WC_TEST_RET_ENC_NC, out);
|
||||||
|
#endif
|
||||||
wc_AesFree(enc);
|
wc_AesFree(enc);
|
||||||
|
|
||||||
XMEMSET(enc, 0, sizeof(Aes)); /* clear context */
|
XMEMSET(enc, 0, sizeof(Aes)); /* clear context */
|
||||||
@ -14212,12 +14230,14 @@ static wc_test_ret_t aesccm_128_test(void)
|
|||||||
if (XMEMCMP(tl, tl2, sizeof(tl2)))
|
if (XMEMCMP(tl, tl2, sizeof(tl2)))
|
||||||
ERROR_OUT(WC_TEST_RET_ENC_NC, out);
|
ERROR_OUT(WC_TEST_RET_ENC_NC, out);
|
||||||
|
|
||||||
|
#ifdef HAVE_AES_DECRYPT
|
||||||
ret = wc_AesCcmDecrypt(enc, pl2, cl2, sizeof(pl2), iv, sizeof(iv),
|
ret = wc_AesCcmDecrypt(enc, pl2, cl2, sizeof(pl2), iv, sizeof(iv),
|
||||||
tl2, sizeof(tl2), a, sizeof(a));
|
tl2, sizeof(tl2), a, sizeof(a));
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
|
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
|
||||||
if (XMEMCMP(pl, pl2, sizeof(pl2)))
|
if (XMEMCMP(pl, pl2, sizeof(pl2)))
|
||||||
ERROR_OUT(WC_TEST_RET_ENC_NC, out);
|
ERROR_OUT(WC_TEST_RET_ENC_NC, out);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* test empty message as null input or output with nonzero inSz. */
|
/* test empty message as null input or output with nonzero inSz. */
|
||||||
ret = wc_AesCcmEncrypt(enc, pl2 /* out */, NULL /* in */, 1 /* inSz */,
|
ret = wc_AesCcmEncrypt(enc, pl2 /* out */, NULL /* in */, 1 /* inSz */,
|
||||||
@ -14230,6 +14250,7 @@ static wc_test_ret_t aesccm_128_test(void)
|
|||||||
a, sizeof(a));
|
a, sizeof(a));
|
||||||
if (ret != BAD_FUNC_ARG)
|
if (ret != BAD_FUNC_ARG)
|
||||||
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
|
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
|
||||||
|
#ifdef HAVE_AES_DECRYPT
|
||||||
ret = wc_AesCcmDecrypt(enc, pl2, NULL /* in */, 1 /* inSz */,
|
ret = wc_AesCcmDecrypt(enc, pl2, NULL /* in */, 1 /* inSz */,
|
||||||
iv, sizeof(iv), t_empty2, sizeof(t_empty2), a,
|
iv, sizeof(iv), t_empty2, sizeof(t_empty2), a,
|
||||||
sizeof(a));
|
sizeof(a));
|
||||||
@ -14240,6 +14261,7 @@ static wc_test_ret_t aesccm_128_test(void)
|
|||||||
sizeof(a));
|
sizeof(a));
|
||||||
if (ret != BAD_FUNC_ARG)
|
if (ret != BAD_FUNC_ARG)
|
||||||
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
|
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* test empty message as null input and output with zero inSz --
|
/* test empty message as null input and output with zero inSz --
|
||||||
* must either succeed, or fail early with BAD_FUNC_ARG.
|
* must either succeed, or fail early with BAD_FUNC_ARG.
|
||||||
@ -14253,11 +14275,13 @@ static wc_test_ret_t aesccm_128_test(void)
|
|||||||
if (XMEMCMP(t_empty, t_empty2, sizeof(t_empty2)))
|
if (XMEMCMP(t_empty, t_empty2, sizeof(t_empty2)))
|
||||||
ERROR_OUT(WC_TEST_RET_ENC_NC, out);
|
ERROR_OUT(WC_TEST_RET_ENC_NC, out);
|
||||||
|
|
||||||
|
#ifdef HAVE_AES_DECRYPT
|
||||||
ret = wc_AesCcmDecrypt(enc, NULL /* out */, NULL /* in */,
|
ret = wc_AesCcmDecrypt(enc, NULL /* out */, NULL /* in */,
|
||||||
0 /* inSz */, iv, sizeof(iv), t_empty2,
|
0 /* inSz */, iv, sizeof(iv), t_empty2,
|
||||||
sizeof(t_empty2), a, sizeof(a));
|
sizeof(t_empty2), a, sizeof(a));
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
|
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/* test empty message as zero-length string -- must work. */
|
/* test empty message as zero-length string -- must work. */
|
||||||
@ -14269,11 +14293,13 @@ static wc_test_ret_t aesccm_128_test(void)
|
|||||||
if (XMEMCMP(t_empty, t_empty2, sizeof(t_empty2)))
|
if (XMEMCMP(t_empty, t_empty2, sizeof(t_empty2)))
|
||||||
ERROR_OUT(WC_TEST_RET_ENC_NC, out);
|
ERROR_OUT(WC_TEST_RET_ENC_NC, out);
|
||||||
|
|
||||||
|
#ifdef HAVE_AES_DECRYPT
|
||||||
ret = wc_AesCcmDecrypt(enc, pl2, (const byte *)"", 0 /* inSz */,
|
ret = wc_AesCcmDecrypt(enc, pl2, (const byte *)"", 0 /* inSz */,
|
||||||
iv, sizeof(iv), t_empty2, sizeof(t_empty2), a,
|
iv, sizeof(iv), t_empty2, sizeof(t_empty2), a,
|
||||||
sizeof(a));
|
sizeof(a));
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
|
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
|
||||||
|
#endif
|
||||||
|
|
||||||
wc_AesFree(enc);
|
wc_AesFree(enc);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user