Re: [PATCH 1/6] crypto: add missing crypto module aliases

2015-01-13 Thread Kees Cook
On Sun, Jan 11, 2015 at 9:17 AM, Mathias Krause mini...@googlemail.com wrote:
 Commit 5d26a105b5a7 (crypto: prefix module autoloading with crypto-)
 changed the automatic module loading when requesting crypto algorithms
 to prefix all module requests with crypto-. This requires all crypto
 modules to have a crypto specific module alias even if their file name
 would otherwise match the requested crypto algorithm.

 Even though commit 5d26a105b5a7 added those aliases for a vast amount of
 modules, it was missing a few. Add the required MODULE_ALIAS_CRYPTO
 annotations to those files to make them get loaded automatically, again.
 This fixes, e.g., requesting 'ecb(blowfish-generic)', which used to work
 with kernels v3.18 and below.

 Also change MODULE_ALIAS() lines to MODULE_ALIAS_CRYPTO(). The former
 won't work for crypto modules any more.

 Fixes: 5d26a105b5a7 (crypto: prefix module autoloading with crypto-)
 Cc: Kees Cook keesc...@chromium.org
 Signed-off-by: Mathias Krause mini...@googlemail.com

Ah, perfect! Thanks for finding the missing ones!

Acked-by: Kees Cook keesc...@chromium.org

-Kees

 ---
  arch/powerpc/crypto/sha1.c   |1 +
  arch/x86/crypto/sha-mb/sha1_mb.c |2 +-
  crypto/aes_generic.c |1 +
  crypto/ansi_cprng.c  |1 +
  crypto/blowfish_generic.c|1 +
  crypto/camellia_generic.c|1 +
  crypto/cast5_generic.c   |1 +
  crypto/cast6_generic.c   |1 +
  crypto/crc32c_generic.c  |1 +
  crypto/crct10dif_generic.c   |1 +
  crypto/des_generic.c |7 ---
  crypto/ghash-generic.c   |1 +
  crypto/krng.c|1 +
  crypto/salsa20_generic.c |1 +
  crypto/serpent_generic.c |1 +
  crypto/sha1_generic.c|1 +
  crypto/sha256_generic.c  |2 ++
  crypto/sha512_generic.c  |2 ++
  crypto/tea.c |1 +
  crypto/tgr192.c  |1 +
  crypto/twofish_generic.c |1 +
  crypto/wp512.c   |1 +
  22 files changed, 27 insertions(+), 4 deletions(-)

 diff --git a/arch/powerpc/crypto/sha1.c b/arch/powerpc/crypto/sha1.c
 index d3feba5a275f..c154cebc1041 100644
 --- a/arch/powerpc/crypto/sha1.c
 +++ b/arch/powerpc/crypto/sha1.c
 @@ -154,4 +154,5 @@ module_exit(sha1_powerpc_mod_fini);
  MODULE_LICENSE(GPL);
  MODULE_DESCRIPTION(SHA1 Secure Hash Algorithm);

 +MODULE_ALIAS_CRYPTO(sha1);
  MODULE_ALIAS_CRYPTO(sha1-powerpc);
 diff --git a/arch/x86/crypto/sha-mb/sha1_mb.c 
 b/arch/x86/crypto/sha-mb/sha1_mb.c
 index a225a5ca1037..fd9f6b035b16 100644
 --- a/arch/x86/crypto/sha-mb/sha1_mb.c
 +++ b/arch/x86/crypto/sha-mb/sha1_mb.c
 @@ -931,4 +931,4 @@ module_exit(sha1_mb_mod_fini);
  MODULE_LICENSE(GPL);
  MODULE_DESCRIPTION(SHA1 Secure Hash Algorithm, multi buffer accelerated);

 -MODULE_ALIAS(sha1);
 +MODULE_ALIAS_CRYPTO(sha1);
 diff --git a/crypto/aes_generic.c b/crypto/aes_generic.c
 index 9b3c54c1cbe8..3dd101144a58 100644
 --- a/crypto/aes_generic.c
 +++ b/crypto/aes_generic.c
 @@ -1475,3 +1475,4 @@ module_exit(aes_fini);
  MODULE_DESCRIPTION(Rijndael (AES) Cipher Algorithm);
  MODULE_LICENSE(Dual BSD/GPL);
  MODULE_ALIAS_CRYPTO(aes);
 +MODULE_ALIAS_CRYPTO(aes-generic);
 diff --git a/crypto/ansi_cprng.c b/crypto/ansi_cprng.c
 index b4485a108389..6f5bebc9bf01 100644
 --- a/crypto/ansi_cprng.c
 +++ b/crypto/ansi_cprng.c
 @@ -477,3 +477,4 @@ MODULE_PARM_DESC(dbg, Boolean to enable debugging (0/1 
 == off/on));
  module_init(prng_mod_init);
  module_exit(prng_mod_fini);
  MODULE_ALIAS_CRYPTO(stdrng);
 +MODULE_ALIAS_CRYPTO(ansi_cprng);
 diff --git a/crypto/blowfish_generic.c b/crypto/blowfish_generic.c
 index 7bd71f02d0dd..87b392a77a93 100644
 --- a/crypto/blowfish_generic.c
 +++ b/crypto/blowfish_generic.c
 @@ -139,3 +139,4 @@ module_exit(blowfish_mod_fini);
  MODULE_LICENSE(GPL);
  MODULE_DESCRIPTION(Blowfish Cipher Algorithm);
  MODULE_ALIAS_CRYPTO(blowfish);
 +MODULE_ALIAS_CRYPTO(blowfish-generic);
 diff --git a/crypto/camellia_generic.c b/crypto/camellia_generic.c
 index 1b74c5a3e891..a02286bf319e 100644
 --- a/crypto/camellia_generic.c
 +++ b/crypto/camellia_generic.c
 @@ -1099,3 +1099,4 @@ module_exit(camellia_fini);
  MODULE_DESCRIPTION(Camellia Cipher Algorithm);
  MODULE_LICENSE(GPL);
  MODULE_ALIAS_CRYPTO(camellia);
 +MODULE_ALIAS_CRYPTO(camellia-generic);
 diff --git a/crypto/cast5_generic.c b/crypto/cast5_generic.c
 index 84c86db67ec7..df5c72629383 100644
 --- a/crypto/cast5_generic.c
 +++ b/crypto/cast5_generic.c
 @@ -550,3 +550,4 @@ module_exit(cast5_mod_fini);
  MODULE_LICENSE(GPL);
  MODULE_DESCRIPTION(Cast5 Cipher Algorithm);
  MODULE_ALIAS_CRYPTO(cast5);
 +MODULE_ALIAS_CRYPTO(cast5-generic);
 diff --git a/crypto/cast6_generic.c b/crypto/cast6_generic.c
 index f408f0bd8de2..058c8d755d03 100644
 --- a/crypto/cast6_generic.c
 +++ b/crypto/cast6_generic.c
 @@ -292,3 +292,4 @@ module_exit(cast6_mod_fini);
  MODULE_LICENSE(GPL);
  

