Sanity check on memcpy and xorbuf

Sanity check on memcpy and xorbuf
This commit is contained in:
kaleb-himes
2016-09-29 12:30:53 -06:00
parent 1a7f1d3b26
commit a630fda509

View File

@ -3425,6 +3425,8 @@ static void GHASH(Aes* aes, const byte* a, word32 aSz,
GMULT(x, h); GMULT(x, h);
/* Copy the result into s. */ /* Copy the result into s. */
if (sSz > AES_BLOCK_SIZE)
sSz = AES_BLOCK_SIZE;
XMEMCPY(s, x, sSz); XMEMCPY(s, x, sSz);
} }
@ -3573,6 +3575,8 @@ static void GHASH(Aes* aes, const byte* a, word32 aSz,
GMULT(x, aes->M0); GMULT(x, aes->M0);
/* Copy the result into s. */ /* Copy the result into s. */
if (sSz > AES_BLOCK_SIZE)
sSz = AES_BLOCK_SIZE;
XMEMCPY(s, x, sSz); XMEMCPY(s, x, sSz);
} }
@ -3697,6 +3701,8 @@ static void GHASH(Aes* aes, const byte* a, word32 aSz,
#ifdef LITTLE_ENDIAN_ORDER #ifdef LITTLE_ENDIAN_ORDER
ByteReverseWords64(x, x, AES_BLOCK_SIZE); ByteReverseWords64(x, x, AES_BLOCK_SIZE);
#endif #endif
if (sSz > AES_BLOCK_SIZE)
sSz = AES_BLOCK_SIZE;
XMEMCPY(s, x, sSz); XMEMCPY(s, x, sSz);
} }
@ -3844,6 +3850,8 @@ static void GHASH(Aes* aes, const byte* a, word32 aSz,
#ifdef LITTLE_ENDIAN_ORDER #ifdef LITTLE_ENDIAN_ORDER
ByteReverseWords(x, x, AES_BLOCK_SIZE); ByteReverseWords(x, x, AES_BLOCK_SIZE);
#endif #endif
if (sSz > AES_BLOCK_SIZE)
sSz = AES_BLOCK_SIZE;
XMEMCPY(s, x, sSz); XMEMCPY(s, x, sSz);
} }
@ -3914,6 +3922,8 @@ int wc_AesGcmEncrypt(Aes* aes, byte* out, const byte* in, word32 sz,
GHASH(aes, authIn, authInSz, out, sz, authTag, authTagSz); GHASH(aes, authIn, authInSz, out, sz, authTag, authTagSz);
wc_AesEncrypt(aes, initialCounter, scratch); wc_AesEncrypt(aes, initialCounter, scratch);
if (authTagSz > AES_BLOCK_SIZE)
authTagSz = AES_BLOCK_SIZE;
xorbuf(authTag, scratch, authTagSz); xorbuf(authTag, scratch, authTagSz);
return 0; return 0;