Re: [PATCH v2] crypto: prefix module autoloading with "crypto-"
From: Mathias Krause
Date: Mon Nov 17 2014 - 18:20:27 EST
On 17 November 2014 21:02, Kees Cook <keescook@xxxxxxxxxxxx> wrote:
> 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/70
>
> Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx>
> ---
> v2:
> - added missing #include, thanks to minipli
> - built with allmodconfig
> ---
> arch/arm/crypto/aes_glue.c | 4 ++--
> arch/arm/crypto/sha1_glue.c | 2 +-
> arch/arm/crypto/sha1_neon_glue.c | 2 +-
> arch/arm/crypto/sha512_neon_glue.c | 4 ++--
> arch/arm64/crypto/aes-ce-ccm-glue.c | 2 +-
> arch/arm64/crypto/aes-glue.c | 8 ++++----
> arch/powerpc/crypto/sha1.c | 2 +-
> arch/s390/crypto/aes_s390.c | 2 +-
> arch/s390/crypto/des_s390.c | 4 ++--
> arch/s390/crypto/ghash_s390.c | 2 +-
> arch/s390/crypto/sha1_s390.c | 2 +-
> arch/s390/crypto/sha256_s390.c | 4 ++--
> arch/s390/crypto/sha512_s390.c | 4 ++--
> arch/sparc/crypto/aes_glue.c | 2 +-
> arch/sparc/crypto/camellia_glue.c | 2 +-
> arch/sparc/crypto/crc32c_glue.c | 2 +-
> arch/sparc/crypto/des_glue.c | 2 +-
> arch/sparc/crypto/md5_glue.c | 2 +-
> arch/sparc/crypto/sha1_glue.c | 2 +-
> arch/sparc/crypto/sha256_glue.c | 4 ++--
> arch/sparc/crypto/sha512_glue.c | 4 ++--
> arch/x86/crypto/aes_glue.c | 4 ++--
> arch/x86/crypto/aesni-intel_glue.c | 2 +-
> arch/x86/crypto/blowfish_glue.c | 4 ++--
> arch/x86/crypto/camellia_aesni_avx2_glue.c | 4 ++--
> arch/x86/crypto/camellia_aesni_avx_glue.c | 4 ++--
> arch/x86/crypto/camellia_glue.c | 4 ++--
> arch/x86/crypto/cast5_avx_glue.c | 2 +-
> arch/x86/crypto/cast6_avx_glue.c | 2 +-
> arch/x86/crypto/crc32-pclmul_glue.c | 4 ++--
> arch/x86/crypto/crc32c-intel_glue.c | 4 ++--
> arch/x86/crypto/crct10dif-pclmul_glue.c | 4 ++--
> arch/x86/crypto/des3_ede_glue.c | 8 ++++----
> arch/x86/crypto/ghash-clmulni-intel_glue.c | 2 +-
> arch/x86/crypto/salsa20_glue.c | 4 ++--
> arch/x86/crypto/serpent_avx2_glue.c | 4 ++--
> arch/x86/crypto/serpent_avx_glue.c | 2 +-
> arch/x86/crypto/serpent_sse2_glue.c | 2 +-
> arch/x86/crypto/sha1_ssse3_glue.c | 2 +-
> arch/x86/crypto/sha256_ssse3_glue.c | 4 ++--
> arch/x86/crypto/sha512_ssse3_glue.c | 4 ++--
> arch/x86/crypto/twofish_avx_glue.c | 2 +-
> arch/x86/crypto/twofish_glue.c | 4 ++--
> arch/x86/crypto/twofish_glue_3way.c | 4 ++--
> crypto/842.c | 1 +
> crypto/aes_generic.c | 2 +-
> crypto/ansi_cprng.c | 2 +-
> crypto/anubis.c | 1 +
> crypto/api.c | 4 ++--
> crypto/arc4.c | 1 +
> crypto/blowfish_generic.c | 2 +-
> crypto/camellia_generic.c | 2 +-
> crypto/cast5_generic.c | 2 +-
> crypto/cast6_generic.c | 2 +-
> crypto/ccm.c | 4 ++--
> crypto/crc32.c | 1 +
> crypto/crc32c_generic.c | 2 +-
> crypto/crct10dif_generic.c | 2 +-
> crypto/crypto_null.c | 6 +++---
> crypto/ctr.c | 2 +-
> crypto/deflate.c | 2 +-
> crypto/des_generic.c | 2 +-
> crypto/fcrypt.c | 1 +
> crypto/gcm.c | 6 +++---
> crypto/ghash-generic.c | 2 +-
> crypto/khazad.c | 1 +
> crypto/krng.c | 2 +-
> crypto/lz4.c | 1 +
> crypto/lz4hc.c | 1 +
> crypto/lzo.c | 1 +
> crypto/md4.c | 2 +-
> crypto/md5.c | 1 +
> crypto/michael_mic.c | 1 +
> crypto/rmd128.c | 1 +
> crypto/rmd160.c | 1 +
> crypto/rmd256.c | 1 +
> crypto/rmd320.c | 1 +
> crypto/salsa20_generic.c | 2 +-
> crypto/seed.c | 1 +
> crypto/serpent_generic.c | 4 ++--
> crypto/sha1_generic.c | 2 +-
> crypto/sha256_generic.c | 4 ++--
> crypto/sha512_generic.c | 4 ++--
> crypto/tea.c | 4 ++--
> crypto/tgr192.c | 4 ++--
> crypto/twofish_generic.c | 2 +-
> crypto/wp512.c | 4 ++--
> crypto/zlib.c | 1 +
> drivers/crypto/padlock-aes.c | 2 +-
> drivers/crypto/padlock-sha.c | 8 ++++----
> drivers/crypto/qat/qat_common/adf_ctl_drv.c | 3 ++-
> drivers/crypto/ux500/cryp/cryp_core.c | 4 ++--
> drivers/crypto/ux500/hash/hash_core.c | 8 ++++----
> drivers/s390/crypto/ap_bus.c | 2 +-
> include/linux/crypto.h | 7 +++++++
> 95 files changed, 148 insertions(+), 123 deletions(-)
>
> diff --git a/arch/arm/crypto/aes_glue.c b/arch/arm/crypto/aes_glue.c
> index 3003fa1f6fb4..0409b8f89782 100644
> --- a/arch/arm/crypto/aes_glue.c
> +++ b/arch/arm/crypto/aes_glue.c
> @@ -93,6 +93,6 @@ module_exit(aes_fini);
>
> MODULE_DESCRIPTION("Rijndael (AES) Cipher Algorithm (ASM)");
> MODULE_LICENSE("GPL");
> -MODULE_ALIAS("aes");
> -MODULE_ALIAS("aes-asm");
> +MODULE_ALIAS_CRYPTO("aes");
> +MODULE_ALIAS_CRYPTO("aes-asm");
> MODULE_AUTHOR("David McCullough <ucdevel@xxxxxxxxx>");
> diff --git a/arch/arm/crypto/sha1_glue.c b/arch/arm/crypto/sha1_glue.c
> index 84f2a756588b..e31b0440c613 100644
> --- a/arch/arm/crypto/sha1_glue.c
> +++ b/arch/arm/crypto/sha1_glue.c
> @@ -171,5 +171,5 @@ module_exit(sha1_mod_fini);
>
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("SHA1 Secure Hash Algorithm (ARM)");
> -MODULE_ALIAS("sha1");
> +MODULE_ALIAS_CRYPTO("sha1");
> MODULE_AUTHOR("David McCullough <ucdevel@xxxxxxxxx>");
> diff --git a/arch/arm/crypto/sha1_neon_glue.c b/arch/arm/crypto/sha1_neon_glue.c
> index 6f1b411b1d55..0b0083757d47 100644
> --- a/arch/arm/crypto/sha1_neon_glue.c
> +++ b/arch/arm/crypto/sha1_neon_glue.c
> @@ -194,4 +194,4 @@ module_exit(sha1_neon_mod_fini);
>
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("SHA1 Secure Hash Algorithm, NEON accelerated");
> -MODULE_ALIAS("sha1");
> +MODULE_ALIAS_CRYPTO("sha1");
> diff --git a/arch/arm/crypto/sha512_neon_glue.c b/arch/arm/crypto/sha512_neon_glue.c
> index 0d2758ff5e12..f3452c66059d 100644
> --- a/arch/arm/crypto/sha512_neon_glue.c
> +++ b/arch/arm/crypto/sha512_neon_glue.c
> @@ -301,5 +301,5 @@ module_exit(sha512_neon_mod_fini);
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("SHA512 Secure Hash Algorithm, NEON accelerated");
>
> -MODULE_ALIAS("sha512");
> -MODULE_ALIAS("sha384");
> +MODULE_ALIAS_CRYPTO("sha512");
> +MODULE_ALIAS_CRYPTO("sha384");
> diff --git a/arch/arm64/crypto/aes-ce-ccm-glue.c b/arch/arm64/crypto/aes-ce-ccm-glue.c
> index 9e6cdde9b43d..0156a268e163 100644
> --- a/arch/arm64/crypto/aes-ce-ccm-glue.c
> +++ b/arch/arm64/crypto/aes-ce-ccm-glue.c
> @@ -294,4 +294,4 @@ module_exit(aes_mod_exit);
> MODULE_DESCRIPTION("Synchronous AES in CCM mode using ARMv8 Crypto Extensions");
> MODULE_AUTHOR("Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>");
> MODULE_LICENSE("GPL v2");
> -MODULE_ALIAS("ccm(aes)");
> +MODULE_ALIAS_CRYPTO("ccm(aes)");
> diff --git a/arch/arm64/crypto/aes-glue.c b/arch/arm64/crypto/aes-glue.c
> index 79cd911ef88c..5f63a791b2fb 100644
> --- a/arch/arm64/crypto/aes-glue.c
> +++ b/arch/arm64/crypto/aes-glue.c
> @@ -38,10 +38,10 @@ MODULE_DESCRIPTION("AES-ECB/CBC/CTR/XTS using ARMv8 Crypto Extensions");
> #define aes_xts_encrypt neon_aes_xts_encrypt
> #define aes_xts_decrypt neon_aes_xts_decrypt
> MODULE_DESCRIPTION("AES-ECB/CBC/CTR/XTS using ARMv8 NEON");
> -MODULE_ALIAS("ecb(aes)");
> -MODULE_ALIAS("cbc(aes)");
> -MODULE_ALIAS("ctr(aes)");
> -MODULE_ALIAS("xts(aes)");
> +MODULE_ALIAS_CRYPTO("ecb(aes)");
> +MODULE_ALIAS_CRYPTO("cbc(aes)");
> +MODULE_ALIAS_CRYPTO("ctr(aes)");
> +MODULE_ALIAS_CRYPTO("xts(aes)");
> #endif
>
> MODULE_AUTHOR("Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>");
> diff --git a/arch/powerpc/crypto/sha1.c b/arch/powerpc/crypto/sha1.c
> index f9e8b9491efc..0f88c7b41119 100644
> --- a/arch/powerpc/crypto/sha1.c
> +++ b/arch/powerpc/crypto/sha1.c
> @@ -154,4 +154,4 @@ module_exit(sha1_powerpc_mod_fini);
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("SHA1 Secure Hash Algorithm");
>
> -MODULE_ALIAS("sha1-powerpc");
> +MODULE_ALIAS_CRYPTO("sha1-powerpc");
> diff --git a/arch/s390/crypto/aes_s390.c b/arch/s390/crypto/aes_s390.c
> index 23223cd63e54..1f272b24fc0b 100644
> --- a/arch/s390/crypto/aes_s390.c
> +++ b/arch/s390/crypto/aes_s390.c
> @@ -979,7 +979,7 @@ static void __exit aes_s390_fini(void)
> module_init(aes_s390_init);
> module_exit(aes_s390_fini);
>
> -MODULE_ALIAS("aes-all");
> +MODULE_ALIAS_CRYPTO("aes-all");
>
> MODULE_DESCRIPTION("Rijndael (AES) Cipher Algorithm");
> MODULE_LICENSE("GPL");
> diff --git a/arch/s390/crypto/des_s390.c b/arch/s390/crypto/des_s390.c
> index 7acb77f7ef1a..9e05cc453a40 100644
> --- a/arch/s390/crypto/des_s390.c
> +++ b/arch/s390/crypto/des_s390.c
> @@ -619,8 +619,8 @@ static void __exit des_s390_exit(void)
> module_init(des_s390_init);
> module_exit(des_s390_exit);
>
> -MODULE_ALIAS("des");
> -MODULE_ALIAS("des3_ede");
> +MODULE_ALIAS_CRYPTO("des");
> +MODULE_ALIAS_CRYPTO("des3_ede");
>
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("DES & Triple DES EDE Cipher Algorithms");
> diff --git a/arch/s390/crypto/ghash_s390.c b/arch/s390/crypto/ghash_s390.c
> index d43485d142e9..7940dc90e80b 100644
> --- a/arch/s390/crypto/ghash_s390.c
> +++ b/arch/s390/crypto/ghash_s390.c
> @@ -160,7 +160,7 @@ static void __exit ghash_mod_exit(void)
> module_init(ghash_mod_init);
> module_exit(ghash_mod_exit);
>
> -MODULE_ALIAS("ghash");
> +MODULE_ALIAS_CRYPTO("ghash");
>
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("GHASH Message Digest Algorithm, s390 implementation");
> diff --git a/arch/s390/crypto/sha1_s390.c b/arch/s390/crypto/sha1_s390.c
> index a1b3a9dc9d8a..5b2bee323694 100644
> --- a/arch/s390/crypto/sha1_s390.c
> +++ b/arch/s390/crypto/sha1_s390.c
> @@ -103,6 +103,6 @@ static void __exit sha1_s390_fini(void)
> module_init(sha1_s390_init);
> module_exit(sha1_s390_fini);
>
> -MODULE_ALIAS("sha1");
> +MODULE_ALIAS_CRYPTO("sha1");
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("SHA1 Secure Hash Algorithm");
> diff --git a/arch/s390/crypto/sha256_s390.c b/arch/s390/crypto/sha256_s390.c
> index 9b853809a492..b74ff158108c 100644
> --- a/arch/s390/crypto/sha256_s390.c
> +++ b/arch/s390/crypto/sha256_s390.c
> @@ -143,7 +143,7 @@ static void __exit sha256_s390_fini(void)
> module_init(sha256_s390_init);
> module_exit(sha256_s390_fini);
>
> -MODULE_ALIAS("sha256");
> -MODULE_ALIAS("sha224");
> +MODULE_ALIAS_CRYPTO("sha256");
> +MODULE_ALIAS_CRYPTO("sha224");
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("SHA256 and SHA224 Secure Hash Algorithm");
> diff --git a/arch/s390/crypto/sha512_s390.c b/arch/s390/crypto/sha512_s390.c
> index 32a81383b69c..0c36989ba182 100644
> --- a/arch/s390/crypto/sha512_s390.c
> +++ b/arch/s390/crypto/sha512_s390.c
> @@ -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)
> {
> @@ -126,7 +126,7 @@ static struct shash_alg sha384_alg = {
> }
> };
>
> -MODULE_ALIAS("sha384");
> +MODULE_ALIAS_CRYPTO("sha384");
>
> static int __init init(void)
> {
> diff --git a/arch/sparc/crypto/aes_glue.c b/arch/sparc/crypto/aes_glue.c
> index df922f52d76d..705408766ab0 100644
> --- a/arch/sparc/crypto/aes_glue.c
> +++ b/arch/sparc/crypto/aes_glue.c
> @@ -499,6 +499,6 @@ module_exit(aes_sparc64_mod_fini);
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("AES Secure Hash Algorithm, sparc64 aes opcode accelerated");
>
> -MODULE_ALIAS("aes");
> +MODULE_ALIAS_CRYPTO("aes");
>
> #include "crop_devid.c"
> diff --git a/arch/sparc/crypto/camellia_glue.c b/arch/sparc/crypto/camellia_glue.c
> index 888f6260b4ec..641f55cb61c3 100644
> --- a/arch/sparc/crypto/camellia_glue.c
> +++ b/arch/sparc/crypto/camellia_glue.c
> @@ -322,6 +322,6 @@ module_exit(camellia_sparc64_mod_fini);
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("Camellia Cipher Algorithm, sparc64 camellia opcode accelerated");
>
> -MODULE_ALIAS("aes");
> +MODULE_ALIAS_CRYPTO("aes");
>
> #include "crop_devid.c"
> diff --git a/arch/sparc/crypto/crc32c_glue.c b/arch/sparc/crypto/crc32c_glue.c
> index 5162fad912ce..d1064e46efe8 100644
> --- a/arch/sparc/crypto/crc32c_glue.c
> +++ b/arch/sparc/crypto/crc32c_glue.c
> @@ -176,6 +176,6 @@ module_exit(crc32c_sparc64_mod_fini);
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("CRC32c (Castagnoli), sparc64 crc32c opcode accelerated");
>
> -MODULE_ALIAS("crc32c");
> +MODULE_ALIAS_CRYPTO("crc32c");
>
> #include "crop_devid.c"
> diff --git a/arch/sparc/crypto/des_glue.c b/arch/sparc/crypto/des_glue.c
> index 3065bc61f9d3..d11500972994 100644
> --- a/arch/sparc/crypto/des_glue.c
> +++ b/arch/sparc/crypto/des_glue.c
> @@ -532,6 +532,6 @@ module_exit(des_sparc64_mod_fini);
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("DES & Triple DES EDE Cipher Algorithms, sparc64 des opcode accelerated");
>
> -MODULE_ALIAS("des");
> +MODULE_ALIAS_CRYPTO("des");
>
> #include "crop_devid.c"
> diff --git a/arch/sparc/crypto/md5_glue.c b/arch/sparc/crypto/md5_glue.c
> index 09a9ea1dfb69..64c7ff5f72a9 100644
> --- a/arch/sparc/crypto/md5_glue.c
> +++ b/arch/sparc/crypto/md5_glue.c
> @@ -185,6 +185,6 @@ module_exit(md5_sparc64_mod_fini);
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("MD5 Secure Hash Algorithm, sparc64 md5 opcode accelerated");
>
> -MODULE_ALIAS("md5");
> +MODULE_ALIAS_CRYPTO("md5");
>
> #include "crop_devid.c"
> diff --git a/arch/sparc/crypto/sha1_glue.c b/arch/sparc/crypto/sha1_glue.c
> index 6cd5f29e1e0d..1b3e47accc74 100644
> --- a/arch/sparc/crypto/sha1_glue.c
> +++ b/arch/sparc/crypto/sha1_glue.c
> @@ -180,6 +180,6 @@ module_exit(sha1_sparc64_mod_fini);
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("SHA1 Secure Hash Algorithm, sparc64 sha1 opcode accelerated");
>
> -MODULE_ALIAS("sha1");
> +MODULE_ALIAS_CRYPTO("sha1");
>
> #include "crop_devid.c"
> diff --git a/arch/sparc/crypto/sha256_glue.c b/arch/sparc/crypto/sha256_glue.c
> index 04f555ab2680..41f27cca2a22 100644
> --- a/arch/sparc/crypto/sha256_glue.c
> +++ b/arch/sparc/crypto/sha256_glue.c
> @@ -237,7 +237,7 @@ module_exit(sha256_sparc64_mod_fini);
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("SHA-224 and SHA-256 Secure Hash Algorithm, sparc64 sha256 opcode accelerated");
>
> -MODULE_ALIAS("sha224");
> -MODULE_ALIAS("sha256");
> +MODULE_ALIAS_CRYPTO("sha224");
> +MODULE_ALIAS_CRYPTO("sha256");
>
> #include "crop_devid.c"
> diff --git a/arch/sparc/crypto/sha512_glue.c b/arch/sparc/crypto/sha512_glue.c
> index f04d1994d19a..9fff88541b8c 100644
> --- a/arch/sparc/crypto/sha512_glue.c
> +++ b/arch/sparc/crypto/sha512_glue.c
> @@ -222,7 +222,7 @@ module_exit(sha512_sparc64_mod_fini);
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("SHA-384 and SHA-512 Secure Hash Algorithm, sparc64 sha512 opcode accelerated");
>
> -MODULE_ALIAS("sha384");
> -MODULE_ALIAS("sha512");
> +MODULE_ALIAS_CRYPTO("sha384");
> +MODULE_ALIAS_CRYPTO("sha512");
>
> #include "crop_devid.c"
> diff --git a/arch/x86/crypto/aes_glue.c b/arch/x86/crypto/aes_glue.c
> index aafe8ce0d65d..e26984f7ab8d 100644
> --- a/arch/x86/crypto/aes_glue.c
> +++ b/arch/x86/crypto/aes_glue.c
> @@ -66,5 +66,5 @@ module_exit(aes_fini);
>
> MODULE_DESCRIPTION("Rijndael (AES) Cipher Algorithm, asm optimized");
> MODULE_LICENSE("GPL");
> -MODULE_ALIAS("aes");
> -MODULE_ALIAS("aes-asm");
> +MODULE_ALIAS_CRYPTO("aes");
> +MODULE_ALIAS_CRYPTO("aes-asm");
> diff --git a/arch/x86/crypto/aesni-intel_glue.c b/arch/x86/crypto/aesni-intel_glue.c
> index 888950f29fd9..70fece226d17 100644
> --- a/arch/x86/crypto/aesni-intel_glue.c
> +++ b/arch/x86/crypto/aesni-intel_glue.c
> @@ -1550,4 +1550,4 @@ module_exit(aesni_exit);
>
> MODULE_DESCRIPTION("Rijndael (AES) Cipher Algorithm, Intel AES-NI instructions optimized");
> MODULE_LICENSE("GPL");
> -MODULE_ALIAS("aes");
> +MODULE_ALIAS_CRYPTO("aes");
> diff --git a/arch/x86/crypto/blowfish_glue.c b/arch/x86/crypto/blowfish_glue.c
> index 8af519ed73d1..17c05531dfd1 100644
> --- a/arch/x86/crypto/blowfish_glue.c
> +++ b/arch/x86/crypto/blowfish_glue.c
> @@ -478,5 +478,5 @@ module_exit(fini);
>
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("Blowfish Cipher Algorithm, asm optimized");
> -MODULE_ALIAS("blowfish");
> -MODULE_ALIAS("blowfish-asm");
> +MODULE_ALIAS_CRYPTO("blowfish");
> +MODULE_ALIAS_CRYPTO("blowfish-asm");
> diff --git a/arch/x86/crypto/camellia_aesni_avx2_glue.c b/arch/x86/crypto/camellia_aesni_avx2_glue.c
> index 4209a76fcdaa..9a07fafe3831 100644
> --- a/arch/x86/crypto/camellia_aesni_avx2_glue.c
> +++ b/arch/x86/crypto/camellia_aesni_avx2_glue.c
> @@ -582,5 +582,5 @@ module_exit(camellia_aesni_fini);
>
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("Camellia Cipher Algorithm, AES-NI/AVX2 optimized");
> -MODULE_ALIAS("camellia");
> -MODULE_ALIAS("camellia-asm");
> +MODULE_ALIAS_CRYPTO("camellia");
> +MODULE_ALIAS_CRYPTO("camellia-asm");
> diff --git a/arch/x86/crypto/camellia_aesni_avx_glue.c b/arch/x86/crypto/camellia_aesni_avx_glue.c
> index 87a041a10f4a..ed38d959add6 100644
> --- a/arch/x86/crypto/camellia_aesni_avx_glue.c
> +++ b/arch/x86/crypto/camellia_aesni_avx_glue.c
> @@ -574,5 +574,5 @@ module_exit(camellia_aesni_fini);
>
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("Camellia Cipher Algorithm, AES-NI/AVX optimized");
> -MODULE_ALIAS("camellia");
> -MODULE_ALIAS("camellia-asm");
> +MODULE_ALIAS_CRYPTO("camellia");
> +MODULE_ALIAS_CRYPTO("camellia-asm");
> diff --git a/arch/x86/crypto/camellia_glue.c b/arch/x86/crypto/camellia_glue.c
> index c171dcbf192d..5c8b6266a394 100644
> --- a/arch/x86/crypto/camellia_glue.c
> +++ b/arch/x86/crypto/camellia_glue.c
> @@ -1725,5 +1725,5 @@ module_exit(fini);
>
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("Camellia Cipher Algorithm, asm optimized");
> -MODULE_ALIAS("camellia");
> -MODULE_ALIAS("camellia-asm");
> +MODULE_ALIAS_CRYPTO("camellia");
> +MODULE_ALIAS_CRYPTO("camellia-asm");
> diff --git a/arch/x86/crypto/cast5_avx_glue.c b/arch/x86/crypto/cast5_avx_glue.c
> index e57e20ab5e0b..60ada677a928 100644
> --- a/arch/x86/crypto/cast5_avx_glue.c
> +++ b/arch/x86/crypto/cast5_avx_glue.c
> @@ -491,4 +491,4 @@ module_exit(cast5_exit);
>
> MODULE_DESCRIPTION("Cast5 Cipher Algorithm, AVX optimized");
> MODULE_LICENSE("GPL");
> -MODULE_ALIAS("cast5");
> +MODULE_ALIAS_CRYPTO("cast5");
> diff --git a/arch/x86/crypto/cast6_avx_glue.c b/arch/x86/crypto/cast6_avx_glue.c
> index 09f3677393e4..0160f68a57ff 100644
> --- a/arch/x86/crypto/cast6_avx_glue.c
> +++ b/arch/x86/crypto/cast6_avx_glue.c
> @@ -611,4 +611,4 @@ module_exit(cast6_exit);
>
> MODULE_DESCRIPTION("Cast6 Cipher Algorithm, AVX optimized");
> MODULE_LICENSE("GPL");
> -MODULE_ALIAS("cast6");
> +MODULE_ALIAS_CRYPTO("cast6");
> diff --git a/arch/x86/crypto/crc32-pclmul_glue.c b/arch/x86/crypto/crc32-pclmul_glue.c
> index 9d014a74ef96..1937fc1d8763 100644
> --- a/arch/x86/crypto/crc32-pclmul_glue.c
> +++ b/arch/x86/crypto/crc32-pclmul_glue.c
> @@ -197,5 +197,5 @@ module_exit(crc32_pclmul_mod_fini);
> MODULE_AUTHOR("Alexander Boyko <alexander_boyko@xxxxxxxxxxx>");
> MODULE_LICENSE("GPL");
>
> -MODULE_ALIAS("crc32");
> -MODULE_ALIAS("crc32-pclmul");
> +MODULE_ALIAS_CRYPTO("crc32");
> +MODULE_ALIAS_CRYPTO("crc32-pclmul");
> diff --git a/arch/x86/crypto/crc32c-intel_glue.c b/arch/x86/crypto/crc32c-intel_glue.c
> index 6812ad98355c..28640c3d6af7 100644
> --- a/arch/x86/crypto/crc32c-intel_glue.c
> +++ b/arch/x86/crypto/crc32c-intel_glue.c
> @@ -280,5 +280,5 @@ MODULE_AUTHOR("Austin Zhang <austin.zhang@xxxxxxxxx>, Kent Liu <kent.liu@xxxxxxx
> MODULE_DESCRIPTION("CRC32c (Castagnoli) optimization using Intel Hardware.");
> MODULE_LICENSE("GPL");
>
> -MODULE_ALIAS("crc32c");
> -MODULE_ALIAS("crc32c-intel");
> +MODULE_ALIAS_CRYPTO("crc32c");
> +MODULE_ALIAS_CRYPTO("crc32c-intel");
> diff --git a/arch/x86/crypto/crct10dif-pclmul_glue.c b/arch/x86/crypto/crct10dif-pclmul_glue.c
> index 7845d7fd54c0..b6c67bf30fdf 100644
> --- a/arch/x86/crypto/crct10dif-pclmul_glue.c
> +++ b/arch/x86/crypto/crct10dif-pclmul_glue.c
> @@ -147,5 +147,5 @@ MODULE_AUTHOR("Tim Chen <tim.c.chen@xxxxxxxxxxxxxxx>");
> MODULE_DESCRIPTION("T10 DIF CRC calculation accelerated with PCLMULQDQ.");
> MODULE_LICENSE("GPL");
>
> -MODULE_ALIAS("crct10dif");
> -MODULE_ALIAS("crct10dif-pclmul");
> +MODULE_ALIAS_CRYPTO("crct10dif");
> +MODULE_ALIAS_CRYPTO("crct10dif-pclmul");
> diff --git a/arch/x86/crypto/des3_ede_glue.c b/arch/x86/crypto/des3_ede_glue.c
> index 0e9c0668fe4e..38a14f818ef1 100644
> --- a/arch/x86/crypto/des3_ede_glue.c
> +++ b/arch/x86/crypto/des3_ede_glue.c
> @@ -502,8 +502,8 @@ module_exit(des3_ede_x86_fini);
>
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("Triple DES EDE Cipher Algorithm, asm optimized");
> -MODULE_ALIAS("des3_ede");
> -MODULE_ALIAS("des3_ede-asm");
> -MODULE_ALIAS("des");
> -MODULE_ALIAS("des-asm");
> +MODULE_ALIAS_CRYPTO("des3_ede");
> +MODULE_ALIAS_CRYPTO("des3_ede-asm");
> +MODULE_ALIAS_CRYPTO("des");
> +MODULE_ALIAS_CRYPTO("des-asm");
> MODULE_AUTHOR("Jussi Kivilinna <jussi.kivilinna@xxxxxx>");
> diff --git a/arch/x86/crypto/ghash-clmulni-intel_glue.c b/arch/x86/crypto/ghash-clmulni-intel_glue.c
> index 88bb7ba8b175..8253d85aa165 100644
> --- a/arch/x86/crypto/ghash-clmulni-intel_glue.c
> +++ b/arch/x86/crypto/ghash-clmulni-intel_glue.c
> @@ -341,4 +341,4 @@ module_exit(ghash_pclmulqdqni_mod_exit);
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("GHASH Message Digest Algorithm, "
> "acclerated by PCLMULQDQ-NI");
> -MODULE_ALIAS("ghash");
> +MODULE_ALIAS_CRYPTO("ghash");
> diff --git a/arch/x86/crypto/salsa20_glue.c b/arch/x86/crypto/salsa20_glue.c
> index 5e8e67739bb5..399a29d067d6 100644
> --- a/arch/x86/crypto/salsa20_glue.c
> +++ b/arch/x86/crypto/salsa20_glue.c
> @@ -119,5 +119,5 @@ module_exit(fini);
>
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION ("Salsa20 stream cipher algorithm (optimized assembly version)");
> -MODULE_ALIAS("salsa20");
> -MODULE_ALIAS("salsa20-asm");
> +MODULE_ALIAS_CRYPTO("salsa20");
> +MODULE_ALIAS_CRYPTO("salsa20-asm");
> diff --git a/arch/x86/crypto/serpent_avx2_glue.c b/arch/x86/crypto/serpent_avx2_glue.c
> index 2fae489b1524..437e47a4d302 100644
> --- a/arch/x86/crypto/serpent_avx2_glue.c
> +++ b/arch/x86/crypto/serpent_avx2_glue.c
> @@ -558,5 +558,5 @@ module_exit(fini);
>
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("Serpent Cipher Algorithm, AVX2 optimized");
> -MODULE_ALIAS("serpent");
> -MODULE_ALIAS("serpent-asm");
> +MODULE_ALIAS_CRYPTO("serpent");
> +MODULE_ALIAS_CRYPTO("serpent-asm");
> diff --git a/arch/x86/crypto/serpent_avx_glue.c b/arch/x86/crypto/serpent_avx_glue.c
> index ff4870870972..7e217398b4eb 100644
> --- a/arch/x86/crypto/serpent_avx_glue.c
> +++ b/arch/x86/crypto/serpent_avx_glue.c
> @@ -617,4 +617,4 @@ module_exit(serpent_exit);
>
> MODULE_DESCRIPTION("Serpent Cipher Algorithm, AVX optimized");
> MODULE_LICENSE("GPL");
> -MODULE_ALIAS("serpent");
> +MODULE_ALIAS_CRYPTO("serpent");
> diff --git a/arch/x86/crypto/serpent_sse2_glue.c b/arch/x86/crypto/serpent_sse2_glue.c
> index 8c95f8637306..bf025adaea01 100644
> --- a/arch/x86/crypto/serpent_sse2_glue.c
> +++ b/arch/x86/crypto/serpent_sse2_glue.c
> @@ -618,4 +618,4 @@ module_exit(serpent_sse2_exit);
>
> MODULE_DESCRIPTION("Serpent Cipher Algorithm, SSE2 optimized");
> MODULE_LICENSE("GPL");
> -MODULE_ALIAS("serpent");
> +MODULE_ALIAS_CRYPTO("serpent");
> diff --git a/arch/x86/crypto/sha1_ssse3_glue.c b/arch/x86/crypto/sha1_ssse3_glue.c
> index 74d16ef707c7..6c20fe04a738 100644
> --- a/arch/x86/crypto/sha1_ssse3_glue.c
> +++ b/arch/x86/crypto/sha1_ssse3_glue.c
> @@ -278,4 +278,4 @@ module_exit(sha1_ssse3_mod_fini);
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("SHA1 Secure Hash Algorithm, Supplemental SSE3 accelerated");
>
> -MODULE_ALIAS("sha1");
> +MODULE_ALIAS_CRYPTO("sha1");
> diff --git a/arch/x86/crypto/sha256_ssse3_glue.c b/arch/x86/crypto/sha256_ssse3_glue.c
> index f248546da1ca..4dc100d82902 100644
> --- a/arch/x86/crypto/sha256_ssse3_glue.c
> +++ b/arch/x86/crypto/sha256_ssse3_glue.c
> @@ -318,5 +318,5 @@ module_exit(sha256_ssse3_mod_fini);
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("SHA256 Secure Hash Algorithm, Supplemental SSE3 accelerated");
>
> -MODULE_ALIAS("sha256");
> -MODULE_ALIAS("sha224");
> +MODULE_ALIAS_CRYPTO("sha256");
> +MODULE_ALIAS_CRYPTO("sha224");
> diff --git a/arch/x86/crypto/sha512_ssse3_glue.c b/arch/x86/crypto/sha512_ssse3_glue.c
> index 8626b03e83b7..26a5898a6f26 100644
> --- a/arch/x86/crypto/sha512_ssse3_glue.c
> +++ b/arch/x86/crypto/sha512_ssse3_glue.c
> @@ -326,5 +326,5 @@ module_exit(sha512_ssse3_mod_fini);
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("SHA512 Secure Hash Algorithm, Supplemental SSE3 accelerated");
>
> -MODULE_ALIAS("sha512");
> -MODULE_ALIAS("sha384");
> +MODULE_ALIAS_CRYPTO("sha512");
> +MODULE_ALIAS_CRYPTO("sha384");
> diff --git a/arch/x86/crypto/twofish_avx_glue.c b/arch/x86/crypto/twofish_avx_glue.c
> index 4e3c665be129..1ac531ea9bcc 100644
> --- a/arch/x86/crypto/twofish_avx_glue.c
> +++ b/arch/x86/crypto/twofish_avx_glue.c
> @@ -579,4 +579,4 @@ module_exit(twofish_exit);
>
> MODULE_DESCRIPTION("Twofish Cipher Algorithm, AVX optimized");
> MODULE_LICENSE("GPL");
> -MODULE_ALIAS("twofish");
> +MODULE_ALIAS_CRYPTO("twofish");
> diff --git a/arch/x86/crypto/twofish_glue.c b/arch/x86/crypto/twofish_glue.c
> index 0a5202303501..77e06c2da83d 100644
> --- a/arch/x86/crypto/twofish_glue.c
> +++ b/arch/x86/crypto/twofish_glue.c
> @@ -96,5 +96,5 @@ module_exit(fini);
>
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION ("Twofish Cipher Algorithm, asm optimized");
> -MODULE_ALIAS("twofish");
> -MODULE_ALIAS("twofish-asm");
> +MODULE_ALIAS_CRYPTO("twofish");
> +MODULE_ALIAS_CRYPTO("twofish-asm");
> diff --git a/arch/x86/crypto/twofish_glue_3way.c b/arch/x86/crypto/twofish_glue_3way.c
> index 13e63b3e1dfb..56d8a08ee479 100644
> --- a/arch/x86/crypto/twofish_glue_3way.c
> +++ b/arch/x86/crypto/twofish_glue_3way.c
> @@ -495,5 +495,5 @@ module_exit(fini);
>
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("Twofish Cipher Algorithm, 3-way parallel asm optimized");
> -MODULE_ALIAS("twofish");
> -MODULE_ALIAS("twofish-asm");
> +MODULE_ALIAS_CRYPTO("twofish");
> +MODULE_ALIAS_CRYPTO("twofish-asm");
> diff --git a/crypto/842.c b/crypto/842.c
> index 65c7a89cfa09..b48f4f108c47 100644
> --- a/crypto/842.c
> +++ b/crypto/842.c
> @@ -180,3 +180,4 @@ module_exit(nx842_mod_exit);
>
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("842 Compression Algorithm");
> +MODULE_ALIAS_CRYPTO("842");
> diff --git a/crypto/aes_generic.c b/crypto/aes_generic.c
> index fd0d6b454975..9b3c54c1cbe8 100644
> --- a/crypto/aes_generic.c
> +++ b/crypto/aes_generic.c
> @@ -1474,4 +1474,4 @@ module_exit(aes_fini);
>
> MODULE_DESCRIPTION("Rijndael (AES) Cipher Algorithm");
> MODULE_LICENSE("Dual BSD/GPL");
> -MODULE_ALIAS("aes");
> +MODULE_ALIAS_CRYPTO("aes");
> diff --git a/crypto/ansi_cprng.c b/crypto/ansi_cprng.c
> index 666f1962a160..b4485a108389 100644
> --- a/crypto/ansi_cprng.c
> +++ b/crypto/ansi_cprng.c
> @@ -476,4 +476,4 @@ module_param(dbg, int, 0);
> MODULE_PARM_DESC(dbg, "Boolean to enable debugging (0/1 == off/on)");
> module_init(prng_mod_init);
> module_exit(prng_mod_fini);
> -MODULE_ALIAS("stdrng");
> +MODULE_ALIAS_CRYPTO("stdrng");
> diff --git a/crypto/anubis.c b/crypto/anubis.c
> index 008c8a4fb67c..4bb187c2a902 100644
> --- a/crypto/anubis.c
> +++ b/crypto/anubis.c
> @@ -704,3 +704,4 @@ module_exit(anubis_mod_fini);
>
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("Anubis Cryptographic Algorithm");
> +MODULE_ALIAS_CRYPTO("anubis");
> diff --git a/crypto/api.c b/crypto/api.c
> index a2b39c5f3649..2a81e98a0021 100644
> --- a/crypto/api.c
> +++ b/crypto/api.c
> @@ -216,11 +216,11 @@ struct crypto_alg *crypto_larval_lookup(const char *name, u32 type, u32 mask)
>
> alg = crypto_alg_lookup(name, type, mask);
> if (!alg) {
> - request_module("%s", name);
> + request_module("crypto-%s", name);
>
> if (!((type ^ CRYPTO_ALG_NEED_FALLBACK) & mask &
> CRYPTO_ALG_NEED_FALLBACK))
> - request_module("%s-all", name);
> + request_module("crypto-%s-all", name);
>
> alg = crypto_alg_lookup(name, type, mask);
> }
> diff --git a/crypto/arc4.c b/crypto/arc4.c
> index 5a772c3657d5..f1a81925558f 100644
> --- a/crypto/arc4.c
> +++ b/crypto/arc4.c
> @@ -166,3 +166,4 @@ module_exit(arc4_exit);
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("ARC4 Cipher Algorithm");
> MODULE_AUTHOR("Jon Oberheide <jon@xxxxxxxxxxxxx>");
> +MODULE_ALIAS_CRYPTO("arc4");
> diff --git a/crypto/blowfish_generic.c b/crypto/blowfish_generic.c
> index 8baf5447d35b..7bd71f02d0dd 100644
> --- a/crypto/blowfish_generic.c
> +++ b/crypto/blowfish_generic.c
> @@ -138,4 +138,4 @@ module_exit(blowfish_mod_fini);
>
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("Blowfish Cipher Algorithm");
> -MODULE_ALIAS("blowfish");
> +MODULE_ALIAS_CRYPTO("blowfish");
> diff --git a/crypto/camellia_generic.c b/crypto/camellia_generic.c
> index 26bcd7a2d6b4..1b74c5a3e891 100644
> --- a/crypto/camellia_generic.c
> +++ b/crypto/camellia_generic.c
> @@ -1098,4 +1098,4 @@ module_exit(camellia_fini);
>
> MODULE_DESCRIPTION("Camellia Cipher Algorithm");
> MODULE_LICENSE("GPL");
> -MODULE_ALIAS("camellia");
> +MODULE_ALIAS_CRYPTO("camellia");
> diff --git a/crypto/cast5_generic.c b/crypto/cast5_generic.c
> index 5558f630a0eb..84c86db67ec7 100644
> --- a/crypto/cast5_generic.c
> +++ b/crypto/cast5_generic.c
> @@ -549,4 +549,4 @@ module_exit(cast5_mod_fini);
>
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("Cast5 Cipher Algorithm");
> -MODULE_ALIAS("cast5");
> +MODULE_ALIAS_CRYPTO("cast5");
> diff --git a/crypto/cast6_generic.c b/crypto/cast6_generic.c
> index de732528a430..f408f0bd8de2 100644
> --- a/crypto/cast6_generic.c
> +++ b/crypto/cast6_generic.c
> @@ -291,4 +291,4 @@ module_exit(cast6_mod_fini);
>
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("Cast6 Cipher Algorithm");
> -MODULE_ALIAS("cast6");
> +MODULE_ALIAS_CRYPTO("cast6");
> diff --git a/crypto/ccm.c b/crypto/ccm.c
> index 1df84217f7c9..647575b41281 100644
> --- a/crypto/ccm.c
> +++ b/crypto/ccm.c
> @@ -879,5 +879,5 @@ module_exit(crypto_ccm_module_exit);
>
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("Counter with CBC MAC");
> -MODULE_ALIAS("ccm_base");
> -MODULE_ALIAS("rfc4309");
> +MODULE_ALIAS_CRYPTO("ccm_base");
> +MODULE_ALIAS_CRYPTO("rfc4309");
> diff --git a/crypto/crc32.c b/crypto/crc32.c
> index 9d1c41569898..187ded28cb0b 100644
> --- a/crypto/crc32.c
> +++ b/crypto/crc32.c
> @@ -156,3 +156,4 @@ module_exit(crc32_mod_fini);
> MODULE_AUTHOR("Alexander Boyko <alexander_boyko@xxxxxxxxxxx>");
> MODULE_DESCRIPTION("CRC32 calculations wrapper for lib/crc32");
> MODULE_LICENSE("GPL");
> +MODULE_ALIAS_CRYPTO("crc32");
> diff --git a/crypto/crc32c_generic.c b/crypto/crc32c_generic.c
> index d9c7beba8e50..2a062025749d 100644
> --- a/crypto/crc32c_generic.c
> +++ b/crypto/crc32c_generic.c
> @@ -170,5 +170,5 @@ module_exit(crc32c_mod_fini);
> MODULE_AUTHOR("Clay Haapala <chaapala@xxxxxxxxx>");
> MODULE_DESCRIPTION("CRC32c (Castagnoli) calculations wrapper for lib/crc32c");
> MODULE_LICENSE("GPL");
> -MODULE_ALIAS("crc32c");
> +MODULE_ALIAS_CRYPTO("crc32c");
> MODULE_SOFTDEP("pre: crc32c");
> diff --git a/crypto/crct10dif_generic.c b/crypto/crct10dif_generic.c
> index 877e7114ec5c..08bb4f504520 100644
> --- a/crypto/crct10dif_generic.c
> +++ b/crypto/crct10dif_generic.c
> @@ -124,4 +124,4 @@ module_exit(crct10dif_mod_fini);
> MODULE_AUTHOR("Tim Chen <tim.c.chen@xxxxxxxxxxxxxxx>");
> MODULE_DESCRIPTION("T10 DIF CRC calculation.");
> MODULE_LICENSE("GPL");
> -MODULE_ALIAS("crct10dif");
> +MODULE_ALIAS_CRYPTO("crct10dif");
> diff --git a/crypto/crypto_null.c b/crypto/crypto_null.c
> index 1dc54bb95a87..a20319132e33 100644
> --- a/crypto/crypto_null.c
> +++ b/crypto/crypto_null.c
> @@ -145,9 +145,9 @@ static struct crypto_alg null_algs[3] = { {
> .coa_decompress = null_compress } }
> } };
>
> -MODULE_ALIAS("compress_null");
> -MODULE_ALIAS("digest_null");
> -MODULE_ALIAS("cipher_null");
> +MODULE_ALIAS_CRYPTO("compress_null");
> +MODULE_ALIAS_CRYPTO("digest_null");
> +MODULE_ALIAS_CRYPTO("cipher_null");
>
> static int __init crypto_null_mod_init(void)
> {
> diff --git a/crypto/ctr.c b/crypto/ctr.c
> index f2b94f27bb2c..3d81ff7e6b48 100644
> --- a/crypto/ctr.c
> +++ b/crypto/ctr.c
> @@ -466,4 +466,4 @@ module_exit(crypto_ctr_module_exit);
>
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("CTR Counter block mode");
> -MODULE_ALIAS("rfc3686");
> +MODULE_ALIAS_CRYPTO("rfc3686");
> diff --git a/crypto/deflate.c b/crypto/deflate.c
> index b57d70eb156b..95d8d37c5021 100644
> --- a/crypto/deflate.c
> +++ b/crypto/deflate.c
> @@ -222,4 +222,4 @@ module_exit(deflate_mod_fini);
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("Deflate Compression Algorithm for IPCOMP");
> MODULE_AUTHOR("James Morris <jmorris@xxxxxxxxxxxxxxxx>");
> -
> +MODULE_ALIAS_CRYPTO("deflate");
> diff --git a/crypto/des_generic.c b/crypto/des_generic.c
> index 298d464ab7d2..42912948776b 100644
> --- a/crypto/des_generic.c
> +++ b/crypto/des_generic.c
> @@ -983,7 +983,7 @@ static struct crypto_alg des_algs[2] = { {
> .cia_decrypt = des3_ede_decrypt } }
> } };
>
> -MODULE_ALIAS("des3_ede");
> +MODULE_ALIAS_CRYPTO("des3_ede");
>
> static int __init des_generic_mod_init(void)
> {
> diff --git a/crypto/fcrypt.c b/crypto/fcrypt.c
> index 021d7fec6bc8..77286ea28865 100644
> --- a/crypto/fcrypt.c
> +++ b/crypto/fcrypt.c
> @@ -420,3 +420,4 @@ module_exit(fcrypt_mod_fini);
> MODULE_LICENSE("Dual BSD/GPL");
> MODULE_DESCRIPTION("FCrypt Cipher Algorithm");
> MODULE_AUTHOR("David Howells <dhowells@xxxxxxxxxx>");
> +MODULE_ALIAS_CRYPTO("fcrypt");
> diff --git a/crypto/gcm.c b/crypto/gcm.c
> index 276cdac567b6..aefb74a3f522 100644
> --- a/crypto/gcm.c
> +++ b/crypto/gcm.c
> @@ -1441,6 +1441,6 @@ module_exit(crypto_gcm_module_exit);
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("Galois/Counter Mode");
> MODULE_AUTHOR("Mikko Herranen <mh1@xxxxxx>");
> -MODULE_ALIAS("gcm_base");
> -MODULE_ALIAS("rfc4106");
> -MODULE_ALIAS("rfc4543");
> +MODULE_ALIAS_CRYPTO("gcm_base");
> +MODULE_ALIAS_CRYPTO("rfc4106");
> +MODULE_ALIAS_CRYPTO("rfc4543");
> diff --git a/crypto/ghash-generic.c b/crypto/ghash-generic.c
> index 9d3f0c69a86f..4e97fae9666f 100644
> --- a/crypto/ghash-generic.c
> +++ b/crypto/ghash-generic.c
> @@ -172,4 +172,4 @@ module_exit(ghash_mod_exit);
>
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("GHASH Message Digest Algorithm");
> -MODULE_ALIAS("ghash");
> +MODULE_ALIAS_CRYPTO("ghash");
> diff --git a/crypto/khazad.c b/crypto/khazad.c
> index 60e7cd66facc..873eb5ded6d7 100644
> --- a/crypto/khazad.c
> +++ b/crypto/khazad.c
> @@ -880,3 +880,4 @@ module_exit(khazad_mod_fini);
>
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("Khazad Cryptographic Algorithm");
> +MODULE_ALIAS_CRYPTO("khazad");
> diff --git a/crypto/krng.c b/crypto/krng.c
> index a2d2b72fc135..67c88b331210 100644
> --- a/crypto/krng.c
> +++ b/crypto/krng.c
> @@ -62,4 +62,4 @@ module_exit(krng_mod_fini);
>
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("Kernel Random Number Generator");
> -MODULE_ALIAS("stdrng");
> +MODULE_ALIAS_CRYPTO("stdrng");
> diff --git a/crypto/lz4.c b/crypto/lz4.c
> index 34d072b72a73..aefbceaf3104 100644
> --- a/crypto/lz4.c
> +++ b/crypto/lz4.c
> @@ -104,3 +104,4 @@ module_exit(lz4_mod_fini);
>
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("LZ4 Compression Algorithm");
> +MODULE_ALIAS_CRYPTO("lz4");
> diff --git a/crypto/lz4hc.c b/crypto/lz4hc.c
> index 9218b3fed5e3..a1d3b5bd3d85 100644
> --- a/crypto/lz4hc.c
> +++ b/crypto/lz4hc.c
> @@ -104,3 +104,4 @@ module_exit(lz4hc_mod_fini);
>
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("LZ4HC Compression Algorithm");
> +MODULE_ALIAS_CRYPTO("lz4hc");
> diff --git a/crypto/lzo.c b/crypto/lzo.c
> index a8ff2f778dc4..4b3e92525dac 100644
> --- a/crypto/lzo.c
> +++ b/crypto/lzo.c
> @@ -107,3 +107,4 @@ module_exit(lzo_mod_fini);
>
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("LZO Compression Algorithm");
> +MODULE_ALIAS_CRYPTO("lzo");
> diff --git a/crypto/md4.c b/crypto/md4.c
> index 0477a6a01d58..3515af425cc9 100644
> --- a/crypto/md4.c
> +++ b/crypto/md4.c
> @@ -255,4 +255,4 @@ module_exit(md4_mod_fini);
>
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("MD4 Message Digest Algorithm");
> -
> +MODULE_ALIAS_CRYPTO("md4");
> diff --git a/crypto/md5.c b/crypto/md5.c
> index 7febeaab923b..36f5e5b103f3 100644
> --- a/crypto/md5.c
> +++ b/crypto/md5.c
> @@ -168,3 +168,4 @@ module_exit(md5_mod_fini);
>
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("MD5 Message Digest Algorithm");
> +MODULE_ALIAS_CRYPTO("md5");
> diff --git a/crypto/michael_mic.c b/crypto/michael_mic.c
> index 079b761bc70d..46195e0d0f4d 100644
> --- a/crypto/michael_mic.c
> +++ b/crypto/michael_mic.c
> @@ -184,3 +184,4 @@ module_exit(michael_mic_exit);
> MODULE_LICENSE("GPL v2");
> MODULE_DESCRIPTION("Michael MIC");
> MODULE_AUTHOR("Jouni Malinen <j@xxxxx>");
> +MODULE_ALIAS_CRYPTO("michael_mic");
> diff --git a/crypto/rmd128.c b/crypto/rmd128.c
> index 8a0f68b7f257..049486ede938 100644
> --- a/crypto/rmd128.c
> +++ b/crypto/rmd128.c
> @@ -327,3 +327,4 @@ module_exit(rmd128_mod_fini);
> MODULE_LICENSE("GPL");
> MODULE_AUTHOR("Adrian-Ken Rueegsegger <ken@xxxxxxxxxxx>");
> MODULE_DESCRIPTION("RIPEMD-128 Message Digest");
> +MODULE_ALIAS_CRYPTO("rmd128");
> diff --git a/crypto/rmd160.c b/crypto/rmd160.c
> index 525d7bb752cf..de585e51d455 100644
> --- a/crypto/rmd160.c
> +++ b/crypto/rmd160.c
> @@ -371,3 +371,4 @@ module_exit(rmd160_mod_fini);
> MODULE_LICENSE("GPL");
> MODULE_AUTHOR("Adrian-Ken Rueegsegger <ken@xxxxxxxxxxx>");
> MODULE_DESCRIPTION("RIPEMD-160 Message Digest");
> +MODULE_ALIAS_CRYPTO("rmd160");
> diff --git a/crypto/rmd256.c b/crypto/rmd256.c
> index 69293d9b56e0..4ec02a754e09 100644
> --- a/crypto/rmd256.c
> +++ b/crypto/rmd256.c
> @@ -346,3 +346,4 @@ module_exit(rmd256_mod_fini);
> MODULE_LICENSE("GPL");
> MODULE_AUTHOR("Adrian-Ken Rueegsegger <ken@xxxxxxxxxxx>");
> MODULE_DESCRIPTION("RIPEMD-256 Message Digest");
> +MODULE_ALIAS_CRYPTO("rmd256");
> diff --git a/crypto/rmd320.c b/crypto/rmd320.c
> index 09f97dfdfbba..770f2cb369f8 100644
> --- a/crypto/rmd320.c
> +++ b/crypto/rmd320.c
> @@ -395,3 +395,4 @@ module_exit(rmd320_mod_fini);
> MODULE_LICENSE("GPL");
> MODULE_AUTHOR("Adrian-Ken Rueegsegger <ken@xxxxxxxxxxx>");
> MODULE_DESCRIPTION("RIPEMD-320 Message Digest");
> +MODULE_ALIAS_CRYPTO("rmd320");
> diff --git a/crypto/salsa20_generic.c b/crypto/salsa20_generic.c
> index 9a4770c02284..3d0f9df30ac9 100644
> --- a/crypto/salsa20_generic.c
> +++ b/crypto/salsa20_generic.c
> @@ -248,4 +248,4 @@ module_exit(salsa20_generic_mod_fini);
>
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION ("Salsa20 stream cipher algorithm");
> -MODULE_ALIAS("salsa20");
> +MODULE_ALIAS_CRYPTO("salsa20");
> diff --git a/crypto/seed.c b/crypto/seed.c
> index 9c904d6d2151..c6ba8438be43 100644
> --- a/crypto/seed.c
> +++ b/crypto/seed.c
> @@ -476,3 +476,4 @@ module_exit(seed_fini);
> MODULE_DESCRIPTION("SEED Cipher Algorithm");
> MODULE_LICENSE("GPL");
> MODULE_AUTHOR("Hye-Shik Chang <perky@xxxxxxxxxxx>, Kim Hyun <hkim@xxxxxxxxxx>");
> +MODULE_ALIAS_CRYPTO("seed");
> diff --git a/crypto/serpent_generic.c b/crypto/serpent_generic.c
> index 7ddbd7e88859..a53b5e2af335 100644
> --- a/crypto/serpent_generic.c
> +++ b/crypto/serpent_generic.c
> @@ -665,5 +665,5 @@ module_exit(serpent_mod_fini);
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("Serpent and tnepres (kerneli compatible serpent reversed) Cipher Algorithm");
> MODULE_AUTHOR("Dag Arne Osvik <osvik@xxxxxxxxx>");
> -MODULE_ALIAS("tnepres");
> -MODULE_ALIAS("serpent");
> +MODULE_ALIAS_CRYPTO("tnepres");
> +MODULE_ALIAS_CRYPTO("serpent");
> diff --git a/crypto/sha1_generic.c b/crypto/sha1_generic.c
> index 7bb047432782..039e58cfa155 100644
> --- a/crypto/sha1_generic.c
> +++ b/crypto/sha1_generic.c
> @@ -153,4 +153,4 @@ module_exit(sha1_generic_mod_fini);
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("SHA1 Secure Hash Algorithm");
>
> -MODULE_ALIAS("sha1");
> +MODULE_ALIAS_CRYPTO("sha1");
> diff --git a/crypto/sha256_generic.c b/crypto/sha256_generic.c
> index 65e7b76b057f..5eb21b120033 100644
> --- a/crypto/sha256_generic.c
> +++ b/crypto/sha256_generic.c
> @@ -384,5 +384,5 @@ module_exit(sha256_generic_mod_fini);
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("SHA-224 and SHA-256 Secure Hash Algorithm");
>
> -MODULE_ALIAS("sha224");
> -MODULE_ALIAS("sha256");
> +MODULE_ALIAS_CRYPTO("sha224");
> +MODULE_ALIAS_CRYPTO("sha256");
> diff --git a/crypto/sha512_generic.c b/crypto/sha512_generic.c
> index 95db67197cd9..8d0b19ed4f4b 100644
> --- a/crypto/sha512_generic.c
> +++ b/crypto/sha512_generic.c
> @@ -288,5 +288,5 @@ module_exit(sha512_generic_mod_fini);
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("SHA-512 and SHA-384 Secure Hash Algorithms");
>
> -MODULE_ALIAS("sha384");
> -MODULE_ALIAS("sha512");
> +MODULE_ALIAS_CRYPTO("sha384");
> +MODULE_ALIAS_CRYPTO("sha512");
> diff --git a/crypto/tea.c b/crypto/tea.c
> index 0a572323ee4a..495be2d0077d 100644
> --- a/crypto/tea.c
> +++ b/crypto/tea.c
> @@ -270,8 +270,8 @@ static void __exit tea_mod_fini(void)
> crypto_unregister_algs(tea_algs, ARRAY_SIZE(tea_algs));
> }
>
> -MODULE_ALIAS("xtea");
> -MODULE_ALIAS("xeta");
> +MODULE_ALIAS_CRYPTO("xtea");
> +MODULE_ALIAS_CRYPTO("xeta");
>
> module_init(tea_mod_init);
> module_exit(tea_mod_fini);
> diff --git a/crypto/tgr192.c b/crypto/tgr192.c
> index 3c7af0d1ff7a..6e5651c66cf8 100644
> --- a/crypto/tgr192.c
> +++ b/crypto/tgr192.c
> @@ -676,8 +676,8 @@ static void __exit tgr192_mod_fini(void)
> crypto_unregister_shashes(tgr_algs, ARRAY_SIZE(tgr_algs));
> }
>
> -MODULE_ALIAS("tgr160");
> -MODULE_ALIAS("tgr128");
> +MODULE_ALIAS_CRYPTO("tgr160");
> +MODULE_ALIAS_CRYPTO("tgr128");
>
> module_init(tgr192_mod_init);
> module_exit(tgr192_mod_fini);
> diff --git a/crypto/twofish_generic.c b/crypto/twofish_generic.c
> index 2d5000552d0f..523ad8c4e359 100644
> --- a/crypto/twofish_generic.c
> +++ b/crypto/twofish_generic.c
> @@ -211,4 +211,4 @@ module_exit(twofish_mod_fini);
>
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION ("Twofish Cipher Algorithm");
> -MODULE_ALIAS("twofish");
> +MODULE_ALIAS_CRYPTO("twofish");
> diff --git a/crypto/wp512.c b/crypto/wp512.c
> index ec64e7762fbb..0de42eb3d040 100644
> --- a/crypto/wp512.c
> +++ b/crypto/wp512.c
> @@ -1167,8 +1167,8 @@ static void __exit wp512_mod_fini(void)
> crypto_unregister_shashes(wp_algs, ARRAY_SIZE(wp_algs));
> }
>
> -MODULE_ALIAS("wp384");
> -MODULE_ALIAS("wp256");
> +MODULE_ALIAS_CRYPTO("wp384");
> +MODULE_ALIAS_CRYPTO("wp256");
>
> module_init(wp512_mod_init);
> module_exit(wp512_mod_fini);
> diff --git a/crypto/zlib.c b/crypto/zlib.c
> index c9ee681d57fd..0eefa9d237ac 100644
> --- a/crypto/zlib.c
> +++ b/crypto/zlib.c
> @@ -378,3 +378,4 @@ module_exit(zlib_mod_fini);
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("Zlib Compression Algorithm");
> MODULE_AUTHOR("Sony Corporation");
> +MODULE_ALIAS_CRYPTO("zlib");
> diff --git a/drivers/crypto/padlock-aes.c b/drivers/crypto/padlock-aes.c
> index 633ba945e153..c178ed8c3908 100644
> --- a/drivers/crypto/padlock-aes.c
> +++ b/drivers/crypto/padlock-aes.c
> @@ -563,4 +563,4 @@ MODULE_DESCRIPTION("VIA PadLock AES algorithm support");
> MODULE_LICENSE("GPL");
> MODULE_AUTHOR("Michal Ludvig");
>
> -MODULE_ALIAS("aes");
> +MODULE_ALIAS_CRYPTO("aes");
> diff --git a/drivers/crypto/padlock-sha.c b/drivers/crypto/padlock-sha.c
> index bace885634f2..95f7d27ce491 100644
> --- a/drivers/crypto/padlock-sha.c
> +++ b/drivers/crypto/padlock-sha.c
> @@ -593,7 +593,7 @@ MODULE_DESCRIPTION("VIA PadLock SHA1/SHA256 algorithms support.");
> MODULE_LICENSE("GPL");
> MODULE_AUTHOR("Michal Ludvig");
>
> -MODULE_ALIAS("sha1-all");
> -MODULE_ALIAS("sha256-all");
> -MODULE_ALIAS("sha1-padlock");
> -MODULE_ALIAS("sha256-padlock");
> +MODULE_ALIAS_CRYPTO("sha1-all");
> +MODULE_ALIAS_CRYPTO("sha256-all");
> +MODULE_ALIAS_CRYPTO("sha1-padlock");
> +MODULE_ALIAS_CRYPTO("sha256-padlock");
> diff --git a/drivers/crypto/qat/qat_common/adf_ctl_drv.c b/drivers/crypto/qat/qat_common/adf_ctl_drv.c
> index 244d73378f0e..7ee93f881db6 100644
> --- a/drivers/crypto/qat/qat_common/adf_ctl_drv.c
> +++ b/drivers/crypto/qat/qat_common/adf_ctl_drv.c
> @@ -52,6 +52,7 @@
> #include <linux/pci.h>
> #include <linux/cdev.h>
> #include <linux/uaccess.h>
> +#include <linux/crypto.h>
>
> #include "adf_accel_devices.h"
> #include "adf_common_drv.h"
> @@ -487,4 +488,4 @@ module_exit(adf_unregister_ctl_device_driver);
> MODULE_LICENSE("Dual BSD/GPL");
> MODULE_AUTHOR("Intel");
> MODULE_DESCRIPTION("Intel(R) QuickAssist Technology");
> -MODULE_ALIAS("intel_qat");
> +MODULE_ALIAS_CRYPTO("intel_qat");
> diff --git a/drivers/crypto/ux500/cryp/cryp_core.c b/drivers/crypto/ux500/cryp/cryp_core.c
> index 92105f3dc8e0..e4cea7c45142 100644
> --- a/drivers/crypto/ux500/cryp/cryp_core.c
> +++ b/drivers/crypto/ux500/cryp/cryp_core.c
> @@ -1810,7 +1810,7 @@ module_exit(ux500_cryp_mod_fini);
> module_param(cryp_mode, int, 0);
>
> MODULE_DESCRIPTION("Driver for ST-Ericsson UX500 CRYP crypto engine.");
> -MODULE_ALIAS("aes-all");
> -MODULE_ALIAS("des-all");
> +MODULE_ALIAS_CRYPTO("aes-all");
> +MODULE_ALIAS_CRYPTO("des-all");
>
> MODULE_LICENSE("GPL");
> diff --git a/drivers/crypto/ux500/hash/hash_core.c b/drivers/crypto/ux500/hash/hash_core.c
> index 1c73f4fbc252..8e5e0187506f 100644
> --- a/drivers/crypto/ux500/hash/hash_core.c
> +++ b/drivers/crypto/ux500/hash/hash_core.c
> @@ -1995,7 +1995,7 @@ module_exit(ux500_hash_mod_fini);
> MODULE_DESCRIPTION("Driver for ST-Ericsson UX500 HASH engine.");
> MODULE_LICENSE("GPL");
>
> -MODULE_ALIAS("sha1-all");
> -MODULE_ALIAS("sha256-all");
> -MODULE_ALIAS("hmac-sha1-all");
> -MODULE_ALIAS("hmac-sha256-all");
> +MODULE_ALIAS_CRYPTO("sha1-all");
> +MODULE_ALIAS_CRYPTO("sha256-all");
> +MODULE_ALIAS_CRYPTO("hmac-sha1-all");
> +MODULE_ALIAS_CRYPTO("hmac-sha256-all");
> diff --git a/drivers/s390/crypto/ap_bus.c b/drivers/s390/crypto/ap_bus.c
> index 99485415dcc2..a058df192c42 100644
> --- a/drivers/s390/crypto/ap_bus.c
> +++ b/drivers/s390/crypto/ap_bus.c
> @@ -71,7 +71,7 @@ MODULE_AUTHOR("IBM Corporation");
> MODULE_DESCRIPTION("Adjunct Processor Bus driver, " \
> "Copyright IBM Corp. 2006, 2012");
> MODULE_LICENSE("GPL");
> -MODULE_ALIAS("z90crypt");
> +MODULE_ALIAS_CRYPTO("z90crypt");
>
> /*
> * Module parameter
> diff --git a/include/linux/crypto.h b/include/linux/crypto.h
> index d45e949699ea..d14230f6e977 100644
> --- a/include/linux/crypto.h
> +++ b/include/linux/crypto.h
> @@ -26,6 +26,13 @@
> #include <linux/uaccess.h>
>
> /*
> + * Autoloaded crypto modules should only use a prefixed name to avoid allowing
> + * arbitrary modules to be loaded.
> + */
> +#define MODULE_ALIAS_CRYPTO(name) \
> + MODULE_ALIAS("crypto-" name)
This would break userland relying on the old aliases, e.g. 'modprobe
aes' no longer works.
Why not have both aliases, one with the "crypto-" prefix for on-demand
loading within the crypto API and one without for manual loading from
userland? E.g., something like this:
#define MODULE_ALIAS_CRYPTO(name) \
MODULE_ALIAS(name); \
MODULE_ALIAS("crypto-" name)
That would prevent the userland breakage and still achieves the goal
of restricting the request_module() call offered by the means of the
AF_ALG API.
Regards,
Mathias
> +
> +/*
> * Algorithm masks and types.
> */
> #define CRYPTO_ALG_TYPE_MASK 0x0000000f
> --
> 1.9.1
>
>
> --
> Kees Cook
> Chrome OS Security
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/