From bed8ad956ce9d5c2782f407d663fda0b639d4a09 Mon Sep 17 00:00:00 2001 From: Dmitry Volyntsev Date: Wed, 22 Dec 2021 16:54:13 +0000 Subject: [PATCH] Fixed WebCrypto sign() and verify() methods with OpenSSL 3.0.1. Since 3.0.1 EVP_DigestSignFinal() expects siglen to contain the actual buffer size for signature buffer. --- external/njs_webcrypto.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/external/njs_webcrypto.c b/external/njs_webcrypto.c index 450ebfd6..d9ddbe30 100644 --- a/external/njs_webcrypto.c +++ b/external/njs_webcrypto.c @@ -2077,6 +2077,8 @@ njs_ext_sign(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs, dst = (u_char *) &m[0]; } + outlen = olen; + ret = EVP_DigestSignFinal(mctx, dst, &outlen); if (njs_slow_path(ret <= 0 || olen != outlen)) { njs_webcrypto_error(vm, "EVP_DigestSignFinal() failed"); -- 2.47.3