LCOV - code coverage report
Current view: top level - source/common/ssl - certificate_validation_context_config_impl.h (source / functions) Hit Total Coverage
Test: coverage.dat Lines: 0 27 0.0 %
Date: 2024-01-05 06:35:25 Functions: 0 13 0.0 %

          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/extensions/transport_sockets/tls/v3/common.pb.h"
       8             : #include "envoy/ssl/certificate_validation_context_config.h"
       9             : #include "envoy/type/matcher/v3/string.pb.h"
      10             : 
      11             : #include "absl/status/statusor.h"
      12             : 
      13             : namespace Envoy {
      14             : namespace Ssl {
      15             : 
      16             : class CertificateValidationContextConfigImpl : public CertificateValidationContextConfig {
      17             : public:
      18             :   // Create a CertificateValidationContextConfigImpl or return an error status.
      19             :   static absl::StatusOr<std::unique_ptr<CertificateValidationContextConfigImpl>>
      20             :   create(const envoy::extensions::transport_sockets::tls::v3::CertificateValidationContext& context,
      21             :          Api::Api& api);
      22             : 
      23             :   absl::Status initialize();
      24             : 
      25           0 :   const std::string& caCert() const override { return ca_cert_; }
      26           0 :   const std::string& caCertPath() const override { return ca_cert_path_; }
      27           0 :   const std::string& certificateRevocationList() const override {
      28           0 :     return certificate_revocation_list_;
      29           0 :   }
      30           0 :   const std::string& certificateRevocationListPath() const final {
      31           0 :     return certificate_revocation_list_path_;
      32           0 :   }
      33             :   const std::vector<envoy::extensions::transport_sockets::tls::v3::SubjectAltNameMatcher>&
      34           0 :   subjectAltNameMatchers() const override {
      35           0 :     return subject_alt_name_matchers_;
      36           0 :   }
      37           0 :   const std::vector<std::string>& verifyCertificateHashList() const override {
      38           0 :     return verify_certificate_hash_list_;
      39           0 :   }
      40           0 :   const std::vector<std::string>& verifyCertificateSpkiList() const override {
      41           0 :     return verify_certificate_spki_list_;
      42           0 :   }
      43           0 :   bool allowExpiredCertificate() const override { return allow_expired_certificate_; }
      44             :   envoy::extensions::transport_sockets::tls::v3::CertificateValidationContext::
      45             :       TrustChainVerification
      46           0 :       trustChainVerification() const override {
      47           0 :     return trust_chain_verification_;
      48           0 :   }
      49             : 
      50             :   const absl::optional<envoy::config::core::v3::TypedExtensionConfig>&
      51           0 :   customValidatorConfig() const override {
      52           0 :     return custom_validator_config_;
      53           0 :   }
      54             : 
      55           0 :   Api::Api& api() const override { return api_; }
      56             : 
      57           0 :   bool onlyVerifyLeafCertificateCrl() const override { return only_verify_leaf_cert_crl_; }
      58             : 
      59           0 :   absl::optional<uint32_t> maxVerifyDepth() const override { return max_verify_depth_; }
      60             : 
      61             : protected:
      62             :   CertificateValidationContextConfigImpl(
      63             :       const envoy::extensions::transport_sockets::tls::v3::CertificateValidationContext& config,
      64             :       Api::Api& api);
      65             : 
      66             : private:
      67             :   static std::vector<envoy::extensions::transport_sockets::tls::v3::SubjectAltNameMatcher>
      68             :   getSubjectAltNameMatchers(
      69             :       const envoy::extensions::transport_sockets::tls::v3::CertificateValidationContext& config);
      70             :   const std::string ca_cert_;
      71             :   const std::string ca_cert_path_;
      72             :   const std::string certificate_revocation_list_;
      73             :   const std::string certificate_revocation_list_path_;
      74             :   const std::vector<envoy::extensions::transport_sockets::tls::v3::SubjectAltNameMatcher>
      75             :       subject_alt_name_matchers_;
      76             :   const std::vector<std::string> verify_certificate_hash_list_;
      77             :   const std::vector<std::string> verify_certificate_spki_list_;
      78             :   const bool allow_expired_certificate_;
      79             :   const envoy::extensions::transport_sockets::tls::v3::CertificateValidationContext::
      80             :       TrustChainVerification trust_chain_verification_;
      81             :   const absl::optional<envoy::config::core::v3::TypedExtensionConfig> custom_validator_config_;
      82             :   Api::Api& api_;
      83             :   const bool only_verify_leaf_cert_crl_;
      84             :   absl::optional<uint32_t> max_verify_depth_;
      85             : };
      86             : 
      87             : } // namespace Ssl
      88             : } // namespace Envoy

Generated by: LCOV version 1.15