Line data Source code
1 : #pragma once 2 : 3 : #include "source/common/common/logger.h" 4 : 5 : #include "absl/strings/str_cat.h" 6 : #include "quiche/quic/core/crypto/proof_verifier.h" 7 : #include "quiche/quic/core/quic_versions.h" 8 : 9 : namespace Envoy { 10 : namespace Quic { 11 : 12 : // A partial implementation of quic::ProofVerifier which does signature 13 : // verification. 14 : class EnvoyQuicProofVerifierBase : public quic::ProofVerifier, 15 : protected Logger::Loggable<Logger::Id::quic> { 16 : public: 17 0 : ~EnvoyQuicProofVerifierBase() override = default; 18 : 19 : // quic::ProofVerifier 20 : quic::QuicAsyncStatus 21 : VerifyProof(const std::string& hostname, const uint16_t port, const std::string& server_config, 22 : quic::QuicTransportVersion /*quic_version*/, absl::string_view chlo_hash, 23 : const std::vector<std::string>& certs, const std::string& cert_sct, 24 : const std::string& signature, const quic::ProofVerifyContext* context, 25 : std::string* error_details, std::unique_ptr<quic::ProofVerifyDetails>* details, 26 : std::unique_ptr<quic::ProofVerifierCallback> callback) override; 27 : 28 0 : std::unique_ptr<quic::ProofVerifyContext> CreateDefaultContext() override { return nullptr; } 29 : }; 30 : 31 : } // namespace Quic 32 : } // namespace Envoy