mirror of
https://github.com/openssl/openssl.git
synced 2025-01-18 13:44:20 +08:00
Fix SM4-CBC regression on Armv8
Fixes #19858 During decryption, the last ciphertext is not fed to next block correctly when the number of input blocks is exactly 4. Fix this and add the corresponding test cases. Thanks xu-yi-zhou for reporting this issue and proposing the fix. Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19872)
This commit is contained in:
parent
a5342007e7
commit
d89e0361d5
@ -880,7 +880,7 @@ $code.=<<___;
|
||||
subs $blocks,$blocks,#4
|
||||
b.gt .Lcbc_4_blocks_dec
|
||||
// save back IV
|
||||
st1 {@vtmp[3].16b}, [$ivp]
|
||||
st1 {@data[3].16b}, [$ivp]
|
||||
b 100f
|
||||
1: // last block
|
||||
subs $blocks,$blocks,#1
|
||||
|
@ -19,6 +19,18 @@ IV = 0123456789ABCDEFFEDCBA9876543210
|
||||
Plaintext = 0123456789ABCDEFFEDCBA98765432100123456789ABCDEFFEDCBA9876543210
|
||||
Ciphertext = 2677F46B09C122CC975533105BD4A22AF6125F7275CE552C3A2BBCF533DE8A3B
|
||||
|
||||
Cipher = SM4-CBC
|
||||
Key = 0123456789ABCDEFFEDCBA9876543210
|
||||
IV = 0123456789ABCDEFFEDCBA9876543210
|
||||
Plaintext = 0123456789ABCDEFFEDCBA98765432100123456789ABCDEFFEDCBA98765432100123456789ABCDEFFEDCBA98765432100123456789ABCDEFFEDCBA98765432100123456789ABCDEFFEDCBA98765432100123456789ABCDEFFEDCBA9876543210
|
||||
Ciphertext = 2677F46B09C122CC975533105BD4A22AF6125F7275CE552C3A2BBCF533DE8A3BFFF5A4F208092C0901BA02D5772977369915E3FA2356C9F4EB6460ECC457E7f8E3CFA3DEEBFE9883E3A48BCF7C4A11AA3EC9E0D317C5D319BE72A5CDDDEC640C
|
||||
|
||||
Cipher = SM4-CBC
|
||||
Key = 0123456789ABCDEFFEDCBA9876543210
|
||||
IV = 0123456789ABCDEFFEDCBA9876543210
|
||||
Plaintext = 0123456789ABCDEFFEDCBA98765432100123456789ABCDEFFEDCBA98765432100123456789ABCDEFFEDCBA98765432100123456789ABCDEFFEDCBA98765432100123456789ABCDEFFEDCBA98765432100123456789ABCDEFFEDCBA98765432100123456789ABCDEFFEDCBA98765432100123456789ABCDEFFEDCBA98765432100123456789ABCDEFFEDCBA98765432100123456789ABCDEFFEDCBA98765432100123456789ABCDEFFEDCBA98765432100123456789ABCDEFFEDCBA98765432100123456789ABCDEFFEDCBA98765432100123456789ABCDEFFEDCBA9876543210
|
||||
Ciphertext = 2677f46b09c122cc975533105bd4a22af6125f7275ce552c3a2bbcf533de8a3bfff5a4f208092c0901ba02d5772977369915e3fa2356c9f4eb6460ecc457e7f8e3cfa3deebfe9883e3a48bcf7c4a11aa3ec9e0d317c5d319be72a5cdddec640c6fc70bfa3ddaafffdd7c09b2774dcb2cec29f0c6f0b6773e985b3e395e924238505a8f120d9ca84de5c3cf7e45f097b14b3a46c5b1068669982a5c1f5f61be291b984f331d44ffb2758f771672448fc957fa1416c446427a41e25d5524a2418b9d96b2f17582f0f1aa9c204c6807f54f7b6833c5f00856659ddabc245936868c
|
||||
|
||||
Cipher = SM4-OFB
|
||||
Key = 0123456789ABCDEFFEDCBA9876543210
|
||||
IV = 0123456789ABCDEFFEDCBA9876543210
|
||||
|
Loading…
Reference in New Issue
Block a user