2015-01-11 17:18:12

by Mathias Krause

[permalink] [raw]
Subject: [PATCH 0/6] crypto: module alias fixes

Hi Herbert,

this series is a follow up to commit 5d26a105b5a7 ("crypto: prefix
module autoloading with "crypto-""). In patch 1 it adds the required
MODULE_ALIAS_CRYPTO annotation where needed to bring back automatic
crypto module loading. Namely, modules that have a file name matching
the cipher they implement still need the MODULE_ALIAS_CRYPTO()
annotation. Otherwise they won't get loaded.

Patches 2 to 6 fix bogus module descriptions or aliases with the
exception of patch 4 which adds a missing crypto module alias.

At least patch 1 should go to crypto-2.6 to not regress the crypto API
for v3.19 in regard to automatic module loading.

The others are probably safe to apply, too.

Please apply!

Thanks,

Mathias Krause (6):
crypto: add missing crypto module aliases
crypto: sparc64/aes - fix module description
crypto: sparc64/camellia - fix module alias
crypto: sparc64/des - add "des3_ede" module alias
crypto: sparc64/md5 - fix module description
crypto: x86/des3_ede - drop bogus module aliases

arch/powerpc/crypto/sha1.c | 1 +
arch/sparc/crypto/aes_glue.c | 2 +-
arch/sparc/crypto/camellia_glue.c | 2 +-
arch/sparc/crypto/des_glue.c | 1 +
arch/sparc/crypto/md5_glue.c | 2 +-
arch/x86/crypto/des3_ede_glue.c | 2 --
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 +
27 files changed, 31 insertions(+), 9 deletions(-)

--
1.7.10.4


2015-01-11 17:18:13

by Mathias Krause

[permalink] [raw]
Subject: [PATCH 1/6] crypto: add missing crypto module aliases

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 <[email protected]>
Signed-off-by: Mathias Krause <[email protected]>
---
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_generic.c
@@ -171,4 +171,5 @@ MODULE_AUTHOR("Clay Haapala <[email protected]>");
MODULE_DESCRIPTION("CRC32c (Castagnoli) calculations wrapper for lib/crc32c");
MODULE_LICENSE("GPL");
MODULE_ALIAS_CRYPTO("crc32c");
+MODULE_ALIAS_CRYPTO("crc32c-generic");
MODULE_SOFTDEP("pre: crc32c");
diff --git a/crypto/crct10dif_generic.c b/crypto/crct10dif_generic.c
index 08bb4f504520..c1229614c7e3 100644
--- a/crypto/crct10dif_generic.c
+++ b/crypto/crct10dif_generic.c
@@ -125,3 +125,4 @@ MODULE_AUTHOR("Tim Chen <[email protected]>");
MODULE_DESCRIPTION("T10 DIF CRC calculation.");
MODULE_LICENSE("GPL");
MODULE_ALIAS_CRYPTO("crct10dif");
+MODULE_ALIAS_CRYPTO("crct10dif-generic");
diff --git a/crypto/des_generic.c b/crypto/des_generic.c
index 42912948776b..a71720544d11 100644
--- a/crypto/des_generic.c
+++ b/crypto/des_generic.c
@@ -983,8 +983,6 @@ static struct crypto_alg des_algs[2] = { {
.cia_decrypt = des3_ede_decrypt } }
} };

