Re: [PATCH 04/30] crypto: sun8i-ss - 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:34AM -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-ss driver no longer use it.  This driver didn't actually
> rely on it; it only writes to the result buffer in sun8i_ss_hash_run(),
> simply using memcpy().  And sun8i_ss_hmac_setkey() does not assume any
> alignment for the key buffer.
> 
> Signed-off-by: Eric Biggers <ebiggers@xxxxxxxxxx>
> ---
>  drivers/crypto/allwinner/sun8i-ss/sun8i-ss-core.c | 5 -----
>  1 file changed, 5 deletions(-)
> 
> diff --git a/drivers/crypto/allwinner/sun8i-ss/sun8i-ss-core.c b/drivers/crypto/allwinner/sun8i-ss/sun8i-ss-core.c
> index 4a9587285c04f..2532d2abc4f7e 100644
> --- a/drivers/crypto/allwinner/sun8i-ss/sun8i-ss-core.c
> +++ b/drivers/crypto/allwinner/sun8i-ss/sun8i-ss-core.c
> @@ -315,21 +315,20 @@ static struct sun8i_ss_alg_template ss_algs[] = {
>  		.import = sun8i_ss_hash_import,
>  		.init_tfm = sun8i_ss_hash_init_tfm,
>  		.exit_tfm = sun8i_ss_hash_exit_tfm,
>  		.halg = {
>  			.digestsize = MD5_DIGEST_SIZE,
>  			.statesize = sizeof(struct md5_state),
>  			.base = {
>  				.cra_name = "md5",
>  				.cra_driver_name = "md5-sun8i-ss",
>  				.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_ss_hash_tfm_ctx),
>  				.cra_module = THIS_MODULE,
>  			}
>  		}
>  	},
>  	.alg.hash.op = {
> @@ -348,21 +347,20 @@ static struct sun8i_ss_alg_template ss_algs[] = {
>  		.import = sun8i_ss_hash_import,
>  		.init_tfm = sun8i_ss_hash_init_tfm,
>  		.exit_tfm = sun8i_ss_hash_exit_tfm,
>  		.halg = {
>  			.digestsize = SHA1_DIGEST_SIZE,
>  			.statesize = sizeof(struct sha1_state),
>  			.base = {
>  				.cra_name = "sha1",
>  				.cra_driver_name = "sha1-sun8i-ss",
>  				.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_ss_hash_tfm_ctx),
>  				.cra_module = THIS_MODULE,
>  			}
>  		}
>  	},
>  	.alg.hash.op = {
> @@ -381,21 +379,20 @@ static struct sun8i_ss_alg_template ss_algs[] = {
>  		.import = sun8i_ss_hash_import,
>  		.init_tfm = sun8i_ss_hash_init_tfm,
>  		.exit_tfm = sun8i_ss_hash_exit_tfm,
>  		.halg = {
>  			.digestsize = SHA224_DIGEST_SIZE,
>  			.statesize = sizeof(struct sha256_state),
>  			.base = {
>  				.cra_name = "sha224",
>  				.cra_driver_name = "sha224-sun8i-ss",
>  				.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_ss_hash_tfm_ctx),
>  				.cra_module = THIS_MODULE,
>  			}
>  		}
>  	},
>  	.alg.hash.op = {
> @@ -414,21 +411,20 @@ static struct sun8i_ss_alg_template ss_algs[] = {
>  		.import = sun8i_ss_hash_import,
>  		.init_tfm = sun8i_ss_hash_init_tfm,
>  		.exit_tfm = sun8i_ss_hash_exit_tfm,
>  		.halg = {
>  			.digestsize = SHA256_DIGEST_SIZE,
>  			.statesize = sizeof(struct sha256_state),
>  			.base = {
>  				.cra_name = "sha256",
>  				.cra_driver_name = "sha256-sun8i-ss",
>  				.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_ss_hash_tfm_ctx),
>  				.cra_module = THIS_MODULE,
>  			}
>  		}
>  	},
>  	.alg.hash.op = {
> @@ -448,21 +444,20 @@ static struct sun8i_ss_alg_template ss_algs[] = {
>  		.init_tfm = sun8i_ss_hash_init_tfm,
>  		.exit_tfm = sun8i_ss_hash_exit_tfm,
>  		.setkey = sun8i_ss_hmac_setkey,
>  		.halg = {
>  			.digestsize = SHA1_DIGEST_SIZE,
>  			.statesize = sizeof(struct sha1_state),
>  			.base = {
>  				.cra_name = "hmac(sha1)",
>  				.cra_driver_name = "hmac-sha1-sun8i-ss",
>  				.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_ss_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