| From caf4b9e2b326cc2a5005a5c557274306536ace61 Mon Sep 17 00:00:00 2001 |
| From: Ard Biesheuvel <ard.biesheuvel@linaro.org> |
| Date: Tue, 11 Oct 2016 19:15:19 +0100 |
| Subject: crypto: arm64/aes-xts-ce: fix for big endian |
| |
| From: Ard Biesheuvel <ard.biesheuvel@linaro.org> |
| |
| commit caf4b9e2b326cc2a5005a5c557274306536ace61 upstream. |
| |
| Emit the XTS tweak literal constants in the appropriate order for a |
| single 128-bit scalar literal load. |
| |
| Fixes: 49788fe2a128 ("arm64/crypto: AES-ECB/CBC/CTR/XTS using ARMv8 NEON and Crypto Extensions") |
| Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> |
| Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| arch/arm64/crypto/aes-ce.S | 1 + |
| arch/arm64/crypto/aes-modes.S | 3 ++- |
| 2 files changed, 3 insertions(+), 1 deletion(-) |
| |
| --- a/arch/arm64/crypto/aes-ce.S |
| +++ b/arch/arm64/crypto/aes-ce.S |
| @@ -10,6 +10,7 @@ |
| */ |
| |
| #include <linux/linkage.h> |
| +#include <asm/assembler.h> |
| |
| #define AES_ENTRY(func) ENTRY(ce_ ## func) |
| #define AES_ENDPROC(func) ENDPROC(ce_ ## func) |
| --- a/arch/arm64/crypto/aes-modes.S |
| +++ b/arch/arm64/crypto/aes-modes.S |
| @@ -386,7 +386,8 @@ AES_ENDPROC(aes_ctr_encrypt) |
| .endm |
| |
| .Lxts_mul_x: |
| - .word 1, 0, 0x87, 0 |
| +CPU_LE( .quad 1, 0x87 ) |
| +CPU_BE( .quad 0x87, 1 ) |
| |
| AES_ENTRY(aes_xts_encrypt) |
| FRAME_PUSH |