All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Jarkko Sakkinen" <jarkko@kernel.org>
To: "Stefan Berger" <stefanb@linux.ibm.com>,
	<keyrings@vger.kernel.org>, <linux-crypto@vger.kernel.org>,
	<herbert@gondor.apana.org.au>, <davem@davemloft.net>
Cc: <linux-kernel@vger.kernel.org>, <saulo.alessandre@tse.jus.br>,
	<lukas@wunner.de>, <bbhushan2@marvell.com>
Subject: Re: [PATCH v7 03/13] crypto: ecdsa - Adjust tests on length of key parameters
Date: Thu, 21 Mar 2024 19:11:30 +0200	[thread overview]
Message-ID: <CZZLG1NOKZED.3VQXFGK57IEEU@kernel.org> (raw)
In-Reply-To: <20240320114725.1644921-4-stefanb@linux.ibm.com>

On Wed Mar 20, 2024 at 1:47 PM EET, Stefan Berger wrote:
> In preparation for support of NIST P521, adjust the basic tests on the
> length of the provided key parameters to only ensure that the length of the
> x plus y coordinates parameter array is not an odd number and that each
> coordinate fits into an array of 'ndigits' digits. Mathematical tests on
> the key's parameters are then done in ecc_is_pubkey_valid_full rejecting
> invalid keys.
>
> The change is necessary since NIST P521 keys do not have keys with
> coordinates that each require 'full' digits (= all bits in u64 used).
> NIST P521 only requires 2 bytes (9 bits) in the most significant digit
> unlike NIST P192/256/384 that each require multiple 'full' digits.
>
> Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
> Tested-by: Lukas Wunner <lukas@wunner.de>
> ---
>  crypto/ecdsa.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/crypto/ecdsa.c b/crypto/ecdsa.c
> index 6653dec17327..64e1e69d53ba 100644
> --- a/crypto/ecdsa.c
> +++ b/crypto/ecdsa.c
> @@ -230,7 +230,7 @@ static int ecdsa_set_pub_key(struct crypto_akcipher *tfm, const void *key, unsig
>  	if (ret < 0)
>  		return ret;
>  
> -	if (keylen < 1 || (((keylen - 1) >> 1) % sizeof(u64)) != 0)
> +	if (keylen < 1 || ((keylen - 1) & 1) != 0)
>  		return -EINVAL;
>  	/* we only accept uncompressed format indicated by '4' */
>  	if (d[0] != 4)

Had to write this down to the paper to fully get it but yeah makes
sense (especially since I just truncated 4 KiB blocks to 1 KiB
in my doc update :-)) but yeah seems to be correct:


Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org>

I guess that in this case I can give also tested-by since I actually
did test the formula (on paper):

Tested-by: Jarkko Sakkinen <jarkko@kernel.org>

As in general for tested-by's for patches I've sent or seen in
circulation there's bunch of convetions I've encountered so I do
agree that it is up to Herbert to decide the correct one.

BR, Jarkko

  reply	other threads:[~2024-03-21 17:11 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-20 11:47 Add support for NIST P521 to ecdsa Stefan Berger
2024-03-20 11:47 ` [PATCH v7 01/13] crypto: ecc - Use ECC_CURVE_NIST_P192/256/384_DIGITS where possible Stefan Berger
2024-03-20 11:47 ` [PATCH v7 02/13] crypto: ecdsa - Convert byte arrays with key coordinates to digits Stefan Berger
2024-03-21 17:07   ` Jarkko Sakkinen
2024-03-20 11:47 ` [PATCH v7 03/13] crypto: ecdsa - Adjust tests on length of key parameters Stefan Berger
2024-03-21 17:11   ` Jarkko Sakkinen [this message]
2024-03-20 11:47 ` [PATCH v7 04/13] crypto: ecdsa - Extend res.x mod n calculation for NIST P521 Stefan Berger
2024-03-21 17:15   ` Jarkko Sakkinen
2024-03-20 11:47 ` [PATCH v7 05/13] crypto: ecc - Add nbits field to ecc_curve structure Stefan Berger
2024-03-21 17:17   ` Jarkko Sakkinen
2024-03-21 17:42     ` Stefan Berger
2024-03-21 18:24       ` Jarkko Sakkinen
2024-03-20 11:47 ` [PATCH v7 06/13] crypto: ecc - Implement vli_mmod_fast_521 for NIST p521 Stefan Berger
2024-03-21 17:18   ` Jarkko Sakkinen
2024-03-20 11:47 ` [PATCH v7 07/13] crypto: ecc - Add special case for NIST P521 in ecc_point_mult Stefan Berger
2024-03-20 11:47 ` [PATCH v7 08/13] crypto: ecc - Add NIST P521 curve parameters Stefan Berger
2024-03-20 11:47 ` [PATCH v7 09/13] crypto: ecdsa - Replace ndigits with nbits where precision is needed Stefan Berger
2024-03-21 17:19   ` Jarkko Sakkinen
2024-03-20 11:47 ` [PATCH v7 10/13] crypto: ecdsa - Rename keylen to bufsize where necessary Stefan Berger
2024-03-21 17:19   ` Jarkko Sakkinen
2024-03-20 11:47 ` [PATCH v7 11/13] crypto: ecdsa - Register NIST P521 and extend test suite Stefan Berger
2024-03-20 11:47 ` [PATCH v7 12/13] crypto: asymmetric_keys - Adjust signature size calculation for NIST P521 Stefan Berger
2024-03-21 17:20   ` Jarkko Sakkinen
2024-03-20 11:47 ` [PATCH v7 13/13] crypto: x509 - Add OID for NIST P521 and extend parser for it Stefan Berger
2024-03-21 17:20   ` Jarkko Sakkinen
2024-03-21 17:42     ` Stefan Berger
2024-03-21 18:25       ` Jarkko Sakkinen
2024-03-20 12:44 ` [PATCH v7 00/13] Add support for NIST P521 to ecdsa Stefan Berger
2024-03-25 19:18   ` Lukas Wunner

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=CZZLG1NOKZED.3VQXFGK57IEEU@kernel.org \
    --to=jarkko@kernel.org \
    --cc=bbhushan2@marvell.com \
    --cc=davem@davemloft.net \
    --cc=herbert@gondor.apana.org.au \
    --cc=keyrings@vger.kernel.org \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lukas@wunner.de \
    --cc=saulo.alessandre@tse.jus.br \
    --cc=stefanb@linux.ibm.com \
    /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.