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

Side by Side Diff: net/cert/cert_verify_proc.h

Issue 2627523002: Refactor the assignment of CertVerifyResult::has_md2, etc. (Closed)
Patch Set: consistency: hashing --> hash Created 3 years, 11 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
« no previous file with comments | « no previous file | net/cert/cert_verify_proc.cc » ('j') | net/cert/cert_verify_proc.cc » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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_CERT_CERT_VERIFY_PROC_H_ 5 #ifndef NET_CERT_CERT_VERIFY_PROC_H_
6 #define NET_CERT_CERT_VERIFY_PROC_H_ 6 #define NET_CERT_CERT_VERIFY_PROC_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/feature_list.h" 11 #include "base/feature_list.h"
12 #include "base/gtest_prod_util.h" 12 #include "base/gtest_prod_util.h"
13 #include "base/macros.h" 13 #include "base/macros.h"
14 #include "base/memory/ref_counted.h" 14 #include "base/memory/ref_counted.h"
15 #include "net/base/net_export.h" 15 #include "net/base/net_export.h"
16 #include "net/cert/x509_cert_types.h" 16 #include "net/cert/x509_cert_types.h"
17 #include "net/cert/x509_certificate.h"
18 17
19 namespace net { 18 namespace net {
20 19
21 class CertVerifyResult; 20 class CertVerifyResult;
22 class CRLSet; 21 class CRLSet;
23 class X509Certificate; 22 class X509Certificate;
24 typedef std::vector<scoped_refptr<X509Certificate> > CertificateList; 23 typedef std::vector<scoped_refptr<X509Certificate> > CertificateList;
25 24
26 // Class to perform certificate path building and verification for various 25 // Class to perform certificate path building and verification for various
27 // certificate uses. All methods of this class must be thread-safe, as they 26 // certificate uses. All methods of this class must be thread-safe, as they
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 FRIEND_TEST_ALL_PREFIXES(CertVerifyProcTest, DigiNotarCerts); 85 FRIEND_TEST_ALL_PREFIXES(CertVerifyProcTest, DigiNotarCerts);
87 FRIEND_TEST_ALL_PREFIXES(CertVerifyProcTest, TestHasTooLongValidity); 86 FRIEND_TEST_ALL_PREFIXES(CertVerifyProcTest, TestHasTooLongValidity);
88 FRIEND_TEST_ALL_PREFIXES(CertVerifyProcTest, 87 FRIEND_TEST_ALL_PREFIXES(CertVerifyProcTest,
89 VerifyRejectsSHA1AfterDeprecationLegacyMode); 88 VerifyRejectsSHA1AfterDeprecationLegacyMode);
90 89
91 // Performs the actual verification using the desired underlying 90 // Performs the actual verification using the desired underlying
92 // 91 //
93 // On entry, |verify_result| will be default-initialized as a successful 92 // On entry, |verify_result| will be default-initialized as a successful
94 // validation, with |verify_result->verified_cert| set to |cert|. 93 // validation, with |verify_result->verified_cert| set to |cert|.
95 // 94 //
96 // Implementations are expected to fill in all applicable fields, excluding 95 // Implementations are expected to fill in all applicable fields, excluding:
97 // |ocsp_result|, which will be filled in by |Verify()|. If an error code is 96 //
98 // returned, |verify_result->cert_status| should be non-zero, indicating an 97 // * ocsp_result
98 // * has_md2
99 // * has_md4
100 // * has_md5
101 // * has_sha1
102 // * has_sha1_leaf
103 //
104 // which will be filled in by |Verify()|. If an error code is returned,
105 // |verify_result->cert_status| should be non-zero, indicating an
99 // error occurred. 106 // error occurred.
100 // 107 //
101 // On success, net::OK should be returned, with |verify_result| updated to 108 // On success, net::OK should be returned, with |verify_result| updated to
102 // reflect the successfully verified chain. 109 // reflect the successfully verified chain.
103 virtual int VerifyInternal(X509Certificate* cert, 110 virtual int VerifyInternal(X509Certificate* cert,
104 const std::string& hostname, 111 const std::string& hostname,
105 const std::string& ocsp_response, 112 const std::string& ocsp_response,
106 int flags, 113 int flags,
107 CRLSet* crl_set, 114 CRLSet* crl_set,
108 const CertificateList& additional_trust_anchors, 115 const CertificateList& additional_trust_anchors,
(...skipping 27 matching lines...) Expand all
136 // (i.e. by 1 July 2019). 143 // (i.e. by 1 July 2019).
137 static bool HasTooLongValidity(const X509Certificate& cert); 144 static bool HasTooLongValidity(const X509Certificate& cert);
138 145
139 // Emergency kill-switch for SHA-1 deprecation. Disabled by default. 146 // Emergency kill-switch for SHA-1 deprecation. Disabled by default.
140 static const base::Feature kSHA1LegacyMode; 147 static const base::Feature kSHA1LegacyMode;
141 const bool sha1_legacy_mode_enabled; 148 const bool sha1_legacy_mode_enabled;
142 149
143 DISALLOW_COPY_AND_ASSIGN(CertVerifyProc); 150 DISALLOW_COPY_AND_ASSIGN(CertVerifyProc);
144 }; 151 };
145 152
146 // Sets the weak signature hash fields of |verify_result| to true if
147 // applicable for |cert|, otherwise does not modify them.
148 //
149 // The fields in question are: |has_md2|, |has_md4|, |has_md5|,|has_sha1| and
150 // |has_sha1_leaf|.
151 //
152 // Returns the hash algorithm that was determined for |cert|.
153 //
154 // This function is intended to be used as a helper by platform-specific
155 // CertVerifyProc implementations.
156 X509Certificate::SignatureHashAlgorithm FillCertVerifyResultWeakSignature(
157 X509Certificate::OSCertHandle cert,
158 bool is_leaf,
159 CertVerifyResult* verify_result);
160
161 } // namespace net 153 } // namespace net
162 154
163 #endif // NET_CERT_CERT_VERIFY_PROC_H_ 155 #endif // NET_CERT_CERT_VERIFY_PROC_H_
OLDNEW
« no previous file with comments | « no previous file | net/cert/cert_verify_proc.cc » ('j') | net/cert/cert_verify_proc.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698