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 "net/base/x509_certificate.h" | 5 #include "net/base/x509_certificate.h" |
6 | 6 |
7 #include "base/lazy_instance.h" | 7 #include "base/lazy_instance.h" |
8 #include "base/logging.h" | 8 #include "base/logging.h" |
9 #include "base/pickle.h" | 9 #include "base/pickle.h" |
10 #include "base/sha1.h" | 10 #include "base/sha1.h" |
(...skipping 504 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
515 | 515 |
516 void X509Certificate::Initialize() { | 516 void X509Certificate::Initialize() { |
517 std::wstring subject_info; | 517 std::wstring subject_info; |
518 std::wstring issuer_info; | 518 std::wstring issuer_info; |
519 DWORD name_size; | 519 DWORD name_size; |
520 DCHECK(cert_handle_); | 520 DCHECK(cert_handle_); |
521 name_size = CertNameToStr(cert_handle_->dwCertEncodingType, | 521 name_size = CertNameToStr(cert_handle_->dwCertEncodingType, |
522 &cert_handle_->pCertInfo->Subject, | 522 &cert_handle_->pCertInfo->Subject, |
523 CERT_X500_NAME_STR | CERT_NAME_STR_CRLF_FLAG, | 523 CERT_X500_NAME_STR | CERT_NAME_STR_CRLF_FLAG, |
524 NULL, 0); | 524 NULL, 0); |
525 name_size = CertNameToStr(cert_handle_->dwCertEncodingType, | 525 if (name_size > 1) { |
526 &cert_handle_->pCertInfo->Subject, | 526 CertNameToStr(cert_handle_->dwCertEncodingType, |
527 CERT_X500_NAME_STR | CERT_NAME_STR_CRLF_FLAG, | 527 &cert_handle_->pCertInfo->Subject, |
528 WriteInto(&subject_info, name_size), name_size); | 528 CERT_X500_NAME_STR | CERT_NAME_STR_CRLF_FLAG, |
| 529 WriteInto(&subject_info, name_size), name_size); |
| 530 } |
529 name_size = CertNameToStr(cert_handle_->dwCertEncodingType, | 531 name_size = CertNameToStr(cert_handle_->dwCertEncodingType, |
530 &cert_handle_->pCertInfo->Issuer, | 532 &cert_handle_->pCertInfo->Issuer, |
531 CERT_X500_NAME_STR | CERT_NAME_STR_CRLF_FLAG, | 533 CERT_X500_NAME_STR | CERT_NAME_STR_CRLF_FLAG, |
532 NULL, 0); | 534 NULL, 0); |
533 name_size = CertNameToStr(cert_handle_->dwCertEncodingType, | 535 if (name_size > 1) { |
534 &cert_handle_->pCertInfo->Issuer, | 536 CertNameToStr(cert_handle_->dwCertEncodingType, |
535 CERT_X500_NAME_STR | CERT_NAME_STR_CRLF_FLAG, | 537 &cert_handle_->pCertInfo->Issuer, |
536 WriteInto(&issuer_info, name_size), name_size); | 538 CERT_X500_NAME_STR | CERT_NAME_STR_CRLF_FLAG, |
| 539 WriteInto(&issuer_info, name_size), name_size); |
| 540 } |
537 ParsePrincipal(WideToUTF8(subject_info), &subject_); | 541 ParsePrincipal(WideToUTF8(subject_info), &subject_); |
538 ParsePrincipal(WideToUTF8(issuer_info), &issuer_); | 542 ParsePrincipal(WideToUTF8(issuer_info), &issuer_); |
539 | 543 |
540 valid_start_ = Time::FromFileTime(cert_handle_->pCertInfo->NotBefore); | 544 valid_start_ = Time::FromFileTime(cert_handle_->pCertInfo->NotBefore); |
541 valid_expiry_ = Time::FromFileTime(cert_handle_->pCertInfo->NotAfter); | 545 valid_expiry_ = Time::FromFileTime(cert_handle_->pCertInfo->NotAfter); |
542 | 546 |
543 fingerprint_ = CalculateFingerprint(cert_handle_); | 547 fingerprint_ = CalculateFingerprint(cert_handle_); |
544 | 548 |
545 const CRYPT_INTEGER_BLOB* serial = &cert_handle_->pCertInfo->SerialNumber; | 549 const CRYPT_INTEGER_BLOB* serial = &cert_handle_->pCertInfo->SerialNumber; |
546 scoped_array<uint8> serial_bytes(new uint8[serial->cbData]); | 550 scoped_array<uint8> serial_bytes(new uint8[serial->cbData]); |
(...skipping 505 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1052 if (!CertSerializeCertificateStoreElement(cert_handle, 0, &buffer[0], | 1056 if (!CertSerializeCertificateStoreElement(cert_handle, 0, &buffer[0], |
1053 &length)) { | 1057 &length)) { |
1054 return false; | 1058 return false; |
1055 } | 1059 } |
1056 | 1060 |
1057 return pickle->WriteData(reinterpret_cast<const char*>(&buffer[0]), | 1061 return pickle->WriteData(reinterpret_cast<const char*>(&buffer[0]), |
1058 length); | 1062 length); |
1059 } | 1063 } |
1060 | 1064 |
1061 } // namespace net | 1065 } // namespace net |
OLD | NEW |