mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-08-28 00:19:36 +00:00
crypto: n2 - add missing hash statesize
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>
This commit is contained in:
parent
65c92cbb3f
commit
76a4e87459
@ -1229,6 +1229,7 @@ struct n2_hash_tmpl {
|
|||||||
const u8 *hash_init;
|
const u8 *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;
|
||||||
@ -1260,6 +1261,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,
|
||||||
@ -1268,6 +1270,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,
|
||||||
@ -1276,6 +1279,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,
|
||||||
@ -1284,6 +1288,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)
|
||||||
@ -1424,6 +1429,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);
|
||||||
|
Loading…
Reference in New Issue
Block a user