diff mbox

[Precise,CVE-2013-7421,2/3] crypto: add missing crypto module aliases

Message ID 1422962305-11038-3-git-send-email-luis.henriques@canonical.com
State New
Headers show

Commit Message

Luis Henriques Feb. 3, 2015, 11:18 a.m. UTC
From: Mathias Krause <minipli@googlemail.com>

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 <keescook@chromium.org>
Signed-off-by: Mathias Krause <minipli@googlemail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
(backported from commit 3e14dcf7cb80b34a1f38b55bc96f02d23fdaaaaf)
CVE-2013-7421
BugLink: http://bugs.launchpad.net/bugs/1415507
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
---
 crypto/aes_generic.c      | 1 +
 crypto/ansi_cprng.c       | 1 +
 crypto/blowfish_generic.c | 1 +
 crypto/des_generic.c      | 7 ++++---
 crypto/ghash-generic.c    | 1 +
 crypto/krng.c             | 1 +
 crypto/salsa20_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 +
 14 files changed, 19 insertions(+), 3 deletions(-)
diff mbox

Patch

diff --git a/crypto/aes_generic.c b/crypto/aes_generic.c
index 682954783251..bd776beabf70 100644
--- a/crypto/aes_generic.c
+++ b/crypto/aes_generic.c
@@ -1476,3 +1476,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 2ea8fed06bdf..f112ca2483e7 100644
--- a/crypto/ansi_cprng.c
+++ b/crypto/ansi_cprng.c
@@ -486,3 +486,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 d3a6fa7ac5ff..0938609fecc8 100644
--- a/crypto/blowfish_generic.c
+++ b/crypto/blowfish_generic.c
@@ -140,3 +140,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/des_generic.c b/crypto/des_generic.c
index 84f60c44d47e..e4042010dad4 100644
--- a/crypto/des_generic.c
+++ b/crypto/des_generic.c
@@ -975,8 +975,6 @@  static struct crypto_alg des3_ede_alg = {
 	.cia_decrypt		=	des3_ede_decrypt } }
 };
 
