Fixed IV processing for CBC decryption with AES (x86ni implementation) when data length is not multiple of 64 bytes (the bug was breaking TLS 1.0 AES/CBC on recent x86 systems).

This commit is contained in:
Thomas Pornin 2017-06-22 21:13:15 +02:00
parent 7f343eedfc
commit eaa0d38fa8
2 changed files with 68 additions and 1 deletions

View file

@ -78,14 +78,16 @@ br_aes_x86ni_cbcdec_run(const br_aes_x86ni_cbcdec_keys *ctx,
if (len >= 48) {
x2 = _mm_loadu_si128(
(void *)(buf + 32));
x3 = x2;
} else {
x2 = x0;
x3 = x1;
}
} else {
x1 = x0;
x2 = x0;
x3 = x0;
}
x3 = x0;
}
e0 = x0;
e1 = x1;