From 8e44018baaee9ece36832eafed5c75a1d514e7dd Mon Sep 17 00:00:00 2001 From: David Garske Date: Mon, 11 Dec 2023 16:10:48 -0800 Subject: [PATCH] Fix TI AES return codes. --- wolfcrypt/src/port/ti/ti-aes.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/wolfcrypt/src/port/ti/ti-aes.c b/wolfcrypt/src/port/ti/ti-aes.c index cc0eade24..2d951ebbb 100644 --- a/wolfcrypt/src/port/ti/ti-aes.c +++ b/wolfcrypt/src/port/ti/ti-aes.c @@ -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 ))); ROM_AESIVSet(AES_BASE, aes->reg); ROM_AESKey1Set(AES_BASE, aes->key, aes->keylen-8); - ret = ROM_AESDataProcessAuth(AES_BASE, (unsigned int*)in_a, (unsigned int *)out_a, inSz, - (unsigned int*)authIn_a, authInSz, (unsigned int *)tmpTag); + ret = ROM_AESDataProcessAuth(AES_BASE, + (unsigned int*)in_a, (unsigned int *)out_a, inSz, + (unsigned int*)authIn_a, authInSz, + (unsigned int *)tmpTag); if (ret == false) { XMEMSET(out, 0, inSz); XMEMSET(authTag, 0, authTagSz); + ret = AES_GCM_AUTH_E; } else { XMEMCPY(out, out_a, inSz); XMEMCPY(authTag, tmpTag, authTagSz); + ret = 0; } exit: @@ -448,7 +452,7 @@ exit: if (out_save) XFREE(out_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); - return 0; + return ret; } 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); if ((ret == false) || (XMEMCMP(authTag, tmpTag, authTagSz) != 0)) { XMEMSET(out, 0, inSz); - ret = false; + ret = AES_GCM_AUTH_E; } else { XMEMCPY(out, out_a, inSz); + ret = 0; } exit: @@ -535,7 +540,7 @@ exit: if (authIn_save)XFREE(authIn_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 */