From b01ac076f888070dff8c1b65f1be9beb89dc7829 Mon Sep 17 00:00:00 2001 From: Shahar Mor Date: Fri, 25 Mar 2022 18:39:55 +0300 Subject: [PATCH] Allow passing custom ciphers via options (#723) --- src/AppWrapper.h | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/AppWrapper.h b/src/AppWrapper.h index 233da488..9d5cf902 100644 --- a/src/AppWrapper.h +++ b/src/AppWrapper.h @@ -388,7 +388,7 @@ std::pair readOptionsObject(const FunctionCallb Isolate *isolate = args.GetIsolate(); /* Read the options object if any */ uWS::SocketContextOptions options = {}; - thread_local std::string keyFileName, certFileName, passphrase, dhParamsFileName, caFileName; + thread_local std::string keyFileName, certFileName, passphrase, dhParamsFileName, caFileName, sslCiphers; if (args.Length() > index) { Local optionsObject = Local::Cast(args[index]); @@ -445,6 +445,16 @@ std::pair readOptionsObject(const FunctionCallb /* ssl_prefer_low_memory_usage */ options.ssl_prefer_low_memory_usage = optionsObject->Get(isolate->GetCurrentContext(), String::NewFromUtf8(isolate, "ssl_prefer_low_memory_usage", NewStringType::kNormal).ToLocalChecked()).ToLocalChecked()->BooleanValue(isolate); + + /* ssl_ciphers */ + NativeString sslCiphersValue(isolate, optionsObject->Get(isolate->GetCurrentContext(), String::NewFromUtf8(isolate, "ssl_ciphers", NewStringType::kNormal).ToLocalChecked()).ToLocalChecked()); + if (sslCiphersValue.isInvalid(args)) { + return {}; + } + if (sslCiphersValue.getString().length()) { + sslCiphers = sslCiphersValue.getString(); + options.ssl_ciphers = sslCiphers.c_str(); + } } return {options, true};