From: Andy Polyakov Date: Tue, 24 Feb 2015 09:07:22 +0000 (+0100) Subject: aes/asm/bsaes-armv7: fix kernel-side XTS and harmonize with Linux. X-Git-Tag: OpenSSL_1_1_0-pre1~1619 X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff_plain;h=e620e5ae37bc3fc5e457ebf3edcdd01b20f8c5dd;hp=ccc227565da59c4d6c707925c4230ab2afa2cf87;ds=inline 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 --- 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