aboutsummaryrefslogtreecommitdiff
path: root/sys/crypto/openssl/arm
diff options
context:
space:
mode:
authorJung-uk Kim <jkim@FreeBSD.org>2020-12-09 02:05:14 +0000
committerJung-uk Kim <jkim@FreeBSD.org>2020-12-09 02:05:14 +0000
commitc3c73b4f0a91d2806e1a632b75f769fb4fa89576 (patch)
tree7c868b042745dce2a0f7c34a517d3721441b24b1 /sys/crypto/openssl/arm
parent5ee33a90767ef975146d7c441c0517ff789617b1 (diff)
parent970a464089066970886f0bce6d1c9dcfbcb2e8ea (diff)
downloadsrc-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.S38
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