Hannes Reinecke 9deba9
From: Hannes Reinecke <hare@suse.de>
Hannes Reinecke 9deba9
Date: Mon, 14 Dec 2020 09:54:12 +0100
Hannes Reinecke 9deba9
Subject: [PATCH 02/12] crypto: add crypto_has_kpp()
Hannes Reinecke 9deba9
Patch-mainline: Submitted to linux-nvme, 2021-12-02
Hannes Reinecke 9deba9
References: jsc#SLE-20183
Hannes Reinecke 9deba9
Hannes Reinecke 9deba9
Add helper function to determine if a given key-agreement protocol
Hannes Reinecke 9deba9
primitive is supported.
Hannes Reinecke 9deba9
Hannes Reinecke 9deba9
Signed-off-by: Hannes Reinecke <hare@suse.de>
Hannes Reinecke 9deba9
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Hannes Reinecke 9deba9
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
Hannes Reinecke 9deba9
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
Hannes Reinecke 9deba9
Acked-by: Hannes Reinecke <hare@suse.com>
Hannes Reinecke 9deba9
---
Hannes Reinecke 9deba9
 crypto/kpp.c         | 6 ++++++
Hannes Reinecke 9deba9
 include/crypto/kpp.h | 2 ++
Hannes Reinecke 9deba9
 2 files changed, 8 insertions(+)
Hannes Reinecke 9deba9
Hannes Reinecke 9deba9
diff --git a/crypto/kpp.c b/crypto/kpp.c
Hannes Reinecke 9deba9
index 313b2c699963..416e8a1a03ee 100644
Hannes Reinecke 9deba9
--- a/crypto/kpp.c
Hannes Reinecke 9deba9
+++ b/crypto/kpp.c
Hannes Reinecke 9deba9
@@ -87,6 +87,12 @@ struct crypto_kpp *crypto_alloc_kpp(const char *alg_name, u32 type, u32 mask)
Hannes Reinecke 9deba9
 }
Hannes Reinecke 9deba9
 EXPORT_SYMBOL_GPL(crypto_alloc_kpp);
Hannes Reinecke 9deba9
 
Hannes Reinecke 9deba9
+int crypto_has_kpp(const char *alg_name, u32 type, u32 mask)
Hannes Reinecke 9deba9
+{
Hannes Reinecke 9deba9
+	return crypto_type_has_alg(alg_name, &crypto_kpp_type, type, mask);
Hannes Reinecke 9deba9
+}
Hannes Reinecke 9deba9
+EXPORT_SYMBOL_GPL(crypto_has_kpp);
Hannes Reinecke 9deba9
+
Hannes Reinecke 9deba9
 static void kpp_prepare_alg(struct kpp_alg *alg)
Hannes Reinecke 9deba9
 {
Hannes Reinecke 9deba9
 	struct crypto_alg *base = &alg->base;
Hannes Reinecke 9deba9
diff --git a/include/crypto/kpp.h b/include/crypto/kpp.h
Hannes Reinecke 9deba9
index cccceadc164b..24d01e9877c1 100644
Hannes Reinecke 9deba9
--- a/include/crypto/kpp.h
Hannes Reinecke 9deba9
+++ b/include/crypto/kpp.h
Hannes Reinecke 9deba9
@@ -104,6 +104,8 @@ struct kpp_alg {
Hannes Reinecke 9deba9
  */
Hannes Reinecke 9deba9
 struct crypto_kpp *crypto_alloc_kpp(const char *alg_name, u32 type, u32 mask);
Hannes Reinecke 9deba9
 
Hannes Reinecke 9deba9
+int crypto_has_kpp(const char *alg_name, u32 type, u32 mask);
Hannes Reinecke 9deba9
+
Hannes Reinecke 9deba9
 static inline struct crypto_tfm *crypto_kpp_tfm(struct crypto_kpp *tfm)
Hannes Reinecke 9deba9
 {
Hannes Reinecke 9deba9
 	return &tfm->base;
Hannes Reinecke 9deba9
-- 
Hannes Reinecke 9deba9
2.29.2
Hannes Reinecke 9deba9