src: check curve ID existence instead of asn flags

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 <jasnell@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
This commit is contained in:
Sam Roberts
2019-01-04 11:00:57 -08:00
committed by Anna Henningsen
parent bf3cb3f9b1
commit 4a6ec3bd05

View File

@@ -1738,21 +1738,18 @@ static Local<Object> 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,