From 7e8c43e59282eb9cd6b37a0366dd73f007c5b1f8 Mon Sep 17 00:00:00 2001 From: Brian Pane Date: Wed, 10 Jan 2018 18:36:16 +0000 Subject: [PATCH] Add support for api::v2::DataSource's new inline_string option Signed-off-by: Brian Pane --- source/common/ssl/context_config_impl.cc | 4 ++++ test/common/ssl/context_impl_test.cc | 24 +++++++++++++++++++++--- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/source/common/ssl/context_config_impl.cc b/source/common/ssl/context_config_impl.cc index 55f5a18bb89f4..251cbe8af8d7f 100644 --- a/source/common/ssl/context_config_impl.cc +++ b/source/common/ssl/context_config_impl.cc @@ -114,6 +114,10 @@ ServerContextConfigImpl::ServerContextConfigImpl(const envoy::api::v2::Downstrea validateAndAppendKey(ret, datasource.inline_bytes()); break; } + case envoy::api::v2::DataSource::kInlineString: { + validateAndAppendKey(ret, datasource.inline_string()); + break; + } default: throw EnvoyException(fmt::format("Unexpected DataSource::specifier_case(): {}", datasource.specifier_case())); diff --git a/test/common/ssl/context_impl_test.cc b/test/common/ssl/context_impl_test.cc index de359d0316eb9..0dd3a2531d8d5 100644 --- a/test/common/ssl/context_impl_test.cc +++ b/test/common/ssl/context_impl_test.cc @@ -248,23 +248,41 @@ TEST_F(SslServerContextImplTicketTest, TicketKeyNone) { EXPECT_NO_THROW(loadConfigV2(cfg)); } -TEST_F(SslServerContextImplTicketTest, TicketKeyInlineSuccess) { +TEST_F(SslServerContextImplTicketTest, TicketKeyInlineBytesSuccess) { envoy::api::v2::DownstreamTlsContext cfg; cfg.mutable_session_ticket_keys()->add_keys()->set_inline_bytes(std::string(80, '\0')); EXPECT_NO_THROW(loadConfigV2(cfg)); } -TEST_F(SslServerContextImplTicketTest, TicketKeyInlineFailTooBig) { +TEST_F(SslServerContextImplTicketTest, TicketKeyInlineStringSuccess) { + envoy::api::v2::DownstreamTlsContext cfg; + cfg.mutable_session_ticket_keys()->add_keys()->set_inline_string(std::string(80, '\0')); + EXPECT_NO_THROW(loadConfigV2(cfg)); +} + +TEST_F(SslServerContextImplTicketTest, TicketKeyInlineBytesFailTooBig) { envoy::api::v2::DownstreamTlsContext cfg; cfg.mutable_session_ticket_keys()->add_keys()->set_inline_bytes(std::string(81, '\0')); EXPECT_THROW(loadConfigV2(cfg), EnvoyException); } -TEST_F(SslServerContextImplTicketTest, TicketKeyInlineFailTooSmall) { +TEST_F(SslServerContextImplTicketTest, TicketKeyInlineStringFailTooBig) { + envoy::api::v2::DownstreamTlsContext cfg; + cfg.mutable_session_ticket_keys()->add_keys()->set_inline_string(std::string(81, '\0')); + EXPECT_THROW(loadConfigV2(cfg), EnvoyException); +} + +TEST_F(SslServerContextImplTicketTest, TicketKeyInlineBytesFailTooSmall) { envoy::api::v2::DownstreamTlsContext cfg; cfg.mutable_session_ticket_keys()->add_keys()->set_inline_bytes(std::string(79, '\0')); EXPECT_THROW(loadConfigV2(cfg), EnvoyException); } +TEST_F(SslServerContextImplTicketTest, TicketKeyInlineStringFailTooSmall) { + envoy::api::v2::DownstreamTlsContext cfg; + cfg.mutable_session_ticket_keys()->add_keys()->set_inline_string(std::string(79, '\0')); + EXPECT_THROW(loadConfigV2(cfg), EnvoyException); +} + } // namespace Ssl } // namespace Envoy