crypto: sha512 - use crypto_[un]register_shashes
authorJussi Kivilinna <jussi.kivilinna@mbnet.fi>
Wed, 11 Jul 2012 11:20:36 +0000 (14:20 +0300)
committerHerbert Xu <herbert@gondor.apana.org.au>
Wed, 1 Aug 2012 09:47:26 +0000 (17:47 +0800)
Combine all shash algs to be registered and use new crypto_[un]register_shashes
functions. This simplifies init/exit code.

Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
crypto/sha512_generic.c

index dd30f40..71fcf36 100644 (file)
@@ -242,7 +242,7 @@ static int sha384_final(struct shash_desc *desc, u8 *hash)
        return 0;
 }
 
-static struct shash_alg sha512 = {
+static struct shash_alg sha512_algs[2] = { {
        .digestsize     =       SHA512_DIGEST_SIZE,
        .init           =       sha512_init,
        .update         =       sha512_update,
@@ -254,9 +254,7 @@ static struct shash_alg sha512 = {
                .cra_blocksize  =       SHA512_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
-};
-
-static struct shash_alg sha384 = {
+}, {
        .digestsize     =       SHA384_DIGEST_SIZE,
        .init           =       sha384_init,
        .update         =       sha512_update,
@@ -268,24 +266,16 @@ static struct shash_alg sha384 = {
                .cra_blocksize  =       SHA384_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
-};
+} };
 
 static int __init sha512_generic_mod_init(void)
 {
-        int ret = 0;
-
-        if ((ret = crypto_register_shash(&sha384)) < 0)
-                goto out;
-        if ((ret = crypto_register_shash(&sha512)) < 0)
-                crypto_unregister_shash(&sha384);
-out:
-        return ret;
+       return crypto_register_shashes(sha512_algs, ARRAY_SIZE(sha512_algs));
 }
 
 static void __exit sha512_generic_mod_fini(void)
 {
-        crypto_unregister_shash(&sha384);
-        crypto_unregister_shash(&sha512);
+       crypto_unregister_shashes(sha512_algs, ARRAY_SIZE(sha512_algs));
 }
 
 module_init(sha512_generic_mod_init);