summaryrefslogtreecommitdiff
path: root/src/ssl/ssl_privkey.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/ssl/ssl_privkey.cc')
-rw-r--r--src/ssl/ssl_privkey.cc13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/ssl/ssl_privkey.cc b/src/ssl/ssl_privkey.cc
index 1ddb1b16..23f8d124 100644
--- a/src/ssl/ssl_privkey.cc
+++ b/src/ssl/ssl_privkey.cc
@@ -236,9 +236,16 @@ bool ssl_public_key_verify(SSL *ssl, Span<const uint8_t> signature,
uint16_t sigalg, EVP_PKEY *pkey,
Span<const uint8_t> in) {
ScopedEVP_MD_CTX ctx;
- return setup_ctx(ssl, ctx.get(), pkey, sigalg, true /* verify */) &&
- EVP_DigestVerify(ctx.get(), signature.data(), signature.size(),
- in.data(), in.size());
+ if (!setup_ctx(ssl, ctx.get(), pkey, sigalg, true /* verify */)) {
+ return false;
+ }
+ bool ok = EVP_DigestVerify(ctx.get(), signature.data(), signature.size(),
+ in.data(), in.size());
+#if defined(BORINGSSL_UNSAFE_FUZZER_MODE)
+ ok = true;
+ ERR_clear_error();
+#endif
+ return ok;
}
enum ssl_private_key_result_t ssl_private_key_decrypt(SSL_HANDSHAKE *hs,