Commit e620e5ae authored by Andy Polyakov's avatar Andy Polyakov
Browse files

aes/asm/bsaes-armv7: fix kernel-side XTS and harmonize with Linux.



XTS bug spotted and fix suggested by Adrian Kotelba.

Reviewed-by: default avatarTim Hudson <tjh@openssl.org>
parent ccc22756
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -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