]> git.kaiwu.me - njs.git/commitdiff
Fixed WebCrypto sign() and verify() methods with OpenSSL 3.0.1.
authorDmitry Volyntsev <xeioex@nginx.com>
Wed, 22 Dec 2021 16:54:13 +0000 (16:54 +0000)
committerDmitry Volyntsev <xeioex@nginx.com>
Wed, 22 Dec 2021 16:54:13 +0000 (16:54 +0000)
Since 3.0.1 EVP_DigestSignFinal() expects siglen to contain the
actual buffer size for signature buffer.

external/njs_webcrypto.c

index 450ebfd65fe6cdb63faf95f2910d09ec18c4e735..d9ddbe30ed1c755ff2c13063a36be9653195497b 100644 (file)
@@ -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");