| Index: net/tools/quic/quic_client_bin.cc
|
| diff --git a/net/tools/quic/quic_client_bin.cc b/net/tools/quic/quic_client_bin.cc
|
| index 14ccc66465280ea3d5732b3eac720a56fa590230..894c34336096bf1ef1947bdf395bce8af806343a 100644
|
| --- a/net/tools/quic/quic_client_bin.cc
|
| +++ b/net/tools/quic/quic_client_bin.cc
|
| @@ -71,6 +71,7 @@ using net::CertVerifier;
|
| using net::CTPolicyEnforcer;
|
| using net::CTVerifier;
|
| using net::MultiLogCTVerifier;
|
| +using net::ProofVerifier;
|
| using net::ProofVerifierChromium;
|
| using net::SpdyHeaderBlock;
|
| using net::TransportSecurityState;
|
| @@ -105,19 +106,33 @@ bool FLAGS_redirect_is_success = true;
|
| // Initial MTU of the connection.
|
| int32_t FLAGS_initial_mtu = 0;
|
|
|
| -class FakeCertVerifier : public net::CertVerifier {
|
| +class FakeProofVerifier : public ProofVerifier {
|
| public:
|
| - int Verify(const RequestParams& params,
|
| - net::CRLSet* crl_set,
|
| - net::CertVerifyResult* verify_result,
|
| - const net::CompletionCallback& callback,
|
| - std::unique_ptr<Request>* out_req,
|
| - const net::NetLogWithSource& net_log) override {
|
| - return net::OK;
|
| + net::QuicAsyncStatus VerifyProof(
|
| + const string& hostname,
|
| + const uint16_t port,
|
| + const string& server_config,
|
| + net::QuicVersion quic_version,
|
| + StringPiece chlo_hash,
|
| + const vector<string>& certs,
|
| + const string& cert_sct,
|
| + const string& signature,
|
| + const net::ProofVerifyContext* context,
|
| + string* error_details,
|
| + std::unique_ptr<net::ProofVerifyDetails>* details,
|
| + std::unique_ptr<net::ProofVerifierCallback> callback) override {
|
| + return net::QUIC_SUCCESS;
|
| }
|
|
|
| - // Returns true if this CertVerifier supports stapled OCSP responses.
|
| - bool SupportsOCSPStapling() override { return false; }
|
| + net::QuicAsyncStatus VerifyCertChain(
|
| + const std::string& hostname,
|
| + const std::vector<std::string>& certs,
|
| + const net::ProofVerifyContext* verify_context,
|
| + std::string* error_details,
|
| + std::unique_ptr<net::ProofVerifyDetails>* verify_details,
|
| + std::unique_ptr<net::ProofVerifierCallback> callback) override {
|
| + return net::QUIC_SUCCESS;
|
| + }
|
| };
|
|
|
| int main(int argc, char* argv[]) {
|
| @@ -245,18 +260,19 @@ int main(int argc, char* argv[]) {
|
| }
|
| // For secure QUIC we need to verify the cert chain.
|
| std::unique_ptr<CertVerifier> cert_verifier(CertVerifier::CreateDefault());
|
| - if (line->HasSwitch("disable-certificate-verification")) {
|
| - cert_verifier.reset(new FakeCertVerifier());
|
| - }
|
| std::unique_ptr<TransportSecurityState> transport_security_state(
|
| new TransportSecurityState);
|
| transport_security_state.reset(new TransportSecurityState);
|
| std::unique_ptr<CTVerifier> ct_verifier(new MultiLogCTVerifier());
|
| std::unique_ptr<CTPolicyEnforcer> ct_policy_enforcer(new CTPolicyEnforcer());
|
| - std::unique_ptr<net::ProofVerifierChromium> proof_verifier(
|
| - new ProofVerifierChromium(cert_verifier.get(), ct_policy_enforcer.get(),
|
| - transport_security_state.get(),
|
| - ct_verifier.get()));
|
| + std::unique_ptr<ProofVerifier> proof_verifier;
|
| + if (line->HasSwitch("disable-certificate-verification")) {
|
| + proof_verifier.reset(new FakeProofVerifier());
|
| + } else {
|
| + proof_verifier.reset(new ProofVerifierChromium(
|
| + cert_verifier.get(), ct_policy_enforcer.get(),
|
| + transport_security_state.get(), ct_verifier.get()));
|
| + }
|
| net::QuicClient client(net::IPEndPoint(ip_addr, port), server_id, versions,
|
| &epoll_server, std::move(proof_verifier));
|
| client.set_initial_max_packet_length(
|
|
|