216 lines
6.4 KiB
Diff
216 lines
6.4 KiB
Diff
From: Kees Cook <keescook@chromium.org>
|
|
Date: Mon, 24 Nov 2014 16:32:38 -0800
|
|
Subject: crypto: include crypto- module prefix in template
|
|
Origin: https://git.kernel.org/linus/4943ba16bbc2db05115707b3ff7b4874e9e3c560
|
|
|
|
This adds the module loading prefix "crypto-" to the template lookup
|
|
as well.
|
|
|
|
For example, attempting to load 'vfat(blowfish)' via AF_ALG now correctly
|
|
includes the "crypto-" prefix at every level, correctly rejecting "vfat":
|
|
|
|
net-pf-38
|
|
algif-hash
|
|
crypto-vfat(blowfish)
|
|
crypto-vfat(blowfish)-all
|
|
crypto-vfat
|
|
|
|
Reported-by: Mathias Krause <minipli@googlemail.com>
|
|
Signed-off-by: Kees Cook <keescook@chromium.org>
|
|
Acked-by: Mathias Krause <minipli@googlemail.com>
|
|
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
|
|
[bwh: Backported to 3.16: drop changes to mcryptd which we don't have]
|
|
---
|
|
arch/x86/crypto/fpu.c | 3 +++
|
|
crypto/algapi.c | 4 ++--
|
|
crypto/authenc.c | 1 +
|
|
crypto/authencesn.c | 1 +
|
|
crypto/cbc.c | 1 +
|
|
crypto/ccm.c | 1 +
|
|
crypto/chainiv.c | 1 +
|
|
crypto/cmac.c | 1 +
|
|
crypto/cryptd.c | 1 +
|
|
crypto/ctr.c | 1 +
|
|
crypto/cts.c | 1 +
|
|
crypto/ecb.c | 1 +
|
|
crypto/eseqiv.c | 1 +
|
|
crypto/gcm.c | 1 +
|
|
crypto/hmac.c | 1 +
|
|
crypto/lrw.c | 1 +
|
|
crypto/pcbc.c | 1 +
|
|
crypto/pcrypt.c | 1 +
|
|
crypto/seqiv.c | 1 +
|
|
crypto/vmac.c | 1 +
|
|
crypto/xcbc.c | 1 +
|
|
crypto/xts.c | 1 +
|
|
|
|
--- a/arch/x86/crypto/fpu.c
|
|
+++ b/arch/x86/crypto/fpu.c
|
|
@@ -17,6 +17,7 @@
|
|
#include <linux/kernel.h>
|
|
#include <linux/module.h>
|
|
#include <linux/slab.h>
|
|
+#include <linux/crypto.h>
|
|
#include <asm/i387.h>
|
|
|
|
struct crypto_fpu_ctx {
|
|
@@ -159,3 +160,5 @@ void __exit crypto_fpu_exit(void)
|
|
{
|
|
crypto_unregister_template(&crypto_fpu_tmpl);
|
|
}
|
|
+
|
|
+MODULE_ALIAS_CRYPTO("fpu");
|
|
--- a/crypto/algapi.c
|
|
+++ b/crypto/algapi.c
|
|
@@ -495,8 +495,8 @@ static struct crypto_template *__crypto_
|
|
|
|
struct crypto_template *crypto_lookup_template(const char *name)
|
|
{
|
|
- return try_then_request_module(__crypto_lookup_template(name), "%s",
|
|
- name);
|
|
+ return try_then_request_module(__crypto_lookup_template(name),
|
|
+ "crypto-%s", name);
|
|
}
|
|
EXPORT_SYMBOL_GPL(crypto_lookup_template);
|
|
|
|
--- a/crypto/authenc.c
|
|
+++ b/crypto/authenc.c
|
|
@@ -721,3 +721,4 @@ module_exit(crypto_authenc_module_exit);
|
|
|
|
MODULE_LICENSE("GPL");
|
|
MODULE_DESCRIPTION("Simple AEAD wrapper for IPsec");
|
|
+MODULE_ALIAS_CRYPTO("authenc");
|
|
--- a/crypto/authencesn.c
|
|
+++ b/crypto/authencesn.c
|
|
@@ -814,3 +814,4 @@ module_exit(crypto_authenc_esn_module_ex
|
|
MODULE_LICENSE("GPL");
|
|
MODULE_AUTHOR("Steffen Klassert <steffen.klassert@secunet.com>");
|
|
MODULE_DESCRIPTION("AEAD wrapper for IPsec with extended sequence numbers");
|
|
+MODULE_ALIAS_CRYPTO("authencesn");
|
|
--- a/crypto/cbc.c
|
|
+++ b/crypto/cbc.c
|
|
@@ -289,3 +289,4 @@ module_exit(crypto_cbc_module_exit);
|
|
|
|
MODULE_LICENSE("GPL");
|
|
MODULE_DESCRIPTION("CBC block cipher algorithm");
|
|
+MODULE_ALIAS_CRYPTO("cbc");
|
|
--- a/crypto/ccm.c
|
|
+++ b/crypto/ccm.c
|
|
@@ -881,3 +881,4 @@ MODULE_LICENSE("GPL");
|
|
MODULE_DESCRIPTION("Counter with CBC MAC");
|
|
MODULE_ALIAS_CRYPTO("ccm_base");
|
|
MODULE_ALIAS_CRYPTO("rfc4309");
|
|
+MODULE_ALIAS_CRYPTO("ccm");
|
|
--- a/crypto/chainiv.c
|
|
+++ b/crypto/chainiv.c
|
|
@@ -359,3 +359,4 @@ module_exit(chainiv_module_exit);
|
|
|
|
MODULE_LICENSE("GPL");
|
|
MODULE_DESCRIPTION("Chain IV Generator");
|
|
+MODULE_ALIAS_CRYPTO("chainiv");
|
|
--- a/crypto/cmac.c
|
|
+++ b/crypto/cmac.c
|
|
@@ -313,3 +313,4 @@ module_exit(crypto_cmac_module_exit);
|
|
|
|
MODULE_LICENSE("GPL");
|
|
MODULE_DESCRIPTION("CMAC keyed hash algorithm");
|
|
+MODULE_ALIAS_CRYPTO("cmac");
|
|
--- a/crypto/cryptd.c
|
|
+++ b/crypto/cryptd.c
|
|
@@ -955,3 +955,4 @@ module_exit(cryptd_exit);
|
|
|
|
MODULE_LICENSE("GPL");
|
|
MODULE_DESCRIPTION("Software async crypto daemon");
|
|
+MODULE_ALIAS_CRYPTO("cryptd");
|
|
--- a/crypto/ctr.c
|
|
+++ b/crypto/ctr.c
|
|
@@ -467,3 +467,4 @@ module_exit(crypto_ctr_module_exit);
|
|
MODULE_LICENSE("GPL");
|
|
MODULE_DESCRIPTION("CTR Counter block mode");
|
|
MODULE_ALIAS_CRYPTO("rfc3686");
|
|
+MODULE_ALIAS_CRYPTO("ctr");
|
|
--- a/crypto/cts.c
|
|
+++ b/crypto/cts.c
|
|
@@ -350,3 +350,4 @@ module_exit(crypto_cts_module_exit);
|
|
|
|
MODULE_LICENSE("Dual BSD/GPL");
|
|
MODULE_DESCRIPTION("CTS-CBC CipherText Stealing for CBC");
|
|
+MODULE_ALIAS_CRYPTO("cts");
|
|
--- a/crypto/ecb.c
|
|
+++ b/crypto/ecb.c
|
|
@@ -185,3 +185,4 @@ module_exit(crypto_ecb_module_exit);
|
|
|
|
MODULE_LICENSE("GPL");
|
|
MODULE_DESCRIPTION("ECB block cipher algorithm");
|
|
+MODULE_ALIAS_CRYPTO("ecb");
|
|
--- a/crypto/eseqiv.c
|
|
+++ b/crypto/eseqiv.c
|
|
@@ -267,3 +267,4 @@ module_exit(eseqiv_module_exit);
|
|
|
|
MODULE_LICENSE("GPL");
|
|
MODULE_DESCRIPTION("Encrypted Sequence Number IV Generator");
|
|
+MODULE_ALIAS_CRYPTO("eseqiv");
|
|
--- a/crypto/gcm.c
|
|
+++ b/crypto/gcm.c
|
|
@@ -1444,3 +1444,4 @@ MODULE_AUTHOR("Mikko Herranen <mh1@iki.f
|
|
MODULE_ALIAS_CRYPTO("gcm_base");
|
|
MODULE_ALIAS_CRYPTO("rfc4106");
|
|
MODULE_ALIAS_CRYPTO("rfc4543");
|
|
+MODULE_ALIAS_CRYPTO("gcm");
|
|
--- a/crypto/hmac.c
|
|
+++ b/crypto/hmac.c
|
|
@@ -271,3 +271,4 @@ module_exit(hmac_module_exit);
|
|
|
|
MODULE_LICENSE("GPL");
|
|
MODULE_DESCRIPTION("HMAC hash algorithm");
|
|
+MODULE_ALIAS_CRYPTO("hmac");
|
|
--- a/crypto/lrw.c
|
|
+++ b/crypto/lrw.c
|
|
@@ -400,3 +400,4 @@ module_exit(crypto_module_exit);
|
|
|
|
MODULE_LICENSE("GPL");
|
|
MODULE_DESCRIPTION("LRW block cipher mode");
|
|
+MODULE_ALIAS_CRYPTO("lrw");
|
|
--- a/crypto/pcbc.c
|
|
+++ b/crypto/pcbc.c
|
|
@@ -295,3 +295,4 @@ module_exit(crypto_pcbc_module_exit);
|
|
|
|
MODULE_LICENSE("GPL");
|
|
MODULE_DESCRIPTION("PCBC block cipher algorithm");
|
|
+MODULE_ALIAS_CRYPTO("pcbc");
|
|
--- a/crypto/pcrypt.c
|
|
+++ b/crypto/pcrypt.c
|
|
@@ -565,3 +565,4 @@ module_exit(pcrypt_exit);
|
|
MODULE_LICENSE("GPL");
|
|
MODULE_AUTHOR("Steffen Klassert <steffen.klassert@secunet.com>");
|
|
MODULE_DESCRIPTION("Parallel crypto wrapper");
|
|
+MODULE_ALIAS_CRYPTO("pcrypt");
|
|
--- a/crypto/seqiv.c
|
|
+++ b/crypto/seqiv.c
|
|
@@ -362,3 +362,4 @@ module_exit(seqiv_module_exit);
|
|
|
|
MODULE_LICENSE("GPL");
|
|
MODULE_DESCRIPTION("Sequence Number IV Generator");
|
|
+MODULE_ALIAS_CRYPTO("seqiv");
|
|
--- a/crypto/vmac.c
|
|
+++ b/crypto/vmac.c
|
|
@@ -713,3 +713,4 @@ module_exit(vmac_module_exit);
|
|
|
|
MODULE_LICENSE("GPL");
|
|
MODULE_DESCRIPTION("VMAC hash algorithm");
|
|
+MODULE_ALIAS_CRYPTO("vmac");
|
|
--- a/crypto/xcbc.c
|
|
+++ b/crypto/xcbc.c
|
|
@@ -286,3 +286,4 @@ module_exit(crypto_xcbc_module_exit);
|
|
|
|
MODULE_LICENSE("GPL");
|
|
MODULE_DESCRIPTION("XCBC keyed hash algorithm");
|
|
+MODULE_ALIAS_CRYPTO("xcbc");
|
|
--- a/crypto/xts.c
|
|
+++ b/crypto/xts.c
|
|
@@ -362,3 +362,4 @@ module_exit(crypto_module_exit);
|
|
|
|
MODULE_LICENSE("GPL");
|
|
MODULE_DESCRIPTION("XTS block cipher mode");
|
|
+MODULE_ALIAS_CRYPTO("xts");
|