From dd8a2a254c05c4cec9efa36cce580414b1f6055a 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, 11 insertions(+), 5 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 fb48d05f3a7057..bc645694f69d57 100644 --- a/src/node_crypto.cc +++ b/src/node_crypto.cc @@ -757,11 +757,13 @@ void SecureContext::SetDHParam(const FunctionCallbackInfo& args) { if (dh == nullptr) return; - const int keylen = BN_num_bits(dh->p); - if (keylen < 1024) + 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); int r = SSL_CTX_set_tmp_dh(sc->ctx_, dh);