Re: [PATCH 03/30] crypto: sun8i-ce - remove unnecessary alignmask for ahashes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Le Sun, Oct 22, 2023 at 01:10:33AM -0700, Eric Biggers a écrit :
> From: Eric Biggers <ebiggers@xxxxxxxxxx>
> 
> The crypto API's support for alignmasks for ahash algorithms is nearly
> useless, as its only effect is to cause the API to align the key and
> result buffers.  The drivers that happen to be specifying an alignmask
> for ahash rarely actually need it.  When they do, it's easily fixable,
> especially considering that these buffers cannot be used for DMA.
> 
> In preparation for removing alignmask support from ahash, this patch
> makes the sun8i-ce driver no longer use it.  This driver didn't actually
> rely on it; it only writes to the result buffer in sun8i_ce_hash_run(),
> simply using memcpy().  And this driver only supports unkeyed hash
> algorithms, so the key buffer need not be considered.
> 
> Signed-off-by: Eric Biggers <ebiggers@xxxxxxxxxx>
> ---
>  drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c | 6 ------
>  1 file changed, 6 deletions(-)
> 
> diff --git a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c
> index d4ccd5254280b..4362e60905b09 100644
> --- a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c
> +++ b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c
> @@ -407,21 +407,20 @@ static struct sun8i_ce_alg_template ce_algs[] = {
>  		.import = sun8i_ce_hash_import,
>  		.init_tfm = sun8i_ce_hash_init_tfm,
>  		.exit_tfm = sun8i_ce_hash_exit_tfm,
>  		.halg = {
>  			.digestsize = MD5_DIGEST_SIZE,
>  			.statesize = sizeof(struct md5_state),
>  			.base = {
>  				.cra_name = "md5",
>  				.cra_driver_name = "md5-sun8i-ce",
>  				.cra_priority = 300,
> -				.cra_alignmask = 3,
>  				.cra_flags = CRYPTO_ALG_TYPE_AHASH |
>  					CRYPTO_ALG_ASYNC |
>  					CRYPTO_ALG_NEED_FALLBACK,
>  				.cra_blocksize = MD5_HMAC_BLOCK_SIZE,
>  				.cra_ctxsize = sizeof(struct sun8i_ce_hash_tfm_ctx),
>  				.cra_module = THIS_MODULE,
>  			}
>  		}
>  	},
>  	.alg.hash.op = {
> @@ -441,21 +440,20 @@ static struct sun8i_ce_alg_template ce_algs[] = {
>  		.import = sun8i_ce_hash_import,
>  		.init_tfm = sun8i_ce_hash_init_tfm,
>  		.exit_tfm = sun8i_ce_hash_exit_tfm,
>  		.halg = {
>  			.digestsize = SHA1_DIGEST_SIZE,
>  			.statesize = sizeof(struct sha1_state),
>  			.base = {
>  				.cra_name = "sha1",
>  				.cra_driver_name = "sha1-sun8i-ce",
>  				.cra_priority = 300,
> -				.cra_alignmask = 3,
>  				.cra_flags = CRYPTO_ALG_TYPE_AHASH |
>  					CRYPTO_ALG_ASYNC |
>  					CRYPTO_ALG_NEED_FALLBACK,
>  				.cra_blocksize = SHA1_BLOCK_SIZE,
>  				.cra_ctxsize = sizeof(struct sun8i_ce_hash_tfm_ctx),
>  				.cra_module = THIS_MODULE,
>  			}
>  		}
>  	},
>  	.alg.hash.op = {
> @@ -474,21 +472,20 @@ static struct sun8i_ce_alg_template ce_algs[] = {
>  		.import = sun8i_ce_hash_import,
>  		.init_tfm = sun8i_ce_hash_init_tfm,
>  		.exit_tfm = sun8i_ce_hash_exit_tfm,
>  		.halg = {
>  			.digestsize = SHA224_DIGEST_SIZE,
>  			.statesize = sizeof(struct sha256_state),
>  			.base = {
>  				.cra_name = "sha224",
>  				.cra_driver_name = "sha224-sun8i-ce",
>  				.cra_priority = 300,
> -				.cra_alignmask = 3,
>  				.cra_flags = CRYPTO_ALG_TYPE_AHASH |
>  					CRYPTO_ALG_ASYNC |
>  					CRYPTO_ALG_NEED_FALLBACK,
>  				.cra_blocksize = SHA224_BLOCK_SIZE,
>  				.cra_ctxsize = sizeof(struct sun8i_ce_hash_tfm_ctx),
>  				.cra_module = THIS_MODULE,
>  			}
>  		}
>  	},
>  	.alg.hash.op = {
> @@ -507,21 +504,20 @@ static struct sun8i_ce_alg_template ce_algs[] = {
>  		.import = sun8i_ce_hash_import,
>  		.init_tfm = sun8i_ce_hash_init_tfm,
>  		.exit_tfm = sun8i_ce_hash_exit_tfm,
>  		.halg = {
>  			.digestsize = SHA256_DIGEST_SIZE,
>  			.statesize = sizeof(struct sha256_state),
>  			.base = {
>  				.cra_name = "sha256",
>  				.cra_driver_name = "sha256-sun8i-ce",
>  				.cra_priority = 300,
> -				.cra_alignmask = 3,
>  				.cra_flags = CRYPTO_ALG_TYPE_AHASH |
>  					CRYPTO_ALG_ASYNC |
>  					CRYPTO_ALG_NEED_FALLBACK,
>  				.cra_blocksize = SHA256_BLOCK_SIZE,
>  				.cra_ctxsize = sizeof(struct sun8i_ce_hash_tfm_ctx),
>  				.cra_module = THIS_MODULE,
>  			}
>  		}
>  	},
>  	.alg.hash.op = {
> @@ -540,21 +536,20 @@ static struct sun8i_ce_alg_template ce_algs[] = {
>  		.import = sun8i_ce_hash_import,
>  		.init_tfm = sun8i_ce_hash_init_tfm,
>  		.exit_tfm = sun8i_ce_hash_exit_tfm,
>  		.halg = {
>  			.digestsize = SHA384_DIGEST_SIZE,
>  			.statesize = sizeof(struct sha512_state),
>  			.base = {
>  				.cra_name = "sha384",
>  				.cra_driver_name = "sha384-sun8i-ce",
>  				.cra_priority = 300,
> -				.cra_alignmask = 3,
>  				.cra_flags = CRYPTO_ALG_TYPE_AHASH |
>  					CRYPTO_ALG_ASYNC |
>  					CRYPTO_ALG_NEED_FALLBACK,
>  				.cra_blocksize = SHA384_BLOCK_SIZE,
>  				.cra_ctxsize = sizeof(struct sun8i_ce_hash_tfm_ctx),
>  				.cra_module = THIS_MODULE,
>  			}
>  		}
>  	},
>  	.alg.hash.op = {
> @@ -573,21 +568,20 @@ static struct sun8i_ce_alg_template ce_algs[] = {
>  		.import = sun8i_ce_hash_import,
>  		.init_tfm = sun8i_ce_hash_init_tfm,
>  		.exit_tfm = sun8i_ce_hash_exit_tfm,
>  		.halg = {
>  			.digestsize = SHA512_DIGEST_SIZE,
>  			.statesize = sizeof(struct sha512_state),
>  			.base = {
>  				.cra_name = "sha512",
>  				.cra_driver_name = "sha512-sun8i-ce",
>  				.cra_priority = 300,
> -				.cra_alignmask = 3,
>  				.cra_flags = CRYPTO_ALG_TYPE_AHASH |
>  					CRYPTO_ALG_ASYNC |
>  					CRYPTO_ALG_NEED_FALLBACK,
>  				.cra_blocksize = SHA512_BLOCK_SIZE,
>  				.cra_ctxsize = sizeof(struct sun8i_ce_hash_tfm_ctx),
>  				.cra_module = THIS_MODULE,
>  			}
>  		}
>  	},
>  	.alg.hash.op = {
> -- 
> 2.42.0
> 
Acked-by: Corentin Labbe <clabbe.montjoie@xxxxxxxxx>

Thanks



[Index of Archives]     [Kernel]     [Gnu Classpath]     [Gnu Crypto]     [DM Crypt]     [Netfilter]     [Bugtraq]
  Powered by Linux