From b867a31b1844e664807123b71c6e1458eb981335 Mon Sep 17 00:00:00 2001 From: Shigeki Ohtsu Date: Fri, 22 May 2015 18:23:57 +0900 Subject: [PATCH] tls: output warning of setDHParam to console.trace To make it easy to figure out where the warning comes from. Also fix style and variable name that was made in #1739. --- lib/_tls_common.js | 6 +++++- src/node_crypto.cc | 10 +++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/lib/_tls_common.js b/lib/_tls_common.js index d857717dabae15..120dce5784b27b 100644 --- a/lib/_tls_common.js +++ b/lib/_tls_common.js @@ -99,7 +99,11 @@ exports.createSecureContext = function createSecureContext(options, context) { else if (options.ecdhCurve) c.context.setECDHCurve(options.ecdhCurve); - if (options.dhparam) c.context.setDHParam(options.dhparam); + if (options.dhparam) { + var warning = c.context.setDHParam(options.dhparam); + if (warning) + console.trace(warning); + } if (options.crl) { if (Array.isArray(options.crl)) { diff --git a/src/node_crypto.cc b/src/node_crypto.cc index 5fb1986e2f89e1..8e9fc28bfdadd9 100644 --- a/src/node_crypto.cc +++ b/src/node_crypto.cc @@ -804,12 +804,12 @@ void SecureContext::SetDHParam(const FunctionCallbackInfo& args) { if (dh == nullptr) return; - const int keylen = BN_num_bits(dh->p); - if (keylen < 1024) { - DH_free(dh); + const int size = BN_num_bits(dh->p); + if (size < 1024) { return env->ThrowError("DH parameter is less than 1024 bits"); - } else if (keylen < 2048) { - fprintf(stderr, "WARNING: DH parameter is less than 2048 bits\n"); + } else if (size < 2048) { + args.GetReturnValue().Set(FIXED_ONE_BYTE_STRING( + env->isolate(), "WARNING: DH parameter is less than 2048 bits")); } SSL_CTX_set_options(sc->ctx_, SSL_OP_SINGLE_DH_USE);