On Wed Mar 20, 2024 at 1:47 PM EET, Stefan Berger wrote: > In cases where 'keylen' was referring to the size of the buffer used by > a curve's digits, it does not reflect the purpose of the variable anymore > once NIST P521 is used. What it refers to then is the size of the buffer, > which may be a few bytes larger than the size a coordinate of a key. > Therefore, rename keylen to bufsize where appropriate. > > Signed-off-by: Stefan Berger <stefanb@xxxxxxxxxxxxx> > Tested-by: Lukas Wunner <lukas@xxxxxxxxx> > --- > crypto/ecdsa.c | 12 ++++++------ > 1 file changed, 6 insertions(+), 6 deletions(-) > > diff --git a/crypto/ecdsa.c b/crypto/ecdsa.c > index 4daefb40c37a..4e847b59622a 100644 > --- a/crypto/ecdsa.c > +++ b/crypto/ecdsa.c > @@ -35,8 +35,8 @@ struct ecdsa_signature_ctx { > static int ecdsa_get_signature_rs(u64 *dest, size_t hdrlen, unsigned char tag, > const void *value, size_t vlen, unsigned int ndigits) > { > - size_t keylen = ndigits * sizeof(u64); > - ssize_t diff = vlen - keylen; > + size_t bufsize = ndigits * sizeof(u64); > + ssize_t diff = vlen - bufsize; > const char *d = value; > u8 rs[ECC_MAX_BYTES]; > > @@ -58,7 +58,7 @@ static int ecdsa_get_signature_rs(u64 *dest, size_t hdrlen, unsigned char tag, > if (diff) > return -EINVAL; > } > - if (-diff >= keylen) > + if (-diff >= bufsize) > return -EINVAL; > > if (diff) { > @@ -138,7 +138,7 @@ static int ecdsa_verify(struct akcipher_request *req) > { > struct crypto_akcipher *tfm = crypto_akcipher_reqtfm(req); > struct ecc_ctx *ctx = akcipher_tfm_ctx(tfm); > - size_t keylen = ctx->curve->g.ndigits * sizeof(u64); > + size_t bufsize = ctx->curve->g.ndigits * sizeof(u64); > struct ecdsa_signature_ctx sig_ctx = { > .curve = ctx->curve, > }; > @@ -165,14 +165,14 @@ static int ecdsa_verify(struct akcipher_request *req) > goto error; > > /* if the hash is shorter then we will add leading zeros to fit to ndigits */ > - diff = keylen - req->dst_len; > + diff = bufsize - req->dst_len; > if (diff >= 0) { > if (diff) > memset(rawhash, 0, diff); > memcpy(&rawhash[diff], buffer + req->src_len, req->dst_len); > } else if (diff < 0) { > /* given hash is longer, we take the left-most bytes */ > - memcpy(&rawhash, buffer + req->src_len, keylen); > + memcpy(&rawhash, buffer + req->src_len, bufsize); > } > > ecc_swap_digits((u64 *)rawhash, hash, ctx->curve->g.ndigits); Reviewed-by: Jarkko Sakkinen <jarkko@xxxxxxxxxx> BR, Jarkko