forked from wolfSSL/wolfssl
Fixes for warning about possible uninitialized use of asyncDev for wc_Gmac
and wc_GmacVerify
.
This commit is contained in:
@ -9008,15 +9008,16 @@ int wc_Gmac(const byte* key, word32 keySz, byte* iv, word32 ivSz,
|
|||||||
byte* authTag, word32 authTagSz, WC_RNG* rng)
|
byte* authTag, word32 authTagSz, WC_RNG* rng)
|
||||||
{
|
{
|
||||||
Aes aes;
|
Aes aes;
|
||||||
int ret = 0;
|
int ret;
|
||||||
|
|
||||||
if (key == NULL || iv == NULL || (authIn == NULL && authInSz != 0) ||
|
if (key == NULL || iv == NULL || (authIn == NULL && authInSz != 0) ||
|
||||||
authTag == NULL || authTagSz == 0 || rng == NULL) {
|
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);
|
ret = wc_AesGcmSetKey(&aes, key, keySz);
|
||||||
if (ret == 0)
|
if (ret == 0)
|
||||||
ret = wc_AesGcmSetIV(&aes, ivSz, NULL, 0, rng);
|
ret = wc_AesGcmSetIV(&aes, ivSz, NULL, 0, rng);
|
||||||
@ -9024,6 +9025,7 @@ int wc_Gmac(const byte* key, word32 keySz, byte* iv, word32 ivSz,
|
|||||||
ret = wc_AesGcmEncrypt_ex(&aes, NULL, NULL, 0, iv, ivSz,
|
ret = wc_AesGcmEncrypt_ex(&aes, NULL, NULL, 0, iv, ivSz,
|
||||||
authTag, authTagSz, authIn, authInSz);
|
authTag, authTagSz, authIn, authInSz);
|
||||||
wc_AesFree(&aes);
|
wc_AesFree(&aes);
|
||||||
|
}
|
||||||
ForceZero(&aes, sizeof(aes));
|
ForceZero(&aes, sizeof(aes));
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
@ -9035,20 +9037,22 @@ int wc_GmacVerify(const byte* key, word32 keySz,
|
|||||||
const byte* authTag, word32 authTagSz)
|
const byte* authTag, word32 authTagSz)
|
||||||
{
|
{
|
||||||
Aes aes;
|
Aes aes;
|
||||||
int ret = 0;
|
int ret;
|
||||||
|
|
||||||
if (key == NULL || iv == NULL || (authIn == NULL && authInSz != 0) ||
|
if (key == NULL || iv == NULL || (authIn == NULL && authInSz != 0) ||
|
||||||
authTag == NULL || authTagSz == 0 || authTagSz > AES_BLOCK_SIZE) {
|
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);
|
ret = wc_AesGcmSetKey(&aes, key, keySz);
|
||||||
if (ret == 0)
|
if (ret == 0)
|
||||||
ret = wc_AesGcmDecrypt(&aes, NULL, NULL, 0, iv, ivSz,
|
ret = wc_AesGcmDecrypt(&aes, NULL, NULL, 0, iv, ivSz,
|
||||||
authTag, authTagSz, authIn, authInSz);
|
authTag, authTagSz, authIn, authInSz);
|
||||||
wc_AesFree(&aes);
|
wc_AesFree(&aes);
|
||||||
|
}
|
||||||
ForceZero(&aes, sizeof(aes));
|
ForceZero(&aes, sizeof(aes));
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
Reference in New Issue
Block a user