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

Side by Side Diff: net/quic/crypto/proof_verifier_chromium.h

Issue 436753002: Extend ProofVerifierChromium and ProofVerifyDetailsChromium. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove an unneeded member of ProofVerifierChromium Created 6 years, 4 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 | Annotate | Revision Log
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 #ifndef NET_QUIC_CRYPTO_PROOF_VERIFIER_CHROMIUM_H_ 5 #ifndef NET_QUIC_CRYPTO_PROOF_VERIFIER_CHROMIUM_H_
6 #define NET_QUIC_CRYPTO_PROOF_VERIFIER_CHROMIUM_H_ 6 #define NET_QUIC_CRYPTO_PROOF_VERIFIER_CHROMIUM_H_
7 7
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/basictypes.h" 12 #include "base/basictypes.h"
13 #include "base/compiler_specific.h" 13 #include "base/compiler_specific.h"
14 #include "base/memory/scoped_ptr.h" 14 #include "base/memory/scoped_ptr.h"
15 #include "net/base/net_export.h" 15 #include "net/base/net_export.h"
16 #include "net/base/net_log.h" 16 #include "net/base/net_log.h"
17 #include "net/cert/cert_verify_result.h" 17 #include "net/cert/cert_verify_result.h"
18 #include "net/cert/x509_certificate.h" 18 #include "net/cert/x509_certificate.h"
19 #include "net/quic/crypto/proof_verifier.h" 19 #include "net/quic/crypto/proof_verifier.h"
20 20
21 namespace net { 21 namespace net {
22 22
23 class CertVerifier; 23 class CertVerifier;
24 class TransportSecurityState;
24 25
25 // ProofVerifyDetailsChromium is the implementation-specific information that a 26 // ProofVerifyDetailsChromium is the implementation-specific information that a
26 // ProofVerifierChromium returns about a certificate verification. 27 // ProofVerifierChromium returns about a certificate verification.
27 class NET_EXPORT_PRIVATE ProofVerifyDetailsChromium 28 class NET_EXPORT_PRIVATE ProofVerifyDetailsChromium
28 : public ProofVerifyDetails { 29 : public ProofVerifyDetails {
29 public: 30 public:
30 31
31 // ProofVerifyDetails implementation 32 // ProofVerifyDetails implementation
32 virtual ProofVerifyDetails* Clone() const OVERRIDE; 33 virtual ProofVerifyDetails* Clone() const OVERRIDE;
33 34
34 CertVerifyResult cert_verify_result; 35 CertVerifyResult cert_verify_result;
36
37 // pinning_failure_log contains a message produced by
38 // TransportSecurityState::DomainState::CheckPublicKeyPins in the event of a
39 // pinning failure. It is a (somewhat) human-readable string.
40 std::string pinning_failure_log;
35 }; 41 };
36 42
37 // ProofVerifyContextChromium is the implementation-specific information that a 43 // ProofVerifyContextChromium is the implementation-specific information that a
38 // ProofVerifierChromium needs in order to log correctly. 44 // ProofVerifierChromium needs in order to log correctly.
39 struct ProofVerifyContextChromium : public ProofVerifyContext { 45 struct ProofVerifyContextChromium : public ProofVerifyContext {
40 public: 46 public:
41 explicit ProofVerifyContextChromium(const BoundNetLog& net_log) 47 explicit ProofVerifyContextChromium(const BoundNetLog& net_log)
42 : net_log(net_log) {} 48 : net_log(net_log) {}
43 49
44 BoundNetLog net_log; 50 BoundNetLog net_log;
45 }; 51 };
46 52
47 // ProofVerifierChromium implements the QUIC ProofVerifier interface. It is 53 // ProofVerifierChromium implements the QUIC ProofVerifier interface. It is
48 // capable of handling multiple simultaneous requests. 54 // capable of handling multiple simultaneous requests.
49 class NET_EXPORT_PRIVATE ProofVerifierChromium : public ProofVerifier { 55 class NET_EXPORT_PRIVATE ProofVerifierChromium : public ProofVerifier {
50 public: 56 public:
51 explicit ProofVerifierChromium(CertVerifier* cert_verifier); 57 ProofVerifierChromium(CertVerifier* cert_verifier,
58 TransportSecurityState* transport_security_state);
52 virtual ~ProofVerifierChromium(); 59 virtual ~ProofVerifierChromium();
53 60
54 // ProofVerifier interface 61 // ProofVerifier interface
55 virtual QuicAsyncStatus VerifyProof( 62 virtual QuicAsyncStatus VerifyProof(
56 const std::string& hostname, 63 const std::string& hostname,
57 const std::string& server_config, 64 const std::string& server_config,
58 const std::vector<std::string>& certs, 65 const std::vector<std::string>& certs,
59 const std::string& signature, 66 const std::string& signature,
60 const ProofVerifyContext* verify_context, 67 const ProofVerifyContext* verify_context,
61 std::string* error_details, 68 std::string* error_details,
62 scoped_ptr<ProofVerifyDetails>* verify_details, 69 scoped_ptr<ProofVerifyDetails>* verify_details,
63 ProofVerifierCallback* callback) OVERRIDE; 70 ProofVerifierCallback* callback) OVERRIDE;
64 71
65 private: 72 private:
66 class Job; 73 class Job;
67 typedef std::set<Job*> JobSet; 74 typedef std::set<Job*> JobSet;
68 75
69 void OnJobComplete(Job* job); 76 void OnJobComplete(Job* job);
70 77
71 // Set owning pointers to active jobs. 78 // Set owning pointers to active jobs.
72 JobSet active_jobs_; 79 JobSet active_jobs_;
73 80
74 // Underlying verifier used to verify certificates. 81 // Underlying verifier used to verify certificates.
75 CertVerifier* const cert_verifier_; 82 CertVerifier* const cert_verifier_;
76 83
84 TransportSecurityState* transport_security_state_;
85
77 DISALLOW_COPY_AND_ASSIGN(ProofVerifierChromium); 86 DISALLOW_COPY_AND_ASSIGN(ProofVerifierChromium);
78 }; 87 };
79 88
80 } // namespace net 89 } // namespace net
81 90
82 #endif // NET_QUIC_CRYPTO_PROOF_VERIFIER_CHROMIUM_H_ 91 #endif // NET_QUIC_CRYPTO_PROOF_VERIFIER_CHROMIUM_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698