-MODULE_ALIAS_CRYPTO("des3_ede");
-
static int __init des_generic_mod_init(void)
{
return crypto_register_algs(des_algs, ARRAY_SIZE(des_algs));
@@ -1001,4 +999,7 @@ module_exit(des_generic_mod_fini);
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("DES & Triple DES EDE Cipher Algorithms");
MODULE_AUTHOR("Dag Arne Osvik <[email protected]>");
-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 4e97fae9666f..bac70995e064 100644
--- a/crypto/ghash-generic.c
+++ b/crypto/ghash-generic.c
@@ -173,3 +173,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 67c88b331210..0224841b6579 100644
--- a/crypto/krng.c
+++ b/crypto/krng.c
@@ -63,3 +63,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 3d0f9df30ac9..f550b5d94630 100644
--- a/crypto/salsa20_generic.c
+++ b/crypto/salsa20_generic.c
@@ -249,3 +249,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/serpent_generic.c b/crypto/serpent_generic.c
index a53b5e2af335..94970a794975 100644
--- a/crypto/serpent_generic.c
+++ b/crypto/serpent_generic.c
@@ -667,3 +667,4 @@ MODULE_DESCRIPTION("Serpent and tnepres (kerneli compatible serpent reversed) Ci
MODULE_AUTHOR("Dag Arne Osvik <[email protected]>");
MODULE_ALIAS_CRYPTO("tnepres");
MODULE_ALIAS_CRYPTO("serpent");
+MODULE_ALIAS_CRYPTO("serpent-generic");
diff --git a/crypto/sha1_generic.c b/crypto/sha1_generic.c
index 039e58cfa155..a3e50c37eb6f 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 5eb21b120033..b001ff5c2efc 100644
--- a/crypto/sha256_generic.c
+++ b/crypto/sha256_generic.c
@@ -385,4 +385,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 8d0b19ed4f4b..1c3c3767e079 100644
--- a/crypto/sha512_generic.c
+++ b/crypto/sha512_generic.c
@@ -289,4 +289,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 495be2d0077d..b70b441c7d1e 100644
--- a/crypto/tea.c
+++ b/crypto/tea.c
@@ -270,6 +270,7 @@ static void __exit tea_mod_fini(void)
crypto_unregister_algs(tea_algs, ARRAY_SIZE(tea_algs));
}

+MODULE_ALIAS_CRYPTO("tea");
MODULE_ALIAS_CRYPTO("xtea");
MODULE_ALIAS_CRYPTO("xeta");

diff --git a/crypto/tgr192.c b/crypto/tgr192.c
index 6e5651c66cf8..321bc6ff2a9d 100644
--- a/crypto/tgr192.c
+++ b/crypto/tgr192.c
@@ -676,6 +676,7 @@ static void __exit tgr192_mod_fini(void)
crypto_unregister_shashes(tgr_algs, ARRAY_SIZE(tgr_algs));
}

+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 523ad8c4e359..ebf7a3efb572 100644
--- a/crypto/twofish_generic.c
+++ b/crypto/twofish_generic.c
@@ -212,3 +212,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 0de42eb3d040..7ee5a043a988 100644
--- a/crypto/wp512.c
+++ b/crypto/wp512.c
@@ -1167,6 +1167,7 @@ static void __exit wp512_mod_fini(void)
crypto_unregister_shashes(wp_algs, ARRAY_SIZE(wp_algs));
}

+MODULE_ALIAS_CRYPTO("wp512");
MODULE_ALIAS_CRYPTO("wp384");
MODULE_ALIAS_CRYPTO("wp256");

--
1.7.10.4

2015-01-11 17:18:14

by Mathias Krause

[permalink] [raw]
Subject: [PATCH 3/6] crypto: sparc64/camellia - fix module alias

The module alias should be "camellia", not "aes".

Cc: David S. Miller <[email protected]>
Signed-off-by: Mathias Krause <[email protected]>
---
arch/sparc/crypto/camellia_glue.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/sparc/crypto/camellia_glue.c b/arch/sparc/crypto/camellia_glue.c
index 641f55cb61c3..6bf2479a12fb 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_CRYPTO("aes");
+MODULE_ALIAS_CRYPTO("camellia");

#include "crop_devid.c"
--
1.7.10.4

2015-01-11 17:18:14

by Mathias Krause

[permalink] [raw]
Subject: [PATCH 2/6] crypto: sparc64/aes - fix module description

AES is a block cipher, not a hash.

Cc: David S. Miller <[email protected]>
Signed-off-by: Mathias Krause <[email protected]>
---
arch/sparc/crypto/aes_glue.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/sparc/crypto/aes_glue.c b/arch/sparc/crypto/aes_glue.c
index 705408766ab0..2e48eb8813ff 100644
--- a/arch/sparc/crypto/aes_glue.c
+++ b/arch/sparc/crypto/aes_glue.c
@@ -497,7 +497,7 @@ module_init(aes_sparc64_mod_init);
module_exit(aes_sparc64_mod_fini);

