Tested on kunpeng920, to turn on 'VPSM4_EX_CAPABLE'.
Signed-off-by: Liu-Ermeng <liuermeng2@huawei.com>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23317)
mov @tweak[1].16b,@tweak[0].16b
___
&rev32_armeb(@tweak[1],@tweak[1]);
mov @tweak[1].16b,@tweak[0].16b
___
&rev32_armeb(@tweak[1],@tweak[1]);
- &compute_tweak_vec(@tweak[1],@tweak[2]);
+ &compute_tweak_vec(@tweak[1],@tweak[2],$std);
$code.=<<___;
b .check_dec${std}
$code.=<<___;
b .check_dec${std}
.check_dec${std}:
// encryption:1 decryption:0
cmp $enc,1
.check_dec${std}:
// encryption:1 decryption:0
cmp $enc,1
- b.eq .prcess_last_2blks${std}
+ b.eq .process_last_2blks${std}
mov @vtmp[0].16B,@tweak[1].16b
mov @tweak[1].16B,@tweak[2].16b
mov @tweak[2].16B,@vtmp[0].16b
mov @vtmp[0].16B,@tweak[1].16b
mov @tweak[1].16B,@tweak[2].16b
mov @tweak[2].16B,@vtmp[0].16b
-.prcess_last_2blks${std}:
+.process_last_2blks${std}:
___
&rev32_armeb(@tweak[1],@tweak[1]);
&rev32_armeb(@tweak[2],@tweak[2]);
___
&rev32_armeb(@tweak[1],@tweak[1]);
&rev32_armeb(@tweak[2],@tweak[2]);
mov @tweak[1].16b,@tweak[0].16b
___
&rev32_armeb(@tweak[1],@tweak[1]);
mov @tweak[1].16b,@tweak[0].16b
___
&rev32_armeb(@tweak[1],@tweak[1]);
- &compute_tweak_vec(@tweak[1],@tweak[2]);
+ &compute_tweak_vec(@tweak[1],@tweak[2],$std);
$code.=<<___;
b .check_dec${std}
$code.=<<___;
b .check_dec${std}
.check_dec${std}:
// encryption:1 decryption:0
cmp $enc,1
.check_dec${std}:
// encryption:1 decryption:0
cmp $enc,1
- b.eq .prcess_last_2blks${std}
+ b.eq .process_last_2blks${std}
mov @vtmp[0].16B,@tweak[1].16b
mov @tweak[1].16B,@tweak[2].16b
mov @tweak[2].16B,@vtmp[0].16b
mov @vtmp[0].16B,@tweak[1].16b
mov @tweak[1].16B,@tweak[2].16b
mov @tweak[2].16B,@vtmp[0].16b
-.prcess_last_2blks${std}:
+.process_last_2blks${std}:
___
&rev32_armeb(@tweak[1],@tweak[1]);
&rev32_armeb(@tweak[2],@tweak[2]);
___
&rev32_armeb(@tweak[1],@tweak[1]);
&rev32_armeb(@tweak[2],@tweak[2]);
Plaintext = 6BC1BEE22E409F96E93D7E117393172AAE2D8A571E03AC9C9EB76FAC45AF8E5130C81C46A35CE411E5FBC1191A0A52EFF69F2445DF4F9B17
Ciphertext = E9538251C71D7B80BBE4483FEF497BD1B3DB1A3E60408C575D63FF7DB39F83260869F9E2585FEC9F0B863BF8FD784B8627D16C0DB6D2CFC7
XTSStandard = IEEE
Plaintext = 6BC1BEE22E409F96E93D7E117393172AAE2D8A571E03AC9C9EB76FAC45AF8E5130C81C46A35CE411E5FBC1191A0A52EFF69F2445DF4F9B17
Ciphertext = E9538251C71D7B80BBE4483FEF497BD1B3DB1A3E60408C575D63FF7DB39F83260869F9E2585FEC9F0B863BF8FD784B8627D16C0DB6D2CFC7
XTSStandard = IEEE
+
+Cipher = SM4-XTS
+Key = FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0
+IV = 9A785634120000000000000000000000
+Plaintext = 000102030405060708090A0B0C0D0E0F10
+Ciphertext = 9E52443A35410CA0BA5637B94C0766F469