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

Side by Side Diff: components/cast_certificate/cast_cert_validator.h

Issue 2303673004: Hook up Chrome Cast sender to Cast CRL. (Closed)
Patch Set: Fixed nit 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 COMPONENTS_CAST_CERTIFICATE_CAST_CERT_VALIDATOR_H_ 5 #ifndef COMPONENTS_CAST_CERTIFICATE_CAST_CERT_VALIDATOR_H_
6 #define COMPONENTS_CAST_CERTIFICATE_CAST_CERT_VALIDATOR_H_ 6 #define COMPONENTS_CAST_CERTIFICATE_CAST_CERT_VALIDATOR_H_
7 7
8 #include <memory> 8 #include <memory>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 // * |certs[0]| is the target certificate (i.e. the device certificate). 71 // * |certs[0]| is the target certificate (i.e. the device certificate).
72 // * |certs[1..n-1]| are intermediates certificates to use in path building. 72 // * |certs[1..n-1]| are intermediates certificates to use in path building.
73 // Their ordering does not matter. 73 // Their ordering does not matter.
74 // 74 //
75 // * |time| is the unix timestamp to use for determining if the certificate 75 // * |time| is the unix timestamp to use for determining if the certificate
76 // is expired. 76 // is expired.
77 // 77 //
78 // * |crl| is the CRL to check for certificate revocation status. 78 // * |crl| is the CRL to check for certificate revocation status.
79 // If this is a nullptr, then revocation checking is currently disabled. 79 // If this is a nullptr, then revocation checking is currently disabled.
80 // 80 //
81 // * |crl_options| is for choosing how to handle the absence of a CRL. 81 // * |crl_policy| is for choosing how to handle the absence of a CRL.
82 // If crl_required is set to true, then an empty |crl| input would result 82 // If CRL_REQUIRED is passed, then an empty |crl| input would result
83 // in a failed verification. Otherwise, |crl| is ignored if it is absent. 83 // in a failed verification. Otherwise, |crl| is ignored if it is absent.
84 // 84 //
85 // Outputs: 85 // Outputs:
86 // 86 //
87 // Returns true on success, false on failure. On success the output 87 // Returns true on success, false on failure. On success the output
88 // parameters are filled with more details: 88 // parameters are filled with more details:
89 // 89 //
90 // * |context| is filled with an object that can be used to verify signatures 90 // * |context| is filled with an object that can be used to verify signatures
91 // using the device certificate's public key, as well as to extract other 91 // using the device certificate's public key, as well as to extract other
92 // properties from the device certificate (Common Name). 92 // properties from the device certificate (Common Name).
93 // * |policy| is filled with an indication of the device certificate's policy 93 // * |policy| is filled with an indication of the device certificate's policy
94 // (i.e. is it for audio-only devices or is it unrestricted?) 94 // (i.e. is it for audio-only devices or is it unrestricted?)
95 bool VerifyDeviceCert(const std::vector<std::string>& certs, 95 bool VerifyDeviceCert(const std::vector<std::string>& certs,
96 const base::Time& time, 96 const base::Time& time,
97 std::unique_ptr<CertVerificationContext>* context, 97 std::unique_ptr<CertVerificationContext>* context,
98 CastDeviceCertPolicy* policy, 98 CastDeviceCertPolicy* policy,
99 const CastCRL* crl, 99 const CastCRL* crl,
100 CRLPolicy crl_policy) WARN_UNUSED_RESULT; 100 CRLPolicy crl_policy) WARN_UNUSED_RESULT;
101 101
102 // Exposed only for testing, not for use in production code.
103 //
104 // This is an overloaded version of VerifyDeviceCert that allows 102 // This is an overloaded version of VerifyDeviceCert that allows
105 // the input of a custom TrustStore. 103 // the input of a custom TrustStore.
106 bool VerifyDeviceCertForTest(const std::vector<std::string>& certs, 104 //
107 const base::Time& time, 105 // For production use pass |trust_store| as nullptr to use the production trust
108 std::unique_ptr<CertVerificationContext>* context, 106 // store.
109 CastDeviceCertPolicy* policy, 107 bool VerifyDeviceCertUsingCustomTrustStore(
110 const CastCRL* crl, 108 const std::vector<std::string>& certs,
111 CRLPolicy crl_policy, 109 const base::Time& time,
112 net::TrustStore* trust_store) WARN_UNUSED_RESULT; 110 std::unique_ptr<CertVerificationContext>* context,
111 CastDeviceCertPolicy* policy,
112 const CastCRL* crl,
113 CRLPolicy crl_policy,
114 net::TrustStore* trust_store) WARN_UNUSED_RESULT;
113 115
114 // Exposed only for unit-tests, not for use in production code. 116 // Exposed only for unit-tests, not for use in production code.
115 // Production code would get a context from VerifyDeviceCert(). 117 // Production code would get a context from VerifyDeviceCert().
116 // 118 //
117 // Constructs a VerificationContext that uses the provided public key. 119 // Constructs a VerificationContext that uses the provided public key.
118 // The common name will be hardcoded to some test value. 120 // The common name will be hardcoded to some test value.
119 std::unique_ptr<CertVerificationContext> CertVerificationContextImplForTest( 121 std::unique_ptr<CertVerificationContext> CertVerificationContextImplForTest(
120 const base::StringPiece& spki); 122 const base::StringPiece& spki);
121 123
122 } // namespace cast_certificate 124 } // namespace cast_certificate
123 125
124 #endif // COMPONENTS_CAST_CERTIFICATE_CAST_CERT_VALIDATOR_H_ 126 #endif // COMPONENTS_CAST_CERTIFICATE_CAST_CERT_VALIDATOR_H_
OLDNEW
« no previous file with comments | « components/cast_certificate/BUILD.gn ('k') | components/cast_certificate/cast_cert_validator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698