mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 08:44:46 +01:00
crypto: arm64/aes - use SHA-256 library instead of crypto_shash
In essiv_cbc_set_key(), just use the SHA-256 library instead of crypto_shash. This is simpler and also slightly faster. Signed-off-by: Eric Biggers <ebiggers@kernel.org> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
9aa7e045f4
commit
01834444d9
2 changed files with 2 additions and 20 deletions
|
|
@ -71,6 +71,7 @@ config CRYPTO_POLYVAL_ARM64_CE
|
|||
config CRYPTO_AES_ARM64
|
||||
tristate "Ciphers: AES, modes: ECB, CBC, CTR, CTS, XCTR, XTS"
|
||||
select CRYPTO_AES
|
||||
select CRYPTO_LIB_SHA256
|
||||
help
|
||||
Block ciphers: AES cipher algorithms (FIPS-197)
|
||||
Length-preserving ciphers: AES with ECB, CBC, CTR, CTS,
|
||||
|
|
|
|||
|
|
@ -122,7 +122,6 @@ struct crypto_aes_xts_ctx {
|
|||
struct crypto_aes_essiv_cbc_ctx {
|
||||
struct crypto_aes_ctx key1;
|
||||
struct crypto_aes_ctx __aligned(8) key2;
|
||||
struct crypto_shash *hash;
|
||||
};
|
||||
|
||||
struct mac_tfm_ctx {
|
||||
|
|
@ -171,7 +170,7 @@ static int __maybe_unused essiv_cbc_set_key(struct crypto_skcipher *tfm,
|
|||
if (ret)
|
||||
return ret;
|
||||
|
||||
crypto_shash_tfm_digest(ctx->hash, in_key, key_len, digest);
|
||||
sha256(in_key, key_len, digest);
|
||||
|
||||
return aes_expandkey(&ctx->key2, digest, sizeof(digest));
|
||||
}
|
||||
|
|
@ -388,22 +387,6 @@ static int cts_cbc_decrypt(struct skcipher_request *req)
|
|||
return skcipher_walk_done(&walk, 0);
|
||||
}
|
||||
|
||||
static int __maybe_unused essiv_cbc_init_tfm(struct crypto_skcipher *tfm)
|
||||
{
|
||||
struct crypto_aes_essiv_cbc_ctx *ctx = crypto_skcipher_ctx(tfm);
|
||||
|
||||
ctx->hash = crypto_alloc_shash("sha256", 0, 0);
|
||||
|
||||
return PTR_ERR_OR_ZERO(ctx->hash);
|
||||
}
|
||||
|
||||
static void __maybe_unused essiv_cbc_exit_tfm(struct crypto_skcipher *tfm)
|
||||
{
|
||||
struct crypto_aes_essiv_cbc_ctx *ctx = crypto_skcipher_ctx(tfm);
|
||||
|
||||
crypto_free_shash(ctx->hash);
|
||||
}
|
||||
|
||||
static int __maybe_unused essiv_cbc_encrypt(struct skcipher_request *req)
|
||||
{
|
||||
struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req);
|
||||
|
|
@ -793,8 +776,6 @@ static struct skcipher_alg aes_algs[] = { {
|
|||
.setkey = essiv_cbc_set_key,
|
||||
.encrypt = essiv_cbc_encrypt,
|
||||
.decrypt = essiv_cbc_decrypt,
|
||||
.init = essiv_cbc_init_tfm,
|
||||
.exit = essiv_cbc_exit_tfm,
|
||||
} };
|
||||
|
||||
static int cbcmac_setkey(struct crypto_shash *tfm, const u8 *in_key,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue