On Thu, Dec 04, 2025 at 07:26:11PM +0800, Bibo Mao wrote:
> ECB AES also is added here, its ivsize is zero and name is different
> compared with CBC AES algo.
> 
> Signed-off-by: Bibo Mao <[email protected]>

you did not post the cover letter, so the mail thread is malformed.

> ---
>  .../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


Reply via email to