diff options
Diffstat (limited to 'crypto/sha256_generic.c')
| -rw-r--r-- | crypto/sha256_generic.c | 36 | 
1 files changed, 11 insertions, 25 deletions
diff --git a/crypto/sha256_generic.c b/crypto/sha256_generic.c index c48459ebf05..54336677952 100644 --- a/crypto/sha256_generic.c +++ b/crypto/sha256_generic.c @@ -246,7 +246,7 @@ static int sha256_init(struct shash_desc *desc)  	return 0;  } -static int sha256_update(struct shash_desc *desc, const u8 *data, +int crypto_sha256_update(struct shash_desc *desc, const u8 *data,  			  unsigned int len)  {  	struct sha256_state *sctx = shash_desc_ctx(desc); @@ -277,6 +277,7 @@ static int sha256_update(struct shash_desc *desc, const u8 *data,  	return 0;  } +EXPORT_SYMBOL(crypto_sha256_update);  static int sha256_final(struct shash_desc *desc, u8 *out)  { @@ -293,10 +294,10 @@ static int sha256_final(struct shash_desc *desc, u8 *out)  	/* Pad out to 56 mod 64. */  	index = sctx->count & 0x3f;  	pad_len = (index < 56) ? (56 - index) : ((64+56) - index); -	sha256_update(desc, padding, pad_len); +	crypto_sha256_update(desc, padding, pad_len);  	/* Append length (before padding) */ -	sha256_update(desc, (const u8 *)&bits, sizeof(bits)); +	crypto_sha256_update(desc, (const u8 *)&bits, sizeof(bits));  	/* Store state in digest */  	for (i = 0; i < 8; i++) @@ -336,10 +337,10 @@ static int sha256_import(struct shash_desc *desc, const void *in)  	return 0;  } -static struct shash_alg sha256 = { +static struct shash_alg sha256_algs[2] = { {  	.digestsize	=	SHA256_DIGEST_SIZE,  	.init		=	sha256_init, -	.update		=	sha256_update, +	.update		=	crypto_sha256_update,  	.final		=	sha256_final,  	.export		=	sha256_export,  	.import		=	sha256_import, @@ -352,12 +353,10 @@ static struct shash_alg sha256 = {  		.cra_blocksize	=	SHA256_BLOCK_SIZE,  		.cra_module	=	THIS_MODULE,  	} -}; - -static struct shash_alg sha224 = { +}, {  	.digestsize	=	SHA224_DIGEST_SIZE,  	.init		=	sha224_init, -	.update		=	sha256_update, +	.update		=	crypto_sha256_update,  	.final		=	sha224_final,  	.descsize	=	sizeof(struct sha256_state),  	.base		=	{ @@ -367,29 +366,16 @@ static struct shash_alg sha224 = {  		.cra_blocksize	=	SHA224_BLOCK_SIZE,  		.cra_module	=	THIS_MODULE,  	} -}; +} };  static int __init sha256_generic_mod_init(void)  { -	int ret = 0; - -	ret = crypto_register_shash(&sha224); - -	if (ret < 0) -		return ret; - -	ret = crypto_register_shash(&sha256); - -	if (ret < 0) -		crypto_unregister_shash(&sha224); - -	return ret; +	return crypto_register_shashes(sha256_algs, ARRAY_SIZE(sha256_algs));  }  static void __exit sha256_generic_mod_fini(void)  { -	crypto_unregister_shash(&sha224); -	crypto_unregister_shash(&sha256); +	crypto_unregister_shashes(sha256_algs, ARRAY_SIZE(sha256_algs));  }  module_init(sha256_generic_mod_init);  | 
