OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "base/file_path.h" | 5 #include "base/file_path.h" |
6 #include "base/file_util.h" | 6 #include "base/file_util.h" |
7 #include "base/path_service.h" | 7 #include "base/path_service.h" |
8 #include "base/pickle.h" | 8 #include "base/pickle.h" |
9 #include "base/sha1.h" | 9 #include "base/sha1.h" |
10 #include "base/string_number_conversions.h" | 10 #include "base/string_number_conversions.h" |
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
229 google_cert->GetDNSNames(&dns_names); | 229 google_cert->GetDNSNames(&dns_names); |
230 ASSERT_EQ(1U, dns_names.size()); | 230 ASSERT_EQ(1U, dns_names.size()); |
231 EXPECT_EQ("www.google.com", dns_names[0]); | 231 EXPECT_EQ("www.google.com", dns_names[0]); |
232 | 232 |
233 #if TEST_EV | 233 #if TEST_EV |
234 // TODO(avi): turn this on for the Mac once EV checking is implemented. | 234 // TODO(avi): turn this on for the Mac once EV checking is implemented. |
235 CertVerifyResult verify_result; | 235 CertVerifyResult verify_result; |
236 int flags = X509Certificate::VERIFY_REV_CHECKING_ENABLED | | 236 int flags = X509Certificate::VERIFY_REV_CHECKING_ENABLED | |
237 X509Certificate::VERIFY_EV_CERT; | 237 X509Certificate::VERIFY_EV_CERT; |
238 EXPECT_EQ(OK, google_cert->Verify("www.google.com", flags, &verify_result)); | 238 EXPECT_EQ(OK, google_cert->Verify("www.google.com", flags, &verify_result)); |
239 EXPECT_EQ(0, verify_result.cert_status & CERT_STATUS_IS_EV); | 239 EXPECT_FALSE(verify_result.cert_status & CERT_STATUS_IS_EV); |
240 #endif | 240 #endif |
241 } | 241 } |
242 | 242 |
243 TEST(X509CertificateTest, GoogleCertParsing) { | 243 TEST(X509CertificateTest, GoogleCertParsing) { |
244 scoped_refptr<X509Certificate> google_cert( | 244 scoped_refptr<X509Certificate> google_cert( |
245 X509Certificate::CreateFromBytes( | 245 X509Certificate::CreateFromBytes( |
246 reinterpret_cast<const char*>(google_der), sizeof(google_der))); | 246 reinterpret_cast<const char*>(google_der), sizeof(google_der))); |
247 | 247 |
248 CheckGoogleCert(google_cert, google_fingerprint, | 248 CheckGoogleCert(google_cert, google_fingerprint, |
249 1238192407, // Mar 27 22:20:07 2009 GMT | 249 1238192407, // Mar 27 22:20:07 2009 GMT |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
295 webkit_cert->GetDNSNames(&dns_names); | 295 webkit_cert->GetDNSNames(&dns_names); |
296 ASSERT_EQ(2U, dns_names.size()); | 296 ASSERT_EQ(2U, dns_names.size()); |
297 EXPECT_EQ("*.webkit.org", dns_names[0]); | 297 EXPECT_EQ("*.webkit.org", dns_names[0]); |
298 EXPECT_EQ("webkit.org", dns_names[1]); | 298 EXPECT_EQ("webkit.org", dns_names[1]); |
299 | 299 |
300 #if TEST_EV | 300 #if TEST_EV |
301 int flags = X509Certificate::VERIFY_REV_CHECKING_ENABLED | | 301 int flags = X509Certificate::VERIFY_REV_CHECKING_ENABLED | |
302 X509Certificate::VERIFY_EV_CERT; | 302 X509Certificate::VERIFY_EV_CERT; |
303 CertVerifyResult verify_result; | 303 CertVerifyResult verify_result; |
304 EXPECT_EQ(OK, webkit_cert->Verify("webkit.org", flags, &verify_result)); | 304 EXPECT_EQ(OK, webkit_cert->Verify("webkit.org", flags, &verify_result)); |
305 EXPECT_EQ(0, verify_result.cert_status & CERT_STATUS_IS_EV); | 305 EXPECT_FALSE(verify_result.cert_status & CERT_STATUS_IS_EV); |
306 #endif | 306 #endif |
307 | 307 |
308 // Test that the wildcard cert matches properly. | 308 // Test that the wildcard cert matches properly. |
309 EXPECT_TRUE(webkit_cert->VerifyNameMatch("www.webkit.org")); | 309 EXPECT_TRUE(webkit_cert->VerifyNameMatch("www.webkit.org")); |
310 EXPECT_TRUE(webkit_cert->VerifyNameMatch("foo.webkit.org")); | 310 EXPECT_TRUE(webkit_cert->VerifyNameMatch("foo.webkit.org")); |
311 EXPECT_TRUE(webkit_cert->VerifyNameMatch("webkit.org")); | 311 EXPECT_TRUE(webkit_cert->VerifyNameMatch("webkit.org")); |
312 EXPECT_FALSE(webkit_cert->VerifyNameMatch("www.webkit.com")); | 312 EXPECT_FALSE(webkit_cert->VerifyNameMatch("www.webkit.com")); |
313 EXPECT_FALSE(webkit_cert->VerifyNameMatch("www.foo.webkit.com")); | 313 EXPECT_FALSE(webkit_cert->VerifyNameMatch("www.foo.webkit.com")); |
314 } | 314 } |
315 | 315 |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
358 thawte_cert->GetDNSNames(&dns_names); | 358 thawte_cert->GetDNSNames(&dns_names); |
359 ASSERT_EQ(1U, dns_names.size()); | 359 ASSERT_EQ(1U, dns_names.size()); |
360 EXPECT_EQ("www.thawte.com", dns_names[0]); | 360 EXPECT_EQ("www.thawte.com", dns_names[0]); |
361 | 361 |
362 #if TEST_EV | 362 #if TEST_EV |
363 int flags = X509Certificate::VERIFY_REV_CHECKING_ENABLED | | 363 int flags = X509Certificate::VERIFY_REV_CHECKING_ENABLED | |
364 X509Certificate::VERIFY_EV_CERT; | 364 X509Certificate::VERIFY_EV_CERT; |
365 CertVerifyResult verify_result; | 365 CertVerifyResult verify_result; |
366 // EV cert verification requires revocation checking. | 366 // EV cert verification requires revocation checking. |
367 EXPECT_EQ(OK, thawte_cert->Verify("www.thawte.com", flags, &verify_result)); | 367 EXPECT_EQ(OK, thawte_cert->Verify("www.thawte.com", flags, &verify_result)); |
368 EXPECT_NE(0, verify_result.cert_status & CERT_STATUS_IS_EV); | 368 EXPECT_TRUE(verify_result.cert_status & CERT_STATUS_IS_EV); |
369 // Consequently, if we don't have revocation checking enabled, we can't claim | 369 // Consequently, if we don't have revocation checking enabled, we can't claim |
370 // any cert is EV. | 370 // any cert is EV. |
371 flags = X509Certificate::VERIFY_EV_CERT; | 371 flags = X509Certificate::VERIFY_EV_CERT; |
372 EXPECT_EQ(OK, thawte_cert->Verify("www.thawte.com", flags, &verify_result)); | 372 EXPECT_EQ(OK, thawte_cert->Verify("www.thawte.com", flags, &verify_result)); |
373 EXPECT_EQ(0, verify_result.cert_status & CERT_STATUS_IS_EV); | 373 EXPECT_FALSE(verify_result.cert_status & CERT_STATUS_IS_EV); |
374 #endif | 374 #endif |
375 } | 375 } |
376 | 376 |
377 TEST(X509CertificateTest, PaypalNullCertParsing) { | 377 TEST(X509CertificateTest, PaypalNullCertParsing) { |
378 scoped_refptr<X509Certificate> paypal_null_cert( | 378 scoped_refptr<X509Certificate> paypal_null_cert( |
379 X509Certificate::CreateFromBytes( | 379 X509Certificate::CreateFromBytes( |
380 reinterpret_cast<const char*>(paypal_null_der), | 380 reinterpret_cast<const char*>(paypal_null_der), |
381 sizeof(paypal_null_der))); | 381 sizeof(paypal_null_der))); |
382 | 382 |
383 ASSERT_NE(static_cast<X509Certificate*>(NULL), paypal_null_cert); | 383 ASSERT_NE(static_cast<X509Certificate*>(NULL), paypal_null_cert); |
(...skipping 11 matching lines...) Expand all Loading... |
395 // TOOD(bulach): investigate why macosx and win aren't returning | 395 // TOOD(bulach): investigate why macosx and win aren't returning |
396 // ERR_CERT_INVALID or ERR_CERT_COMMON_NAME_INVALID. | 396 // ERR_CERT_INVALID or ERR_CERT_COMMON_NAME_INVALID. |
397 EXPECT_EQ(ERR_CERT_AUTHORITY_INVALID, error); | 397 EXPECT_EQ(ERR_CERT_AUTHORITY_INVALID, error); |
398 #else | 398 #else |
399 EXPECT_EQ(ERR_CERT_COMMON_NAME_INVALID, error); | 399 EXPECT_EQ(ERR_CERT_COMMON_NAME_INVALID, error); |
400 #endif | 400 #endif |
401 // Either the system crypto library should correctly report a certificate | 401 // Either the system crypto library should correctly report a certificate |
402 // name mismatch, or our certificate blacklist should cause us to report an | 402 // name mismatch, or our certificate blacklist should cause us to report an |
403 // invalid certificate. | 403 // invalid certificate. |
404 #if !defined(OS_MACOSX) && !defined(USE_OPENSSL) | 404 #if !defined(OS_MACOSX) && !defined(USE_OPENSSL) |
405 EXPECT_NE(0, verify_result.cert_status & | 405 EXPECT_TRUE(verify_result.cert_status & |
406 (CERT_STATUS_COMMON_NAME_INVALID | CERT_STATUS_INVALID)); | 406 (CERT_STATUS_COMMON_NAME_INVALID | CERT_STATUS_INVALID)); |
407 #endif | 407 #endif |
408 } | 408 } |
409 | 409 |
410 TEST(X509CertificateTest, SerialNumbers) { | 410 TEST(X509CertificateTest, SerialNumbers) { |
411 scoped_refptr<X509Certificate> google_cert( | 411 scoped_refptr<X509Certificate> google_cert( |
412 X509Certificate::CreateFromBytes( | 412 X509Certificate::CreateFromBytes( |
413 reinterpret_cast<const char*>(google_der), sizeof(google_der))); | 413 reinterpret_cast<const char*>(google_der), sizeof(google_der))); |
414 | 414 |
415 static const uint8 google_serial[16] = { | 415 static const uint8 google_serial[16] = { |
416 0x01,0x2a,0x39,0x76,0x0d,0x3f,0x4f,0xc9, | 416 0x01,0x2a,0x39,0x76,0x0d,0x3f,0x4f,0xc9, |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
457 X509Certificate::OSCertHandles intermediates; | 457 X509Certificate::OSCertHandles intermediates; |
458 intermediates.push_back(intermediate_cert->os_cert_handle()); | 458 intermediates.push_back(intermediate_cert->os_cert_handle()); |
459 scoped_refptr<X509Certificate> cert_chain = | 459 scoped_refptr<X509Certificate> cert_chain = |
460 X509Certificate::CreateFromHandle(server_cert->os_cert_handle(), | 460 X509Certificate::CreateFromHandle(server_cert->os_cert_handle(), |
461 intermediates); | 461 intermediates); |
462 | 462 |
463 int flags = 0; | 463 int flags = 0; |
464 CertVerifyResult verify_result; | 464 CertVerifyResult verify_result; |
465 int error = cert_chain->Verify("www.us.army.mil", flags, &verify_result); | 465 int error = cert_chain->Verify("www.us.army.mil", flags, &verify_result); |
466 EXPECT_EQ(OK, error); | 466 EXPECT_EQ(OK, error); |
467 EXPECT_EQ(0, verify_result.cert_status); | 467 EXPECT_EQ(0U, verify_result.cert_status); |
468 root_certs->Clear(); | 468 root_certs->Clear(); |
469 } | 469 } |
470 | 470 |
471 // Test for bug 58437. | 471 // Test for bug 58437. |
472 // This certificate will expire on 2011-12-21. The test will still | 472 // This certificate will expire on 2011-12-21. The test will still |
473 // pass if error == ERR_CERT_DATE_INVALID. | 473 // pass if error == ERR_CERT_DATE_INVALID. |
474 // This test is DISABLED because it appears that we cannot do | 474 // This test is DISABLED because it appears that we cannot do |
475 // certificate revocation checking when running all of the net unit tests. | 475 // certificate revocation checking when running all of the net unit tests. |
476 // This test passes when run individually, but when run with all of the net | 476 // This test passes when run individually, but when run with all of the net |
477 // unit tests, the call to PKIXVerifyCert returns the NSS error -8180, which is | 477 // unit tests, the call to PKIXVerifyCert returns the NSS error -8180, which is |
(...skipping 14 matching lines...) Expand all Loading... |
492 intermediates.push_back(intermediate_cert->os_cert_handle()); | 492 intermediates.push_back(intermediate_cert->os_cert_handle()); |
493 scoped_refptr<X509Certificate> cert_chain = | 493 scoped_refptr<X509Certificate> cert_chain = |
494 X509Certificate::CreateFromHandle(server_cert->os_cert_handle(), | 494 X509Certificate::CreateFromHandle(server_cert->os_cert_handle(), |
495 intermediates); | 495 intermediates); |
496 | 496 |
497 CertVerifyResult verify_result; | 497 CertVerifyResult verify_result; |
498 int flags = X509Certificate::VERIFY_REV_CHECKING_ENABLED | | 498 int flags = X509Certificate::VERIFY_REV_CHECKING_ENABLED | |
499 X509Certificate::VERIFY_EV_CERT; | 499 X509Certificate::VERIFY_EV_CERT; |
500 int error = cert_chain->Verify("2029.globalsign.com", flags, &verify_result); | 500 int error = cert_chain->Verify("2029.globalsign.com", flags, &verify_result); |
501 if (error == OK) | 501 if (error == OK) |
502 EXPECT_NE(0, verify_result.cert_status & CERT_STATUS_IS_EV); | 502 EXPECT_TRUE(verify_result.cert_status & CERT_STATUS_IS_EV); |
503 else | 503 else |
504 EXPECT_EQ(ERR_CERT_DATE_INVALID, error); | 504 EXPECT_EQ(ERR_CERT_DATE_INVALID, error); |
505 } | 505 } |
506 | 506 |
507 // Test for bug 94673. | 507 // Test for bug 94673. |
508 TEST(X509CertificateTest, GoogleDigiNotarTest) { | 508 TEST(X509CertificateTest, GoogleDigiNotarTest) { |
509 FilePath certs_dir = GetTestCertsDirectory(); | 509 FilePath certs_dir = GetTestCertsDirectory(); |
510 | 510 |
511 scoped_refptr<X509Certificate> server_cert = | 511 scoped_refptr<X509Certificate> server_cert = |
512 ImportCertFromFile(certs_dir, "google_diginotar.pem"); | 512 ImportCertFromFile(certs_dir, "google_diginotar.pem"); |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
585 scoped_refptr<X509Certificate> cert_chain = | 585 scoped_refptr<X509Certificate> cert_chain = |
586 X509Certificate::CreateFromHandle(cert->os_cert_handle(), | 586 X509Certificate::CreateFromHandle(cert->os_cert_handle(), |
587 intermediates); | 587 intermediates); |
588 | 588 |
589 int flags = 0; | 589 int flags = 0; |
590 CertVerifyResult verify_result; | 590 CertVerifyResult verify_result; |
591 // This is going to blow up in Feb 2012. Sorry! Disable and file a bug | 591 // This is going to blow up in Feb 2012. Sorry! Disable and file a bug |
592 // against agl. Also see PublicKeyHashes in this file. | 592 // against agl. Also see PublicKeyHashes in this file. |
593 int error = cert_chain->Verify("www.nist.gov", flags, &verify_result); | 593 int error = cert_chain->Verify("www.nist.gov", flags, &verify_result); |
594 EXPECT_EQ(OK, error); | 594 EXPECT_EQ(OK, error); |
595 EXPECT_EQ(0, verify_result.cert_status); | 595 EXPECT_EQ(0U, verify_result.cert_status); |
596 EXPECT_TRUE(verify_result.is_issued_by_known_root); | 596 EXPECT_TRUE(verify_result.is_issued_by_known_root); |
597 } | 597 } |
598 | 598 |
599 // This is the SHA1 hash of the SubjectPublicKeyInfo of nist.der. | 599 // This is the SHA1 hash of the SubjectPublicKeyInfo of nist.der. |
600 static const char nistSPKIHash[] = | 600 static const char nistSPKIHash[] = |
601 "\x15\x60\xde\x65\x4e\x03\x9f\xd0\x08\x82" | 601 "\x15\x60\xde\x65\x4e\x03\x9f\xd0\x08\x82" |
602 "\xa9\x6a\xc4\x65\x8e\x6f\x92\x06\x84\x35"; | 602 "\xa9\x6a\xc4\x65\x8e\x6f\x92\x06\x84\x35"; |
603 | 603 |
604 TEST(X509CertificateTest, ExtractSPKIFromDERCert) { | 604 TEST(X509CertificateTest, ExtractSPKIFromDERCert) { |
605 FilePath certs_dir = GetTestCertsDirectory(); | 605 FilePath certs_dir = GetTestCertsDirectory(); |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
659 intermediates.push_back(intermediate_cert->os_cert_handle()); | 659 intermediates.push_back(intermediate_cert->os_cert_handle()); |
660 scoped_refptr<X509Certificate> cert_chain = | 660 scoped_refptr<X509Certificate> cert_chain = |
661 X509Certificate::CreateFromHandle(cert->os_cert_handle(), | 661 X509Certificate::CreateFromHandle(cert->os_cert_handle(), |
662 intermediates); | 662 intermediates); |
663 | 663 |
664 int flags = 0; | 664 int flags = 0; |
665 CertVerifyResult verify_result; | 665 CertVerifyResult verify_result; |
666 | 666 |
667 int error = cert_chain->Verify("www.nist.gov", flags, &verify_result); | 667 int error = cert_chain->Verify("www.nist.gov", flags, &verify_result); |
668 EXPECT_EQ(OK, error); | 668 EXPECT_EQ(OK, error); |
669 EXPECT_EQ(0, verify_result.cert_status); | 669 EXPECT_EQ(0U, verify_result.cert_status); |
670 ASSERT_LE(2u, verify_result.public_key_hashes.size()); | 670 ASSERT_LE(2u, verify_result.public_key_hashes.size()); |
671 EXPECT_EQ(HexEncode(nistSPKIHash, base::SHA1_LENGTH), | 671 EXPECT_EQ(HexEncode(nistSPKIHash, base::SHA1_LENGTH), |
672 HexEncode(verify_result.public_key_hashes[0].data, SHA1_LENGTH)); | 672 HexEncode(verify_result.public_key_hashes[0].data, SHA1_LENGTH)); |
673 EXPECT_EQ("83244223D6CBF0A26FC7DE27CEBCA4BDA32612AD", | 673 EXPECT_EQ("83244223D6CBF0A26FC7DE27CEBCA4BDA32612AD", |
674 HexEncode(verify_result.public_key_hashes[1].data, SHA1_LENGTH)); | 674 HexEncode(verify_result.public_key_hashes[1].data, SHA1_LENGTH)); |
675 | 675 |
676 TestRootCerts::GetInstance()->Clear(); | 676 TestRootCerts::GetInstance()->Clear(); |
677 } | 677 } |
678 | 678 |
679 // A regression test for http://crbug.com/70293. | 679 // A regression test for http://crbug.com/70293. |
680 // The Key Usage extension in this RSA SSL server certificate does not have | 680 // The Key Usage extension in this RSA SSL server certificate does not have |
681 // the keyEncipherment bit. | 681 // the keyEncipherment bit. |
682 TEST(X509CertificateTest, InvalidKeyUsage) { | 682 TEST(X509CertificateTest, InvalidKeyUsage) { |
683 FilePath certs_dir = GetTestCertsDirectory(); | 683 FilePath certs_dir = GetTestCertsDirectory(); |
684 | 684 |
685 scoped_refptr<X509Certificate> server_cert = | 685 scoped_refptr<X509Certificate> server_cert = |
686 ImportCertFromFile(certs_dir, "invalid_key_usage_cert.der"); | 686 ImportCertFromFile(certs_dir, "invalid_key_usage_cert.der"); |
687 ASSERT_NE(static_cast<X509Certificate*>(NULL), server_cert); | 687 ASSERT_NE(static_cast<X509Certificate*>(NULL), server_cert); |
688 | 688 |
689 int flags = 0; | 689 int flags = 0; |
690 CertVerifyResult verify_result; | 690 CertVerifyResult verify_result; |
691 int error = server_cert->Verify("jira.aquameta.com", flags, &verify_result); | 691 int error = server_cert->Verify("jira.aquameta.com", flags, &verify_result); |
692 #if defined(USE_OPENSSL) | 692 #if defined(USE_OPENSSL) |
693 // This certificate has two errors: "invalid key usage" and "untrusted CA". | 693 // This certificate has two errors: "invalid key usage" and "untrusted CA". |
694 // However, OpenSSL returns only one (the latter), and we can't detect | 694 // However, OpenSSL returns only one (the latter), and we can't detect |
695 // the other errors. | 695 // the other errors. |
696 EXPECT_EQ(ERR_CERT_AUTHORITY_INVALID, error); | 696 EXPECT_EQ(ERR_CERT_AUTHORITY_INVALID, error); |
697 #else | 697 #else |
698 EXPECT_EQ(ERR_CERT_INVALID, error); | 698 EXPECT_EQ(ERR_CERT_INVALID, error); |
699 EXPECT_NE(0, verify_result.cert_status & CERT_STATUS_INVALID); | 699 EXPECT_TRUE(verify_result.cert_status & CERT_STATUS_INVALID); |
700 #endif | 700 #endif |
701 // TODO(wtc): fix http://crbug.com/75520 to get all the certificate errors | 701 // TODO(wtc): fix http://crbug.com/75520 to get all the certificate errors |
702 // from NSS. | 702 // from NSS. |
703 #if !defined(USE_NSS) | 703 #if !defined(USE_NSS) |
704 // The certificate is issued by an unknown CA. | 704 // The certificate is issued by an unknown CA. |
705 EXPECT_NE(0, verify_result.cert_status & CERT_STATUS_AUTHORITY_INVALID); | 705 EXPECT_TRUE(verify_result.cert_status & CERT_STATUS_AUTHORITY_INVALID); |
706 #endif | 706 #endif |
707 } | 707 } |
708 | 708 |
709 // Tests X509CertificateCache via X509Certificate::CreateFromHandle. We | 709 // Tests X509CertificateCache via X509Certificate::CreateFromHandle. We |
710 // call X509Certificate::CreateFromHandle several times and observe whether | 710 // call X509Certificate::CreateFromHandle several times and observe whether |
711 // it returns a cached or new OSCertHandle. | 711 // it returns a cached or new OSCertHandle. |
712 TEST(X509CertificateTest, Cache) { | 712 TEST(X509CertificateTest, Cache) { |
713 X509Certificate::OSCertHandle google_cert_handle; | 713 X509Certificate::OSCertHandle google_cert_handle; |
714 X509Certificate::OSCertHandle thawte_cert_handle; | 714 X509Certificate::OSCertHandle thawte_cert_handle; |
715 | 715 |
(...skipping 782 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1498 } | 1498 } |
1499 | 1499 |
1500 EXPECT_EQ(test_data.expected, X509Certificate::VerifyHostname( | 1500 EXPECT_EQ(test_data.expected, X509Certificate::VerifyHostname( |
1501 test_data.hostname, common_name, dns_names, ip_addressses)); | 1501 test_data.hostname, common_name, dns_names, ip_addressses)); |
1502 } | 1502 } |
1503 | 1503 |
1504 INSTANTIATE_TEST_CASE_P(, X509CertificateNameVerifyTest, | 1504 INSTANTIATE_TEST_CASE_P(, X509CertificateNameVerifyTest, |
1505 testing::ValuesIn(kNameVerifyTestData)); | 1505 testing::ValuesIn(kNameVerifyTestData)); |
1506 | 1506 |
1507 } // namespace net | 1507 } // namespace net |
OLD | NEW |