summaryrefslogtreecommitdiff
path: root/crypto/aria_generic.c
diff options
context:
space:
mode:
authorTaehee Yoo <ap420073@gmail.com>2023-01-01 09:12:50 +0000
committerHerbert Xu <herbert@gondor.apana.org.au>2023-01-06 17:15:47 +0800
commit35344cf30f2b080f75b4097eebcd7567e54bce22 (patch)
tree19105b49700509825512761828e9eae2998598b7 /crypto/aria_generic.c
parent8e7d7ce2e3947013a7b12452db42cb73021e13a0 (diff)
crypto: x86/aria - do not use magic number offsets of aria_ctx
aria-avx assembly code accesses members of aria_ctx with magic number offset. If the shape of struct aria_ctx is changed carelessly, aria-avx will not work. So, we need to ensure accessing members of aria_ctx with correct offset values, not with magic numbers. It adds ARIA_CTX_enc_key, ARIA_CTX_dec_key, and ARIA_CTX_rounds in the asm-offsets.c So, correct offset definitions will be generated. aria-avx assembly code can access members of aria_ctx safely with these definitions. Signed-off-by: Taehee Yoo <ap420073@gmail.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto/aria_generic.c')
-rw-r--r--crypto/aria_generic.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/crypto/aria_generic.c b/crypto/aria_generic.c
index 4cc29b82b99d..d96dfc4fdde6 100644
--- a/crypto/aria_generic.c
+++ b/crypto/aria_generic.c
@@ -178,6 +178,10 @@ int aria_set_key(struct crypto_tfm *tfm, const u8 *in_key, unsigned int key_len)
if (key_len != 16 && key_len != 24 && key_len != 32)
return -EINVAL;
+ BUILD_BUG_ON(sizeof(ctx->enc_key) != 272);
+ BUILD_BUG_ON(sizeof(ctx->dec_key) != 272);
+ BUILD_BUG_ON(sizeof(int) != sizeof(ctx->rounds));
+
ctx->key_length = key_len;
ctx->rounds = (key_len + 32) / 4;