summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/libcrypto/rsa/rsa_pmeth.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/lib/libcrypto/rsa/rsa_pmeth.c b/src/lib/libcrypto/rsa/rsa_pmeth.c
index 0b3774bf6e..3747f1dd28 100644
--- a/src/lib/libcrypto/rsa/rsa_pmeth.c
+++ b/src/lib/libcrypto/rsa/rsa_pmeth.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: rsa_pmeth.c,v 1.34 2022/11/26 16:08:54 tb Exp $ */ 1/* $OpenBSD: rsa_pmeth.c,v 1.35 2023/03/06 08:31:34 tb Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project 2006. 3 * project 2006.
4 */ 4 */
@@ -326,12 +326,16 @@ pkey_rsa_verify(EVP_PKEY_CTX *ctx, const unsigned char *sig, size_t siglen,
326 return -1; 326 return -1;
327 } 327 }
328 } else { 328 } else {
329 int ret;
330
329 if (!setup_tbuf(rctx, ctx)) 331 if (!setup_tbuf(rctx, ctx))
330 return -1; 332 return -1;
331 rslen = RSA_public_decrypt(siglen, sig, rctx->tbuf, rsa, 333
332 rctx->pad_mode); 334 if ((ret = RSA_public_decrypt(siglen, sig, rctx->tbuf, rsa,
333 if (rslen == 0) 335 rctx->pad_mode)) <= 0)
334 return 0; 336 return 0;
337
338 rslen = ret;
335 } 339 }
336 340
337 if (rslen != tbslen || timingsafe_bcmp(tbs, rctx->tbuf, rslen)) 341 if (rslen != tbslen || timingsafe_bcmp(tbs, rctx->tbuf, rslen))