From patchwork Tue Feb 3 11:18:24 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Luis Henriques X-Patchwork-Id: 435791 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) by ozlabs.org (Postfix) with ESMTP id 0BF071400DD; Tue, 3 Feb 2015 22:18:09 +1100 (AEDT) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.76) (envelope-from ) id 1YIbUa-0000XV-CC; Tue, 03 Feb 2015 11:18:04 +0000 Received: from youngberry.canonical.com ([91.189.89.112]) by huckleberry.canonical.com with esmtp (Exim 4.76) (envelope-from ) id 1YIbUO-0000UT-Bl for kernel-team@lists.ubuntu.com; Tue, 03 Feb 2015 11:17:52 +0000 Received: from av-217-129-142-138.netvisao.pt ([217.129.142.138] helo=localhost) by youngberry.canonical.com with esmtpsa (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1YIbUO-0005kq-5L for kernel-team@lists.ubuntu.com; Tue, 03 Feb 2015 11:17:52 +0000 From: Luis Henriques To: kernel-team@lists.ubuntu.com Subject: [Precise][CVE-2013-7421][PATCH 2/3] crypto: add missing crypto module aliases Date: Tue, 3 Feb 2015 11:18:24 +0000 Message-Id: <1422962305-11038-3-git-send-email-luis.henriques@canonical.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1422962305-11038-1-git-send-email-luis.henriques@canonical.com> References: <1422962305-11038-1-git-send-email-luis.henriques@canonical.com> X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.14 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: kernel-team-bounces@lists.ubuntu.com From: 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 Signed-off-by: Herbert Xu (backported from commit 3e14dcf7cb80b34a1f38b55bc96f02d23fdaaaaf) CVE-2013-7421 BugLink: http://bugs.launchpad.net/bugs/1415507 Signed-off-by: Luis Henriques --- 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 --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 "); -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");