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

Side by Side Diff: net/base/x509_certificate_unittest.cc

Issue 4192012: Convert implicit scoped_refptr constructor calls to explicit ones, part 1 (Closed) Base URL: http://git.chromium.org/git/chromium.git
Patch Set: fix presubmit Created 10 years, 1 month 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 | Annotate | Revision Log
« no previous file with comments | « net/base/x509_certificate_mac.cc ('k') | net/disk_cache/backend_impl.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) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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 "net/base/cert_status_flags.h" 9 #include "net/base/cert_status_flags.h"
10 #include "net/base/cert_test_util.h" 10 #include "net/base/cert_test_util.h"
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
245 // TODO(avi): turn this on for the Mac once EV checking is implemented. 245 // TODO(avi): turn this on for the Mac once EV checking is implemented.
246 CertVerifyResult verify_result; 246 CertVerifyResult verify_result;
247 int flags = X509Certificate::VERIFY_REV_CHECKING_ENABLED | 247 int flags = X509Certificate::VERIFY_REV_CHECKING_ENABLED |
248 X509Certificate::VERIFY_EV_CERT; 248 X509Certificate::VERIFY_EV_CERT;
249 EXPECT_EQ(OK, google_cert->Verify("www.google.com", flags, &verify_result)); 249 EXPECT_EQ(OK, google_cert->Verify("www.google.com", flags, &verify_result));
250 EXPECT_EQ(0, verify_result.cert_status & CERT_STATUS_IS_EV); 250 EXPECT_EQ(0, verify_result.cert_status & CERT_STATUS_IS_EV);
251 #endif 251 #endif
252 } 252 }
253 253
254 TEST(X509CertificateTest, GoogleCertParsing) { 254 TEST(X509CertificateTest, GoogleCertParsing) {
255 scoped_refptr<X509Certificate> google_cert = 255 scoped_refptr<X509Certificate> google_cert(
256 X509Certificate::CreateFromBytes( 256 X509Certificate::CreateFromBytes(
257 reinterpret_cast<const char*>(google_der), sizeof(google_der)); 257 reinterpret_cast<const char*>(google_der), sizeof(google_der)));
258 258
259 CheckGoogleCert(google_cert, google_fingerprint, 259 CheckGoogleCert(google_cert, google_fingerprint,
260 1238192407, // Mar 27 22:20:07 2009 GMT 260 1238192407, // Mar 27 22:20:07 2009 GMT
261 1269728407); // Mar 27 22:20:07 2010 GMT 261 1269728407); // Mar 27 22:20:07 2010 GMT
262 } 262 }
263 263
264 TEST(X509CertificateTest, WebkitCertParsing) { 264 TEST(X509CertificateTest, WebkitCertParsing) {
265 scoped_refptr<X509Certificate> webkit_cert = X509Certificate::CreateFromBytes( 265 scoped_refptr<X509Certificate> webkit_cert(X509Certificate::CreateFromBytes(
266 reinterpret_cast<const char*>(webkit_der), sizeof(webkit_der)); 266 reinterpret_cast<const char*>(webkit_der), sizeof(webkit_der)));
267 267
268 ASSERT_NE(static_cast<X509Certificate*>(NULL), webkit_cert); 268 ASSERT_NE(static_cast<X509Certificate*>(NULL), webkit_cert);
269 269
270 const CertPrincipal& subject = webkit_cert->subject(); 270 const CertPrincipal& subject = webkit_cert->subject();
271 EXPECT_EQ("Cupertino", subject.locality_name); 271 EXPECT_EQ("Cupertino", subject.locality_name);
272 EXPECT_EQ("California", subject.state_or_province_name); 272 EXPECT_EQ("California", subject.state_or_province_name);
273 EXPECT_EQ("US", subject.country_name); 273 EXPECT_EQ("US", subject.country_name);
274 EXPECT_EQ(0U, subject.street_addresses.size()); 274 EXPECT_EQ(0U, subject.street_addresses.size());
275 ASSERT_EQ(1U, subject.organization_names.size()); 275 ASSERT_EQ(1U, subject.organization_names.size());
276 EXPECT_EQ("Apple Inc.", subject.organization_names[0]); 276 EXPECT_EQ("Apple Inc.", subject.organization_names[0]);
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
311 #if TEST_EV 311 #if TEST_EV
312 int flags = X509Certificate::VERIFY_REV_CHECKING_ENABLED | 312 int flags = X509Certificate::VERIFY_REV_CHECKING_ENABLED |
313 X509Certificate::VERIFY_EV_CERT; 313 X509Certificate::VERIFY_EV_CERT;
314 CertVerifyResult verify_result; 314 CertVerifyResult verify_result;
315 EXPECT_EQ(OK, webkit_cert->Verify("webkit.org", flags, &verify_result)); 315 EXPECT_EQ(OK, webkit_cert->Verify("webkit.org", flags, &verify_result));
316 EXPECT_EQ(0, verify_result.cert_status & CERT_STATUS_IS_EV); 316 EXPECT_EQ(0, verify_result.cert_status & CERT_STATUS_IS_EV);
317 #endif 317 #endif
318 } 318 }
319 319
320 TEST(X509CertificateTest, ThawteCertParsing) { 320 TEST(X509CertificateTest, ThawteCertParsing) {
321 scoped_refptr<X509Certificate> thawte_cert = X509Certificate::CreateFromBytes( 321 scoped_refptr<X509Certificate> thawte_cert(X509Certificate::CreateFromBytes(
322 reinterpret_cast<const char*>(thawte_der), sizeof(thawte_der)); 322 reinterpret_cast<const char*>(thawte_der), sizeof(thawte_der)));
323 323
324 ASSERT_NE(static_cast<X509Certificate*>(NULL), thawte_cert); 324 ASSERT_NE(static_cast<X509Certificate*>(NULL), thawte_cert);
325 325
326 const CertPrincipal& subject = thawte_cert->subject(); 326 const CertPrincipal& subject = thawte_cert->subject();
327 EXPECT_EQ("www.thawte.com", subject.common_name); 327 EXPECT_EQ("www.thawte.com", subject.common_name);
328 EXPECT_EQ("Mountain View", subject.locality_name); 328 EXPECT_EQ("Mountain View", subject.locality_name);
329 EXPECT_EQ("California", subject.state_or_province_name); 329 EXPECT_EQ("California", subject.state_or_province_name);
330 EXPECT_EQ("US", subject.country_name); 330 EXPECT_EQ("US", subject.country_name);
331 EXPECT_EQ(0U, subject.street_addresses.size()); 331 EXPECT_EQ(0U, subject.street_addresses.size());
332 ASSERT_EQ(1U, subject.organization_names.size()); 332 ASSERT_EQ(1U, subject.organization_names.size());
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
372 EXPECT_NE(0, verify_result.cert_status & CERT_STATUS_IS_EV); 372 EXPECT_NE(0, verify_result.cert_status & CERT_STATUS_IS_EV);
373 // Consequently, if we don't have revocation checking enabled, we can't claim 373 // Consequently, if we don't have revocation checking enabled, we can't claim
374 // any cert is EV. 374 // any cert is EV.
375 flags = X509Certificate::VERIFY_EV_CERT; 375 flags = X509Certificate::VERIFY_EV_CERT;
376 EXPECT_EQ(OK, thawte_cert->Verify("www.thawte.com", flags, &verify_result)); 376 EXPECT_EQ(OK, thawte_cert->Verify("www.thawte.com", flags, &verify_result));
377 EXPECT_EQ(0, verify_result.cert_status & CERT_STATUS_IS_EV); 377 EXPECT_EQ(0, verify_result.cert_status & CERT_STATUS_IS_EV);
378 #endif 378 #endif
379 } 379 }
380 380
381 TEST(X509CertificateTest, PaypalNullCertParsing) { 381 TEST(X509CertificateTest, PaypalNullCertParsing) {
382 scoped_refptr<X509Certificate> paypal_null_cert = 382 scoped_refptr<X509Certificate> paypal_null_cert(
383 X509Certificate::CreateFromBytes( 383 X509Certificate::CreateFromBytes(
384 reinterpret_cast<const char*>(paypal_null_der), 384 reinterpret_cast<const char*>(paypal_null_der),
385 sizeof(paypal_null_der)); 385 sizeof(paypal_null_der)));
386 386
387 ASSERT_NE(static_cast<X509Certificate*>(NULL), paypal_null_cert); 387 ASSERT_NE(static_cast<X509Certificate*>(NULL), paypal_null_cert);
388 388
389 const SHA1Fingerprint& fingerprint = 389 const SHA1Fingerprint& fingerprint =
390 paypal_null_cert->fingerprint(); 390 paypal_null_cert->fingerprint();
391 for (size_t i = 0; i < 20; ++i) 391 for (size_t i = 0; i < 20; ++i)
392 EXPECT_EQ(paypal_null_fingerprint[i], fingerprint.data[i]); 392 EXPECT_EQ(paypal_null_fingerprint[i], fingerprint.data[i]);
393 393
394 int flags = 0; 394 int flags = 0;
395 CertVerifyResult verify_result; 395 CertVerifyResult verify_result;
396 int error = paypal_null_cert->Verify("www.paypal.com", flags, 396 int error = paypal_null_cert->Verify("www.paypal.com", flags,
397 &verify_result); 397 &verify_result);
398 EXPECT_NE(OK, error); 398 EXPECT_NE(OK, error);
399 // Either the system crypto library should correctly report a certificate 399 // Either the system crypto library should correctly report a certificate
400 // name mismatch, or our certificate blacklist should cause us to report an 400 // name mismatch, or our certificate blacklist should cause us to report an
401 // invalid certificate. 401 // invalid certificate.
402 #if !defined(OS_MACOSX) && !defined(USE_OPENSSL) 402 #if !defined(OS_MACOSX) && !defined(USE_OPENSSL)
403 EXPECT_NE(0, verify_result.cert_status & 403 EXPECT_NE(0, verify_result.cert_status &
404 (CERT_STATUS_COMMON_NAME_INVALID | CERT_STATUS_INVALID)); 404 (CERT_STATUS_COMMON_NAME_INVALID | CERT_STATUS_INVALID));
405 #endif 405 #endif
406 } 406 }
407 407
408 // A certificate whose AIA extension contains an LDAP URL without a host name. 408 // A certificate whose AIA extension contains an LDAP URL without a host name.
409 // This certificate will expire on 2011-09-08. 409 // This certificate will expire on 2011-09-08.
410 TEST(X509CertificateTest, UnoSoftCertParsing) { 410 TEST(X509CertificateTest, UnoSoftCertParsing) {
411 FilePath certs_dir = GetTestCertsDirectory(); 411 FilePath certs_dir = GetTestCertsDirectory();
412 scoped_refptr<X509Certificate> unosoft_hu_cert = 412 scoped_refptr<X509Certificate> unosoft_hu_cert(
413 ImportCertFromFile(certs_dir, "unosoft_hu_cert.der"); 413 ImportCertFromFile(certs_dir, "unosoft_hu_cert.der"));
414 414
415 ASSERT_NE(static_cast<X509Certificate*>(NULL), unosoft_hu_cert); 415 ASSERT_NE(static_cast<X509Certificate*>(NULL), unosoft_hu_cert);
416 416
417 const SHA1Fingerprint& fingerprint = 417 const SHA1Fingerprint& fingerprint =
418 unosoft_hu_cert->fingerprint(); 418 unosoft_hu_cert->fingerprint();
419 for (size_t i = 0; i < 20; ++i) 419 for (size_t i = 0; i < 20; ++i)
420 EXPECT_EQ(unosoft_hu_fingerprint[i], fingerprint.data[i]); 420 EXPECT_EQ(unosoft_hu_fingerprint[i], fingerprint.data[i]);
421 421
422 int flags = 0; 422 int flags = 0;
423 CertVerifyResult verify_result; 423 CertVerifyResult verify_result;
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
474 // All the OS certificate handles in this test are actually from the same 474 // All the OS certificate handles in this test are actually from the same
475 // source (the bytes of a lone certificate), but we pretend that some of them 475 // source (the bytes of a lone certificate), but we pretend that some of them
476 // come from the network. 476 // come from the network.
477 TEST(X509CertificateTest, Cache) { 477 TEST(X509CertificateTest, Cache) {
478 X509Certificate::OSCertHandle google_cert_handle; 478 X509Certificate::OSCertHandle google_cert_handle;
479 479
480 // Add a certificate from the source SOURCE_LONE_CERT_IMPORT to our 480 // Add a certificate from the source SOURCE_LONE_CERT_IMPORT to our
481 // certificate cache. 481 // certificate cache.
482 google_cert_handle = X509Certificate::CreateOSCertHandleFromBytes( 482 google_cert_handle = X509Certificate::CreateOSCertHandleFromBytes(
483 reinterpret_cast<const char*>(google_der), sizeof(google_der)); 483 reinterpret_cast<const char*>(google_der), sizeof(google_der));
484 scoped_refptr<X509Certificate> cert1 = X509Certificate::CreateFromHandle( 484 scoped_refptr<X509Certificate> cert1(X509Certificate::CreateFromHandle(
485 google_cert_handle, X509Certificate::SOURCE_LONE_CERT_IMPORT, 485 google_cert_handle, X509Certificate::SOURCE_LONE_CERT_IMPORT,
486 X509Certificate::OSCertHandles()); 486 X509Certificate::OSCertHandles()));
487 X509Certificate::FreeOSCertHandle(google_cert_handle); 487 X509Certificate::FreeOSCertHandle(google_cert_handle);
488 488
489 // Add a certificate from the same source (SOURCE_LONE_CERT_IMPORT). This 489 // Add a certificate from the same source (SOURCE_LONE_CERT_IMPORT). This
490 // should return the cached certificate (cert1). 490 // should return the cached certificate (cert1).
491 google_cert_handle = X509Certificate::CreateOSCertHandleFromBytes( 491 google_cert_handle = X509Certificate::CreateOSCertHandleFromBytes(
492 reinterpret_cast<const char*>(google_der), sizeof(google_der)); 492 reinterpret_cast<const char*>(google_der), sizeof(google_der));
493 scoped_refptr<X509Certificate> cert2 = X509Certificate::CreateFromHandle( 493 scoped_refptr<X509Certificate> cert2(X509Certificate::CreateFromHandle(
494 google_cert_handle, X509Certificate::SOURCE_LONE_CERT_IMPORT, 494 google_cert_handle, X509Certificate::SOURCE_LONE_CERT_IMPORT,
495 X509Certificate::OSCertHandles()); 495 X509Certificate::OSCertHandles()));
496 X509Certificate::FreeOSCertHandle(google_cert_handle); 496 X509Certificate::FreeOSCertHandle(google_cert_handle);
497 497
498 EXPECT_EQ(cert1, cert2); 498 EXPECT_EQ(cert1, cert2);
499 499
500 // Add a certificate from the network. This should kick out the original 500 // Add a certificate from the network. This should kick out the original
501 // cached certificate (cert1) and return a new certificate. 501 // cached certificate (cert1) and return a new certificate.
502 google_cert_handle = X509Certificate::CreateOSCertHandleFromBytes( 502 google_cert_handle = X509Certificate::CreateOSCertHandleFromBytes(
503 reinterpret_cast<const char*>(google_der), sizeof(google_der)); 503 reinterpret_cast<const char*>(google_der), sizeof(google_der));
504 scoped_refptr<X509Certificate> cert3 = X509Certificate::CreateFromHandle( 504 scoped_refptr<X509Certificate> cert3(X509Certificate::CreateFromHandle(
505 google_cert_handle, X509Certificate::SOURCE_FROM_NETWORK, 505 google_cert_handle, X509Certificate::SOURCE_FROM_NETWORK,
506 X509Certificate::OSCertHandles()); 506 X509Certificate::OSCertHandles()));
507 X509Certificate::FreeOSCertHandle(google_cert_handle); 507 X509Certificate::FreeOSCertHandle(google_cert_handle);
508 508
509 EXPECT_NE(cert1, cert3); 509 EXPECT_NE(cert1, cert3);
510 510
511 // Add one certificate from each source. Both should return the new cached 511 // Add one certificate from each source. Both should return the new cached
512 // certificate (cert3). 512 // certificate (cert3).
513 google_cert_handle = X509Certificate::CreateOSCertHandleFromBytes( 513 google_cert_handle = X509Certificate::CreateOSCertHandleFromBytes(
514 reinterpret_cast<const char*>(google_der), sizeof(google_der)); 514 reinterpret_cast<const char*>(google_der), sizeof(google_der));
515 scoped_refptr<X509Certificate> cert4 = X509Certificate::CreateFromHandle( 515 scoped_refptr<X509Certificate> cert4(X509Certificate::CreateFromHandle(
516 google_cert_handle, X509Certificate::SOURCE_FROM_NETWORK, 516 google_cert_handle, X509Certificate::SOURCE_FROM_NETWORK,
517 X509Certificate::OSCertHandles()); 517 X509Certificate::OSCertHandles()));
518 X509Certificate::FreeOSCertHandle(google_cert_handle); 518 X509Certificate::FreeOSCertHandle(google_cert_handle);
519 519
520 EXPECT_EQ(cert3, cert4); 520 EXPECT_EQ(cert3, cert4);
521 521
522 google_cert_handle = X509Certificate::CreateOSCertHandleFromBytes( 522 google_cert_handle = X509Certificate::CreateOSCertHandleFromBytes(
523 reinterpret_cast<const char*>(google_der), sizeof(google_der)); 523 reinterpret_cast<const char*>(google_der), sizeof(google_der));
524 scoped_refptr<X509Certificate> cert5 = X509Certificate::CreateFromHandle( 524 scoped_refptr<X509Certificate> cert5(X509Certificate::CreateFromHandle(
525 google_cert_handle, X509Certificate::SOURCE_FROM_NETWORK, 525 google_cert_handle, X509Certificate::SOURCE_FROM_NETWORK,
526 X509Certificate::OSCertHandles()); 526 X509Certificate::OSCertHandles()));
527 X509Certificate::FreeOSCertHandle(google_cert_handle); 527 X509Certificate::FreeOSCertHandle(google_cert_handle);
528 528
529 EXPECT_EQ(cert3, cert5); 529 EXPECT_EQ(cert3, cert5);
530 } 530 }
531 531
532 TEST(X509CertificateTest, Pickle) { 532 TEST(X509CertificateTest, Pickle) {
533 scoped_refptr<X509Certificate> cert1 = X509Certificate::CreateFromBytes( 533 scoped_refptr<X509Certificate> cert1(X509Certificate::CreateFromBytes(
534 reinterpret_cast<const char*>(google_der), sizeof(google_der)); 534 reinterpret_cast<const char*>(google_der), sizeof(google_der)));
535 535
536 Pickle pickle; 536 Pickle pickle;
537 cert1->Persist(&pickle); 537 cert1->Persist(&pickle);
538 538
539 void* iter = NULL; 539 void* iter = NULL;
540 scoped_refptr<X509Certificate> cert2 = 540 scoped_refptr<X509Certificate> cert2(
541 X509Certificate::CreateFromPickle(pickle, &iter); 541 X509Certificate::CreateFromPickle(pickle, &iter));
542 542
543 EXPECT_EQ(cert1, cert2); 543 EXPECT_EQ(cert1, cert2);
544 } 544 }
545 545
546 TEST(X509CertificateTest, Policy) { 546 TEST(X509CertificateTest, Policy) {
547 scoped_refptr<X509Certificate> google_cert = X509Certificate::CreateFromBytes( 547 scoped_refptr<X509Certificate> google_cert(X509Certificate::CreateFromBytes(
548 reinterpret_cast<const char*>(google_der), sizeof(google_der)); 548 reinterpret_cast<const char*>(google_der), sizeof(google_der)));
549 549
550 scoped_refptr<X509Certificate> webkit_cert = X509Certificate::CreateFromBytes( 550 scoped_refptr<X509Certificate> webkit_cert(X509Certificate::CreateFromBytes(
551 reinterpret_cast<const char*>(webkit_der), sizeof(webkit_der)); 551 reinterpret_cast<const char*>(webkit_der), sizeof(webkit_der)));
552 552
553 CertPolicy policy; 553 CertPolicy policy;
554 554
555 EXPECT_EQ(policy.Check(google_cert.get()), CertPolicy::UNKNOWN); 555 EXPECT_EQ(policy.Check(google_cert.get()), CertPolicy::UNKNOWN);
556 EXPECT_EQ(policy.Check(webkit_cert.get()), CertPolicy::UNKNOWN); 556 EXPECT_EQ(policy.Check(webkit_cert.get()), CertPolicy::UNKNOWN);
557 EXPECT_FALSE(policy.HasAllowedCert()); 557 EXPECT_FALSE(policy.HasAllowedCert());
558 EXPECT_FALSE(policy.HasDeniedCert()); 558 EXPECT_FALSE(policy.HasDeniedCert());
559 559
560 policy.Allow(google_cert.get()); 560 policy.Allow(google_cert.get());
561 561
(...skipping 12 matching lines...) Expand all
574 policy.Allow(webkit_cert.get()); 574 policy.Allow(webkit_cert.get());
575 575
576 EXPECT_EQ(policy.Check(google_cert.get()), CertPolicy::DENIED); 576 EXPECT_EQ(policy.Check(google_cert.get()), CertPolicy::DENIED);
577 EXPECT_EQ(policy.Check(webkit_cert.get()), CertPolicy::ALLOWED); 577 EXPECT_EQ(policy.Check(webkit_cert.get()), CertPolicy::ALLOWED);
578 EXPECT_TRUE(policy.HasAllowedCert()); 578 EXPECT_TRUE(policy.HasAllowedCert());
579 EXPECT_TRUE(policy.HasDeniedCert()); 579 EXPECT_TRUE(policy.HasDeniedCert());
580 } 580 }
581 581
582 #if defined(OS_MACOSX) || defined(OS_WIN) 582 #if defined(OS_MACOSX) || defined(OS_WIN)
583 TEST(X509CertificateTest, IntermediateCertificates) { 583 TEST(X509CertificateTest, IntermediateCertificates) {
584 scoped_refptr<X509Certificate> webkit_cert = 584 scoped_refptr<X509Certificate> webkit_cert(
585 X509Certificate::CreateFromBytes( 585 X509Certificate::CreateFromBytes(
586 reinterpret_cast<const char*>(webkit_der), sizeof(webkit_der)); 586 reinterpret_cast<const char*>(webkit_der), sizeof(webkit_der)));
587 587
588 scoped_refptr<X509Certificate> thawte_cert = 588 scoped_refptr<X509Certificate> thawte_cert(
589 X509Certificate::CreateFromBytes( 589 X509Certificate::CreateFromBytes(
590 reinterpret_cast<const char*>(thawte_der), sizeof(thawte_der)); 590 reinterpret_cast<const char*>(thawte_der), sizeof(thawte_der)));
591 591
592 scoped_refptr<X509Certificate> paypal_cert = 592 scoped_refptr<X509Certificate> paypal_cert(
593 X509Certificate::CreateFromBytes( 593 X509Certificate::CreateFromBytes(
594 reinterpret_cast<const char*>(paypal_null_der), 594 reinterpret_cast<const char*>(paypal_null_der),
595 sizeof(paypal_null_der)); 595 sizeof(paypal_null_der)));
596 596
597 X509Certificate::OSCertHandle google_handle; 597 X509Certificate::OSCertHandle google_handle;
598 // Create object with no intermediates: 598 // Create object with no intermediates:
599 google_handle = X509Certificate::CreateOSCertHandleFromBytes( 599 google_handle = X509Certificate::CreateOSCertHandleFromBytes(
600 reinterpret_cast<const char*>(google_der), sizeof(google_der)); 600 reinterpret_cast<const char*>(google_der), sizeof(google_der));
601 X509Certificate::OSCertHandles intermediates1; 601 X509Certificate::OSCertHandles intermediates1;
602 scoped_refptr<X509Certificate> cert1; 602 scoped_refptr<X509Certificate> cert1;
603 cert1 = X509Certificate::CreateFromHandle( 603 cert1 = X509Certificate::CreateFromHandle(
604 google_handle, X509Certificate::SOURCE_FROM_NETWORK, intermediates1); 604 google_handle, X509Certificate::SOURCE_FROM_NETWORK, intermediates1);
605 EXPECT_TRUE(cert1->HasIntermediateCertificates(intermediates1)); 605 EXPECT_TRUE(cert1->HasIntermediateCertificates(intermediates1));
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
638 // Cleanup 638 // Cleanup
639 X509Certificate::FreeOSCertHandle(google_handle); 639 X509Certificate::FreeOSCertHandle(google_handle);
640 } 640 }
641 #endif 641 #endif
642 642
643 #if defined(OS_MACOSX) 643 #if defined(OS_MACOSX)
644 TEST(X509CertificateTest, IsIssuedBy) { 644 TEST(X509CertificateTest, IsIssuedBy) {
645 FilePath certs_dir = GetTestCertsDirectory(); 645 FilePath certs_dir = GetTestCertsDirectory();
646 646
647 // Test a client certificate from MIT. 647 // Test a client certificate from MIT.
648 scoped_refptr<X509Certificate> mit_davidben_cert = 648 scoped_refptr<X509Certificate> mit_davidben_cert(
649 ImportCertFromFile(certs_dir, "mit.davidben.der"); 649 ImportCertFromFile(certs_dir, "mit.davidben.der"));
650 ASSERT_NE(static_cast<X509Certificate*>(NULL), mit_davidben_cert); 650 ASSERT_NE(static_cast<X509Certificate*>(NULL), mit_davidben_cert);
651 651
652 CertPrincipal mit_issuer; 652 CertPrincipal mit_issuer;
653 mit_issuer.country_name = "US"; 653 mit_issuer.country_name = "US";
654 mit_issuer.state_or_province_name = "Massachusetts"; 654 mit_issuer.state_or_province_name = "Massachusetts";
655 mit_issuer.organization_names.push_back( 655 mit_issuer.organization_names.push_back(
656 "Massachusetts Institute of Technology"); 656 "Massachusetts Institute of Technology");
657 mit_issuer.organization_unit_names.push_back("Client CA v1"); 657 mit_issuer.organization_unit_names.push_back("Client CA v1");
658 658
659 // IsIssuedBy should return true even if it cannot build a chain 659 // IsIssuedBy should return true even if it cannot build a chain
660 // with that principal. 660 // with that principal.
661 std::vector<CertPrincipal> mit_issuers(1, mit_issuer); 661 std::vector<CertPrincipal> mit_issuers(1, mit_issuer);
662 EXPECT_TRUE(mit_davidben_cert->IsIssuedBy(mit_issuers)); 662 EXPECT_TRUE(mit_davidben_cert->IsIssuedBy(mit_issuers));
663 663
664 // Test a client certificate from FOAF.ME. 664 // Test a client certificate from FOAF.ME.
665 scoped_refptr<X509Certificate> foaf_me_chromium_test_cert = 665 scoped_refptr<X509Certificate> foaf_me_chromium_test_cert(
666 ImportCertFromFile(certs_dir, "foaf.me.chromium-test-cert.der"); 666 ImportCertFromFile(certs_dir, "foaf.me.chromium-test-cert.der"));
667 ASSERT_NE(static_cast<X509Certificate*>(NULL), foaf_me_chromium_test_cert); 667 ASSERT_NE(static_cast<X509Certificate*>(NULL), foaf_me_chromium_test_cert);
668 668
669 CertPrincipal foaf_issuer; 669 CertPrincipal foaf_issuer;
670 foaf_issuer.common_name = "FOAF.ME"; 670 foaf_issuer.common_name = "FOAF.ME";
671 foaf_issuer.locality_name = "Wimbledon"; 671 foaf_issuer.locality_name = "Wimbledon";
672 foaf_issuer.state_or_province_name = "LONDON"; 672 foaf_issuer.state_or_province_name = "LONDON";
673 foaf_issuer.country_name = "GB"; 673 foaf_issuer.country_name = "GB";
674 foaf_issuer.organization_names.push_back("FOAF.ME"); 674 foaf_issuer.organization_names.push_back("FOAF.ME");
675 675
676 std::vector<CertPrincipal> foaf_issuers(1, foaf_issuer); 676 std::vector<CertPrincipal> foaf_issuers(1, foaf_issuer);
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
729 729
730 for (size_t j = 0; j < 20; ++j) 730 for (size_t j = 0; j < 20; ++j)
731 EXPECT_EQ(expected_fingerprint[j], actual_fingerprint.data[j]); 731 EXPECT_EQ(expected_fingerprint[j], actual_fingerprint.data[j]);
732 } 732 }
733 } 733 }
734 734
735 INSTANTIATE_TEST_CASE_P(, X509CertificateParseTest, 735 INSTANTIATE_TEST_CASE_P(, X509CertificateParseTest,
736 testing::ValuesIn(FormatTestData)); 736 testing::ValuesIn(FormatTestData));
737 737
738 } // namespace net 738 } // namespace net
OLDNEW
« no previous file with comments | « net/base/x509_certificate_mac.cc ('k') | net/disk_cache/backend_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698