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

Side by Side Diff: net/cert/cert_verify_proc_unittest.cc

Issue 2772283004: De-prioritize 2.23.140.1.1 when searching for EV policy. (Closed)
Patch Set: fix win compile Created 3 years, 8 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 | « net/cert/cert_verify_proc_nss.cc ('k') | net/cert/cert_verify_proc_win.cc » ('j') | no next file with comments »
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 #include "net/cert/cert_verify_proc.h" 5 #include "net/cert/cert_verify_proc.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/callback_helpers.h" 9 #include "base/callback_helpers.h"
10 #include "base/files/file_path.h" 10 #include "base/files/file_path.h"
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after
266 verify_proc_type() == CERT_VERIFY_PROC_WIN || 266 verify_proc_type() == CERT_VERIFY_PROC_WIN ||
267 verify_proc_type() == CERT_VERIFY_PROC_MAC; 267 verify_proc_type() == CERT_VERIFY_PROC_MAC;
268 } 268 }
269 269
270 bool SupportsCRLSetsInPathBuilding() const { 270 bool SupportsCRLSetsInPathBuilding() const {
271 // TODO(crbug.com/649017): Return true for CERT_VERIFY_PROC_BUILTIN. 271 // TODO(crbug.com/649017): Return true for CERT_VERIFY_PROC_BUILTIN.
272 return verify_proc_type() == CERT_VERIFY_PROC_WIN || 272 return verify_proc_type() == CERT_VERIFY_PROC_WIN ||
273 verify_proc_type() == CERT_VERIFY_PROC_NSS; 273 verify_proc_type() == CERT_VERIFY_PROC_NSS;
274 } 274 }
275 275
276 bool SupportsEV() const {
277 // TODO(crbug.com/649017): CertVerifyProcBuiltin does not support EV.
278 // TODO(crbug.com/117478): Android and iOS do not support EV.
279 return verify_proc_type() == CERT_VERIFY_PROC_NSS ||
280 verify_proc_type() == CERT_VERIFY_PROC_WIN ||
281 verify_proc_type() == CERT_VERIFY_PROC_MAC;
282 }
283
276 CertVerifyProc* verify_proc() const { return verify_proc_.get(); } 284 CertVerifyProc* verify_proc() const { return verify_proc_.get(); }
277 285
278 private: 286 private:
279 scoped_refptr<CertVerifyProc> verify_proc_; 287 scoped_refptr<CertVerifyProc> verify_proc_;
280 }; 288 };
281 289
282 INSTANTIATE_TEST_CASE_P(, 290 INSTANTIATE_TEST_CASE_P(,
283 CertVerifyProcInternalTest, 291 CertVerifyProcInternalTest,
284 testing::ValuesIn(kAllCertVerifiers), 292 testing::ValuesIn(kAllCertVerifiers),
285 VerifyProcTypeToName); 293 VerifyProcTypeToName);
286 294
287 // TODO(rsleevi): Reenable this test once comodo.chaim.pem is no longer 295 // TODO(rsleevi): Reenable this test once comodo.chaim.pem is no longer
288 // expired, http://crbug.com/502818 296 // expired, http://crbug.com/502818
289 TEST_P(CertVerifyProcInternalTest, DISABLED_EVVerification) { 297 TEST_P(CertVerifyProcInternalTest, DISABLED_EVVerification) {
290 if (verify_proc_type() == CERT_VERIFY_PROC_ANDROID || 298 if (!SupportsEV()) {
291 verify_proc_type() == CERT_VERIFY_PROC_OPENSSL) {
292 // TODO(jnd): http://crbug.com/117478 - EV verification is not yet
293 // supported.
294 LOG(INFO) << "Skipping test as EV verification is not yet supported"; 299 LOG(INFO) << "Skipping test as EV verification is not yet supported";
295 return; 300 return;
296 } 301 }
297 302
298 scoped_refptr<X509Certificate> comodo_chain = CreateCertificateChainFromFile( 303 scoped_refptr<X509Certificate> comodo_chain = CreateCertificateChainFromFile(
299 GetTestCertsDirectory(), "comodo.chain.pem", 304 GetTestCertsDirectory(), "comodo.chain.pem",
300 X509Certificate::FORMAT_PEM_CERT_SEQUENCE); 305 X509Certificate::FORMAT_PEM_CERT_SEQUENCE);
301 ASSERT_TRUE(comodo_chain); 306 ASSERT_TRUE(comodo_chain);
302 ASSERT_EQ(2U, comodo_chain->GetIntermediateCertificates().size()); 307 ASSERT_EQ(2U, comodo_chain->GetIntermediateCertificates().size());
303 308
304 scoped_refptr<CRLSet> crl_set(CRLSet::ForTesting(false, NULL, "")); 309 scoped_refptr<CRLSet> crl_set(CRLSet::ForTesting(false, NULL, ""));
305 CertVerifyResult verify_result; 310 CertVerifyResult verify_result;
306 int flags = CertVerifier::VERIFY_EV_CERT; 311 int flags = CertVerifier::VERIFY_EV_CERT;
307 int error = Verify(comodo_chain.get(), "comodo.com", flags, crl_set.get(), 312 int error = Verify(comodo_chain.get(), "comodo.com", flags, crl_set.get(),
308 CertificateList(), &verify_result); 313 CertificateList(), &verify_result);
309 EXPECT_THAT(error, IsOk()); 314 EXPECT_THAT(error, IsOk());
310 EXPECT_TRUE(verify_result.cert_status & CERT_STATUS_IS_EV); 315 EXPECT_TRUE(verify_result.cert_status & CERT_STATUS_IS_EV);
311 } 316 }
312 317
318 // Tests that a certificate is recognized as EV, when the valid EV policy OID
319 // for the trust anchor is the second candidate EV oid in the target
320 // certificate. This is a regression test for crbug.com/705285.
321 TEST_P(CertVerifyProcInternalTest, EVVerificationMultipleOID) {
322 if (!SupportsEV()) {
323 LOG(INFO) << "Skipping test as EV verification is not yet supported";
324 return;
325 }
326
327 // TODO(eroman): Update this test to use a synthetic certificate, so the test
328 // does not break in the future. The certificate chain in question expires on
329 // Dec 22 23:59:59 2018 GMT 2018, at which point this test will start failing.
330 if (base::Time::Now() >
331 base::Time::UnixEpoch() + base::TimeDelta::FromSeconds(1545523199)) {
332 FAIL() << "This test uses a certificate chain which is now expired. Please "
333 "disable and file a bug.";
334 return;
335 }
336
337 scoped_refptr<X509Certificate> chain = CreateCertificateChainFromFile(
338 GetTestCertsDirectory(), "trustcenter.websecurity.symantec.com.pem",
339 X509Certificate::FORMAT_PEM_CERT_SEQUENCE);
340 ASSERT_TRUE(chain);
341
342 scoped_refptr<CRLSet> crl_set(CRLSet::ForTesting(false, NULL, ""));
343 CertVerifyResult verify_result;
344 int flags = CertVerifier::VERIFY_EV_CERT;
345 int error = Verify(chain.get(), "trustcenter.websecurity.symantec.com", flags,
346 crl_set.get(), CertificateList(), &verify_result);
347 EXPECT_THAT(error, IsOk());
348 EXPECT_TRUE(verify_result.cert_status & CERT_STATUS_IS_EV);
349 }
350
313 // TODO(crbug.com/605457): the test expectation was incorrect on some 351 // TODO(crbug.com/605457): the test expectation was incorrect on some
314 // configurations, so disable the test until it is fixed (better to have 352 // configurations, so disable the test until it is fixed (better to have
315 // a bug to track a failing test than a false sense of security due to 353 // a bug to track a failing test than a false sense of security due to
316 // false positive). 354 // false positive).
317 TEST_P(CertVerifyProcInternalTest, DISABLED_PaypalNullCertParsing) { 355 TEST_P(CertVerifyProcInternalTest, DISABLED_PaypalNullCertParsing) {
318 // A certificate for www.paypal.com with a NULL byte in the common name. 356 // A certificate for www.paypal.com with a NULL byte in the common name.
319 // From http://www.gossamer-threads.com/lists/fulldisc/full-disclosure/70363 357 // From http://www.gossamer-threads.com/lists/fulldisc/full-disclosure/70363
320 SHA256HashValue paypal_null_fingerprint = {{0x00}}; 358 SHA256HashValue paypal_null_fingerprint = {{0x00}};
321 359
322 scoped_refptr<X509Certificate> paypal_null_cert( 360 scoped_refptr<X509Certificate> paypal_null_cert(
(...skipping 2024 matching lines...) Expand 10 before | Expand all | Expand 10 after
2347 int flags = 0; 2385 int flags = 0;
2348 CertVerifyResult verify_result; 2386 CertVerifyResult verify_result;
2349 int error = verify_proc->Verify(cert.get(), "127.0.0.1", std::string(), flags, 2387 int error = verify_proc->Verify(cert.get(), "127.0.0.1", std::string(), flags,
2350 NULL, CertificateList(), &verify_result); 2388 NULL, CertificateList(), &verify_result);
2351 EXPECT_EQ(OK, error); 2389 EXPECT_EQ(OK, error);
2352 histograms.ExpectTotalCount(kTLSFeatureExtensionHistogram, 0); 2390 histograms.ExpectTotalCount(kTLSFeatureExtensionHistogram, 0);
2353 histograms.ExpectTotalCount(kTLSFeatureExtensionOCSPHistogram, 0); 2391 histograms.ExpectTotalCount(kTLSFeatureExtensionOCSPHistogram, 0);
2354 } 2392 }
2355 2393
2356 } // namespace net 2394 } // namespace net
OLDNEW
« no previous file with comments | « net/cert/cert_verify_proc_nss.cc ('k') | net/cert/cert_verify_proc_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698