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:
parent
7f343eedfc
commit
eaa0d38fa8
2 changed files with 68 additions and 1 deletions
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue