[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20251204112612.2659650-1-maobibo@loongson.cn>
Date: Thu, 4 Dec 2025 19:26:11 +0800
From: Bibo Mao <maobibo@...ngson.cn>
To: Gonglei <arei.gonglei@...wei.com>,
"Michael S. Tsirkin" <mst@...hat.com>,
Jason Wang <jasowang@...hat.com>,
Xuan Zhuo <xuanzhuo@...ux.alibaba.com>,
Eugenio Pérez <eperezma@...hat.com>,
Herbert Xu <herbert@...dor.apana.org.au>,
"David S. Miller" <davem@...emloft.net>
Cc: virtualization@...ts.linux.dev,
linux-crypto@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: [PATCH v2 9/9] crypto: virtio: Add ecb aes algo support
ECB AES also is added here, its ivsize is zero and name is different
compared with CBC AES algo.
Signed-off-by: Bibo Mao <maobibo@...ngson.cn>
---
.../virtio/virtio_crypto_skcipher_algs.c | 74 +++++++++++++------
1 file changed, 50 insertions(+), 24 deletions(-)
diff --git a/drivers/crypto/virtio/virtio_crypto_skcipher_algs.c b/drivers/crypto/virtio/virtio_crypto_skcipher_algs.c
index b4b79121c37c..9b4ba6a6b9cf 100644
--- a/drivers/crypto/virtio/virtio_crypto_skcipher_algs.c
+++ b/drivers/crypto/virtio/virtio_crypto_skcipher_algs.c
@@ -559,31 +559,57 @@ static void virtio_crypto_skcipher_finalize_req(
req, err);
}
-static struct virtio_crypto_algo virtio_crypto_algs[] = { {
- .algonum = VIRTIO_CRYPTO_CIPHER_AES_CBC,
- .service = VIRTIO_CRYPTO_SERVICE_CIPHER,
- .algo.base = {
- .base.cra_name = "cbc(aes)",
- .base.cra_driver_name = "virtio_crypto_aes_cbc",
- .base.cra_priority = 150,
- .base.cra_flags = CRYPTO_ALG_ASYNC |
- CRYPTO_ALG_ALLOCATES_MEMORY,
- .base.cra_blocksize = AES_BLOCK_SIZE,
- .base.cra_ctxsize = sizeof(struct virtio_crypto_skcipher_ctx),
- .base.cra_module = THIS_MODULE,
- .init = virtio_crypto_skcipher_init,
- .exit = virtio_crypto_skcipher_exit,
- .setkey = virtio_crypto_skcipher_setkey,
- .decrypt = virtio_crypto_skcipher_decrypt,
- .encrypt = virtio_crypto_skcipher_encrypt,
- .min_keysize = AES_MIN_KEY_SIZE,
- .max_keysize = AES_MAX_KEY_SIZE,
- .ivsize = AES_BLOCK_SIZE,
+static struct virtio_crypto_algo virtio_crypto_algs[] = {
+ {
+ .algonum = VIRTIO_CRYPTO_CIPHER_AES_CBC,
+ .service = VIRTIO_CRYPTO_SERVICE_CIPHER,
+ .algo.base = {
+ .base.cra_name = "cbc(aes)",
+ .base.cra_driver_name = "virtio_crypto_aes_cbc",
+ .base.cra_priority = 150,
+ .base.cra_flags = CRYPTO_ALG_ASYNC |
+ CRYPTO_ALG_ALLOCATES_MEMORY,
+ .base.cra_blocksize = AES_BLOCK_SIZE,
+ .base.cra_ctxsize = sizeof(struct virtio_crypto_skcipher_ctx),
+ .base.cra_module = THIS_MODULE,
+ .init = virtio_crypto_skcipher_init,
+ .exit = virtio_crypto_skcipher_exit,
+ .setkey = virtio_crypto_skcipher_setkey,
+ .decrypt = virtio_crypto_skcipher_decrypt,
+ .encrypt = virtio_crypto_skcipher_encrypt,
+ .min_keysize = AES_MIN_KEY_SIZE,
+ .max_keysize = AES_MAX_KEY_SIZE,
+ .ivsize = AES_BLOCK_SIZE,
+ },
+ .algo.op = {
+ .do_one_request = virtio_crypto_skcipher_crypt_req,
+ },
},
- .algo.op = {
- .do_one_request = virtio_crypto_skcipher_crypt_req,
- },
-} };
+ {
+ .algonum = VIRTIO_CRYPTO_CIPHER_AES_ECB,
+ .service = VIRTIO_CRYPTO_SERVICE_CIPHER,
+ .algo.base = {
+ .base.cra_name = "ecb(aes)",
+ .base.cra_driver_name = "virtio_crypto_aes_ecb",
+ .base.cra_priority = 150,
+ .base.cra_flags = CRYPTO_ALG_ASYNC |
+ CRYPTO_ALG_ALLOCATES_MEMORY,
+ .base.cra_blocksize = AES_BLOCK_SIZE,
+ .base.cra_ctxsize = sizeof(struct virtio_crypto_skcipher_ctx),
+ .base.cra_module = THIS_MODULE,
+ .init = virtio_crypto_skcipher_init,
+ .exit = virtio_crypto_skcipher_exit,
+ .setkey = virtio_crypto_skcipher_setkey,
+ .decrypt = virtio_crypto_skcipher_decrypt,
+ .encrypt = virtio_crypto_skcipher_encrypt,
+ .min_keysize = AES_MIN_KEY_SIZE,
+ .max_keysize = AES_MAX_KEY_SIZE,
+ },
+ .algo.op = {
+ .do_one_request = virtio_crypto_skcipher_crypt_req,
+ },
+ }
+};
int virtio_crypto_skcipher_algs_register(struct virtio_crypto *vcrypto)
{
--
2.39.3
Powered by blists - more mailing lists