crypto: serpent - use crypto_[un]register_algs
authorJussi Kivilinna <jussi.kivilinna@mbnet.fi>
Wed, 11 Jul 2012 11:20:10 +0000 (14:20 +0300)
committerHerbert Xu <herbert@gondor.apana.org.au>
Wed, 1 Aug 2012 09:47:25 +0000 (17:47 +0800)
Combine all crypto_alg to be registered and use new crypto_[un]register_algs
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/serpent_generic.c

index 8f32cf3..7ddbd7e 100644 (file)
@@ -567,24 +567,6 @@ static void serpent_decrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src)
        __serpent_decrypt(ctx, dst, src);
 }
 
-static struct crypto_alg serpent_alg = {
-       .cra_name               =       "serpent",
-       .cra_driver_name        =       "serpent-generic",
-       .cra_priority           =       100,
-       .cra_flags              =       CRYPTO_ALG_TYPE_CIPHER,
-       .cra_blocksize          =       SERPENT_BLOCK_SIZE,
-       .cra_ctxsize            =       sizeof(struct serpent_ctx),
-       .cra_alignmask          =       3,
-       .cra_module             =       THIS_MODULE,
-       .cra_list               =       LIST_HEAD_INIT(serpent_alg.cra_list),
-       .cra_u                  =       { .cipher = {
-       .cia_min_keysize        =       SERPENT_MIN_KEY_SIZE,
-       .cia_max_keysize        =       SERPENT_MAX_KEY_SIZE,
-       .cia_setkey             =       serpent_setkey,
-       .cia_encrypt            =       serpent_encrypt,
-       .cia_decrypt            =       serpent_decrypt } }
-};
-
 static int tnepres_setkey(struct crypto_tfm *tfm, const u8 *key,
                          unsigned int keylen)
 {
@@ -637,41 +619,44 @@ static void tnepres_decrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src)
        d[3] = swab32(rd[0]);
 }
 
-static struct crypto_alg tnepres_alg = {
+static struct crypto_alg srp_algs[2] = { {
+       .cra_name               =       "serpent",
+       .cra_driver_name        =       "serpent-generic",
+       .cra_priority           =       100,
+       .cra_flags              =       CRYPTO_ALG_TYPE_CIPHER,
+       .cra_blocksize          =       SERPENT_BLOCK_SIZE,
+       .cra_ctxsize            =       sizeof(struct serpent_ctx),
+       .cra_alignmask          =       3,
+       .cra_module             =       THIS_MODULE,
+       .cra_u                  =       { .cipher = {
+       .cia_min_keysize        =       SERPENT_MIN_KEY_SIZE,
+       .cia_max_keysize        =       SERPENT_MAX_KEY_SIZE,
+       .cia_setkey             =       serpent_setkey,
+       .cia_encrypt            =       serpent_encrypt,
+       .cia_decrypt            =       serpent_decrypt } }
+}, {
        .cra_name               =       "tnepres",
        .cra_flags              =       CRYPTO_ALG_TYPE_CIPHER,
        .cra_blocksize          =       SERPENT_BLOCK_SIZE,
        .cra_ctxsize            =       sizeof(struct serpent_ctx),
        .cra_alignmask          =       3,
        .cra_module             =       THIS_MODULE,
-       .cra_list               =       LIST_HEAD_INIT(serpent_alg.cra_list),
        .cra_u                  =       { .cipher = {
        .cia_min_keysize        =       SERPENT_MIN_KEY_SIZE,
        .cia_max_keysize        =       SERPENT_MAX_KEY_SIZE,
        .cia_setkey             =       tnepres_setkey,
        .cia_encrypt            =       tnepres_encrypt,
        .cia_decrypt            =       tnepres_decrypt } }
-};
+} };
 
 static int __init serpent_mod_init(void)
 {
-       int ret = crypto_register_alg(&serpent_alg);
-
-       if (ret)
-               return ret;
-
-       ret = crypto_register_alg(&tnepres_alg);
-
-       if (ret)
-               crypto_unregister_alg(&serpent_alg);
-
-       return ret;
+       return crypto_register_algs(srp_algs, ARRAY_SIZE(srp_algs));
 }
 
 static void __exit serpent_mod_fini(void)
 {
-       crypto_unregister_alg(&tnepres_alg);
-       crypto_unregister_alg(&serpent_alg);
+       crypto_unregister_algs(srp_algs, ARRAY_SIZE(srp_algs));
 }
 
 module_init(serpent_mod_init);