crypto: n2 - add missing hash statesize

commit 76a4e874593543a2dff91d249c95bac728df2774 upstream.

Add missing statesize to hash templates.
This is mandatory otherwise no algorithms can be registered as the core
requires statesize to be set.

CC: stable@kernel.org # 4.3+
Reported-by: Rolf Eike Beer <eike-kernel@sf-tec.de>
Tested-by: Rolf Eike Beer <eike-kernel@sf-tec.de>
Fixes: 0a625fd2ab ("crypto: n2 - Add Niagara2 crypto driver")
Signed-off-by: Corentin Labbe <clabbe@baylibre.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Corentin Labbe 2022-10-06 04:34:19 +00:00 committed by Greg Kroah-Hartman
parent a5866d531b
commit 93e919d9ac

View File

@ -1278,6 +1278,7 @@ struct n2_hash_tmpl {
const u32 *hash_init; const u32 *hash_init;
u8 hw_op_hashsz; u8 hw_op_hashsz;
u8 digest_size; u8 digest_size;
u8 statesize;
u8 block_size; u8 block_size;
u8 auth_type; u8 auth_type;
u8 hmac_type; u8 hmac_type;
@ -1309,6 +1310,7 @@ static const struct n2_hash_tmpl hash_tmpls[] = {
.hmac_type = AUTH_TYPE_HMAC_MD5, .hmac_type = AUTH_TYPE_HMAC_MD5,
.hw_op_hashsz = MD5_DIGEST_SIZE, .hw_op_hashsz = MD5_DIGEST_SIZE,
.digest_size = MD5_DIGEST_SIZE, .digest_size = MD5_DIGEST_SIZE,
.statesize = sizeof(struct md5_state),
.block_size = MD5_HMAC_BLOCK_SIZE }, .block_size = MD5_HMAC_BLOCK_SIZE },
{ .name = "sha1", { .name = "sha1",
.hash_zero = sha1_zero_message_hash, .hash_zero = sha1_zero_message_hash,
@ -1317,6 +1319,7 @@ static const struct n2_hash_tmpl hash_tmpls[] = {
.hmac_type = AUTH_TYPE_HMAC_SHA1, .hmac_type = AUTH_TYPE_HMAC_SHA1,
.hw_op_hashsz = SHA1_DIGEST_SIZE, .hw_op_hashsz = SHA1_DIGEST_SIZE,
.digest_size = SHA1_DIGEST_SIZE, .digest_size = SHA1_DIGEST_SIZE,
.statesize = sizeof(struct sha1_state),
.block_size = SHA1_BLOCK_SIZE }, .block_size = SHA1_BLOCK_SIZE },
{ .name = "sha256", { .name = "sha256",
.hash_zero = sha256_zero_message_hash, .hash_zero = sha256_zero_message_hash,
@ -1325,6 +1328,7 @@ static const struct n2_hash_tmpl hash_tmpls[] = {
.hmac_type = AUTH_TYPE_HMAC_SHA256, .hmac_type = AUTH_TYPE_HMAC_SHA256,
.hw_op_hashsz = SHA256_DIGEST_SIZE, .hw_op_hashsz = SHA256_DIGEST_SIZE,
.digest_size = SHA256_DIGEST_SIZE, .digest_size = SHA256_DIGEST_SIZE,
.statesize = sizeof(struct sha256_state),
.block_size = SHA256_BLOCK_SIZE }, .block_size = SHA256_BLOCK_SIZE },
{ .name = "sha224", { .name = "sha224",
.hash_zero = sha224_zero_message_hash, .hash_zero = sha224_zero_message_hash,
@ -1333,6 +1337,7 @@ static const struct n2_hash_tmpl hash_tmpls[] = {
.hmac_type = AUTH_TYPE_RESERVED, .hmac_type = AUTH_TYPE_RESERVED,
.hw_op_hashsz = SHA256_DIGEST_SIZE, .hw_op_hashsz = SHA256_DIGEST_SIZE,
.digest_size = SHA224_DIGEST_SIZE, .digest_size = SHA224_DIGEST_SIZE,
.statesize = sizeof(struct sha256_state),
.block_size = SHA224_BLOCK_SIZE }, .block_size = SHA224_BLOCK_SIZE },
}; };
#define NUM_HASH_TMPLS ARRAY_SIZE(hash_tmpls) #define NUM_HASH_TMPLS ARRAY_SIZE(hash_tmpls)
@ -1474,6 +1479,7 @@ static int __n2_register_one_ahash(const struct n2_hash_tmpl *tmpl)
halg = &ahash->halg; halg = &ahash->halg;
halg->digestsize = tmpl->digest_size; halg->digestsize = tmpl->digest_size;
halg->statesize = tmpl->statesize;
base = &halg->base; base = &halg->base;
snprintf(base->cra_name, CRYPTO_MAX_ALG_NAME, "%s", tmpl->name); snprintf(base->cra_name, CRYPTO_MAX_ALG_NAME, "%s", tmpl->name);