[PATCH 1/6] crypto: add missing crypto module aliases

2015-01-11 Thread Mathias Krause
Commit 5d26a105b5a7 (crypto: prefix module autoloading with crypto-)
changed the automatic module loading when requesting crypto algorithms
to prefix all module requests with crypto-. This requires all crypto
modules to have a crypto specific module alias even if their file name
would otherwise match the requested crypto algorithm.

Even though commit 5d26a105b5a7 added those aliases for a vast amount of
modules, it was missing a few. Add the required MODULE_ALIAS_CRYPTO
annotations to those files to make them get loaded automatically, again.
This fixes, e.g., requesting 'ecb(blowfish-generic)', which used to work
with kernels v3.18 and below.

Also change MODULE_ALIAS() lines to MODULE_ALIAS_CRYPTO(). The former
won't work for crypto modules any more.

Fixes: 5d26a105b5a7 (crypto: prefix module autoloading with crypto-)
Cc: Kees Cook keesc...@chromium.org
Signed-off-by: Mathias Krause mini...@googlemail.com
---
 arch/powerpc/crypto/sha1.c   |1 +
 arch/x86/crypto/sha-mb/sha1_mb.c |2 +-
 crypto/aes_generic.c |1 +
 crypto/ansi_cprng.c  |1 +
 crypto/blowfish_generic.c|1 +
 crypto/camellia_generic.c|1 +
 crypto/cast5_generic.c   |1 +
 crypto/cast6_generic.c   |1 +
 crypto/crc32c_generic.c  |1 +
 crypto/crct10dif_generic.c   |1 +
 crypto/des_generic.c |7 ---
 crypto/ghash-generic.c   |1 +
 crypto/krng.c|1 +
 crypto/salsa20_generic.c |1 +
 crypto/serpent_generic.c |1 +
 crypto/sha1_generic.c|1 +
 crypto/sha256_generic.c  |2 ++
 crypto/sha512_generic.c  |2 ++
 crypto/tea.c |1 +
 crypto/tgr192.c  |1 +
 crypto/twofish_generic.c |1 +
 crypto/wp512.c   |1 +
 22 files changed, 27 insertions(+), 4 deletions(-)