MODULE_LICENSE("GPL");
-MODULE_DESCRIPTION("AES Secure Hash Algorithm, sparc64 aes opcode accelerated");
+MODULE_DESCRIPTION("Rijndael (AES) Cipher Algorithm, sparc64 aes opcode accelerated");

MODULE_ALIAS_CRYPTO("aes");

--
1.7.10.4

2015-01-11 17:18:16

by Mathias Krause

[permalink] [raw]
Subject: [PATCH 6/6] crypto: x86/des3_ede - drop bogus module aliases

This module implements variations of "des3_ede" only. Drop the bogus
module aliases for "des".

Cc: Jussi Kivilinna <[email protected]>
Signed-off-by: Mathias Krause <[email protected]>
---
arch/x86/crypto/des3_ede_glue.c | 2 --
1 file changed, 2 deletions(-)

diff --git a/arch/x86/crypto/des3_ede_glue.c b/arch/x86/crypto/des3_ede_glue.c
index 38a14f818ef1..d6fc59aaaadf 100644
--- a/arch/x86/crypto/des3_ede_glue.c
+++ b/arch/x86/crypto/des3_ede_glue.c
@@ -504,6 +504,4 @@ MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("Triple DES EDE Cipher Algorithm, asm optimized");
MODULE_ALIAS_CRYPTO("des3_ede");
MODULE_ALIAS_CRYPTO("des3_ede-asm");
-MODULE_ALIAS_CRYPTO("des");
-MODULE_ALIAS_CRYPTO("des-asm");
MODULE_AUTHOR("Jussi Kivilinna <[email protected]>");
--
1.7.10.4

2015-01-11 17:18:16

by Mathias Krause

[permalink] [raw]
Subject: [PATCH 5/6] crypto: sparc64/md5 - fix module description

MD5 is not SHA1.

Cc: David S. Miller <[email protected]>
Signed-off-by: Mathias Krause <[email protected]>
---
arch/sparc/crypto/md5_glue.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/sparc/crypto/md5_glue.c b/arch/sparc/crypto/md5_glue.c
index 64c7ff5f72a9..b688731d7ede 100644
--- a/arch/sparc/crypto/md5_glue.c
+++ b/arch/sparc/crypto/md5_glue.c
@@ -183,7 +183,7 @@ module_init(md5_sparc64_mod_init);
module_exit(md5_sparc64_mod_fini);

MODULE_LICENSE("GPL");
-MODULE_DESCRIPTION("MD5 Secure Hash Algorithm, sparc64 md5 opcode accelerated");
+MODULE_DESCRIPTION("MD5 Message Digest Algorithm, sparc64 md5 opcode accelerated");

MODULE_ALIAS_CRYPTO("md5");

--
1.7.10.4

2015-01-11 17:18:15

by Mathias Krause

[permalink] [raw]
Subject: [PATCH 4/6] crypto: sparc64/des - add "des3_ede" module alias

This module provides implementations for "des3_ede", too. Announce those
via an appropriate crypto module alias so it can be used in favour to
the generic C implementation.

Cc: David S. Miller <[email protected]>
Signed-off-by: Mathias Krause <[email protected]>
---
arch/sparc/crypto/des_glue.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/arch/sparc/crypto/des_glue.c b/arch/sparc/crypto/des_glue.c
index d11500972994..dd6a34fa6e19 100644
--- a/arch/sparc/crypto/des_glue.c
+++ b/arch/sparc/crypto/des_glue.c
@@ -533,5 +533,6 @@ MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("DES & Triple DES EDE Cipher Algorithms, sparc64 des opcode accelerated");

MODULE_ALIAS_CRYPTO("des");
+MODULE_ALIAS_CRYPTO("des3_ede");

#include "crop_devid.c"
--
1.7.10.4

2015-01-11 17:57:19

by David Miller

[permalink] [raw]
Subject: Re: [PATCH 2/6] crypto: sparc64/aes - fix module description

From: Mathias Krause <[email protected]>
Date: Sun, 11 Jan 2015 18:17:43 +0100

> AES is a block cipher, not a hash.
>
> Cc: David S. Miller <[email protected]>
> Signed-off-by: Mathias Krause <[email protected]>

Acked-by: David S. Miller <[email protected]>

2015-01-11 17:57:26

by David Miller

