Line data Source code
1 : #pragma once 2 : 3 : #include <string> 4 : 5 : #include "envoy/api/api.h" 6 : #include "envoy/extensions/transport_sockets/tls/v3/cert.pb.h" 7 : #include "envoy/ssl/private_key/private_key.h" 8 : #include "envoy/ssl/tls_certificate_config.h" 9 : 10 : namespace Envoy { 11 : namespace Ssl { 12 : 13 : class TlsCertificateConfigImpl : public TlsCertificateConfig { 14 : public: 15 : TlsCertificateConfigImpl( 16 : const envoy::extensions::transport_sockets::tls::v3::TlsCertificate& config, 17 : Server::Configuration::TransportSocketFactoryContext& factory_context, Api::Api& api); 18 : 19 0 : const std::string& certificateChain() const override { return certificate_chain_; } 20 0 : const std::string& certificateChainPath() const override { return certificate_chain_path_; } 21 0 : const std::string& privateKey() const override { return private_key_; } 22 0 : const std::string& privateKeyPath() const override { return private_key_path_; } 23 0 : const std::string& pkcs12() const override { return pkcs12_; } 24 0 : const std::string& pkcs12Path() const override { return pkcs12_path_; } 25 0 : const std::string& password() const override { return password_; } 26 0 : const std::string& passwordPath() const override { return password_path_; } 27 0 : const std::vector<uint8_t>& ocspStaple() const override { return ocsp_staple_; } 28 0 : const std::string& ocspStaplePath() const override { return ocsp_staple_path_; } 29 0 : Envoy::Ssl::PrivateKeyMethodProviderSharedPtr privateKeyMethod() const override { 30 0 : return private_key_method_; 31 0 : } 32 : 33 : private: 34 : const std::string certificate_chain_; 35 : const std::string certificate_chain_path_; 36 : const std::string private_key_; 37 : const std::string private_key_path_; 38 : const std::string pkcs12_; 39 : const std::string pkcs12_path_; 40 : const std::string password_; 41 : const std::string password_path_; 42 : const std::vector<uint8_t> ocsp_staple_; 43 : const std::string ocsp_staple_path_; 44 : Envoy::Ssl::PrivateKeyMethodProviderSharedPtr private_key_method_{}; 45 : }; 46 : 47 : } // namespace Ssl 48 : } // namespace Envoy