From 018681828e130e2eedf8fac8c238f9893e969b85 Mon Sep 17 00:00:00 2001 From: Sam Roberts Date: Fri, 4 Jan 2019 11:00:57 -0800 Subject: [PATCH] [cherry-pick] src: check curve ID existence instead of asn flags MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Simplify the code. The flag check was in the OpenSSL source, but reading through the docs and source, it is not necessary. Refs: https://github.com/nodejs/node/pull/24358/files#r243099693 PR-URL: https://github.com/nodejs/node/pull/25345 Reviewed-By: James M Snell Reviewed-By: Ben Noordhuis Reviewed-By: Tobias Nießen --- src/node_crypto.cc | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/src/node_crypto.cc b/src/node_crypto.cc index 73cf5b2bb90..aedabce2e07 100644 --- a/src/node_crypto.cc +++ b/src/node_crypto.cc @@ -1756,21 +1756,18 @@ static Local X509ToObject(Environment* env, X509* cert) { CHECK_NULL(pub); } - if (EC_GROUP_get_asn1_flag(group) != 0) { + const int nid = EC_GROUP_get_curve_name(group); + if (nid != 0) { // Curve is well-known, get its OID and NIST nick-name (if it has one). - int nid = EC_GROUP_get_curve_name(group); - if (nid != 0) { - if (const char* sn = OBJ_nid2sn(nid)) { - info->Set(context, env->asn1curve_string(), - OneByteString(env->isolate(), sn)).FromJust(); - } + if (const char* sn = OBJ_nid2sn(nid)) { + info->Set(context, env->asn1curve_string(), + OneByteString(env->isolate(), sn)).FromJust(); } - if (nid != 0) { - if (const char* nist = EC_curve_nid2nist(nid)) { - info->Set(context, env->nistcurve_string(), - OneByteString(env->isolate(), nist)).FromJust(); - } + + if (const char* nist = EC_curve_nid2nist(nid)) { + info->Set(context, env->nistcurve_string(), + OneByteString(env->isolate(), nist)).FromJust(); } } else { // Unnamed curves can be described by their mathematical properties,