diff options
author | Jussi Kivilinna <jussi.kivilinna@mbnet.fi> | 2012-07-11 07:20:10 -0400 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2012-08-01 05:47:25 -0400 |
commit | bbc406b9d2de4182a4b2990efcd1754ae9e2c483 (patch) | |
tree | da6714266c12150c4ad41a22cdc4a8a7f39fedd1 /crypto | |
parent | 9935e6d2f3b5670550e48a55172cab546ae5d096 (diff) |
crypto: serpent - use crypto_[un]register_algs
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>
Diffstat (limited to 'crypto')
-rw-r--r-- | crypto/serpent_generic.c | 53 |
1 files changed, 19 insertions, 34 deletions
diff --git a/crypto/serpent_generic.c b/crypto/serpent_generic.c index 8f32cf35e5ce..7ddbd7e88859 100644 --- a/crypto/serpent_generic.c +++ b/crypto/serpent_generic.c | |||
@@ -567,24 +567,6 @@ static void serpent_decrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src) | |||
567 | __serpent_decrypt(ctx, dst, src); | 567 | __serpent_decrypt(ctx, dst, src); |
568 | } | 568 | } |
569 | 569 | ||
570 | static struct crypto_alg serpent_alg = { | ||
571 | .cra_name = "serpent", | ||
572 | .cra_driver_name = "serpent-generic", | ||
573 | .cra_priority = 100, | ||
574 | .cra_flags = CRYPTO_ALG_TYPE_CIPHER, | ||
575 | .cra_blocksize = SERPENT_BLOCK_SIZE, | ||
576 | .cra_ctxsize = sizeof(struct serpent_ctx), | ||
577 | .cra_alignmask = 3, | ||
578 | .cra_module = THIS_MODULE, | ||
579 | .cra_list = LIST_HEAD_INIT(serpent_alg.cra_list), | ||
580 | .cra_u = { .cipher = { | ||
581 | .cia_min_keysize = SERPENT_MIN_KEY_SIZE, | ||
582 | .cia_max_keysize = SERPENT_MAX_KEY_SIZE, | ||
583 | .cia_setkey = serpent_setkey, | ||
584 | .cia_encrypt = serpent_encrypt, | ||
585 | .cia_decrypt = serpent_decrypt } } | ||
586 | }; | ||
587 | |||
588 | static int tnepres_setkey(struct crypto_tfm *tfm, const u8 *key, | 570 | static int tnepres_setkey(struct crypto_tfm *tfm, const u8 *key, |
589 | unsigned int keylen) | 571 | unsigned int keylen) |
590 | { | 572 | { |
@@ -637,41 +619,44 @@ static void tnepres_decrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src) | |||
637 | d[3] = swab32(rd[0]); | 619 | d[3] = swab32(rd[0]); |
638 | } | 620 | } |
639 | 621 | ||
640 | static struct crypto_alg tnepres_alg = { | 622 | static struct crypto_alg srp_algs[2] = { { |
623 | .cra_name = "serpent", | ||
624 | .cra_driver_name = "serpent-generic", | ||
625 | .cra_priority = 100, | ||
626 | .cra_flags = CRYPTO_ALG_TYPE_CIPHER, | ||
627 | .cra_blocksize = SERPENT_BLOCK_SIZE, | ||
628 | .cra_ctxsize = sizeof(struct serpent_ctx), | ||
629 | .cra_alignmask = 3, | ||
630 | .cra_module = THIS_MODULE, | ||
631 | .cra_u = { .cipher = { | ||
632 | .cia_min_keysize = SERPENT_MIN_KEY_SIZE, | ||
633 | .cia_max_keysize = SERPENT_MAX_KEY_SIZE, | ||
634 | .cia_setkey = serpent_setkey, | ||
635 | .cia_encrypt = serpent_encrypt, | ||
636 | .cia_decrypt = serpent_decrypt } } | ||
637 | }, { | ||
641 | .cra_name = "tnepres", | 638 | .cra_name = "tnepres", |
642 | .cra_flags = CRYPTO_ALG_TYPE_CIPHER, | 639 | .cra_flags = CRYPTO_ALG_TYPE_CIPHER, |
643 | .cra_blocksize = SERPENT_BLOCK_SIZE, | 640 | .cra_blocksize = SERPENT_BLOCK_SIZE, |
644 | .cra_ctxsize = sizeof(struct serpent_ctx), | 641 | .cra_ctxsize = sizeof(struct serpent_ctx), |
645 | .cra_alignmask = 3, | 642 | .cra_alignmask = 3, |
646 | .cra_module = THIS_MODULE, | 643 | .cra_module = THIS_MODULE, |
647 | .cra_list = LIST_HEAD_INIT(serpent_alg.cra_list), | ||
648 | .cra_u = { .cipher = { | 644 | .cra_u = { .cipher = { |
649 | .cia_min_keysize = SERPENT_MIN_KEY_SIZE, | 645 | .cia_min_keysize = SERPENT_MIN_KEY_SIZE, |
650 | .cia_max_keysize = SERPENT_MAX_KEY_SIZE, | 646 | .cia_max_keysize = SERPENT_MAX_KEY_SIZE, |
651 | .cia_setkey = tnepres_setkey, | 647 | .cia_setkey = tnepres_setkey, |
652 | .cia_encrypt = tnepres_encrypt, | 648 | .cia_encrypt = tnepres_encrypt, |
653 | .cia_decrypt = tnepres_decrypt } } | 649 | .cia_decrypt = tnepres_decrypt } } |
654 | }; | 650 | } }; |
655 | 651 | ||
656 | static int __init serpent_mod_init(void) | 652 | static int __init serpent_mod_init(void) |
657 | { | 653 | { |
658 | int ret = crypto_register_alg(&serpent_alg); | 654 | return crypto_register_algs(srp_algs, ARRAY_SIZE(srp_algs)); |
659 | |||
660 | if (ret) | ||
661 | return ret; | ||
662 | |||
663 | ret = crypto_register_alg(&tnepres_alg); | ||
664 | |||
665 | if (ret) | ||
666 | crypto_unregister_alg(&serpent_alg); | ||
667 | |||
668 | return ret; | ||
669 | } | 655 | } |
670 | 656 | ||
671 | static void __exit serpent_mod_fini(void) | 657 | static void __exit serpent_mod_fini(void) |
672 | { | 658 | { |
673 | crypto_unregister_alg(&tnepres_alg); | 659 | crypto_unregister_algs(srp_algs, ARRAY_SIZE(srp_algs)); |
674 | crypto_unregister_alg(&serpent_alg); | ||
675 | } | 660 | } |
676 | 661 | ||
677 | module_init(serpent_mod_init); | 662 | module_init(serpent_mod_init); |