Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5185)

Unified Diff: net/tools/quic/quic_client_bin.cc

Issue 2441053002: Fix seg fault crash of quic_client with --disable-certificate-verification (Closed)
Patch Set: change mail address Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « AUTHORS ('k') | net/tools/quic/quic_simple_client_bin.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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(
« no previous file with comments | « AUTHORS ('k') | net/tools/quic/quic_simple_client_bin.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698