From da76fb6861397be97aacfded31792cc0924ca303 Mon Sep 17 00:00:00 2001 From: David Garske Date: Thu, 8 Nov 2018 13:43:13 -0800 Subject: [PATCH] Fixes for warning about possible uninitialized use of asyncDev for `wc_Gmac` and `wc_GmacVerify`. --- wolfcrypt/src/aes.c | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/wolfcrypt/src/aes.c b/wolfcrypt/src/aes.c index 1e768775e..b7ee99a22 100644 --- a/wolfcrypt/src/aes.c +++ b/wolfcrypt/src/aes.c @@ -9008,22 +9008,24 @@ int wc_Gmac(const byte* key, word32 keySz, byte* iv, word32 ivSz, byte* authTag, word32 authTagSz, WC_RNG* rng) { Aes aes; - int ret = 0; + int ret; if (key == NULL || iv == NULL || (authIn == NULL && authInSz != 0) || authTag == NULL || authTagSz == 0 || rng == NULL) { - ret = BAD_FUNC_ARG; + return BAD_FUNC_ARG; } - if (ret == 0) + ret = wc_AesInit(&aes, NULL, INVALID_DEVID); + if (ret == 0) { ret = wc_AesGcmSetKey(&aes, key, keySz); - if (ret == 0) - ret = wc_AesGcmSetIV(&aes, ivSz, NULL, 0, rng); - if (ret == 0) - ret = wc_AesGcmEncrypt_ex(&aes, NULL, NULL, 0, iv, ivSz, + if (ret == 0) + ret = wc_AesGcmSetIV(&aes, ivSz, NULL, 0, rng); + if (ret == 0) + ret = wc_AesGcmEncrypt_ex(&aes, NULL, NULL, 0, iv, ivSz, authTag, authTagSz, authIn, authInSz); - wc_AesFree(&aes); + wc_AesFree(&aes); + } ForceZero(&aes, sizeof(aes)); return ret; @@ -9035,20 +9037,22 @@ int wc_GmacVerify(const byte* key, word32 keySz, const byte* authTag, word32 authTagSz) { Aes aes; - int ret = 0; + int ret; if (key == NULL || iv == NULL || (authIn == NULL && authInSz != 0) || authTag == NULL || authTagSz == 0 || authTagSz > AES_BLOCK_SIZE) { - ret = BAD_FUNC_ARG; + return BAD_FUNC_ARG; } - if (ret == 0) + ret = wc_AesInit(&aes, NULL, INVALID_DEVID); + if (ret == 0) { ret = wc_AesGcmSetKey(&aes, key, keySz); - if (ret == 0) - ret = wc_AesGcmDecrypt(&aes, NULL, NULL, 0, iv, ivSz, + if (ret == 0) + ret = wc_AesGcmDecrypt(&aes, NULL, NULL, 0, iv, ivSz, authTag, authTagSz, authIn, authInSz); - wc_AesFree(&aes); + wc_AesFree(&aes); + } ForceZero(&aes, sizeof(aes)); return ret;