OLD | NEW |
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/x509_certificate.h" | 5 #include "net/cert/x509_certificate.h" |
6 | 6 |
7 #include <stdlib.h> | 7 #include <stdlib.h> |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 #include <map> | 10 #include <map> |
(...skipping 647 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
658 return VerifyHostname(hostname, subject_.common_name, dns_names, ip_addrs, | 658 return VerifyHostname(hostname, subject_.common_name, dns_names, ip_addrs, |
659 common_name_fallback_used); | 659 common_name_fallback_used); |
660 } | 660 } |
661 | 661 |
662 // static | 662 // static |
663 bool X509Certificate::GetPEMEncodedFromDER(const std::string& der_encoded, | 663 bool X509Certificate::GetPEMEncodedFromDER(const std::string& der_encoded, |
664 std::string* pem_encoded) { | 664 std::string* pem_encoded) { |
665 if (der_encoded.empty()) | 665 if (der_encoded.empty()) |
666 return false; | 666 return false; |
667 std::string b64_encoded; | 667 std::string b64_encoded; |
668 if (!base::Base64Encode(der_encoded, &b64_encoded) || b64_encoded.empty()) | 668 base::Base64Encode(der_encoded, &b64_encoded); |
669 return false; | |
670 *pem_encoded = "-----BEGIN CERTIFICATE-----\n"; | 669 *pem_encoded = "-----BEGIN CERTIFICATE-----\n"; |
671 | 670 |
672 // Divide the Base-64 encoded data into 64-character chunks, as per | 671 // Divide the Base-64 encoded data into 64-character chunks, as per |
673 // 4.3.2.4 of RFC 1421. | 672 // 4.3.2.4 of RFC 1421. |
674 static const size_t kChunkSize = 64; | 673 static const size_t kChunkSize = 64; |
675 size_t chunks = (b64_encoded.size() + (kChunkSize - 1)) / kChunkSize; | 674 size_t chunks = (b64_encoded.size() + (kChunkSize - 1)) / kChunkSize; |
676 for (size_t i = 0, chunk_offset = 0; i < chunks; | 675 for (size_t i = 0, chunk_offset = 0; i < chunks; |
677 ++i, chunk_offset += kChunkSize) { | 676 ++i, chunk_offset += kChunkSize) { |
678 pem_encoded->append(b64_encoded, chunk_offset, kChunkSize); | 677 pem_encoded->append(b64_encoded, chunk_offset, kChunkSize); |
679 pem_encoded->append("\n"); | 678 pem_encoded->append("\n"); |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
729 RemoveFromCache(cert_handle_); | 728 RemoveFromCache(cert_handle_); |
730 FreeOSCertHandle(cert_handle_); | 729 FreeOSCertHandle(cert_handle_); |
731 } | 730 } |
732 for (size_t i = 0; i < intermediate_ca_certs_.size(); ++i) { | 731 for (size_t i = 0; i < intermediate_ca_certs_.size(); ++i) { |
733 RemoveFromCache(intermediate_ca_certs_[i]); | 732 RemoveFromCache(intermediate_ca_certs_[i]); |
734 FreeOSCertHandle(intermediate_ca_certs_[i]); | 733 FreeOSCertHandle(intermediate_ca_certs_[i]); |
735 } | 734 } |
736 } | 735 } |
737 | 736 |
738 } // namespace net | 737 } // namespace net |
OLD | NEW |