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  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 
> Signed-off-by: Mathias Krause 

Ah, perfect! Thanks for finding the missing ones!

Acked-by: Kees Cook 

-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_g

[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 
Signed-off-by: Mathias Krause 
---
 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_generi