summaryrefslogtreecommitdiffstats
path: root/crypto/aes
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2015-02-24 10:07:22 +0100
committerAndy Polyakov <appro@openssl.org>2015-02-24 10:08:57 +0100
commite620e5ae37bc3fc5e457ebf3edcdd01b20f8c5dd (patch)
tree566beb9a1b171d428230494a3f321ee7e869b86e /crypto/aes
parentccc227565da59c4d6c707925c4230ab2afa2cf87 (diff)
aes/asm/bsaes-armv7: fix kernel-side XTS and harmonize with Linux.
XTS bug spotted and fix suggested by Adrian Kotelba. Reviewed-by: Tim Hudson <tjh@openssl.org>
Diffstat (limited to 'crypto/aes')
-rw-r--r--crypto/aes/asm/bsaes-armv7.pl4
1 files changed, 3 insertions, 1 deletions
diff --git a/crypto/aes/asm/bsaes-armv7.pl b/crypto/aes/asm/bsaes-armv7.pl
index fcc81d1a49..a4d3856e7d 100644
--- a/crypto/aes/asm/bsaes-armv7.pl
+++ b/crypto/aes/asm/bsaes-armv7.pl
@@ -702,7 +702,7 @@ $code.=<<___;
# define BSAES_ASM_EXTENDED_KEY
# define XTS_CHAIN_TWEAK
# define __ARM_ARCH__ __LINUX_ARM_ARCH__
-# define __ARM_MAX_ARCH__ __LINUX_ARM_ARCH__
+# define __ARM_MAX_ARCH__ 7
#endif
#ifdef __thumb__
@@ -2078,9 +2078,11 @@ bsaes_xts_decrypt:
vld1.8 {@XMM[8]}, [r0] @ initial tweak
adr $magic, .Lxts_magic
+#ifndef XTS_CHAIN_TWEAK
tst $len, #0xf @ if not multiple of 16
it ne @ Thumb2 thing, sanity check in ARM
subne $len, #0x10 @ subtract another 16 bytes
+#endif
subs $len, #0x80
blo .Lxts_dec_short