diff options
Diffstat (limited to 'crypto/wp512.c')
| -rw-r--r-- | crypto/wp512.c | 57 | 
1 files changed, 18 insertions, 39 deletions
diff --git a/crypto/wp512.c b/crypto/wp512.c index 72342727368..180f1d6e03f 100644 --- a/crypto/wp512.c +++ b/crypto/wp512.c @@ -762,11 +762,17 @@ static const u64 C7[256] = {  	0x86228644a411c286ULL,  }; -static const u64 rc[WHIRLPOOL_ROUNDS + 1] = { -	0x0000000000000000ULL, 0x1823c6e887b8014fULL, 0x36a6d2f5796f9152ULL, -	0x60bc9b8ea30c7b35ULL, 0x1de0d7c22e4bfe57ULL, 0x157737e59ff04adaULL, -	0x58c9290ab1a06b85ULL, 0xbd5d10f4cb3e0567ULL, 0xe427418ba77d95d8ULL, -	0xfbee7c66dd17479eULL, 0xca2dbf07ad5a8333ULL, +static const u64 rc[WHIRLPOOL_ROUNDS] = { +	0x1823c6e887b8014fULL, +	0x36a6d2f5796f9152ULL, +	0x60bc9b8ea30c7b35ULL, +	0x1de0d7c22e4bfe57ULL, +	0x157737e59ff04adaULL, +	0x58c9290ab1a06b85ULL, +	0xbd5d10f4cb3e0567ULL, +	0xe427418ba77d95d8ULL, +	0xfbee7c66dd17479eULL, +	0xca2dbf07ad5a8333ULL,  };  /** @@ -793,7 +799,7 @@ static void wp512_process_buffer(struct wp512_ctx *wctx) {  	state[6] = block[6] ^ (K[6] = wctx->hash[6]);  	state[7] = block[7] ^ (K[7] = wctx->hash[7]); -	for (r = 1; r <= WHIRLPOOL_ROUNDS; r++) { +	for (r = 0; r < WHIRLPOOL_ROUNDS; r++) {  		L[0] = C0[(int)(K[0] >> 56)       ] ^  			   C1[(int)(K[7] >> 48) & 0xff] ^ @@ -1113,7 +1119,7 @@ static int wp256_final(struct shash_desc *desc, u8 *out)  	return 0;  } -static struct shash_alg wp512 = { +static struct shash_alg wp_algs[3] = { {  	.digestsize	=	WP512_DIGEST_SIZE,  	.init		=	wp512_init,  	.update		=	wp512_update, @@ -1125,9 +1131,7 @@ static struct shash_alg wp512 = {  		.cra_blocksize	=	WP512_BLOCK_SIZE,  		.cra_module	=	THIS_MODULE,  	} -}; - -static struct shash_alg wp384 = { +}, {  	.digestsize	=	WP384_DIGEST_SIZE,  	.init		=	wp512_init,  	.update		=	wp512_update, @@ -1139,9 +1143,7 @@ static struct shash_alg wp384 = {  		.cra_blocksize	=	WP512_BLOCK_SIZE,  		.cra_module	=	THIS_MODULE,  	} -}; - -static struct shash_alg wp256 = { +}, {  	.digestsize	=	WP256_DIGEST_SIZE,  	.init		=	wp512_init,  	.update		=	wp512_update, @@ -1153,39 +1155,16 @@ static struct shash_alg wp256 = {  		.cra_blocksize	=	WP512_BLOCK_SIZE,  		.cra_module	=	THIS_MODULE,  	} -}; +} };  static int __init wp512_mod_init(void)  { -	int ret = 0; - -	ret = crypto_register_shash(&wp512); - -	if (ret < 0) -		goto out; - -	ret = crypto_register_shash(&wp384); -	if (ret < 0) -	{ -		crypto_unregister_shash(&wp512); -		goto out; -	} - -	ret = crypto_register_shash(&wp256); -	if (ret < 0) -	{ -		crypto_unregister_shash(&wp512); -		crypto_unregister_shash(&wp384); -	} -out: -	return ret; +	return crypto_register_shashes(wp_algs, ARRAY_SIZE(wp_algs));  }  static void __exit wp512_mod_fini(void)  { -	crypto_unregister_shash(&wp512); -	crypto_unregister_shash(&wp384); -	crypto_unregister_shash(&wp256); +	crypto_unregister_shashes(wp_algs, ARRAY_SIZE(wp_algs));  }  MODULE_ALIAS("wp384");  | 