[permalink] [raw]
Subject: Re: [PATCH 3/6] crypto: sparc64/camellia - fix module alias

From: Mathias Krause <[email protected]>
Date: Sun, 11 Jan 2015 18:17:44 +0100

> The module alias should be "camellia", not "aes".
>
> Cc: David S. Miller <[email protected]>
> Signed-off-by: Mathias Krause <[email protected]>

Acked-by: David S. Miller <[email protected]>

2015-01-11 17:57:34

by David Miller

[permalink] [raw]
Subject: Re: [PATCH 4/6] crypto: sparc64/des - add "des3_ede" module alias

From: Mathias Krause <[email protected]>
Date: Sun, 11 Jan 2015 18:17:45 +0100

> This module provides implementations for "des3_ede", too. Announce those
> via an appropriate crypto module alias so it can be used in favour to
> the generic C implementation.
>
> Cc: David S. Miller <[email protected]>
> Signed-off-by: Mathias Krause <[email protected]>

Acked-by: David S. Miller <[email protected]>

2015-01-11 17:57:44

by David Miller

[permalink] [raw]
Subject: Re: [PATCH 5/6] crypto: sparc64/md5 - fix module description

From: Mathias Krause <[email protected]>
Date: Sun, 11 Jan 2015 18:17:46 +0100

> MD5 is not SHA1.
>
> Cc: David S. Miller <[email protected]>
> Signed-off-by: Mathias Krause <[email protected]>

Acked-by: David S. Miller <[email protected]>

2015-01-13 11:33:02

by Herbert Xu

[permalink] [raw]
Subject: Re: [PATCH 0/6] crypto: module alias fixes

