mirror of https://github.com/wolfSSL/wolfssl.git
Merge pull request #1009 from dgarske/fix_tls13_async_aes
Fix problem with async TLS 1.3 and raw AES encryption key changepull/1014/head
commit
b6854d620f
|
@ -2086,8 +2086,8 @@ static void wc_AesDecrypt(Aes* aes, const byte* inBlock, byte* outBlock)
|
||||||
|
|
||||||
#if defined(WOLFSSL_ASYNC_CRYPT) && defined(WC_ASYNC_ENABLE_AES)
|
#if defined(WOLFSSL_ASYNC_CRYPT) && defined(WC_ASYNC_ENABLE_AES)
|
||||||
if (aes->asyncDev.marker == WOLFSSL_ASYNC_MARKER_AES) {
|
if (aes->asyncDev.marker == WOLFSSL_ASYNC_MARKER_AES) {
|
||||||
aes->asyncKey = userKey;
|
XMEMCPY(aes->asyncKey, userKey, keylen);
|
||||||
aes->asyncIv = iv;
|
XMEMCPY(aes->asyncIv, iv, AES_BLOCK_SIZE);
|
||||||
}
|
}
|
||||||
#endif /* WOLFSSL_ASYNC_CRYPT */
|
#endif /* WOLFSSL_ASYNC_CRYPT */
|
||||||
|
|
||||||
|
@ -2846,7 +2846,8 @@ int wc_AesSetIV(Aes* aes, const byte* iv)
|
||||||
return NitroxAesCbcEncrypt(aes, out, in, sz);
|
return NitroxAesCbcEncrypt(aes, out, in, sz);
|
||||||
#elif defined(HAVE_INTEL_QA)
|
#elif defined(HAVE_INTEL_QA)
|
||||||
return IntelQaSymAesCbcEncrypt(&aes->asyncDev, out, in, sz,
|
return IntelQaSymAesCbcEncrypt(&aes->asyncDev, out, in, sz,
|
||||||
aes->asyncKey, aes->keylen, aes->asyncIv, AES_BLOCK_SIZE);
|
(const byte*)aes->asyncKey, aes->keylen,
|
||||||
|
(const byte*)aes->asyncIv, AES_BLOCK_SIZE);
|
||||||
#else /* WOLFSSL_ASYNC_CRYPT_TEST */
|
#else /* WOLFSSL_ASYNC_CRYPT_TEST */
|
||||||
WC_ASYNC_TEST* testDev = &aes->asyncDev.test;
|
WC_ASYNC_TEST* testDev = &aes->asyncDev.test;
|
||||||
if (testDev->type == ASYNC_TEST_NONE) {
|
if (testDev->type == ASYNC_TEST_NONE) {
|
||||||
|
@ -2931,7 +2932,8 @@ int wc_AesSetIV(Aes* aes, const byte* iv)
|
||||||
return NitroxAesCbcDecrypt(aes, out, in, sz);
|
return NitroxAesCbcDecrypt(aes, out, in, sz);
|
||||||
#elif defined(HAVE_INTEL_QA)
|
#elif defined(HAVE_INTEL_QA)
|
||||||
return IntelQaSymAesCbcDecrypt(&aes->asyncDev, out, in, sz,
|
return IntelQaSymAesCbcDecrypt(&aes->asyncDev, out, in, sz,
|
||||||
aes->asyncKey, aes->keylen, aes->asyncIv, AES_BLOCK_SIZE);
|
(const byte*)aes->asyncKey, aes->keylen,
|
||||||
|
(const byte*)aes->asyncIv, AES_BLOCK_SIZE);
|
||||||
#else /* WOLFSSL_ASYNC_CRYPT_TEST */
|
#else /* WOLFSSL_ASYNC_CRYPT_TEST */
|
||||||
WC_ASYNC_TEST* testDev = &aes->asyncDev.test;
|
WC_ASYNC_TEST* testDev = &aes->asyncDev.test;
|
||||||
if (testDev->type == ASYNC_TEST_NONE) {
|
if (testDev->type == ASYNC_TEST_NONE) {
|
||||||
|
@ -4538,7 +4540,7 @@ int wc_AesGcmEncrypt(Aes* aes, byte* out, const byte* in, word32 sz,
|
||||||
/* Not yet supported, contact wolfSSL if interested in using */
|
/* Not yet supported, contact wolfSSL if interested in using */
|
||||||
#elif defined(HAVE_INTEL_QA)
|
#elif defined(HAVE_INTEL_QA)
|
||||||
return IntelQaSymAesGcmEncrypt(&aes->asyncDev, out, in, sz,
|
return IntelQaSymAesGcmEncrypt(&aes->asyncDev, out, in, sz,
|
||||||
aes->asyncKey, aes->keylen, iv, ivSz,
|
(const byte*)aes->asyncKey, aes->keylen, iv, ivSz,
|
||||||
authTag, authTagSz, authIn, authInSz);
|
authTag, authTagSz, authIn, authInSz);
|
||||||
#else /* WOLFSSL_ASYNC_CRYPT_TEST */
|
#else /* WOLFSSL_ASYNC_CRYPT_TEST */
|
||||||
WC_ASYNC_TEST* testDev = &aes->asyncDev.test;
|
WC_ASYNC_TEST* testDev = &aes->asyncDev.test;
|
||||||
|
@ -4791,7 +4793,7 @@ int wc_AesGcmDecrypt(Aes* aes, byte* out, const byte* in, word32 sz,
|
||||||
/* Not yet supported, contact wolfSSL if interested in using */
|
/* Not yet supported, contact wolfSSL if interested in using */
|
||||||
#elif defined(HAVE_INTEL_QA)
|
#elif defined(HAVE_INTEL_QA)
|
||||||
return IntelQaSymAesGcmDecrypt(&aes->asyncDev, out, in, sz,
|
return IntelQaSymAesGcmDecrypt(&aes->asyncDev, out, in, sz,
|
||||||
aes->asyncKey, aes->keylen, iv, ivSz,
|
(const byte*)aes->asyncKey, aes->keylen, iv, ivSz,
|
||||||
authTag, authTagSz, authIn, authInSz);
|
authTag, authTagSz, authIn, authInSz);
|
||||||
#else /* WOLFSSL_ASYNC_CRYPT_TEST */
|
#else /* WOLFSSL_ASYNC_CRYPT_TEST */
|
||||||
WC_ASYNC_TEST* testDev = &aes->asyncDev.test;
|
WC_ASYNC_TEST* testDev = &aes->asyncDev.test;
|
||||||
|
|
|
@ -89,8 +89,8 @@ typedef struct Aes {
|
||||||
byte use_aesni;
|
byte use_aesni;
|
||||||
#endif /* WOLFSSL_AESNI */
|
#endif /* WOLFSSL_AESNI */
|
||||||
#ifdef WOLFSSL_ASYNC_CRYPT
|
#ifdef WOLFSSL_ASYNC_CRYPT
|
||||||
const byte* asyncKey;
|
word32 asyncKey[AES_MAX_KEY_SIZE/8/sizeof(word32)]; /* raw key */
|
||||||
const byte* asyncIv;
|
word32 asyncIv[AES_BLOCK_SIZE/sizeof(word32)]; /* raw IV */
|
||||||
WC_ASYNC_DEV asyncDev;
|
WC_ASYNC_DEV asyncDev;
|
||||||
#endif /* WOLFSSL_ASYNC_CRYPT */
|
#endif /* WOLFSSL_ASYNC_CRYPT */
|
||||||
#ifdef WOLFSSL_AES_COUNTER
|
#ifdef WOLFSSL_AES_COUNTER
|
||||||
|
|
Loading…
Reference in New Issue