22#include <openssl/opensslv.h>
28 const SSLLib::SSLAPI::Config::Ptr sslcfg(
new SSLLib::SSLAPI::Config);
29 sslcfg->set_local_cert_enabled(
false);
32 sslcfg->set_tls_ciphersuite_list(
"TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_CCM_SHA256");
34 sslfact = sslcfg->new_factory();
37 sslcfg->set_tls_ciphersuite_list(
"TLS_CHACHA2000");
40 sslfact = sslcfg->new_factory();
43 EXPECT_THROW(sslcfg->new_factory(), SSLFactoryAPI::ssl_context_error);
54 const SSLLib::SSLAPI::Config::Ptr sslcfg(
new SSLLib::SSLAPI::Config);
55 sslcfg->set_local_cert_enabled(
false);
60 sslcfg->set_tls_cipher_list(
"TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256:TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256:AES256-SHA");
62 sslfact = sslcfg->new_factory();
74 const SSLLib::SSLAPI::Config::Ptr sslcfg(
new SSLLib::SSLAPI::Config);
75 sslcfg->set_local_cert_enabled(
false);
78 sslcfg->set_debug_level(1);
80 sslcfg->set_tls_groups(
"secp521r1:secp384r1");
83 auto f = sslcfg->new_factory();
86 sslcfg->set_tls_groups(
"secp521r1:secp384r1:greenhell");
89 f = sslcfg->new_factory();
93 EXPECT_EQ(
"OpenSSL -- warning ignoring unknown group 'greenhell' in tls-groups\n",
testLog->
stopCollecting());
95 EXPECT_EQ(
"mbed TLS -- warning ignoring unknown group 'greenhell' in tls-groups\n",
testLog->
stopCollecting());
100TEST(Ssl, TranslateCiphersOpenssl)
104 EXPECT_EQ(
"ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:AES256-SHA",
113#if defined(USE_OPENSSL) && OPENSSL_VERSION_NUMBER >= 0x30000000L
114TEST(Ssl, EnablelegacyProvider)
118 const SSLLib::SSLAPI::Config::Ptr sslcfg(
new SSLLib::SSLAPI::Config);
119 sslcfg->set_local_cert_enabled(
false);
121 sslcfg->set_rng(rng);
123 auto f_nolegacy = sslcfg->new_factory();
127 const SSLLib::SSLAPI::Config::Ptr sslcfg_legacy(
new SSLLib::SSLAPI::Config);
128 sslcfg_legacy->set_local_cert_enabled(
false);
130 sslcfg_legacy->set_rng(rng);
131 sslcfg_legacy->enable_legacy_algorithms(
true);
134 auto f_legacy = sslcfg_legacy->new_factory();
std::string stopCollecting()
void setPrintOutput(bool doOutput)
bool isStdoutEnabled() const
static std::string translate_cipher_list(const std::string &cipherlist)
virtual SSLAPI::Ptr ssl()=0
openvpn::LogOutputCollector * testLog
constexpr int LOG_LEVEL_INFO
TEST(Ssl, Sslciphersuites)