diff options
author | Håvard Pettersen <havardpe@oath.com> | 2019-07-12 12:46:51 +0000 |
---|---|---|
committer | Håvard Pettersen <havardpe@oath.com> | 2019-07-12 12:46:51 +0000 |
commit | 711f101fbe56a93848285452311ba63ecc62f07f (patch) | |
tree | 18e5246fa8e2d317195b5eed2150eeaf1fa8f524 /fbench | |
parent | 1c79079945c56fa91de8427fbc8f2170eec9ed8c (diff) |
added option to use default crypto engine as fallback
this will enable picking up TLS configuration from the environment
Diffstat (limited to 'fbench')
-rw-r--r-- | fbench/src/fbench/fbench.cpp | 20 | ||||
-rw-r--r-- | fbench/src/fbench/fbench.h | 3 |
2 files changed, 17 insertions, 6 deletions
diff --git a/fbench/src/fbench/fbench.cpp b/fbench/src/fbench/fbench.cpp index 205dc867950..723980cd1c7 100644 --- a/fbench/src/fbench/fbench.cpp +++ b/fbench/src/fbench/fbench.cpp @@ -63,13 +63,18 @@ FBench::~FBench() bool FBench::init_crypto_engine(const std::string &ca_certs_file_name, const std::string &cert_chain_file_name, - const std::string &private_key_file_name) + const std::string &private_key_file_name, + bool allow_default_tls) { if (ca_certs_file_name.empty() && cert_chain_file_name.empty() && private_key_file_name.empty()) { - _crypto_engine = std::make_shared<vespalib::NullCryptoEngine>(); + if (allow_default_tls) { + _crypto_engine = vespalib::CryptoEngine::get_default(); + } else { + _crypto_engine = std::make_shared<vespalib::NullCryptoEngine>(); + } return true; } if (ca_certs_file_name.empty()) { @@ -297,7 +302,8 @@ FBench::Usage() printf(" -z : use single query file to be distributed between clients.\n"); printf(" -T <str> : CA certificate file to verify peer against.\n"); printf(" -C <str> : client certificate file name.\n"); - printf(" -K <str> : client private key file name.\n\n"); + printf(" -K <str> : client private key file name.\n"); + printf(" -D : use TLS configuration from environment if T/C/K is not used\n\n"); printf(" <hostname> : the host you want to benchmark.\n"); printf(" <port> : the port to use when contacting the host.\n\n"); printf("Several hostnames and ports can be listed\n"); @@ -332,6 +338,7 @@ FBench::Main(int argc, char *argv[]) std::string ca_certs_file_name; // -T std::string cert_chain_file_name; // -C std::string private_key_file_name; // -K + bool allow_default_tls = false; // -D int restartLimit = -1; bool keepAlive = true; @@ -351,7 +358,7 @@ FBench::Main(int argc, char *argv[]) idx = 1; optError = false; - while((opt = GetOpt(argc, argv, "H:A:T:C:K:a:n:c:l:i:s:q:o:r:m:p:kxyzP", arg, idx)) != -1) { + while((opt = GetOpt(argc, argv, "H:A:T:C:K:Da:n:c:l:i:s:q:o:r:m:p:kxyzP", arg, idx)) != -1) { switch(opt) { case 'A': authority = arg; @@ -372,6 +379,9 @@ FBench::Main(int argc, char *argv[]) case 'K': private_key_file_name = std::string(arg); break; + case 'D': + allow_default_tls = true; + break; case 'a': queryStringToAppend = std::string(arg); break; @@ -443,7 +453,7 @@ FBench::Main(int argc, char *argv[]) return -1; } - if (!init_crypto_engine(ca_certs_file_name, cert_chain_file_name, private_key_file_name)) { + if (!init_crypto_engine(ca_certs_file_name, cert_chain_file_name, private_key_file_name, allow_default_tls)) { fprintf(stderr, "failed to initialize crypto engine\n"); return -1; } diff --git a/fbench/src/fbench/fbench.h b/fbench/src/fbench/fbench.h index 8cbab2e6d6c..e4a8e4e0b27 100644 --- a/fbench/src/fbench/fbench.h +++ b/fbench/src/fbench/fbench.h @@ -35,7 +35,8 @@ private: bool init_crypto_engine(const std::string &ca_certs_file_name, const std::string &cert_chain_file_name, - const std::string &private_key_file_name); + const std::string &private_key_file_name, + bool allow_default_tls); void InitBenchmark(int numClients, int ignoreCount, int cycle, const char *filenamePattern, const char *outputPattern, |