summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/libcrypto/aes/asm/aes-armv4.pl14
-rw-r--r--src/lib/libcrypto/arm_arch.h6
-rw-r--r--src/lib/libcrypto/sha/asm/sha1-armv4-large.pl2
-rw-r--r--src/lib/libcrypto/sha/asm/sha256-armv4.pl4
-rw-r--r--src/lib/libcrypto/sha/asm/sha512-armv4.pl2
5 files changed, 16 insertions, 12 deletions
diff --git a/src/lib/libcrypto/aes/asm/aes-armv4.pl b/src/lib/libcrypto/aes/asm/aes-armv4.pl
index 717cc1ed7f..1cb9586d4b 100644
--- a/src/lib/libcrypto/aes/asm/aes-armv4.pl
+++ b/src/lib/libcrypto/aes/asm/aes-armv4.pl
@@ -172,7 +172,7 @@ AES_encrypt:
172 mov $rounds,r0 @ inp 172 mov $rounds,r0 @ inp
173 mov $key,r2 173 mov $key,r2
174 sub $tbl,r3,#AES_encrypt-AES_Te @ Te 174 sub $tbl,r3,#AES_encrypt-AES_Te @ Te
175#if __ARM_ARCH__<7 175#if __ARM_ARCH__<7 || defined(__STRICT_ALIGNMENT)
176 ldrb $s0,[$rounds,#3] @ load input data in endian-neutral 176 ldrb $s0,[$rounds,#3] @ load input data in endian-neutral
177 ldrb $t1,[$rounds,#2] @ manner... 177 ldrb $t1,[$rounds,#2] @ manner...
178 ldrb $t2,[$rounds,#1] 178 ldrb $t2,[$rounds,#1]
@@ -216,7 +216,7 @@ AES_encrypt:
216 bl _armv4_AES_encrypt 216 bl _armv4_AES_encrypt
217 217
218 ldr $rounds,[sp],#4 @ pop out 218 ldr $rounds,[sp],#4 @ pop out
219#if __ARM_ARCH__>=7 219#if __ARM_ARCH__>=7 && !defined(__STRICT_ALIGNMENT)
220#ifdef __ARMEL__ 220#ifdef __ARMEL__
221 rev $s0,$s0 221 rev $s0,$s0
222 rev $s1,$s1 222 rev $s1,$s1
@@ -432,7 +432,7 @@ _armv4_AES_set_encrypt_key:
432 mov lr,r1 @ bits 432 mov lr,r1 @ bits
433 mov $key,r2 @ key 433 mov $key,r2 @ key
434 434
435#if __ARM_ARCH__<7 435#if __ARM_ARCH__<7 || defined(__STRICT_ALIGNMENT)
436 ldrb $s0,[$rounds,#3] @ load input data in endian-neutral 436 ldrb $s0,[$rounds,#3] @ load input data in endian-neutral
437 ldrb $t1,[$rounds,#2] @ manner... 437 ldrb $t1,[$rounds,#2] @ manner...
438 ldrb $t2,[$rounds,#1] 438 ldrb $t2,[$rounds,#1]
@@ -517,7 +517,7 @@ _armv4_AES_set_encrypt_key:
517 b .Ldone 517 b .Ldone
518 518
519.Lnot128: 519.Lnot128:
520#if __ARM_ARCH__<7 520#if __ARM_ARCH__<7 || defined(__STRICT_ALIGNMENT)
521 ldrb $i2,[$rounds,#19] 521 ldrb $i2,[$rounds,#19]
522 ldrb $t1,[$rounds,#18] 522 ldrb $t1,[$rounds,#18]
523 ldrb $t2,[$rounds,#17] 523 ldrb $t2,[$rounds,#17]
@@ -588,7 +588,7 @@ _armv4_AES_set_encrypt_key:
588 b .L192_loop 588 b .L192_loop
589 589
590.Lnot192: 590.Lnot192:
591#if __ARM_ARCH__<7 591#if __ARM_ARCH__<7 || defined(__STRICT_ALIGNMENT)
592 ldrb $i2,[$rounds,#27] 592 ldrb $i2,[$rounds,#27]
593 ldrb $t1,[$rounds,#26] 593 ldrb $t1,[$rounds,#26]
594 ldrb $t2,[$rounds,#25] 594 ldrb $t2,[$rounds,#25]
@@ -888,7 +888,7 @@ AES_decrypt:
888 mov $rounds,r0 @ inp 888 mov $rounds,r0 @ inp
889 mov $key,r2 889 mov $key,r2
890 sub $tbl,r3,#AES_decrypt-AES_Td @ Td 890 sub $tbl,r3,#AES_decrypt-AES_Td @ Td
891#if __ARM_ARCH__<7 891#if __ARM_ARCH__<7 || defined(__STRICT_ALIGNMENT)
892 ldrb $s0,[$rounds,#3] @ load input data in endian-neutral 892 ldrb $s0,[$rounds,#3] @ load input data in endian-neutral
893 ldrb $t1,[$rounds,#2] @ manner... 893 ldrb $t1,[$rounds,#2] @ manner...
894 ldrb $t2,[$rounds,#1] 894 ldrb $t2,[$rounds,#1]
@@ -932,7 +932,7 @@ AES_decrypt:
932 bl _armv4_AES_decrypt 932 bl _armv4_AES_decrypt
933 933
934 ldr $rounds,[sp],#4 @ pop out 934 ldr $rounds,[sp],#4 @ pop out
935#if __ARM_ARCH__>=7 935#if __ARM_ARCH__>=7 && !defined(__STRICT_ALIGNMENT)
936#ifdef __ARMEL__ 936#ifdef __ARMEL__
937 rev $s0,$s0 937 rev $s0,$s0
938 rev $s1,$s1 938 rev $s1,$s1
diff --git a/src/lib/libcrypto/arm_arch.h b/src/lib/libcrypto/arm_arch.h
index 3304be81ab..8b8a05b5f7 100644
--- a/src/lib/libcrypto/arm_arch.h
+++ b/src/lib/libcrypto/arm_arch.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: arm_arch.h,v 1.7 2015/06/29 06:40:06 jsg Exp $ */ 1/* $OpenBSD: arm_arch.h,v 1.8 2018/01/07 12:35:52 kettenis Exp $ */
2#ifndef __ARM_ARCH_H__ 2#ifndef __ARM_ARCH_H__
3#define __ARM_ARCH_H__ 3#define __ARM_ARCH_H__
4 4
@@ -44,4 +44,8 @@ extern unsigned int OPENSSL_armcap_P;
44#define ARMV7_NEON (1<<0) 44#define ARMV7_NEON (1<<0)
45#endif 45#endif
46 46
47#if defined(__OpenBSD__)
48#define __STRICT_ALIGNMENT
49#endif
50
47#endif 51#endif
diff --git a/src/lib/libcrypto/sha/asm/sha1-armv4-large.pl b/src/lib/libcrypto/sha/asm/sha1-armv4-large.pl
index 33da3e0e3c..8f0cdaf83c 100644
--- a/src/lib/libcrypto/sha/asm/sha1-armv4-large.pl
+++ b/src/lib/libcrypto/sha/asm/sha1-armv4-large.pl
@@ -95,7 +95,7 @@ ___
95sub BODY_00_15 { 95sub BODY_00_15 {
96my ($a,$b,$c,$d,$e)=@_; 96my ($a,$b,$c,$d,$e)=@_;
97$code.=<<___; 97$code.=<<___;
98#if __ARM_ARCH__<7 98#if __ARM_ARCH__<7 || defined(__STRICT_ALIGNMENT)
99 ldrb $t1,[$inp,#2] 99 ldrb $t1,[$inp,#2]
100 ldrb $t0,[$inp,#3] 100 ldrb $t0,[$inp,#3]
101 ldrb $t2,[$inp,#1] 101 ldrb $t2,[$inp,#1]
diff --git a/src/lib/libcrypto/sha/asm/sha256-armv4.pl b/src/lib/libcrypto/sha/asm/sha256-armv4.pl
index 9c84e8d93c..292520731c 100644
--- a/src/lib/libcrypto/sha/asm/sha256-armv4.pl
+++ b/src/lib/libcrypto/sha/asm/sha256-armv4.pl
@@ -51,7 +51,7 @@ sub BODY_00_15 {
51my ($i,$a,$b,$c,$d,$e,$f,$g,$h) = @_; 51my ($i,$a,$b,$c,$d,$e,$f,$g,$h) = @_;
52 52
53$code.=<<___ if ($i<16); 53$code.=<<___ if ($i<16);
54#if __ARM_ARCH__>=7 54#if __ARM_ARCH__>=7 && !defined(__STRICT_ALIGNMENT)
55 ldr $T1,[$inp],#4 55 ldr $T1,[$inp],#4
56#else 56#else
57 ldrb $T1,[$inp,#3] @ $i 57 ldrb $T1,[$inp,#3] @ $i
@@ -70,7 +70,7 @@ $code.=<<___;
70 eor $t1,$f,$g 70 eor $t1,$f,$g
71#if $i>=16 71#if $i>=16
72 add $T1,$T1,$t3 @ from BODY_16_xx 72 add $T1,$T1,$t3 @ from BODY_16_xx
73#elif __ARM_ARCH__>=7 && defined(__ARMEL__) 73#elif __ARM_ARCH__>=7 && defined(__ARMEL__) && !defined(__STRICT_ALIGNMENT)
74 rev $T1,$T1 74 rev $T1,$T1
75#endif 75#endif
76#if $i==15 76#if $i==15
diff --git a/src/lib/libcrypto/sha/asm/sha512-armv4.pl b/src/lib/libcrypto/sha/asm/sha512-armv4.pl
index 7faf37b147..28ae155f4b 100644
--- a/src/lib/libcrypto/sha/asm/sha512-armv4.pl
+++ b/src/lib/libcrypto/sha/asm/sha512-armv4.pl
@@ -270,7 +270,7 @@ sha512_block_data_order:
270 str $Thi,[sp,#$Foff+4] 270 str $Thi,[sp,#$Foff+4]
271 271
272.L00_15: 272.L00_15:
273#if __ARM_ARCH__<7 273#if __ARM_ARCH__<7 || defined(__STRICT_ALIGNMENT)
274 ldrb $Tlo,[$inp,#7] 274 ldrb $Tlo,[$inp,#7]
275 ldrb $t0, [$inp,#6] 275 ldrb $t0, [$inp,#6]
276 ldrb $t1, [$inp,#5] 276 ldrb $t1, [$inp,#5]