summaryrefslogtreecommitdiff
path: root/crypto/morus1280.c
diff options
context:
space:
mode:
authorArd Biesheuvel <ard.biesheuvel@linaro.org>2018-10-01 10:36:37 +0200
committerHerbert Xu <herbert@gondor.apana.org.au>2018-10-08 13:44:53 +0800
commite98896031e10d8e8361d01849c321f745ed819a0 (patch)
treeda2bb020a308bbd23e6b82bc3601be2009d07aca /crypto/morus1280.c
parentb01691261a9a326957986dd997d7286efd9a5fa1 (diff)
downloadlinux-crypto-e98896031e10d8e8361d01849c321f745ed819a0.tar.gz
linux-crypto-e98896031e10d8e8361d01849c321f745ed819a0.zip
crypto: morus/generic - fix for big endian systems
Omit the endian swabbing when folding the lengths of the assoc and crypt input buffers into the state to finalize the tag. This is not necessary given that the memory representation of the state is in machine native endianness already. This fixes an error reported by tcrypt running on a big endian system: alg: aead: Test 2 failed on encryption for morus640-generic 00000000: a8 30 ef fb e6 26 eb 23 b0 87 dd 98 57 f3 e1 4b 00000010: 21 alg: aead: Test 2 failed on encryption for morus1280-generic 00000000: 88 19 1b fb 1c 29 49 0e ee 82 2f cb 97 a6 a5 ee 00000010: 5f Fixes: 4cc215a8b72d ("crypto: morus - Add generic MORUS AEAD implementations") Cc: <stable@vger.kernel.org> # v4.18+ Reviewed-by: Ondrej Mosnacek <omosnace@redhat.com> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto/morus1280.c')
-rw-r--r--crypto/morus1280.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/crypto/morus1280.c b/crypto/morus1280.c
index d057cf5a..3889c188 100644
--- a/crypto/morus1280.c
+++ b/crypto/morus1280.c
@@ -385,14 +385,11 @@ static void crypto_morus1280_final(struct morus1280_state *state,
struct morus1280_block *tag_xor,
u64 assoclen, u64 cryptlen)
{
- u64 assocbits = assoclen * 8;
- u64 cryptbits = cryptlen * 8;
-
struct morus1280_block tmp;
unsigned int i;
- tmp.words[0] = cpu_to_le64(assocbits);
- tmp.words[1] = cpu_to_le64(cryptbits);
+ tmp.words[0] = assoclen * 8;
+ tmp.words[1] = cryptlen * 8;
tmp.words[2] = 0;
tmp.words[3] = 0;