forked from wolfSSL/wolfssl
Fix TI AES return codes.
This commit is contained in:
@ -433,14 +433,18 @@ static int AesAuthEncrypt(Aes* aes, byte* out, const byte* in, word32 inSz,
|
|||||||
mode | ((mode== AES_CFG_MODE_CCM) ? (L | M) : 0 )));
|
mode | ((mode== AES_CFG_MODE_CCM) ? (L | M) : 0 )));
|
||||||
ROM_AESIVSet(AES_BASE, aes->reg);
|
ROM_AESIVSet(AES_BASE, aes->reg);
|
||||||
ROM_AESKey1Set(AES_BASE, aes->key, aes->keylen-8);
|
ROM_AESKey1Set(AES_BASE, aes->key, aes->keylen-8);
|
||||||
ret = ROM_AESDataProcessAuth(AES_BASE, (unsigned int*)in_a, (unsigned int *)out_a, inSz,
|
ret = ROM_AESDataProcessAuth(AES_BASE,
|
||||||
(unsigned int*)authIn_a, authInSz, (unsigned int *)tmpTag);
|
(unsigned int*)in_a, (unsigned int *)out_a, inSz,
|
||||||
|
(unsigned int*)authIn_a, authInSz,
|
||||||
|
(unsigned int *)tmpTag);
|
||||||
if (ret == false) {
|
if (ret == false) {
|
||||||
XMEMSET(out, 0, inSz);
|
XMEMSET(out, 0, inSz);
|
||||||
XMEMSET(authTag, 0, authTagSz);
|
XMEMSET(authTag, 0, authTagSz);
|
||||||
|
ret = AES_GCM_AUTH_E;
|
||||||
} else {
|
} else {
|
||||||
XMEMCPY(out, out_a, inSz);
|
XMEMCPY(out, out_a, inSz);
|
||||||
XMEMCPY(authTag, tmpTag, authTagSz);
|
XMEMCPY(authTag, tmpTag, authTagSz);
|
||||||
|
ret = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
exit:
|
exit:
|
||||||
@ -448,7 +452,7 @@ exit:
|
|||||||
if (out_save) XFREE(out_save, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
if (out_save) XFREE(out_save, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
if (authIn_save)XFREE(authIn_save, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
if (authIn_save)XFREE(authIn_save, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
if (nonce_save) XFREE(nonce_save, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
if (nonce_save) XFREE(nonce_save, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
return 0;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int AesAuthDecrypt(Aes* aes, byte* out, const byte* in, word32 inSz,
|
static int AesAuthDecrypt(Aes* aes, byte* out, const byte* in, word32 inSz,
|
||||||
@ -524,9 +528,10 @@ static int AesAuthDecrypt(Aes* aes, byte* out, const byte* in, word32 inSz,
|
|||||||
(unsigned int*)authIn_a, authInSz, (unsigned int *)tmpTag);
|
(unsigned int*)authIn_a, authInSz, (unsigned int *)tmpTag);
|
||||||
if ((ret == false) || (XMEMCMP(authTag, tmpTag, authTagSz) != 0)) {
|
if ((ret == false) || (XMEMCMP(authTag, tmpTag, authTagSz) != 0)) {
|
||||||
XMEMSET(out, 0, inSz);
|
XMEMSET(out, 0, inSz);
|
||||||
ret = false;
|
ret = AES_GCM_AUTH_E;
|
||||||
} else {
|
} else {
|
||||||
XMEMCPY(out, out_a, inSz);
|
XMEMCPY(out, out_a, inSz);
|
||||||
|
ret = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
exit:
|
exit:
|
||||||
@ -535,7 +540,7 @@ exit:
|
|||||||
if (authIn_save)XFREE(authIn_save, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
if (authIn_save)XFREE(authIn_save, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
if (nonce_save) XFREE(nonce_save, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
if (nonce_save) XFREE(nonce_save, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
|
|
||||||
return ret==true ? 0 : 1;
|
return ret;
|
||||||
}
|
}
|
||||||
#endif /* HAVE_AESGCM || HAVE_AESCCM */
|
#endif /* HAVE_AESGCM || HAVE_AESCCM */
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user