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

Side by Side Diff: net/quic/chromium/crypto/proof_verifier_chromium.cc

Issue 2417183003: Remove stl_util's deletion functions from remaining quic code. (Closed)
Patch Set: rebase 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/quic/chromium/crypto/proof_verifier_chromium.h" 5 #include "net/quic/chromium/crypto/proof_verifier_chromium.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
11 #include "base/callback_helpers.h" 11 #include "base/callback_helpers.h"
12 #include "base/logging.h" 12 #include "base/logging.h"
13 #include "base/memory/ptr_util.h"
13 #include "base/metrics/histogram_macros.h" 14 #include "base/metrics/histogram_macros.h"
14 #include "base/stl_util.h"
15 #include "base/strings/stringprintf.h" 15 #include "base/strings/stringprintf.h"
16 #include "crypto/signature_verifier.h" 16 #include "crypto/signature_verifier.h"
17 #include "net/base/host_port_pair.h" 17 #include "net/base/host_port_pair.h"
18 #include "net/base/net_errors.h" 18 #include "net/base/net_errors.h"
19 #include "net/cert/asn1_util.h" 19 #include "net/cert/asn1_util.h"
20 #include "net/cert/cert_status_flags.h" 20 #include "net/cert/cert_status_flags.h"
21 #include "net/cert/cert_verifier.h" 21 #include "net/cert/cert_verifier.h"
22 #include "net/cert/ct_policy_enforcer.h" 22 #include "net/cert/ct_policy_enforcer.h"
23 #include "net/cert/ct_policy_status.h" 23 #include "net/cert/ct_policy_status.h"
24 #include "net/cert/ct_verifier.h" 24 #include "net/cert/ct_verifier.h"
(...skipping 518 matching lines...) Expand 10 before | Expand all | Expand 10 after
543 ct_policy_enforcer_(ct_policy_enforcer), 543 ct_policy_enforcer_(ct_policy_enforcer),
544 transport_security_state_(transport_security_state), 544 transport_security_state_(transport_security_state),
545 cert_transparency_verifier_(cert_transparency_verifier) { 545 cert_transparency_verifier_(cert_transparency_verifier) {
546 DCHECK(cert_verifier_); 546 DCHECK(cert_verifier_);
547 DCHECK(ct_policy_enforcer_); 547 DCHECK(ct_policy_enforcer_);
548 DCHECK(transport_security_state_); 548 DCHECK(transport_security_state_);
549 DCHECK(cert_transparency_verifier_); 549 DCHECK(cert_transparency_verifier_);
550 } 550 }
551 551
552 ProofVerifierChromium::~ProofVerifierChromium() { 552 ProofVerifierChromium::~ProofVerifierChromium() {
553 base::STLDeleteElements(&active_jobs_);
554 } 553 }
555 554
556 QuicAsyncStatus ProofVerifierChromium::VerifyProof( 555 QuicAsyncStatus ProofVerifierChromium::VerifyProof(
557 const std::string& hostname, 556 const std::string& hostname,
558 const uint16_t port, 557 const uint16_t port,
559 const std::string& server_config, 558 const std::string& server_config,
560 QuicVersion quic_version, 559 QuicVersion quic_version,
561 base::StringPiece chlo_hash, 560 base::StringPiece chlo_hash,
562 const std::vector<std::string>& certs, 561 const std::vector<std::string>& certs,
563 const std::string& cert_sct, 562 const std::string& cert_sct,
564 const std::string& signature, 563 const std::string& signature,
565 const ProofVerifyContext* verify_context, 564 const ProofVerifyContext* verify_context,
566 std::string* error_details, 565 std::string* error_details,
567 std::unique_ptr<ProofVerifyDetails>* verify_details, 566 std::unique_ptr<ProofVerifyDetails>* verify_details,
568 std::unique_ptr<ProofVerifierCallback> callback) { 567 std::unique_ptr<ProofVerifierCallback> callback) {
569 if (!verify_context) { 568 if (!verify_context) {
570 *error_details = "Missing context"; 569 *error_details = "Missing context";
571 return QUIC_FAILURE; 570 return QUIC_FAILURE;
572 } 571 }
573 const ProofVerifyContextChromium* chromium_context = 572 const ProofVerifyContextChromium* chromium_context =
574 reinterpret_cast<const ProofVerifyContextChromium*>(verify_context); 573 reinterpret_cast<const ProofVerifyContextChromium*>(verify_context);
575 std::unique_ptr<Job> job( 574 std::unique_ptr<Job> job = base::MakeUnique<Job>(
576 new Job(this, cert_verifier_, ct_policy_enforcer_, 575 this, cert_verifier_, ct_policy_enforcer_, transport_security_state_,
577 transport_security_state_, cert_transparency_verifier_, 576 cert_transparency_verifier_, chromium_context->cert_verify_flags,
578 chromium_context->cert_verify_flags, chromium_context->net_log)); 577 chromium_context->net_log);
579 QuicAsyncStatus status = job->VerifyProof( 578 QuicAsyncStatus status = job->VerifyProof(
580 hostname, port, server_config, quic_version, chlo_hash, certs, cert_sct, 579 hostname, port, server_config, quic_version, chlo_hash, certs, cert_sct,
581 signature, error_details, verify_details, std::move(callback)); 580 signature, error_details, verify_details, std::move(callback));
582 if (status == QUIC_PENDING) 581 if (status == QUIC_PENDING) {
583 active_jobs_.insert(job.release()); 582 Job* job_ptr = job.get();
583 active_jobs_[job_ptr] = std::move(job);
584 }
584 return status; 585 return status;
585 } 586 }
586 587
587 QuicAsyncStatus ProofVerifierChromium::VerifyCertChain( 588 QuicAsyncStatus ProofVerifierChromium::VerifyCertChain(
588 const std::string& hostname, 589 const std::string& hostname,
589 const std::vector<std::string>& certs, 590 const std::vector<std::string>& certs,
590 const ProofVerifyContext* verify_context, 591 const ProofVerifyContext* verify_context,
591 std::string* error_details, 592 std::string* error_details,
592 std::unique_ptr<ProofVerifyDetails>* verify_details, 593 std::unique_ptr<ProofVerifyDetails>* verify_details,
593 std::unique_ptr<ProofVerifierCallback> callback) { 594 std::unique_ptr<ProofVerifierCallback> callback) {
594 if (!verify_context) { 595 if (!verify_context) {
595 *error_details = "Missing context"; 596 *error_details = "Missing context";
596 return QUIC_FAILURE; 597 return QUIC_FAILURE;
597 } 598 }
598 const ProofVerifyContextChromium* chromium_context = 599 const ProofVerifyContextChromium* chromium_context =
599 reinterpret_cast<const ProofVerifyContextChromium*>(verify_context); 600 reinterpret_cast<const ProofVerifyContextChromium*>(verify_context);
600 std::unique_ptr<Job> job( 601 std::unique_ptr<Job> job = base::MakeUnique<Job>(
601 new Job(this, cert_verifier_, ct_policy_enforcer_, 602 this, cert_verifier_, ct_policy_enforcer_, transport_security_state_,
602 transport_security_state_, cert_transparency_verifier_, 603 cert_transparency_verifier_, chromium_context->cert_verify_flags,
603 chromium_context->cert_verify_flags, chromium_context->net_log)); 604 chromium_context->net_log);
604 QuicAsyncStatus status = job->VerifyCertChain( 605 QuicAsyncStatus status = job->VerifyCertChain(
605 hostname, certs, error_details, verify_details, std::move(callback)); 606 hostname, certs, error_details, verify_details, std::move(callback));
606 if (status == QUIC_PENDING) 607 if (status == QUIC_PENDING) {
607 active_jobs_.insert(job.release()); 608 Job* job_ptr = job.get();
609 active_jobs_[job_ptr] = std::move(job);
610 }
608 return status; 611 return status;
609 } 612 }
610 613
611 void ProofVerifierChromium::OnJobComplete(Job* job) { 614 void ProofVerifierChromium::OnJobComplete(Job* job) {
612 active_jobs_.erase(job); 615 active_jobs_.erase(job);
613 delete job;
614 } 616 }
615 617
616 } // namespace net 618 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/chromium/crypto/proof_verifier_chromium.h ('k') | net/quic/chromium/quic_end_to_end_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698