diff options
author | Ard Biesheuvel <ard.biesheuvel@linaro.org> | 2014-11-03 17:50:01 +0100 |
---|---|---|
committer | Will Deacon <will.deacon@arm.com> | 2014-11-06 18:25:28 +0100 |
commit | 12ac3efe74f888a13cb4df88b38bb01e8034dea8 (patch) | |
tree | 081f49d1ba791aeffbb6aec6285c560bc67b3ed3 /arch/arm64/crypto/aes-ce-ccm-glue.c | |
parent | arm64/kvm: Fix assembler compatibility of macros (diff) | |
download | linux-12ac3efe74f888a13cb4df88b38bb01e8034dea8.tar.xz linux-12ac3efe74f888a13cb4df88b38bb01e8034dea8.zip |
arm64/crypto: use crypto instructions to generate AES key schedule
This patch implements the AES key schedule generation using ARMv8
Crypto Instructions. It replaces the table based C implementation
in aes_generic.ko, which means we can drop the dependency on that
module.
Tested-by: Steve Capper <steve.capper@linaro.org>
Acked-by: Steve Capper <steve.capper@linaro.org>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'arch/arm64/crypto/aes-ce-ccm-glue.c')
-rw-r--r-- | arch/arm64/crypto/aes-ce-ccm-glue.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/arm64/crypto/aes-ce-ccm-glue.c b/arch/arm64/crypto/aes-ce-ccm-glue.c index 9e6cdde9b43d..0ac73b838fa3 100644 --- a/arch/arm64/crypto/aes-ce-ccm-glue.c +++ b/arch/arm64/crypto/aes-ce-ccm-glue.c @@ -16,6 +16,8 @@ #include <linux/crypto.h> #include <linux/module.h> +#include "aes-ce-setkey.h" + static int num_rounds(struct crypto_aes_ctx *ctx) { /* @@ -48,7 +50,7 @@ static int ccm_setkey(struct crypto_aead *tfm, const u8 *in_key, struct crypto_aes_ctx *ctx = crypto_aead_ctx(tfm); int ret; - ret = crypto_aes_expand_key(ctx, in_key, key_len); + ret = ce_aes_expandkey(ctx, in_key, key_len); if (!ret) return 0; |