On Sun, Jan 11, 2015 at 06:17:41PM +0100, Mathias Krause wrote:
> Hi Herbert,
>
> this series is a follow up to commit 5d26a105b5a7 ("crypto: prefix
> module autoloading with "crypto-""). In patch 1 it adds the required
> MODULE_ALIAS_CRYPTO annotation where needed to bring back automatic
> crypto module loading. Namely, modules that have a file name matching
> the cipher they implement still need the MODULE_ALIAS_CRYPTO()
> annotation. Otherwise they won't get loaded.
>
> Patches 2 to 6 fix bogus module descriptions or aliases with the
> exception of patch 4 which adds a missing crypto module alias.
>
> At least patch 1 should go to crypto-2.6 to not regress the crypto API
> for v3.19 in regard to automatic module loading.

Patch 1 applied to crypto and the rest to cryptodev. Thanks a lot!
--
Email: Herbert Xu <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

2015-01-13 15:36:34

by Kees Cook

[permalink] [raw]
Subject: Re: [PATCH 1/6] crypto: add missing crypto module aliases

On Sun, Jan 11, 2015 at 9:17 AM, Mathias Krause <[email protected]> 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 <[email protected]>
> Signed-off-by: Mathias Krause <[email protected]>

Ah, perfect! Thanks for finding the missing ones!

Acked-by: Kees Cook <[email protected]>

-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_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_generic.c
> @@ -171,4 +171,5 @@ MODULE_AUTHOR("Clay Haapala <[email protected]>");
> MODULE_DESCRIPTION("CRC32c (Castagnoli) calculations wrapper for lib/crc32c");
> MODULE_LICENSE("GPL");
> MODULE_ALIAS_CRYPTO("crc32c");
> +MODULE_ALIAS_CRYPTO("crc32c-generic");
> MODULE_SOFTDEP("pre: crc32c");
> diff --git a/crypto/crct10dif_generic.c b/crypto/crct10dif_generic.c
> index 08bb4f504520..c1229614c7e3 100644
> --- a/crypto/crct10dif_generic.c
> +++ b/crypto/crct10dif_generic.c
> @@ -125,3 +125,4 @@ MODULE_AUTHOR("Tim Chen <[email protected]>");
> MODULE_DESCRIPTION("T10 DIF CRC calculation.");
> MODULE_LICENSE("GPL");
> MODULE_ALIAS_CRYPTO("crct10dif");
> +MODULE_ALIAS_CRYPTO("crct10dif-generic");
> diff --git a/crypto/des_generic.c b/crypto/des_generic.c
> index 42912948776b..a71720544d11 100644
> --- a/crypto/des_generic.c
> +++ b/crypto/des_generic.c
> @@ -983,8 +983,6 @@ static struct crypto_alg des_algs[2] = { {
> .cia_decrypt = des3_ede_decrypt } }
> } };
>
> -MODULE_ALIAS_CRYPTO("des3_ede");
> -
> static int __init des_generic_mod_init(void)
> {
> return crypto_register_algs(des_algs, ARRAY_SIZE(des_algs));
> @@ -1001,4 +999,7 @@ module_exit(des_generic_mod_fini);
> MODULE_LICENSE("GPL");
> MODULE_DESCRIPTION("DES & Triple DES EDE Cipher Algorithms");
> MODULE_AUTHOR("Dag Arne Osvik <[email protected]>");
> -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 4e97fae9666f..bac70995e064 100644
> --- a/crypto/ghash-generic.c
> +++ b/crypto/ghash-generic.c
> @@ -173,3 +173,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 67c88b331210..0224841b6579 100644
> --- a/crypto/krng.c
> +++ b/crypto/krng.c
> @@ -63,3 +63,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 3d0f9df30ac9..f550b5d94630 100644
> --- a/crypto/salsa20_generic.c
> +++ b/crypto/salsa20_generic.c
> @@ -249,3 +249,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/serpent_generic.c b/crypto/serpent_generic.c
> index a53b5e2af335..94970a794975 100644
> --- a/crypto/serpent_generic.c
> +++ b/crypto/serpent_generic.c
> @@ -667,3 +667,4 @@ MODULE_DESCRIPTION("Serpent and tnepres (kerneli compatible serpent reversed) Ci
> MODULE_AUTHOR("Dag Arne Osvik <[email protected]>");
> MODULE_ALIAS_CRYPTO("tnepres");
> MODULE_ALIAS_CRYPTO("serpent");
> +MODULE_ALIAS_CRYPTO("serpent-generic");
> diff --git a/crypto/sha1_generic.c b/crypto/sha1_generic.c
> index 039e58cfa155..a3e50c37eb6f 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 5eb21b120033..b001ff5c2efc 100644
> --- a/crypto/sha256_generic.c
> +++ b/crypto/sha256_generic.c
> @@ -385,4 +385,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 8d0b19ed4f4b..1c3c3767e079 100644
> --- a/crypto/sha512_generic.c
> +++ b/crypto/sha512_generic.c
> @@ -289,4 +289,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 495be2d0077d..b70b441c7d1e 100644
> --- a/crypto/tea.c
> +++ b/crypto/tea.c
> @@ -270,6 +270,7 @@ static void __exit tea_mod_fini(void)
> crypto_unregister_algs(tea_algs, ARRAY_SIZE(tea_algs));
> }
>
> +MODULE_ALIAS_CRYPTO("tea");
> MODULE_ALIAS_CRYPTO("xtea");
> MODULE_ALIAS_CRYPTO("xeta");
>
> diff --git a/crypto/tgr192.c b/crypto/tgr192.c
> index 6e5651c66cf8..321bc6ff2a9d 100644
> --- a/crypto/tgr192.c
> +++ b/crypto/tgr192.c
> @@ -676,6 +676,7 @@ static void __exit tgr192_mod_fini(void)
> crypto_unregister_shashes(tgr_algs, ARRAY_SIZE(tgr_algs));
> }
>
> +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 523ad8c4e359..ebf7a3efb572 100644
> --- a/crypto/twofish_generic.c
> +++ b/crypto/twofish_generic.c
> @@ -212,3 +212,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 0de42eb3d040..7ee5a043a988 100644
> --- a/crypto/wp512.c
> +++ b/crypto/wp512.c
> @@ -1167,6 +1167,7 @@ static void __exit wp512_mod_fini(void)
> crypto_unregister_shashes(wp_algs, ARRAY_SIZE(wp_algs));
> }
>
> +MODULE_ALIAS_CRYPTO("wp512");
> MODULE_ALIAS_CRYPTO("wp384");
> MODULE_ALIAS_CRYPTO("wp256");
>
> --
> 1.7.10.4
>



--
Kees Cook
Chrome OS Security