diff --git a/arch/powerpc/crypto/sha1.c b/arch/powerpc/crypto/sha1.c
index d3feba5a275f..c154cebc1041 100644
--- a/arch/powerpc/crypto/sha1.c
+++ b/arch/powerpc/crypto/sha1.c
@@ -154,4 +154,5 @@ module_exit(sha1_powerpc_mod_fini);
 MODULE_LICENSE(GPL);
 MODULE_DESCRIPTION(SHA1 Secure Hash Algorithm);
 
+MODULE_ALIAS_CRYPTO(sha1);
 MODULE_ALIAS_CRYPTO(sha1-powerpc);
diff --git a/arch/x86/crypto/sha-mb/sha1_mb.c b/arch/x86/crypto/sha-mb/sha1_mb.c
index a225a5ca1037..fd9f6b035b16 100644
--- a/arch/x86/crypto/sha-mb/sha1_mb.c
+++ b/arch/x86/crypto/sha-mb/sha1_mb.c
@@ -931,4 +931,4 @@ module_exit(sha1_mb_mod_fini);
 MODULE_LICENSE(GPL);
 MODULE_DESCRIPTION(SHA1 Secure Hash Algorithm, multi buffer accelerated);
 
-MODULE_ALIAS(sha1);
+MODULE_ALIAS_CRYPTO(sha1);
diff --git a/crypto/aes_generic.c b/crypto/aes_generic.c
index 9b3c54c1cbe8..3dd101144a58 100644
--- a/crypto/aes_generic.c
+++ b/crypto/aes_generic.c
@@ -1475,3 +1475,4 @@ module_exit(aes_fini);
 MODULE_DESCRIPTION(Rijndael (AES) Cipher Algorithm);
 MODULE_LICENSE(Dual BSD/GPL);
 MODULE_ALIAS_CRYPTO(aes);
+MODULE_ALIAS_CRYPTO(aes-generic);
diff --git a/crypto/ansi_cprng.c b/crypto/ansi_cprng.c
index b4485a108389..6f5bebc9bf01 100644
--- a/crypto/ansi_cprng.c
+++ b/crypto/ansi_cprng.c
@@ -477,3 +477,4 @@ MODULE_PARM_DESC(dbg, Boolean to enable debugging (0/1 == 
off/on));
 module_init(prng_mod_init);
 module_exit(prng_mod_fini);
 MODULE_ALIAS_CRYPTO(stdrng);
+MODULE_ALIAS_CRYPTO(ansi_cprng);
diff --git a/crypto/blowfish_generic.c b/crypto/blowfish_generic.c
index 7bd71f02d0dd..87b392a77a93 100644
--- a/crypto/blowfish_generic.c
+++ b/crypto/blowfish_generic.c
@@ -139,3 +139,4 @@ module_exit(blowfish_mod_fini);
 MODULE_LICENSE(GPL);
 MODULE_DESCRIPTION(Blowfish Cipher Algorithm);
 MODULE_ALIAS_CRYPTO(blowfish);
+MODULE_ALIAS_CRYPTO(blowfish-generic);
diff --git a/crypto/camellia_generic.c b/crypto/camellia_generic.c
index 1b74c5a3e891..a02286bf319e 100644
--- a/crypto/camellia_generic.c
+++ b/crypto/camellia_generic.c
@@ -1099,3 +1099,4 @@ module_exit(camellia_fini);
 MODULE_DESCRIPTION(Camellia Cipher Algorithm);
 MODULE_LICENSE(GPL);
 MODULE_ALIAS_CRYPTO(camellia);
+MODULE_ALIAS_CRYPTO(camellia-generic);
diff --git a/crypto/cast5_generic.c b/crypto/cast5_generic.c
index 84c86db67ec7..df5c72629383 100644
--- a/crypto/cast5_generic.c
+++ b/crypto/cast5_generic.c
@@ -550,3 +550,4 @@ module_exit(cast5_mod_fini);
 MODULE_LICENSE(GPL);
 MODULE_DESCRIPTION(Cast5 Cipher Algorithm);
 MODULE_ALIAS_CRYPTO(cast5);
+MODULE_ALIAS_CRYPTO(cast5-generic);
diff --git a/crypto/cast6_generic.c b/crypto/cast6_generic.c
index f408f0bd8de2..058c8d755d03 100644
--- a/crypto/cast6_generic.c
+++ b/crypto/cast6_generic.c
@@ -292,3 +292,4 @@ module_exit(cast6_mod_fini);
 MODULE_LICENSE(GPL);
 MODULE_DESCRIPTION(Cast6 Cipher Algorithm);
 MODULE_ALIAS_CRYPTO(cast6);
+MODULE_ALIAS_CRYPTO(cast6-generic);
diff --git a/crypto/crc32c_generic.c b/crypto/crc32c_generic.c
index 2a062025749d..06f1b60f02b2 100644
--- a/crypto/crc32c_generic.c
+++ b/crypto/crc32c_generic.c
@@ -171,4 +171,5 @@