mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-30 10:47:28 +02:00
Merge pull request #5287 from haydenroche5/aes_ctr_clear_left_on_iv_set
Clear the leftover byte count in Aes struct when setting IV.
This commit is contained in:
11
src/ssl.c
11
src/ssl.c
@ -24082,10 +24082,13 @@ void wolfSSL_AES_cfb128_encrypt(const unsigned char *in, unsigned char* out,
|
|||||||
}
|
}
|
||||||
|
|
||||||
aes = (Aes*)key;
|
aes = (Aes*)key;
|
||||||
if (wc_AesSetIV(aes, (const byte*)iv) != 0) {
|
|
||||||
WOLFSSL_MSG("Error with setting iv");
|
/*
|
||||||
return;
|
* We copy the IV directly into reg here because using wc_AesSetIV will
|
||||||
}
|
* clear the leftover bytes field "left", and this function relies on the
|
||||||
|
* leftover bytes being preserved between calls.
|
||||||
|
*/
|
||||||
|
XMEMCPY(aes->reg, iv, AES_BLOCK_SIZE);
|
||||||
|
|
||||||
if (enc == AES_ENCRYPT) {
|
if (enc == AES_ENCRYPT) {
|
||||||
if (wc_AesCfbEncrypt(aes, out, in, (word32)len) != 0) {
|
if (wc_AesCfbEncrypt(aes, out, in, (word32)len) != 0) {
|
||||||
|
@ -3212,6 +3212,13 @@ int wc_AesSetIV(Aes* aes, const byte* iv)
|
|||||||
XMEMCPY(aes->reg, iv, AES_BLOCK_SIZE);
|
XMEMCPY(aes->reg, iv, AES_BLOCK_SIZE);
|
||||||
else
|
else
|
||||||
XMEMSET(aes->reg, 0, AES_BLOCK_SIZE);
|
XMEMSET(aes->reg, 0, AES_BLOCK_SIZE);
|
||||||
|
|
||||||
|
#if defined(WOLFSSL_AES_COUNTER) || defined(WOLFSSL_AES_CFB) || \
|
||||||
|
defined(WOLFSSL_AES_OFB) || defined(WOLFSSL_AES_XTS)
|
||||||
|
/* Clear any unused bytes from last cipher op. */
|
||||||
|
aes->left = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user