[njs] WebCrypto: improved working with curve constants.

noreply at nginx.com noreply at nginx.com
Fri May 16 19:16:02 UTC 2025


details:   https://github.com/nginx/njs/commit/f3bc5338cb9df269ca6573cf46b5d39721803cf2
branches:  master
commit:    f3bc5338cb9df269ca6573cf46b5d39721803cf2
user:      Dmitry Volyntsev <xeioex at nginx.com>
date:      Tue, 13 May 2025 19:08:16 -0700
description:
WebCrypto: improved working with curve constants.

In crypto.subtle.generateKey().

---
 external/njs_webcrypto_module.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/external/njs_webcrypto_module.c b/external/njs_webcrypto_module.c
index d9b05d09..8d7f78e7 100644
--- a/external/njs_webcrypto_module.c
+++ b/external/njs_webcrypto_module.c
@@ -2593,7 +2593,6 @@ static njs_int_t
 njs_ext_generate_key(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
     njs_index_t unused, njs_value_t *retval)
 {
-    int                        nid;
     unsigned                   usage;
     njs_int_t                  ret;
     njs_bool_t                 extractable;
@@ -2730,8 +2729,7 @@ njs_ext_generate_key(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
 
     case NJS_ALGORITHM_ECDSA:
     case NJS_ALGORITHM_ECDH:
-        nid = 0;
-        ret = njs_algorithm_curve(vm, aobject, &nid);
+        ret = njs_algorithm_curve(vm, aobject, &key->u.a.curve);
         if (njs_slow_path(ret == NJS_ERROR)) {
             goto fail;
         }
@@ -2747,7 +2745,7 @@ njs_ext_generate_key(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs,
             goto fail;
         }
 
-        if (EVP_PKEY_CTX_set_ec_paramgen_curve_nid(ctx, nid) <= 0) {
+        if (EVP_PKEY_CTX_set_ec_paramgen_curve_nid(ctx, key->u.a.curve) <= 0) {
             njs_webcrypto_error(vm, "EVP_PKEY_CTX_set_ec_paramgen_curve_nid() "
                                 "failed");
             goto fail;


More information about the nginx-devel mailing list