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 <blapi.h> // Implement CalculateChainFingerprint() with NSS. | 7 #include <blapi.h> // Implement CalculateChainFingerprint() with NSS. |
8 | 8 |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
176 if (!cert_handle_) | 176 if (!cert_handle_) |
177 return; | 177 return; |
178 | 178 |
179 scoped_ptr<CERT_ALT_NAME_INFO, base::FreeDeleter> alt_name_info; | 179 scoped_ptr<CERT_ALT_NAME_INFO, base::FreeDeleter> alt_name_info; |
180 GetCertSubjectAltName(cert_handle_, &alt_name_info); | 180 GetCertSubjectAltName(cert_handle_, &alt_name_info); |
181 CERT_ALT_NAME_INFO* alt_name = alt_name_info.get(); | 181 CERT_ALT_NAME_INFO* alt_name = alt_name_info.get(); |
182 if (alt_name) { | 182 if (alt_name) { |
183 int num_entries = alt_name->cAltEntry; | 183 int num_entries = alt_name->cAltEntry; |
184 for (int i = 0; i < num_entries; i++) { | 184 for (int i = 0; i < num_entries; i++) { |
185 // dNSName is an ASN.1 IA5String representing a string of ASCII | 185 // dNSName is an ASN.1 IA5String representing a string of ASCII |
186 // characters, so we can use WideToASCII here. | 186 // characters, so we can use UTF16ToASCII here. |
187 const CERT_ALT_NAME_ENTRY& entry = alt_name->rgAltEntry[i]; | 187 const CERT_ALT_NAME_ENTRY& entry = alt_name->rgAltEntry[i]; |
188 | 188 |
189 if (dns_names && entry.dwAltNameChoice == CERT_ALT_NAME_DNS_NAME) { | 189 if (dns_names && entry.dwAltNameChoice == CERT_ALT_NAME_DNS_NAME) { |
190 dns_names->push_back(WideToASCII(entry.pwszDNSName)); | 190 dns_names->push_back(base::UTF16ToASCII(entry.pwszDNSName)); |
191 } else if (ip_addrs && | 191 } else if (ip_addrs && |
192 entry.dwAltNameChoice == CERT_ALT_NAME_IP_ADDRESS) { | 192 entry.dwAltNameChoice == CERT_ALT_NAME_IP_ADDRESS) { |
193 ip_addrs->push_back(std::string( | 193 ip_addrs->push_back(std::string( |
194 reinterpret_cast<const char*>(entry.IPAddress.pbData), | 194 reinterpret_cast<const char*>(entry.IPAddress.pbData), |
195 entry.IPAddress.cbData)); | 195 entry.IPAddress.cbData)); |
196 } | 196 } |
197 } | 197 } |
198 } | 198 } |
199 } | 199 } |
200 | 200 |
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
445 if (IsCertNameBlobInIssuerList(&(*it)->pCertInfo->Issuer, | 445 if (IsCertNameBlobInIssuerList(&(*it)->pCertInfo->Issuer, |
446 valid_issuers)) { | 446 valid_issuers)) { |
447 return true; | 447 return true; |
448 } | 448 } |
449 } | 449 } |
450 | 450 |
451 return false; | 451 return false; |
452 } | 452 } |
453 | 453 |
454 } // namespace net | 454 } // namespace net |
OLD | NEW |