-MODULE_ALIAS_CRYPTO("des3_ede");
-
 static int __init des_generic_mod_init(void)
 {
 	int ret = 0;
@@ -1004,4 +1002,7 @@  module_exit(des_generic_mod_fini);
 MODULE_LICENSE("GPL");
 MODULE_DESCRIPTION("DES & Triple DES EDE Cipher Algorithms");
 MODULE_AUTHOR("Dag Arne Osvik <da@osvik.no>");
-MODULE_ALIAS("des");
+MODULE_ALIAS_CRYPTO("des");
+MODULE_ALIAS_CRYPTO("des-generic");
+MODULE_ALIAS_CRYPTO("des3_ede");
+MODULE_ALIAS_CRYPTO("des3_ede-generic");
diff --git a/crypto/ghash-generic.c b/crypto/ghash-generic.c
index 0529132de1f1..bf5f8d7f1a87 100644
--- a/crypto/ghash-generic.c
+++ b/crypto/ghash-generic.c
@@ -174,3 +174,4 @@  module_exit(ghash_mod_exit);
 MODULE_LICENSE("GPL");
 MODULE_DESCRIPTION("GHASH Message Digest Algorithm");
 MODULE_ALIAS_CRYPTO("ghash");
+MODULE_ALIAS_CRYPTO("ghash-generic");
diff --git a/crypto/krng.c b/crypto/krng.c
index 86aa9f40a269..85418d65c5db 100644
--- a/crypto/krng.c
+++ b/crypto/krng.c
@@ -64,3 +64,4 @@  module_exit(krng_mod_fini);
 MODULE_LICENSE("GPL");
 MODULE_DESCRIPTION("Kernel Random Number Generator");
 MODULE_ALIAS_CRYPTO("stdrng");
+MODULE_ALIAS_CRYPTO("krng");
diff --git a/crypto/salsa20_generic.c b/crypto/salsa20_generic.c
index a6f1aee4efde..f5e5a3386c82 100644
--- a/crypto/salsa20_generic.c
+++ b/crypto/salsa20_generic.c
@@ -250,3 +250,4 @@  module_exit(salsa20_generic_mod_fini);
 MODULE_LICENSE("GPL");
 MODULE_DESCRIPTION ("Salsa20 stream cipher algorithm");
 MODULE_ALIAS_CRYPTO("salsa20");
+MODULE_ALIAS_CRYPTO("salsa20-generic");
diff --git a/crypto/sha1_generic.c b/crypto/sha1_generic.c
index 76d300fe968f..fdf7c00de4b0 100644
--- a/crypto/sha1_generic.c
+++ b/crypto/sha1_generic.c
@@ -154,3 +154,4 @@  MODULE_LICENSE("GPL");
 MODULE_DESCRIPTION("SHA1 Secure Hash Algorithm");
 
 MODULE_ALIAS_CRYPTO("sha1");
+MODULE_ALIAS_CRYPTO("sha1-generic");
diff --git a/crypto/sha256_generic.c b/crypto/sha256_generic.c
index c398b9effc3e..dcad5cef2ecf 100644
--- a/crypto/sha256_generic.c
+++ b/crypto/sha256_generic.c
@@ -399,4 +399,6 @@  MODULE_LICENSE("GPL");
 MODULE_DESCRIPTION("SHA-224 and SHA-256 Secure Hash Algorithm");
 
 MODULE_ALIAS_CRYPTO("sha224");
+MODULE_ALIAS_CRYPTO("sha224-generic");
 MODULE_ALIAS_CRYPTO("sha256");
+MODULE_ALIAS_CRYPTO("sha256-generic");
diff --git a/crypto/sha512_generic.c b/crypto/sha512_generic.c
index 7282f1e07a4c..7a54cb47a077 100644
--- a/crypto/sha512_generic.c
+++ b/crypto/sha512_generic.c
@@ -295,4 +295,6 @@  MODULE_LICENSE("GPL");
 MODULE_DESCRIPTION("SHA-512 and SHA-384 Secure Hash Algorithms");
 
 MODULE_ALIAS_CRYPTO("sha384");
+MODULE_ALIAS_CRYPTO("sha384-generic");
 MODULE_ALIAS_CRYPTO("sha512");
+MODULE_ALIAS_CRYPTO("sha512-generic");
diff --git a/crypto/tea.c b/crypto/tea.c
index 73ad43e55405..b8f7001cb139 100644
--- a/crypto/tea.c
+++ b/crypto/tea.c
@@ -299,6 +299,7 @@  static void __exit tea_mod_fini(void)
 	crypto_unregister_alg(&xeta_alg);
 }
 
+MODULE_ALIAS_CRYPTO("tea");
 MODULE_ALIAS_CRYPTO("xtea");
 MODULE_ALIAS_CRYPTO("xeta");
 
diff --git a/crypto/tgr192.c b/crypto/tgr192.c
index b5c334df0f4c..35dbd592fbfb 100644
--- a/crypto/tgr192.c
+++ b/crypto/tgr192.c
@@ -702,6 +702,7 @@  static void __exit tgr192_mod_fini(void)
 	crypto_unregister_shash(&tgr128);
 }
 
+MODULE_ALIAS_CRYPTO("tgr192");
 MODULE_ALIAS_CRYPTO("tgr160");
 MODULE_ALIAS_CRYPTO("tgr128");
 
diff --git a/crypto/twofish_generic.c b/crypto/twofish_generic.c
index f6ef1a57157a..c8c35c526434 100644
--- a/crypto/twofish_generic.c
+++ b/crypto/twofish_generic.c
@@ -213,3 +213,4 @@  module_exit(twofish_mod_fini);
 MODULE_LICENSE("GPL");
 MODULE_DESCRIPTION ("Twofish Cipher Algorithm");
 MODULE_ALIAS_CRYPTO("twofish");
+MODULE_ALIAS_CRYPTO("twofish-generic");
diff --git a/crypto/wp512.c b/crypto/wp512.c
index 2c9a03dbe202..1bf7f0781326 100644
--- a/crypto/wp512.c
+++ b/crypto/wp512.c
@@ -1194,6 +1194,7 @@  static void __exit wp512_mod_fini(void)
 	crypto_unregister_shash(&wp256);
 }
 
+MODULE_ALIAS_CRYPTO("wp512");
 MODULE_ALIAS_CRYPTO("wp384");
 MODULE_ALIAS_CRYPTO("wp256");