All of lore.kernel.org
 help / color / mirror / Atom feed
From: Varad Gautam <varad.gautam@suse.com>
To: linux-crypto@vger.kernel.org
Cc: varad.gautam@suse.com, dhowells@redhat.com,
	herbert@gondor.apana.org.au, davem@davemloft.net,
	vt@altlinux.org, tianjia.zhang@linux.alibaba.com,
	keyrings@vger.kernel.org, linux-kernel@vger.kernel.org,
	jarkko@kernel.org
Subject: [PATCH v2 13/18] crypto: rsa-psspad: Get signature parameters from a given signature
Date: Thu,  8 Apr 2021 16:15:11 +0200	[thread overview]
Message-ID: <20210408141516.11369-14-varad.gautam@suse.com> (raw)
In-Reply-To: <20210408141516.11369-1-varad.gautam@suse.com>

Implement akcipher_alg->set_sig_params for rsassa-psspad to receive the
salt length and MGF hash function for the signature being verified.

Signed-off-by: Varad Gautam <varad.gautam@suse.com>
---
v2: Set mgf_hash_algo in psspad_set_sig_params. v1 assumed this to be the same
  as the digest hash.

 crypto/rsa-psspad.c                  | 21 ++++++++++++++++++++-
 include/crypto/internal/rsa-common.h |  2 ++
 2 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/crypto/rsa-psspad.c b/crypto/rsa-psspad.c
index 855e82ca071a7..eec303bb55b2d 100644
--- a/crypto/rsa-psspad.c
+++ b/crypto/rsa-psspad.c
@@ -9,6 +9,7 @@
 #include <crypto/hash.h>
 #include <crypto/internal/akcipher.h>
 #include <crypto/internal/rsa-common.h>
+#include <crypto/public_key.h>
 
 static int psspad_setup_shash(struct crypto_shash **hash_tfm, struct shash_desc **desc,
 			      const char *hash_algo)
@@ -33,6 +34,23 @@ static void psspad_free_shash(struct crypto_shash *hash_tfm, struct shash_desc *
 	crypto_free_shash(hash_tfm);
 }
 
+static int psspad_set_sig_params(struct crypto_akcipher *tfm,
+				 const void *sig,
+				 unsigned int siglen)
+{
+	struct akcipher_instance *inst = akcipher_alg_instance(tfm);
+	struct rsapad_inst_ctx *ictx = akcipher_instance_ctx(inst);
+	const struct public_key_signature *s = sig;
+
+	if (!sig)
+		return -EINVAL;
+
+	ictx->salt_len = s->salt_length;
+	ictx->mgf_hash_algo = s->mgf_hash_algo;
+
+	return 0;
+}
+
 static int psspad_s_v_e_d(struct akcipher_request *req)
 {
 	return -EOPNOTSUPP;
@@ -48,7 +66,8 @@ static struct akcipher_alg psspad_alg = {
 	.verify = psspad_s_v_e_d,
 	.set_pub_key = rsapad_set_pub_key,
 	.set_priv_key = rsapad_set_priv_key,
-	.max_size = rsapad_get_max_size
+	.max_size = rsapad_get_max_size,
+	.set_sig_params = psspad_set_sig_params
 };
 
 static int psspad_create(struct crypto_template *tmpl, struct rtattr **tb)
diff --git a/include/crypto/internal/rsa-common.h b/include/crypto/internal/rsa-common.h
index 4fa3cf5a989cc..8b7ba0174d5bf 100644
--- a/include/crypto/internal/rsa-common.h
+++ b/include/crypto/internal/rsa-common.h
@@ -26,6 +26,8 @@ struct rsapad_tfm_ctx {
 struct rsapad_inst_ctx {
 	struct crypto_akcipher_spawn spawn;
 	const struct rsa_asn1_template *digest_info;
+	u16 salt_len;
+	const char *mgf_hash_algo;
 };
 
 struct rsapad_akciper_req_ctx {
-- 
2.30.2


  parent reply	other threads:[~2021-04-08 14:17 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-08 14:14 [PATCH v2 00/18] Implement RSASSA-PSS signature verification Varad Gautam
2021-04-08 14:14 ` [PATCH v2 01/18] X.509: Parse RSASSA-PSS style certificates Varad Gautam
2021-04-08 14:15 ` [PATCH v2 02/18] crypto: rsa-pkcs1pad: Rename pkcs1pad-specific functions to rsapad Varad Gautam
2021-04-08 14:15 ` [PATCH v2 03/18] crypto: rsa-pkcs1pad: Extract pkcs1pad_create into a generic helper Varad Gautam
2021-04-08 14:15 ` [PATCH v2 04/18] crypto: rsa-pkcs1pad: Pull out child req processing code into helpers Varad Gautam
2021-04-08 14:15 ` [PATCH v2 05/18] crypto: rsa-pkcs1pad: Rename pkcs1pad_* structs to rsapad_* Varad Gautam
2021-04-08 14:15 ` [PATCH v2 06/18] crypto: rsa: Start moving RSA common code to rsa-common Varad Gautam
2021-04-08 14:15 ` [PATCH v2 07/18] crypto: rsa: Move more " Varad Gautam
2021-04-08 14:15 ` [PATCH v2 08/18] crypto: rsa: Move rsapad_akcipher_setup_child and callback " Varad Gautam
2021-04-08 14:15 ` [PATCH v2 09/18] crypto: Extend akcipher API to pass signature parameters Varad Gautam
2021-04-08 14:15 ` [PATCH v2 10/18] crypto: rsa: Move struct rsa_mpi_key definition to rsa.h Varad Gautam
2021-04-08 14:15 ` [PATCH v2 11/18] crypto: Scaffolding for RSA-PSS signature style Varad Gautam
2021-04-08 14:15 ` [PATCH v2 12/18] crypto: rsa-psspad: Introduce shash alloc/dealloc helpers Varad Gautam
2021-04-08 14:15 ` Varad Gautam [this message]
2021-04-08 14:15 ` [PATCH v2 14/18] crypto: Implement MGF1 Mask Generation Function for RSASSA-PSS Varad Gautam
2021-04-08 14:15 ` [PATCH v2 15/18] crypto: rsa-psspad: Provide PSS signature verify operation Varad Gautam
2021-04-08 14:15 ` [PATCH v2 16/18] crypto: rsa-psspad: Implement signature verify callback Varad Gautam
2021-04-08 14:15 ` [PATCH v2 17/18] crypto: Accept pss as valid encoding during signature verification Varad Gautam
2021-04-08 14:15 ` [PATCH v2 18/18] keyctl_pkey: Add pkey parameters slen and mgfhash for PSS Varad Gautam
2021-04-09 14:15   ` Ben Boeckel
2021-04-20 11:46     ` Varad Gautam
2021-04-08 15:05 ` David Howells
2021-04-08 15:08 ` [PATCH v2 00/18] Implement RSASSA-PSS signature verification David Howells
2021-04-20 11:47   ` Varad Gautam

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210408141516.11369-14-varad.gautam@suse.com \
    --to=varad.gautam@suse.com \
    --cc=davem@davemloft.net \
    --cc=dhowells@redhat.com \
    --cc=herbert@gondor.apana.org.au \
    --cc=jarkko@kernel.org \
    --cc=keyrings@vger.kernel.org \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tianjia.zhang@linux.alibaba.com \
    --cc=vt@altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.