Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

crypto: chelsio - Use new AES library API

Switch from the old AES library functions (which use struct
crypto_aes_ctx) to the new ones (which use struct aes_key and struct
aes_enckey). In encryption-only use cases, this eliminates the
unnecessary computation and caching of the decryption round keys. The
new AES en/decryption functions are also much faster and use AES
instructions when supported by the CPU.

Note that in addition to the change in the key preparation function and
the key struct type itself, the change in the type of the key struct
results in aes_encrypt() (which is temporarily a type-generic macro)
calling the new encryption function rather than the old one. Likewise
for decryption.

Acked-by: Ard Biesheuvel <ardb@kernel.org>
Link: https://lore.kernel.org/r/20260112192035.10427-28-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@kernel.org>

+5 -5
+5 -5
drivers/crypto/chelsio/chcr_algo.c
··· 1028 1028 struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req); 1029 1029 struct ablk_ctx *ablkctx = ABLK_CTX(c_ctx(tfm)); 1030 1030 struct chcr_skcipher_req_ctx *reqctx = skcipher_request_ctx(req); 1031 - struct crypto_aes_ctx aes; 1031 + struct aes_key aes; 1032 1032 int ret, i; 1033 1033 u8 *key; 1034 1034 unsigned int keylen; ··· 1044 1044 */ 1045 1045 if (KEY_CONTEXT_CK_SIZE_G(ntohl(ablkctx->key_ctx_hdr)) 1046 1046 == CHCR_KEYCTX_CIPHER_KEY_SIZE_192) 1047 - ret = aes_expandkey(&aes, key, keylen - 8); 1047 + ret = aes_preparekey(&aes, key, keylen - 8); 1048 1048 else 1049 - ret = aes_expandkey(&aes, key, keylen); 1049 + ret = aes_preparekey(&aes, key, keylen); 1050 1050 if (ret) 1051 1051 return ret; 1052 1052 aes_encrypt(&aes, iv, iv); ··· 3406 3406 struct chcr_gcm_ctx *gctx = GCM_CTX(aeadctx); 3407 3407 unsigned int ck_size; 3408 3408 int ret = 0, key_ctx_size = 0; 3409 - struct crypto_aes_ctx aes; 3409 + struct aes_enckey aes; 3410 3410 3411 3411 aeadctx->enckey_len = 0; 3412 3412 crypto_aead_clear_flags(aeadctx->sw_cipher, CRYPTO_TFM_REQ_MASK); ··· 3444 3444 /* Calculate the H = CIPH(K, 0 repeated 16 times). 3445 3445 * It will go in key context 3446 3446 */ 3447 - ret = aes_expandkey(&aes, key, keylen); 3447 + ret = aes_prepareenckey(&aes, key, keylen); 3448 3448 if (ret) { 3449 3449 aeadctx->enckey_len = 0; 3450 3450 goto out;