Commit 9ffea4cb authored by Kees Cook's avatar Kees Cook Committed by Ben Hutchings

crypto: prefix module autoloading with "crypto-"

commit 5d26a105 upstream.

This prefixes all crypto module loading with "crypto-" so we never run
the risk of exposing module auto-loading to userspace via a crypto API,
as demonstrated by Mathias Krause:

https://lkml.org/lkml/2013/3/4/70Signed-off-by: default avatarKees Cook <keescook@chromium.org>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
[bwh: Backported to 3.2:
 - Adjust filenames
 - Drop changes to algorithms and drivers we don't have
 - Add aliases to generic C implementations that didn't need them before]
Signed-off-by: default avatarBen Hutchings <ben@decadent.org.uk>
parent 36323bf0
...@@ -972,7 +972,7 @@ static void __exit aes_s390_fini(void) ...@@ -972,7 +972,7 @@ static void __exit aes_s390_fini(void)
module_init(aes_s390_init); module_init(aes_s390_init);
module_exit(aes_s390_fini); module_exit(aes_s390_fini);
MODULE_ALIAS("aes-all"); MODULE_ALIAS_CRYPTO("aes-all");
MODULE_DESCRIPTION("Rijndael (AES) Cipher Algorithm"); MODULE_DESCRIPTION("Rijndael (AES) Cipher Algorithm");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
...@@ -626,8 +626,8 @@ static void __exit des_s390_exit(void) ...@@ -626,8 +626,8 @@ static void __exit des_s390_exit(void)
module_init(des_s390_init); module_init(des_s390_init);
module_exit(des_s390_exit); module_exit(des_s390_exit);
MODULE_ALIAS("des"); MODULE_ALIAS_CRYPTO("des");
MODULE_ALIAS("des3_ede"); MODULE_ALIAS_CRYPTO("des3_ede");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("DES & Triple DES EDE Cipher Algorithms"); MODULE_DESCRIPTION("DES & Triple DES EDE Cipher Algorithms");
...@@ -161,7 +161,7 @@ static void __exit ghash_mod_exit(void) ...@@ -161,7 +161,7 @@ static void __exit ghash_mod_exit(void)
module_init(ghash_mod_init); module_init(ghash_mod_init);
module_exit(ghash_mod_exit); module_exit(ghash_mod_exit);
MODULE_ALIAS("ghash"); MODULE_ALIAS_CRYPTO("ghash");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("GHASH Message Digest Algorithm, s390 implementation"); MODULE_DESCRIPTION("GHASH Message Digest Algorithm, s390 implementation");
...@@ -103,6 +103,6 @@ static void __exit sha1_s390_fini(void) ...@@ -103,6 +103,6 @@ static void __exit sha1_s390_fini(void)
module_init(sha1_s390_init); module_init(sha1_s390_init);
module_exit(sha1_s390_fini); module_exit(sha1_s390_fini);
MODULE_ALIAS("sha1"); MODULE_ALIAS_CRYPTO("sha1");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("SHA1 Secure Hash Algorithm"); MODULE_DESCRIPTION("SHA1 Secure Hash Algorithm");
...@@ -143,7 +143,7 @@ static void __exit sha256_s390_fini(void) ...@@ -143,7 +143,7 @@ static void __exit sha256_s390_fini(void)
module_init(sha256_s390_init); module_init(sha256_s390_init);
module_exit(sha256_s390_fini); module_exit(sha256_s390_fini);
MODULE_ALIAS("sha256"); MODULE_ALIAS_CRYPTO("sha256");
MODULE_ALIAS("sha224"); MODULE_ALIAS_CRYPTO("sha224");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("SHA256 and SHA224 Secure Hash Algorithm"); MODULE_DESCRIPTION("SHA256 and SHA224 Secure Hash Algorithm");
...@@ -86,7 +86,7 @@ static struct shash_alg sha512_alg = { ...@@ -86,7 +86,7 @@ static struct shash_alg sha512_alg = {
} }
}; };
MODULE_ALIAS("sha512"); MODULE_ALIAS_CRYPTO("sha512");
static int sha384_init(struct shash_desc *desc) static int sha384_init(struct shash_desc *desc)
{ {
...@@ -126,7 +126,7 @@ static struct shash_alg sha384_alg = { ...@@ -126,7 +126,7 @@ static struct shash_alg sha384_alg = {
} }
}; };
MODULE_ALIAS("sha384"); MODULE_ALIAS_CRYPTO("sha384");
static int __init init(void) static int __init init(void)
{ {
......
...@@ -67,5 +67,5 @@ module_exit(aes_fini); ...@@ -67,5 +67,5 @@ module_exit(aes_fini);
MODULE_DESCRIPTION("Rijndael (AES) Cipher Algorithm, asm optimized"); MODULE_DESCRIPTION("Rijndael (AES) Cipher Algorithm, asm optimized");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_ALIAS("aes"); MODULE_ALIAS_CRYPTO("aes");
MODULE_ALIAS("aes-asm"); MODULE_ALIAS_CRYPTO("aes-asm");
...@@ -1380,4 +1380,4 @@ module_exit(aesni_exit); ...@@ -1380,4 +1380,4 @@ module_exit(aesni_exit);
MODULE_DESCRIPTION("Rijndael (AES) Cipher Algorithm, Intel AES-NI instructions optimized"); MODULE_DESCRIPTION("Rijndael (AES) Cipher Algorithm, Intel AES-NI instructions optimized");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_ALIAS("aes"); MODULE_ALIAS_CRYPTO("aes");
...@@ -488,5 +488,5 @@ module_exit(fini); ...@@ -488,5 +488,5 @@ module_exit(fini);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("Blowfish Cipher Algorithm, asm optimized"); MODULE_DESCRIPTION("Blowfish Cipher Algorithm, asm optimized");
MODULE_ALIAS("blowfish"); MODULE_ALIAS_CRYPTO("blowfish");
MODULE_ALIAS("blowfish-asm"); MODULE_ALIAS_CRYPTO("blowfish-asm");
...@@ -194,5 +194,5 @@ MODULE_AUTHOR("Austin Zhang <austin.zhang@intel.com>, Kent Liu <kent.liu@intel.c ...@@ -194,5 +194,5 @@ MODULE_AUTHOR("Austin Zhang <austin.zhang@intel.com>, Kent Liu <kent.liu@intel.c
MODULE_DESCRIPTION("CRC32c (Castagnoli) optimization using Intel Hardware."); MODULE_DESCRIPTION("CRC32c (Castagnoli) optimization using Intel Hardware.");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_ALIAS("crc32c"); MODULE_ALIAS_CRYPTO("crc32c");
MODULE_ALIAS("crc32c-intel"); MODULE_ALIAS_CRYPTO("crc32c-intel");
...@@ -339,4 +339,4 @@ module_exit(ghash_pclmulqdqni_mod_exit); ...@@ -339,4 +339,4 @@ module_exit(ghash_pclmulqdqni_mod_exit);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("GHASH Message Digest Algorithm, " MODULE_DESCRIPTION("GHASH Message Digest Algorithm, "
"acclerated by PCLMULQDQ-NI"); "acclerated by PCLMULQDQ-NI");
MODULE_ALIAS("ghash"); MODULE_ALIAS_CRYPTO("ghash");
...@@ -125,5 +125,5 @@ module_exit(fini); ...@@ -125,5 +125,5 @@ module_exit(fini);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_DESCRIPTION ("Salsa20 stream cipher algorithm (optimized assembly version)"); MODULE_DESCRIPTION ("Salsa20 stream cipher algorithm (optimized assembly version)");
MODULE_ALIAS("salsa20"); MODULE_ALIAS_CRYPTO("salsa20");
MODULE_ALIAS("salsa20-asm"); MODULE_ALIAS_CRYPTO("salsa20-asm");
...@@ -237,4 +237,4 @@ module_exit(sha1_ssse3_mod_fini); ...@@ -237,4 +237,4 @@ module_exit(sha1_ssse3_mod_fini);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("SHA1 Secure Hash Algorithm, Supplemental SSE3 accelerated"); MODULE_DESCRIPTION("SHA1 Secure Hash Algorithm, Supplemental SSE3 accelerated");
MODULE_ALIAS("sha1"); MODULE_ALIAS_CRYPTO("sha1");
...@@ -97,5 +97,5 @@ module_exit(fini); ...@@ -97,5 +97,5 @@ module_exit(fini);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_DESCRIPTION ("Twofish Cipher Algorithm, asm optimized"); MODULE_DESCRIPTION ("Twofish Cipher Algorithm, asm optimized");
MODULE_ALIAS("twofish"); MODULE_ALIAS_CRYPTO("twofish");
MODULE_ALIAS("twofish-asm"); MODULE_ALIAS_CRYPTO("twofish-asm");
...@@ -468,5 +468,5 @@ module_exit(fini); ...@@ -468,5 +468,5 @@ module_exit(fini);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("Twofish Cipher Algorithm, 3-way parallel asm optimized"); MODULE_DESCRIPTION("Twofish Cipher Algorithm, 3-way parallel asm optimized");
MODULE_ALIAS("twofish"); MODULE_ALIAS_CRYPTO("twofish");
MODULE_ALIAS("twofish-asm"); MODULE_ALIAS_CRYPTO("twofish-asm");
...@@ -1475,4 +1475,4 @@ module_exit(aes_fini); ...@@ -1475,4 +1475,4 @@ module_exit(aes_fini);
MODULE_DESCRIPTION("Rijndael (AES) Cipher Algorithm"); MODULE_DESCRIPTION("Rijndael (AES) Cipher Algorithm");
MODULE_LICENSE("Dual BSD/GPL"); MODULE_LICENSE("Dual BSD/GPL");
MODULE_ALIAS("aes"); MODULE_ALIAS_CRYPTO("aes");
...@@ -485,4 +485,4 @@ module_param(dbg, int, 0); ...@@ -485,4 +485,4 @@ module_param(dbg, int, 0);
MODULE_PARM_DESC(dbg, "Boolean to enable debugging (0/1 == off/on)"); MODULE_PARM_DESC(dbg, "Boolean to enable debugging (0/1 == off/on)");
module_init(prng_mod_init); module_init(prng_mod_init);
module_exit(prng_mod_fini); module_exit(prng_mod_fini);
MODULE_ALIAS("stdrng"); MODULE_ALIAS_CRYPTO("stdrng");
...@@ -705,3 +705,4 @@ module_exit(anubis_mod_fini); ...@@ -705,3 +705,4 @@ module_exit(anubis_mod_fini);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("Anubis Cryptographic Algorithm"); MODULE_DESCRIPTION("Anubis Cryptographic Algorithm");
MODULE_ALIAS_CRYPTO("anubis");
...@@ -222,11 +222,11 @@ struct crypto_alg *crypto_larval_lookup(const char *name, u32 type, u32 mask) ...@@ -222,11 +222,11 @@ struct crypto_alg *crypto_larval_lookup(const char *name, u32 type, u32 mask)
alg = crypto_alg_lookup(name, type, mask); alg = crypto_alg_lookup(name, type, mask);
if (!alg) { if (!alg) {
request_module("%s", name); request_module("crypto-%s", name);
if (!((type ^ CRYPTO_ALG_NEED_FALLBACK) & mask & if (!((type ^ CRYPTO_ALG_NEED_FALLBACK) & mask &
CRYPTO_ALG_NEED_FALLBACK)) CRYPTO_ALG_NEED_FALLBACK))
request_module("%s-all", name); request_module("crypto-%s-all", name);
alg = crypto_alg_lookup(name, type, mask); alg = crypto_alg_lookup(name, type, mask);
} }
......
...@@ -101,3 +101,4 @@ module_exit(arc4_exit); ...@@ -101,3 +101,4 @@ module_exit(arc4_exit);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("ARC4 Cipher Algorithm"); MODULE_DESCRIPTION("ARC4 Cipher Algorithm");
MODULE_AUTHOR("Jon Oberheide <jon@oberheide.org>"); MODULE_AUTHOR("Jon Oberheide <jon@oberheide.org>");
MODULE_ALIAS_CRYPTO("arc4");
...@@ -139,4 +139,4 @@ module_exit(blowfish_mod_fini); ...@@ -139,4 +139,4 @@ module_exit(blowfish_mod_fini);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("Blowfish Cipher Algorithm"); MODULE_DESCRIPTION("Blowfish Cipher Algorithm");
MODULE_ALIAS("blowfish"); MODULE_ALIAS_CRYPTO("blowfish");
...@@ -1114,3 +1114,4 @@ module_exit(camellia_fini); ...@@ -1114,3 +1114,4 @@ module_exit(camellia_fini);
MODULE_DESCRIPTION("Camellia Cipher Algorithm"); MODULE_DESCRIPTION("Camellia Cipher Algorithm");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_ALIAS_CRYPTO("camellia");
...@@ -806,4 +806,5 @@ module_exit(cast5_mod_fini); ...@@ -806,4 +806,5 @@ module_exit(cast5_mod_fini);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("Cast5 Cipher Algorithm"); MODULE_DESCRIPTION("Cast5 Cipher Algorithm");
MODULE_ALIAS_CRYPTO("cast5");
...@@ -545,3 +545,4 @@ module_exit(cast6_mod_fini); ...@@ -545,3 +545,4 @@ module_exit(cast6_mod_fini);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("Cast6 Cipher Algorithm"); MODULE_DESCRIPTION("Cast6 Cipher Algorithm");
MODULE_ALIAS_CRYPTO("cast6");
...@@ -888,5 +888,5 @@ module_exit(crypto_ccm_module_exit); ...@@ -888,5 +888,5 @@ module_exit(crypto_ccm_module_exit);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("Counter with CBC MAC"); MODULE_DESCRIPTION("Counter with CBC MAC");
MODULE_ALIAS("ccm_base"); MODULE_ALIAS_CRYPTO("ccm_base");
MODULE_ALIAS("rfc4309"); MODULE_ALIAS_CRYPTO("rfc4309");
...@@ -258,3 +258,4 @@ module_exit(crc32c_mod_fini); ...@@ -258,3 +258,4 @@ module_exit(crc32c_mod_fini);
MODULE_AUTHOR("Clay Haapala <chaapala@cisco.com>"); MODULE_AUTHOR("Clay Haapala <chaapala@cisco.com>");
MODULE_DESCRIPTION("CRC32c (Castagnoli) calculations wrapper for lib/crc32c"); MODULE_DESCRIPTION("CRC32c (Castagnoli) calculations wrapper for lib/crc32c");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_ALIAS_CRYPTO("crc32c");
...@@ -156,9 +156,9 @@ static struct crypto_alg skcipher_null = { ...@@ -156,9 +156,9 @@ static struct crypto_alg skcipher_null = {
.decrypt = skcipher_null_crypt } } .decrypt = skcipher_null_crypt } }
}; };
MODULE_ALIAS("compress_null"); MODULE_ALIAS_CRYPTO("compress_null");
MODULE_ALIAS("digest_null"); MODULE_ALIAS_CRYPTO("digest_null");
MODULE_ALIAS("cipher_null"); MODULE_ALIAS_CRYPTO("cipher_null");
static int __init crypto_null_mod_init(void) static int __init crypto_null_mod_init(void)
{ {
......
...@@ -421,4 +421,4 @@ module_exit(crypto_ctr_module_exit); ...@@ -421,4 +421,4 @@ module_exit(crypto_ctr_module_exit);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("CTR Counter block mode"); MODULE_DESCRIPTION("CTR Counter block mode");
MODULE_ALIAS("rfc3686"); MODULE_ALIAS_CRYPTO("rfc3686");
...@@ -223,4 +223,4 @@ module_exit(deflate_mod_fini); ...@@ -223,4 +223,4 @@ module_exit(deflate_mod_fini);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("Deflate Compression Algorithm for IPCOMP"); MODULE_DESCRIPTION("Deflate Compression Algorithm for IPCOMP");
MODULE_AUTHOR("James Morris <jmorris@intercode.com.au>"); MODULE_AUTHOR("James Morris <jmorris@intercode.com.au>");
MODULE_ALIAS_CRYPTO("deflate");
...@@ -975,7 +975,7 @@ static struct crypto_alg des3_ede_alg = { ...@@ -975,7 +975,7 @@ static struct crypto_alg des3_ede_alg = {
.cia_decrypt = des3_ede_decrypt } } .cia_decrypt = des3_ede_decrypt } }
}; };
MODULE_ALIAS("des3_ede"); MODULE_ALIAS_CRYPTO("des3_ede");
static int __init des_generic_mod_init(void) static int __init des_generic_mod_init(void)
{ {
......
...@@ -421,3 +421,4 @@ module_exit(fcrypt_mod_fini); ...@@ -421,3 +421,4 @@ module_exit(fcrypt_mod_fini);
MODULE_LICENSE("Dual BSD/GPL"); MODULE_LICENSE("Dual BSD/GPL");
MODULE_DESCRIPTION("FCrypt Cipher Algorithm"); MODULE_DESCRIPTION("FCrypt Cipher Algorithm");
MODULE_AUTHOR("David Howells <dhowells@redhat.com>"); MODULE_AUTHOR("David Howells <dhowells@redhat.com>");
MODULE_ALIAS_CRYPTO("fcrypt");
...@@ -1374,6 +1374,6 @@ module_exit(crypto_gcm_module_exit); ...@@ -1374,6 +1374,6 @@ module_exit(crypto_gcm_module_exit);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("Galois/Counter Mode"); MODULE_DESCRIPTION("Galois/Counter Mode");
MODULE_AUTHOR("Mikko Herranen <mh1@iki.fi>"); MODULE_AUTHOR("Mikko Herranen <mh1@iki.fi>");
MODULE_ALIAS("gcm_base"); MODULE_ALIAS_CRYPTO("gcm_base");
MODULE_ALIAS("rfc4106"); MODULE_ALIAS_CRYPTO("rfc4106");
MODULE_ALIAS("rfc4543"); MODULE_ALIAS_CRYPTO("rfc4543");
...@@ -173,4 +173,4 @@ module_exit(ghash_mod_exit); ...@@ -173,4 +173,4 @@ module_exit(ghash_mod_exit);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("GHASH Message Digest Algorithm"); MODULE_DESCRIPTION("GHASH Message Digest Algorithm");
MODULE_ALIAS("ghash"); MODULE_ALIAS_CRYPTO("ghash");
...@@ -881,3 +881,4 @@ module_exit(khazad_mod_fini); ...@@ -881,3 +881,4 @@ module_exit(khazad_mod_fini);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("Khazad Cryptographic Algorithm"); MODULE_DESCRIPTION("Khazad Cryptographic Algorithm");
MODULE_ALIAS_CRYPTO("khazad");
...@@ -63,4 +63,4 @@ module_exit(krng_mod_fini); ...@@ -63,4 +63,4 @@ module_exit(krng_mod_fini);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("Kernel Random Number Generator"); MODULE_DESCRIPTION("Kernel Random Number Generator");
MODULE_ALIAS("stdrng"); MODULE_ALIAS_CRYPTO("stdrng");
...@@ -104,3 +104,4 @@ module_exit(lzo_mod_fini); ...@@ -104,3 +104,4 @@ module_exit(lzo_mod_fini);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("LZO Compression Algorithm"); MODULE_DESCRIPTION("LZO Compression Algorithm");
MODULE_ALIAS_CRYPTO("lzo");
...@@ -255,4 +255,4 @@ module_exit(md4_mod_fini); ...@@ -255,4 +255,4 @@ module_exit(md4_mod_fini);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("MD4 Message Digest Algorithm"); MODULE_DESCRIPTION("MD4 Message Digest Algorithm");
MODULE_ALIAS_CRYPTO("md4");
...@@ -168,3 +168,4 @@ module_exit(md5_mod_fini); ...@@ -168,3 +168,4 @@ module_exit(md5_mod_fini);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("MD5 Message Digest Algorithm"); MODULE_DESCRIPTION("MD5 Message Digest Algorithm");
MODULE_ALIAS_CRYPTO("md5");
...@@ -184,3 +184,4 @@ module_exit(michael_mic_exit); ...@@ -184,3 +184,4 @@ module_exit(michael_mic_exit);
MODULE_LICENSE("GPL v2"); MODULE_LICENSE("GPL v2");
MODULE_DESCRIPTION("Michael MIC"); MODULE_DESCRIPTION("Michael MIC");
MODULE_AUTHOR("Jouni Malinen <j@w1.fi>"); MODULE_AUTHOR("Jouni Malinen <j@w1.fi>");
MODULE_ALIAS_CRYPTO("michael_mic");
...@@ -327,3 +327,4 @@ module_exit(rmd128_mod_fini); ...@@ -327,3 +327,4 @@ module_exit(rmd128_mod_fini);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_AUTHOR("Adrian-Ken Rueegsegger <ken@codelabs.ch>"); MODULE_AUTHOR("Adrian-Ken Rueegsegger <ken@codelabs.ch>");
MODULE_DESCRIPTION("RIPEMD-128 Message Digest"); MODULE_DESCRIPTION("RIPEMD-128 Message Digest");
MODULE_ALIAS_CRYPTO("rmd128");
...@@ -371,3 +371,4 @@ module_exit(rmd160_mod_fini); ...@@ -371,3 +371,4 @@ module_exit(rmd160_mod_fini);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_AUTHOR("Adrian-Ken Rueegsegger <ken@codelabs.ch>"); MODULE_AUTHOR("Adrian-Ken Rueegsegger <ken@codelabs.ch>");
MODULE_DESCRIPTION("RIPEMD-160 Message Digest"); MODULE_DESCRIPTION("RIPEMD-160 Message Digest");
MODULE_ALIAS_CRYPTO("rmd160");
...@@ -346,3 +346,4 @@ module_exit(rmd256_mod_fini); ...@@ -346,3 +346,4 @@ module_exit(rmd256_mod_fini);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_AUTHOR("Adrian-Ken Rueegsegger <ken@codelabs.ch>"); MODULE_AUTHOR("Adrian-Ken Rueegsegger <ken@codelabs.ch>");
MODULE_DESCRIPTION("RIPEMD-256 Message Digest"); MODULE_DESCRIPTION("RIPEMD-256 Message Digest");
MODULE_ALIAS_CRYPTO("rmd256");
...@@ -395,3 +395,4 @@ module_exit(rmd320_mod_fini); ...@@ -395,3 +395,4 @@ module_exit(rmd320_mod_fini);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_AUTHOR("Adrian-Ken Rueegsegger <ken@codelabs.ch>"); MODULE_AUTHOR("Adrian-Ken Rueegsegger <ken@codelabs.ch>");
MODULE_DESCRIPTION("RIPEMD-320 Message Digest"); MODULE_DESCRIPTION("RIPEMD-320 Message Digest");
MODULE_ALIAS_CRYPTO("rmd320");
...@@ -249,4 +249,4 @@ module_exit(salsa20_generic_mod_fini); ...@@ -249,4 +249,4 @@ module_exit(salsa20_generic_mod_fini);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_DESCRIPTION ("Salsa20 stream cipher algorithm"); MODULE_DESCRIPTION ("Salsa20 stream cipher algorithm");
MODULE_ALIAS("salsa20"); MODULE_ALIAS_CRYPTO("salsa20");
...@@ -477,3 +477,4 @@ module_exit(seed_fini); ...@@ -477,3 +477,4 @@ module_exit(seed_fini);
MODULE_DESCRIPTION("SEED Cipher Algorithm"); MODULE_DESCRIPTION("SEED Cipher Algorithm");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_AUTHOR("Hye-Shik Chang <perky@FreeBSD.org>, Kim Hyun <hkim@kisa.or.kr>"); MODULE_AUTHOR("Hye-Shik Chang <perky@FreeBSD.org>, Kim Hyun <hkim@kisa.or.kr>");
MODULE_ALIAS_CRYPTO("seed");
...@@ -584,4 +584,5 @@ module_exit(serpent_mod_fini); ...@@ -584,4 +584,5 @@ module_exit(serpent_mod_fini);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("Serpent and tnepres (kerneli compatible serpent reversed) Cipher Algorithm"); MODULE_DESCRIPTION("Serpent and tnepres (kerneli compatible serpent reversed) Cipher Algorithm");
MODULE_AUTHOR("Dag Arne Osvik <osvik@ii.uib.no>"); MODULE_AUTHOR("Dag Arne Osvik <osvik@ii.uib.no>");
MODULE_ALIAS("tnepres"); MODULE_ALIAS_CRYPTO("tnepres");
MODULE_ALIAS_CRYPTO("serpent");
...@@ -153,4 +153,4 @@ module_exit(sha1_generic_mod_fini); ...@@ -153,4 +153,4 @@ module_exit(sha1_generic_mod_fini);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("SHA1 Secure Hash Algorithm"); MODULE_DESCRIPTION("SHA1 Secure Hash Algorithm");
MODULE_ALIAS("sha1"); MODULE_ALIAS_CRYPTO("sha1");
...@@ -398,5 +398,5 @@ module_exit(sha256_generic_mod_fini); ...@@ -398,5 +398,5 @@ module_exit(sha256_generic_mod_fini);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("SHA-224 and SHA-256 Secure Hash Algorithm"); MODULE_DESCRIPTION("SHA-224 and SHA-256 Secure Hash Algorithm");
MODULE_ALIAS("sha224"); MODULE_ALIAS_CRYPTO("sha224");
MODULE_ALIAS("sha256"); MODULE_ALIAS_CRYPTO("sha256");
...@@ -294,5 +294,5 @@ module_exit(sha512_generic_mod_fini); ...@@ -294,5 +294,5 @@ module_exit(sha512_generic_mod_fini);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("SHA-512 and SHA-384 Secure Hash Algorithms"); MODULE_DESCRIPTION("SHA-512 and SHA-384 Secure Hash Algorithms");
MODULE_ALIAS("sha384"); MODULE_ALIAS_CRYPTO("sha384");
MODULE_ALIAS("sha512"); MODULE_ALIAS_CRYPTO("sha512");
...@@ -299,8 +299,8 @@ static void __exit tea_mod_fini(void) ...@@ -299,8 +299,8 @@ static void __exit tea_mod_fini(void)
crypto_unregister_alg(&xeta_alg); crypto_unregister_alg(&xeta_alg);
} }
MODULE_ALIAS("xtea"); MODULE_ALIAS_CRYPTO("xtea");
MODULE_ALIAS("xeta"); MODULE_ALIAS_CRYPTO("xeta");
module_init(tea_mod_init); module_init(tea_mod_init);
module_exit(tea_mod_fini); module_exit(tea_mod_fini);
......
...@@ -702,8 +702,8 @@ static void __exit tgr192_mod_fini(void) ...@@ -702,8 +702,8 @@ static void __exit tgr192_mod_fini(void)
crypto_unregister_shash(&tgr128); crypto_unregister_shash(&tgr128);
} }
MODULE_ALIAS("tgr160"); MODULE_ALIAS_CRYPTO("tgr160");
MODULE_ALIAS("tgr128"); MODULE_ALIAS_CRYPTO("tgr128");
module_init(tgr192_mod_init); module_init(tgr192_mod_init);
module_exit(tgr192_mod_fini); module_exit(tgr192_mod_fini);
......
...@@ -212,4 +212,4 @@ module_exit(twofish_mod_fini); ...@@ -212,4 +212,4 @@ module_exit(twofish_mod_fini);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_DESCRIPTION ("Twofish Cipher Algorithm"); MODULE_DESCRIPTION ("Twofish Cipher Algorithm");
MODULE_ALIAS("twofish"); MODULE_ALIAS_CRYPTO("twofish");
...@@ -1194,8 +1194,8 @@ static void __exit wp512_mod_fini(void) ...@@ -1194,8 +1194,8 @@ static void __exit wp512_mod_fini(void)
crypto_unregister_shash(&wp256); crypto_unregister_shash(&wp256);
} }
MODULE_ALIAS("wp384"); MODULE_ALIAS_CRYPTO("wp384");
MODULE_ALIAS("wp256"); MODULE_ALIAS_CRYPTO("wp256");
module_init(wp512_mod_init); module_init(wp512_mod_init);
module_exit(wp512_mod_fini); module_exit(wp512_mod_fini);
......
...@@ -378,3 +378,4 @@ module_exit(zlib_mod_fini); ...@@ -378,3 +378,4 @@ module_exit(zlib_mod_fini);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("Zlib Compression Algorithm"); MODULE_DESCRIPTION("Zlib Compression Algorithm");
MODULE_AUTHOR("Sony Corporation"); MODULE_AUTHOR("Sony Corporation");
MODULE_ALIAS_CRYPTO("zlib");
...@@ -559,4 +559,4 @@ MODULE_DESCRIPTION("VIA PadLock AES algorithm support"); ...@@ -559,4 +559,4 @@ MODULE_DESCRIPTION("VIA PadLock AES algorithm support");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_AUTHOR("Michal Ludvig"); MODULE_AUTHOR("Michal Ludvig");
MODULE_ALIAS("aes"); MODULE_ALIAS_CRYPTO("aes");
...@@ -593,7 +593,7 @@ MODULE_DESCRIPTION("VIA PadLock SHA1/SHA256 algorithms support."); ...@@ -593,7 +593,7 @@ MODULE_DESCRIPTION("VIA PadLock SHA1/SHA256 algorithms support.");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_AUTHOR("Michal Ludvig"); MODULE_AUTHOR("Michal Ludvig");
MODULE_ALIAS("sha1-all"); MODULE_ALIAS_CRYPTO("sha1-all");
MODULE_ALIAS("sha256-all"); MODULE_ALIAS_CRYPTO("sha256-all");
MODULE_ALIAS("sha1-padlock"); MODULE_ALIAS_CRYPTO("sha1-padlock");
MODULE_ALIAS("sha256-padlock"); MODULE_ALIAS_CRYPTO("sha256-padlock");
...@@ -24,6 +24,19 @@ ...@@ -24,6 +24,19 @@
#include <linux/string.h> #include <linux/string.h>
#include <linux/uaccess.h> #include <linux/uaccess.h>
/*
* Autoloaded crypto modules should only use a prefixed name to avoid allowing
* arbitrary modules to be loaded. Loading from userspace may still need the
* unprefixed names, so retains those aliases as well.
* This uses __MODULE_INFO directly instead of MODULE_ALIAS because pre-4.3
* gcc (e.g. avr32 toolchain) uses __LINE__ for uniqueness, and this macro
* expands twice on the same line. Instead, use a separate base name for the
* alias.
*/
#define MODULE_ALIAS_CRYPTO(name) \
__MODULE_INFO(alias, alias_userspace, name); \
__MODULE_INFO(alias, alias_crypto, "crypto-" name)
/* /*
* Algorithm masks and types. * Algorithm masks and types.
*/ */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment