Chromium Code Reviews| Index: net/cert/cert_verifier.h |
| diff --git a/net/cert/cert_verifier.h b/net/cert/cert_verifier.h |
| index 4e36688c5a188d29c453b216955325dec804ee82..092b8a9cd501f22ad07eb66635924539e5321484 100644 |
| --- a/net/cert/cert_verifier.h |
| +++ b/net/cert/cert_verifier.h |
| @@ -10,6 +10,7 @@ |
| #include <vector> |
| #include "base/macros.h" |
| +#include "base/memory/ref_counted.h" |
| #include "net/base/completion_callback.h" |
| #include "net/base/hash_value.h" |
| #include "net/base/net_export.h" |
| @@ -76,30 +77,49 @@ class NET_EXPORT CertVerifier { |
| VERIFY_REV_CHECKING_REQUIRED_LOCAL_ANCHORS = 1 << 4, |
| }; |
| - // The parameters for doing a Verify(). |certificate|, |hostname|, and |
| - // |flags| are required. The rest are optional. |
| + // Verification parameters to verify |certificate| against the supplied |
|
eroman
2016/05/20 00:41:18
nit: "Verification parameter to verify" --> Parame
|
| + // |hostname| as an SSL server. |
|
eroman
2016/05/20 00:41:18
Should this comment document expectation around th
|
| + // |
| + // |flags| is a bitwise OR of VerifyFlags. |
| + // |
| + // |ocsp_response| is optional, but if non-empty, should contain an OCSP |
| + // response obtained via OCSP stapling. It may be ignored by the |
| + // CertVerifier. |
| + // |
| + // |additional_trust_anchors| is optional, but if non-empty, should contain |
| + // additional certificates to be treated as trust anchors. It may be ignored |
| + // by the CertVerifier. |
| class NET_EXPORT RequestParams { |
| public: |
| - RequestParams(X509Certificate* certificate, |
| + RequestParams(scoped_refptr<X509Certificate> certificate, |
| const std::string& hostname, |
| int flags, |
| const std::string& ocsp_response, |
| - const CertificateList& additional_trust_anchors); |
| + CertificateList additional_trust_anchors); |
| RequestParams(const RequestParams& other); |
| ~RequestParams(); |
| + const scoped_refptr<X509Certificate>& certificate() const { |
| + return certificate_; |
| + } |
| const std::string& hostname() const { return hostname_; } |
| int flags() const { return flags_; } |
| - const std::vector<SHA1HashValue> request_data() const { |
| - return request_data_; |
| + const std::string& ocsp_response() const { return ocsp_response_; } |
| + const CertificateList& additional_trust_anchors() const { |
| + return additional_trust_anchors_; |
| } |
| bool operator<(const RequestParams& other) const; |
| private: |
| + scoped_refptr<X509Certificate> certificate_; |
| std::string hostname_; |
|
eroman
2016/05/20 00:41:18
I suggest marking these all as const.
|
| int flags_; |
| - std::vector<SHA1HashValue> request_data_; |
| + std::string ocsp_response_; |
| + CertificateList additional_trust_anchors_; |
| + |
| + // Used to optimize sorting/indexing comparisons. |
| + std::string key_; |
| }; |
| // When the verifier is destroyed, all certificate verification requests are |
| @@ -115,17 +135,6 @@ class NET_EXPORT CertVerifier { |
| // |verify_result->cert_status|, and the error code for the most serious |
| // error is returned. |
| // |
| - // |ocsp_response|, if non-empty, is a stapled OCSP response to use. |
| - // |
| - // |flags| is bitwise OR'd of VerifyFlags. |
| - // If VERIFY_REV_CHECKING_ENABLED is set in |flags|, certificate revocation |
| - // checking is performed. |
| - // |
| - // If VERIFY_EV_CERT is set in |flags| too, EV certificate verification is |
| - // performed. If |flags| is VERIFY_EV_CERT (that is, |
| - // VERIFY_REV_CHECKING_ENABLED is not set), EV certificate verification will |
| - // not be performed. |
| - // |
| // |crl_set| points to an optional CRLSet structure which can be used to |
| // avoid revocation checks over the network. |
| // |
| @@ -140,12 +149,7 @@ class NET_EXPORT CertVerifier { |
| // If Verify() completes synchronously then |out_req| *may* be reset to |
| // nullptr. However it is not guaranteed that all implementations will reset |
| // it in this case. |
| - // |
| - // TODO(rsleevi): Update this to use RequestParams as part of the signature. |
| - virtual int Verify(X509Certificate* cert, |
| - const std::string& hostname, |
| - const std::string& ocsp_response, |
| - int flags, |
| + virtual int Verify(const RequestParams& params, |
| CRLSet* crl_set, |
| CertVerifyResult* verify_result, |
| const CompletionCallback& callback, |