Line data Source code
1 : #pragma once 2 : 3 : #include <functional> 4 : 5 : #include "envoy/extensions/transport_sockets/tls/v3/cert.pb.h" 6 : #include "envoy/secret/secret_provider.h" 7 : #include "envoy/ssl/certificate_validation_context_config.h" 8 : #include "envoy/ssl/tls_certificate_config.h" 9 : 10 : namespace Envoy { 11 : namespace Secret { 12 : 13 : class TlsCertificateConfigProviderImpl : public TlsCertificateConfigProvider { 14 : public: 15 : TlsCertificateConfigProviderImpl( 16 : const envoy::extensions::transport_sockets::tls::v3::TlsCertificate& tls_certificate); 17 : 18 70 : const envoy::extensions::transport_sockets::tls::v3::TlsCertificate* secret() const override { 19 70 : return tls_certificate_.get(); 20 70 : } 21 : 22 : ABSL_MUST_USE_RESULT Common::CallbackHandlePtr addValidationCallback( 23 : std::function<void(const envoy::extensions::transport_sockets::tls::v3::TlsCertificate&)>) 24 0 : override { 25 0 : return nullptr; 26 0 : } 27 : 28 0 : ABSL_MUST_USE_RESULT Common::CallbackHandlePtr addUpdateCallback(std::function<void()>) override { 29 0 : return nullptr; 30 0 : } 31 : 32 : private: 33 : Secret::TlsCertificatePtr tls_certificate_; 34 : }; 35 : 36 : class CertificateValidationContextConfigProviderImpl 37 : : public CertificateValidationContextConfigProvider { 38 : public: 39 : CertificateValidationContextConfigProviderImpl( 40 : const envoy::extensions::transport_sockets::tls::v3::CertificateValidationContext& 41 : certificate_validation_context); 42 : 43 : const envoy::extensions::transport_sockets::tls::v3::CertificateValidationContext* 44 0 : secret() const override { 45 0 : return certificate_validation_context_.get(); 46 0 : } 47 : 48 : ABSL_MUST_USE_RESULT Common::CallbackHandlePtr addValidationCallback( 49 : std::function< 50 : void(const envoy::extensions::transport_sockets::tls::v3::CertificateValidationContext&)>) 51 0 : override { 52 0 : return nullptr; 53 0 : } 54 : 55 0 : ABSL_MUST_USE_RESULT Common::CallbackHandlePtr addUpdateCallback(std::function<void()>) override { 56 0 : return nullptr; 57 0 : } 58 : 59 : private: 60 : Secret::CertificateValidationContextPtr certificate_validation_context_; 61 : }; 62 : 63 : class TlsSessionTicketKeysConfigProviderImpl : public TlsSessionTicketKeysConfigProvider { 64 : public: 65 : TlsSessionTicketKeysConfigProviderImpl( 66 : const envoy::extensions::transport_sockets::tls::v3::TlsSessionTicketKeys& 67 : tls_session_ticket_keys); 68 : 69 : const envoy::extensions::transport_sockets::tls::v3::TlsSessionTicketKeys* 70 0 : secret() const override { 71 0 : return tls_session_ticket_keys_.get(); 72 0 : } 73 : 74 : ABSL_MUST_USE_RESULT Common::CallbackHandlePtr addValidationCallback( 75 : std::function<void( 76 0 : const envoy::extensions::transport_sockets::tls::v3::TlsSessionTicketKeys&)>) override { 77 0 : return nullptr; 78 0 : } 79 : 80 0 : ABSL_MUST_USE_RESULT Common::CallbackHandlePtr addUpdateCallback(std::function<void()>) override { 81 0 : return nullptr; 82 0 : } 83 : 84 : private: 85 : Secret::TlsSessionTicketKeysPtr tls_session_ticket_keys_; 86 : }; 87 : 88 : class GenericSecretConfigProviderImpl : public GenericSecretConfigProvider { 89 : public: 90 : GenericSecretConfigProviderImpl( 91 : const envoy::extensions::transport_sockets::tls::v3::GenericSecret& generic_secret); 92 : 93 0 : const envoy::extensions::transport_sockets::tls::v3::GenericSecret* secret() const override { 94 0 : return generic_secret_.get(); 95 0 : } 96 : 97 : ABSL_MUST_USE_RESULT Common::CallbackHandlePtr addValidationCallback( 98 : std::function<void(const envoy::extensions::transport_sockets::tls::v3::GenericSecret&)>) 99 0 : override { 100 0 : return nullptr; 101 0 : } 102 : 103 0 : ABSL_MUST_USE_RESULT Common::CallbackHandlePtr addUpdateCallback(std::function<void()>) override { 104 0 : return nullptr; 105 0 : } 106 : 107 : private: 108 : Secret::GenericSecretPtr generic_secret_; 109 : }; 110 : 111 : } // namespace Secret 112 : } // namespace Envoy