mirror of
https://github.com/torvalds/linux.git
synced 2024-12-27 05:11:48 +00:00
crypto: rsa-pkcs1pad - restore signature length check
RSA PKCS#1 v1.5 signatures are required to be the same length as the RSA key size. RFC8017 specifically requires the verifier to check this (https://datatracker.ietf.org/doc/html/rfc8017#section-8.2.2). Commita49de377e0
("crypto: Add hash param to pkcs1pad") changed the kernel to allow longer signatures, but didn't explain this part of the change; it seems to be unrelated to the rest of the commit. Revert this change, since it doesn't appear to be correct. We can be pretty sure that no one is relying on overly-long signatures (which would have to be front-padded with zeroes) being supported, given that they would have been broken since commitc7381b0128
("crypto: akcipher - new verify API for public key algorithms"). Fixes:a49de377e0
("crypto: Add hash param to pkcs1pad") Cc: <stable@vger.kernel.org> # v4.6+ Cc: Tadeusz Struk <tadeusz.struk@linaro.org> Suggested-by: Vitaly Chikunov <vt@altlinux.org> Signed-off-by: Eric Biggers <ebiggers@google.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
e316f7179b
commit
d3481accd9
@ -538,7 +538,7 @@ static int pkcs1pad_verify(struct akcipher_request *req)
|
|||||||
|
|
||||||
if (WARN_ON(req->dst) ||
|
if (WARN_ON(req->dst) ||
|
||||||
WARN_ON(!req->dst_len) ||
|
WARN_ON(!req->dst_len) ||
|
||||||
!ctx->key_size || req->src_len < ctx->key_size)
|
!ctx->key_size || req->src_len != ctx->key_size)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
req_ctx->out_buf = kmalloc(ctx->key_size + req->dst_len, GFP_KERNEL);
|
req_ctx->out_buf = kmalloc(ctx->key_size + req->dst_len, GFP_KERNEL);
|
||||||
|
Loading…
Reference in New Issue
Block a user