diff options
author | Jung-uk Kim <jkim@FreeBSD.org> | 2020-12-09 02:05:14 +0000 |
---|---|---|
committer | Jung-uk Kim <jkim@FreeBSD.org> | 2020-12-09 02:05:14 +0000 |
commit | c3c73b4f0a91d2806e1a632b75f769fb4fa89576 (patch) | |
tree | 7c868b042745dce2a0f7c34a517d3721441b24b1 /sys/crypto/openssl/arm | |
parent | 5ee33a90767ef975146d7c441c0517ff789617b1 (diff) | |
parent | 970a464089066970886f0bce6d1c9dcfbcb2e8ea (diff) | |
download | src-c3c73b4f0a91d2806e1a632b75f769fb4fa89576.tar.gz src-c3c73b4f0a91d2806e1a632b75f769fb4fa89576.zip |
Merge OpenSSL 1.1.1i.
Notes
Notes:
svn path=/head/; revision=368472
Diffstat (limited to 'sys/crypto/openssl/arm')
-rw-r--r-- | sys/crypto/openssl/arm/aesv8-armx.S | 38 |
1 files changed, 23 insertions, 15 deletions
diff --git a/sys/crypto/openssl/arm/aesv8-armx.S b/sys/crypto/openssl/arm/aesv8-armx.S index 277483389856..f46d50c57337 100644 --- a/sys/crypto/openssl/arm/aesv8-armx.S +++ b/sys/crypto/openssl/arm/aesv8-armx.S @@ -110,7 +110,12 @@ aes_v8_set_encrypt_key: vtbl.8 d20,{q8},d4 vtbl.8 d21,{q8},d5 vext.8 q9,q0,q3,#12 +#ifdef __ARMEB__ + vst1.32 {q8},[r2]! + sub r2,r2,#8 +#else vst1.32 {d16},[r2]! +#endif .byte 0x00,0x43,0xf0,0xf3 @ aese q10,q0 subs r1,r1,#1 @@ -582,8 +587,11 @@ aes_v8_ctr32_encrypt_blocks: ldr r5,[r3,#240] ldr r8, [r4, #12] +#ifdef __ARMEB__ + vld1.8 {q0},[r4] +#else vld1.32 {q0},[r4] - +#endif vld1.32 {q8,q9},[r3] @ load key schedule... sub r5,r5,#4 mov r12,#16 @@ -599,17 +607,17 @@ aes_v8_ctr32_encrypt_blocks: #ifndef __ARMEB__ rev r8, r8 #endif - vorr q1,q0,q0 add r10, r8, #1 - vorr q10,q0,q0 - add r8, r8, #2 vorr q6,q0,q0 rev r10, r10 - vmov.32 d3[1],r10 + vmov.32 d13[1],r10 + add r8, r8, #2 + vorr q1,q6,q6 bls .Lctr32_tail rev r12, r8 + vmov.32 d13[1],r12 sub r2,r2,#3 @ bias - vmov.32 d21[1],r12 + vorr q10,q6,q6 b .Loop3x_ctr32 .align 4 @@ -636,11 +644,11 @@ aes_v8_ctr32_encrypt_blocks: .byte 0x20,0x23,0xb0,0xf3 @ aese q1,q8 .byte 0x82,0xa3,0xb0,0xf3 @ aesmc q5,q1 vld1.8 {q2},[r0]! - vorr q0,q6,q6 + add r9,r8,#1 .byte 0x20,0x43,0xf0,0xf3 @ aese q10,q8 .byte 0xa4,0x43,0xf0,0xf3 @ aesmc q10,q10 vld1.8 {q3},[r0]! - vorr q1,q6,q6 + rev r9,r9 .byte 0x22,0x83,0xb0,0xf3 @ aese q4,q9 .byte 0x88,0x83,0xb0,0xf3 @ aesmc q4,q4 .byte 0x22,0xa3,0xb0,0xf3 @ aese q5,q9 @@ -649,8 +657,6 @@ aes_v8_ctr32_encrypt_blocks: mov r7,r3 .byte 0x22,0x43,0xf0,0xf3 @ aese q10,q9 .byte 0xa4,0x23,0xf0,0xf3 @ aesmc q9,q10 - vorr q10,q6,q6 - add r9,r8,#1 .byte 0x28,0x83,0xb0,0xf3 @ aese q4,q12 .byte 0x88,0x83,0xb0,0xf3 @ aesmc q4,q4 .byte 0x28,0xa3,0xb0,0xf3 @ aese q5,q12 @@ -666,20 +672,22 @@ aes_v8_ctr32_encrypt_blocks: .byte 0x2a,0xa3,0xb0,0xf3 @ aese q5,q13 .byte 0x8a,0xa3,0xb0,0xf3 @ aesmc q5,q5 veor q11,q11,q7 - rev r9,r9 + vmov.32 d13[1], r9 .byte 0x2a,0x23,0xf0,0xf3 @ aese q9,q13 .byte 0xa2,0x23,0xf0,0xf3 @ aesmc q9,q9 - vmov.32 d1[1], r9 + vorr q0,q6,q6 rev r10,r10 .byte 0x2c,0x83,0xb0,0xf3 @ aese q4,q14 .byte 0x88,0x83,0xb0,0xf3 @ aesmc q4,q4 + vmov.32 d13[1], r10 + rev r12,r8 .byte 0x2c,0xa3,0xb0,0xf3 @ aese q5,q14 .byte 0x8a,0xa3,0xb0,0xf3 @ aesmc q5,q5 - vmov.32 d3[1], r10 - rev r12,r8 + vorr q1,q6,q6 + vmov.32 d13[1], r12 .byte 0x2c,0x23,0xf0,0xf3 @ aese q9,q14 .byte 0xa2,0x23,0xf0,0xf3 @ aesmc q9,q9 - vmov.32 d21[1], r12 + vorr q10,q6,q6 subs r2,r2,#3 .byte 0x2e,0x83,0xb0,0xf3 @ aese q4,q15 .byte 0x2e,0xa3,0xb0,0xf3 @ aese q5,q15 |