aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/layerscape/patches-5.4/804-crypto-0022-MLK-19801-2-crypto-caam-add-support-of-tagged-keys-i.patch
diff options
context:
space:
mode:
authorDaniel Golle <daniel@makrotopia.org>2022-03-21 01:16:48 +0000
committerDaniel Golle <daniel@makrotopia.org>2022-03-21 13:11:56 +0000
commit786bf7fdaca4c75e7eba6e9aa3a8b5775fd21186 (patch)
tree926fecb2b1f6ce1e42ba7ef4c7aab8e68dfd214c /target/linux/layerscape/patches-5.4/804-crypto-0022-MLK-19801-2-crypto-caam-add-support-of-tagged-keys-i.patch
parent9470160c350d15f765c33d6c1db15d6c4709a64c (diff)
downloadupstream-786bf7fdaca4c75e7eba6e9aa3a8b5775fd21186.tar.gz
upstream-786bf7fdaca4c75e7eba6e9aa3a8b5775fd21186.tar.bz2
upstream-786bf7fdaca4c75e7eba6e9aa3a8b5775fd21186.zip
kernel: delete Linux 5.4 config and patches
As the upcoming release will be based on Linux 5.10 only, remove all kernel configuration as well as patches for Linux 5.4. There were no targets still actively using Linux 5.4. Signed-off-by: Daniel Golle <daniel@makrotopia.org> (cherry picked from commit 3a14580411adfb75f9a44eded9f41245b9e44606)
Diffstat (limited to 'target/linux/layerscape/patches-5.4/804-crypto-0022-MLK-19801-2-crypto-caam-add-support-of-tagged-keys-i.patch')
-rw-r--r--target/linux/layerscape/patches-5.4/804-crypto-0022-MLK-19801-2-crypto-caam-add-support-of-tagged-keys-i.patch304
1 files changed, 0 insertions, 304 deletions
diff --git a/target/linux/layerscape/patches-5.4/804-crypto-0022-MLK-19801-2-crypto-caam-add-support-of-tagged-keys-i.patch b/target/linux/layerscape/patches-5.4/804-crypto-0022-MLK-19801-2-crypto-caam-add-support-of-tagged-keys-i.patch
deleted file mode 100644
index 81f2010aba..0000000000
--- a/target/linux/layerscape/patches-5.4/804-crypto-0022-MLK-19801-2-crypto-caam-add-support-of-tagged-keys-i.patch
+++ /dev/null
@@ -1,304 +0,0 @@
-From df1b397d7c5e79052fa56d1b256ededcd301a27a Mon Sep 17 00:00:00 2001
-From: Franck LENORMAND <franck.lenormand@nxp.com>
-Date: Fri, 5 Oct 2018 16:41:54 +0200
-Subject: [PATCH] MLK-19801-2 crypto: caam - add support of tagged keys in
- caamalg
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-A tagged key is a key which has been tagged with metadata
-using tag_object.h API.
-
-We add the support for these keys to caamalg.
-
-For each algo of caamalg which supports tagged keys , it is done by:
- - Creating a modified version of the algo
- - Registering the modified version
- - When the modified transform is used, it gets
- the load parameter of the key.
-
-Signed-off-by: Franck LENORMAND <franck.lenormand@nxp.com>
-(cherry picked from commit 88dee97d985890dbf37cafa7934c476d0ecfd0b3)
-(Vipul: Fixed merge conflicts)
-Conflicts:
- drivers/crypto/caam/caamalg.c
-Signed-off-by: Vipul Kumar <vipul_kumar@mentor.com>
-(cherry picked from commit 5adebac40a7a8065c074f4a69f4ad760c67233f5)
-
--port from ablkcipher to current skcipher implementation
--since in linux-imx true key_inline was always true: a. simplify
-the descriptors and b. use key_cmd_opt to differentiate b/w tk and non-tk
-cases
--change commit headline prefix
-
-Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
----
- drivers/crypto/caam/Makefile | 3 +-
- drivers/crypto/caam/caamalg.c | 91 +++++++++++++++++++++++++++++++++++++-
- drivers/crypto/caam/caamalg_desc.c | 20 +++++++--
- drivers/crypto/caam/desc_constr.h | 4 ++
- drivers/crypto/caam/tag_object.c | 6 +--
- drivers/crypto/caam/tag_object.h | 6 +--
- 6 files changed, 118 insertions(+), 12 deletions(-)
-
---- a/drivers/crypto/caam/Makefile
-+++ b/drivers/crypto/caam/Makefile
-@@ -15,6 +15,7 @@ obj-$(CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_
- obj-$(CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API_DESC) += caamhash_desc.o
-
- caam-y := ctrl.o
-+caam-$(CONFIG_CRYPTO_DEV_FSL_CAAM_TK_API) += tag_object.o
- caam_jr-y := jr.o key_gen.o
- caam_jr-$(CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API) += caamalg.o
- caam_jr-$(CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_QI) += caamalg_qi.o
-@@ -24,7 +25,7 @@ caam_jr-$(CONFIG_CRYPTO_DEV_FSL_CAAM_PKC
- caam_jr-$(CONFIG_CRYPTO_DEV_FSL_CAAM_SM) += sm_store.o
- caam_jr-$(CONFIG_CRYPTO_DEV_FSL_CAAM_SM_TEST) += sm_test.o
- caam_jr-$(CONFIG_CRYPTO_DEV_FSL_CAAM_SECVIO) += secvio.o
--caam-jr-$(CONFIG_CRYPTO_DEV_FSL_CAAM_TK_API) += tag_object.o
-+#caam-jr-$(CONFIG_CRYPTO_DEV_FSL_CAAM_TK_API) += tag_object.o
-
- caam-$(CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_QI) += qi.o
- ifneq ($(CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_QI),)
---- a/drivers/crypto/caam/caamalg.c
-+++ b/drivers/crypto/caam/caamalg.c
-@@ -57,6 +57,10 @@
- #include "key_gen.h"
- #include "caamalg_desc.h"
-
-+#ifdef CONFIG_CRYPTO_DEV_FSL_CAAM_TK_API
-+#include "tag_object.h"
-+#endif /* CONFIG_CRYPTO_DEV_FSL_CAAM_TK_API */
-+
- /*
- * crypto alg
- */
-@@ -83,6 +87,7 @@ struct caam_alg_entry {
- bool rfc3686;
- bool geniv;
- bool nodkp;
-+ bool support_tagged_key;
- };
-
- struct caam_aead_alg {
-@@ -739,6 +744,44 @@ static int skcipher_setkey(struct crypto
- ctx->cdata.key_virt = key;
- ctx->cdata.key_inline = true;
-
-+#ifdef CONFIG_CRYPTO_DEV_FSL_CAAM_TK_API
-+ /*
-+ * Check if the key is not in plaintext format
-+ */
-+ if (alg->caam.support_tagged_key) {
-+ struct tag_object_conf *tagged_key_conf;
-+ int ret;
-+
-+ /* Get the configuration */
-+ ret = get_tag_object_conf(ctx->cdata.key_virt,
-+ ctx->cdata.keylen, &tagged_key_conf);
-+ if (ret) {
-+ dev_err(jrdev,
-+ "caam algorithms can't process tagged key\n");
-+ return ret;
-+ }
-+
-+ /* Only support black key */
-+ if (!is_bk_conf(tagged_key_conf)) {
-+ dev_err(jrdev,
-+ "The tagged key provided is not a black key\n");
-+ return -EINVAL;
-+ }
-+
-+ get_blackey_conf(&tagged_key_conf->conf.bk_conf,
-+ &ctx->cdata.key_real_len,
-+ &ctx->cdata.key_cmd_opt);
-+
-+ ret = get_tagged_data(ctx->cdata.key_virt, ctx->cdata.keylen,
-+ &ctx->cdata.key_virt, &ctx->cdata.keylen);
-+ if (ret) {
-+ dev_err(jrdev,
-+ "caam algorithms wrong data from tagged key\n");
-+ return ret;
-+ }
-+ }
-+#endif /* CONFIG_CRYPTO_DEV_FSL_CAAM_TK_API */
-+
- /* skcipher_encrypt shared descriptor */
- desc = ctx->sh_desc_enc;
- cnstr_shdsc_skcipher_encap(desc, &ctx->cdata, ivsize, is_rfc3686,
-@@ -818,6 +861,14 @@ static int ctr_skcipher_setkey(struct cr
- return skcipher_setkey(skcipher, key, keylen, ctx1_iv_off);
- }
-
-+#ifdef CONFIG_CRYPTO_DEV_FSL_CAAM_TK_API
-+static int tk_skcipher_setkey(struct crypto_skcipher *skcipher,
-+ const u8 *key, unsigned int keylen)
-+{
-+ return skcipher_setkey(skcipher, key, keylen, 0);
-+}
-+#endif /* CONFIG_CRYPTO_DEV_FSL_CAAM_TK_API */
-+
- static int des_skcipher_setkey(struct crypto_skcipher *skcipher,
- const u8 *key, unsigned int keylen)
- {
-@@ -1918,6 +1969,25 @@ static struct caam_skcipher_alg driver_a
- },
- .caam.class1_alg_type = OP_ALG_ALGSEL_AES | OP_ALG_AAI_CBC,
- },
-+#ifdef CONFIG_CRYPTO_DEV_FSL_CAAM_TK_API
-+ {
-+ .skcipher = {
-+ .base = {
-+ .cra_name = "tk(cbc(aes))",
-+ .cra_driver_name = "tk-cbc-aes-caam",
-+ .cra_blocksize = AES_BLOCK_SIZE,
-+ },
-+ .setkey = tk_skcipher_setkey,
-+ .encrypt = skcipher_encrypt,
-+ .decrypt = skcipher_decrypt,
-+ .min_keysize = TAG_MIN_SIZE,
-+ .max_keysize = CAAM_MAX_KEY_SIZE,
-+ .ivsize = AES_BLOCK_SIZE,
-+ },
-+ .caam.class1_alg_type = OP_ALG_ALGSEL_AES | OP_ALG_AAI_CBC,
-+ .caam.support_tagged_key = true,
-+ },
-+#endif /* CONFIG_CRYPTO_DEV_FSL_CAAM_TK_API */
- {
- .skcipher = {
- .base = {
-@@ -2037,6 +2107,24 @@ static struct caam_skcipher_alg driver_a
- },
- .caam.class1_alg_type = OP_ALG_ALGSEL_AES | OP_ALG_AAI_ECB,
- },
-+#ifdef CONFIG_CRYPTO_DEV_FSL_CAAM_TK_API
-+ {
-+ .skcipher = {
-+ .base = {
-+ .cra_name = "tk(ecb(aes))",
-+ .cra_driver_name = "tk-ecb-aes-caam",
-+ .cra_blocksize = AES_BLOCK_SIZE,
-+ },
-+ .setkey = tk_skcipher_setkey,
-+ .encrypt = skcipher_encrypt,
-+ .decrypt = skcipher_decrypt,
-+ .min_keysize = TAG_MIN_SIZE,
-+ .max_keysize = CAAM_MAX_KEY_SIZE,
-+ },
-+ .caam.class1_alg_type = OP_ALG_ALGSEL_AES | OP_ALG_AAI_ECB,
-+ .caam.support_tagged_key = true,
-+ },
-+#endif /* CONFIG_CRYPTO_DEV_FSL_CAAM_TK_API */
- {
- .skcipher = {
- .base = {
-@@ -3486,7 +3574,8 @@ static void caam_skcipher_alg_init(struc
- struct skcipher_alg *alg = &t_alg->skcipher;
-
- alg->base.cra_module = THIS_MODULE;
-- alg->base.cra_priority = CAAM_CRA_PRIORITY;
-+ alg->base.cra_priority =
-+ t_alg->caam.support_tagged_key ? 1 : CAAM_CRA_PRIORITY;
- alg->base.cra_ctxsize = sizeof(struct caam_ctx);
- alg->base.cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_KERN_DRIVER_ONLY;
-
---- a/drivers/crypto/caam/caamalg_desc.c
-+++ b/drivers/crypto/caam/caamalg_desc.c
-@@ -1389,8 +1389,14 @@ void cnstr_shdsc_skcipher_encap(u32 * co
- JUMP_COND_SHRD);
-
- /* Load class1 key only */
-- append_key_as_imm(desc, cdata->key_virt, cdata->keylen,
-- cdata->keylen, CLASS_1 | KEY_DEST_CLASS_REG);
-+ if (IS_ENABLED(CONFIG_CRYPTO_DEV_FSL_CAAM_TK_API) &&
-+ cdata->key_cmd_opt)
-+ append_key_as_imm(desc, cdata->key_virt, cdata->keylen,
-+ cdata->key_real_len, CLASS_1 |
-+ KEY_DEST_CLASS_REG | cdata->key_cmd_opt);
-+ else
-+ append_key_as_imm(desc, cdata->key_virt, cdata->keylen,
-+ cdata->keylen, CLASS_1 | KEY_DEST_CLASS_REG);
-
- /* Load nonce into CONTEXT1 reg */
- if (is_rfc3686) {
-@@ -1464,8 +1470,14 @@ void cnstr_shdsc_skcipher_decap(u32 * co
- JUMP_COND_SHRD);
-
- /* Load class1 key only */
-- append_key_as_imm(desc, cdata->key_virt, cdata->keylen,
-- cdata->keylen, CLASS_1 | KEY_DEST_CLASS_REG);
-+ if (IS_ENABLED(CONFIG_CRYPTO_DEV_FSL_CAAM_TK_API) &&
-+ cdata->key_cmd_opt)
-+ append_key_as_imm(desc, cdata->key_virt, cdata->keylen,
-+ cdata->key_real_len, CLASS_1 |
-+ KEY_DEST_CLASS_REG | cdata->key_cmd_opt);
-+ else
-+ append_key_as_imm(desc, cdata->key_virt, cdata->keylen,
-+ cdata->keylen, CLASS_1 | KEY_DEST_CLASS_REG);
-
- /* Load nonce into CONTEXT1 reg */
- if (is_rfc3686) {
---- a/drivers/crypto/caam/desc_constr.h
-+++ b/drivers/crypto/caam/desc_constr.h
-@@ -500,6 +500,8 @@ do { \
- * @key_virt: virtual address where algorithm key resides
- * @key_inline: true - key can be inlined in the descriptor; false - key is
- * referenced by the descriptor
-+ * @key_real_len: size of the key to be loaded by the CAAM
-+ * @key_cmd_opt: optional parameters for KEY command
- */
- struct alginfo {
- u32 algtype;
-@@ -508,6 +510,8 @@ struct alginfo {
- dma_addr_t key_dma;
- const void *key_virt;
- bool key_inline;
-+ u32 key_real_len;
-+ u32 key_cmd_opt;
- };
-
- /**
---- a/drivers/crypto/caam/tag_object.c
-+++ b/drivers/crypto/caam/tag_object.c
-@@ -128,7 +128,7 @@ EXPORT_SYMBOL(is_valid_tag_object_conf);
- *
- * Return: 0 if success, else error code
- */
--int get_tag_object_conf(void *buffer, size_t size,
-+int get_tag_object_conf(const void *buffer, size_t size,
- struct tag_object_conf **tag_obj_conf)
- {
- bool is_valid;
-@@ -240,8 +240,8 @@ EXPORT_SYMBOL(get_blackey_conf);
- *
- * Return: 0 if success, else error code
- */
--int get_tagged_data(void *tagged_object, size_t tagged_object_size,
-- void **data, u32 *data_size)
-+int get_tagged_data(const void *tagged_object, size_t tagged_object_size,
-+ const void **data, u32 *data_size)
- {
- struct tagged_object *tago =
- (struct tagged_object *)tagged_object;
---- a/drivers/crypto/caam/tag_object.h
-+++ b/drivers/crypto/caam/tag_object.h
-@@ -80,7 +80,7 @@ bool is_valid_tag_object_conf(const stru
- void init_tag_object_header(struct conf_header *conf_header,
- enum tag_type type);
-
--int get_tag_object_conf(void *buffer, size_t buffer_size,
-+int get_tag_object_conf(const void *buffer, size_t buffer_size,
- struct tag_object_conf **tag_obj_conf);
-
- int set_tag_object_conf(const struct tag_object_conf *tag_obj_conf,
-@@ -94,7 +94,7 @@ void get_blackey_conf(const struct black
- void init_blackey_conf(struct blackey_conf *blackey_conf,
- size_t len, bool ccm, bool tk);
-
--int get_tagged_data(void *buffer, size_t buffer_size,
-- void **data, u32 *data_size);
-+int get_tagged_data(const void *buffer, size_t buffer_size,
-+ const void **data, u32 *data_size);
-
- #endif /* _TAG_OBJECT_H_ */