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 <stdlib.h> | 7 #include <stdlib.h> |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 #include <map> | 10 #include <map> |
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
219 | 219 |
220 // static | 220 // static |
221 X509Certificate* X509Certificate::CreateFromDERCertChain( | 221 X509Certificate* X509Certificate::CreateFromDERCertChain( |
222 const std::vector<base::StringPiece>& der_certs) { | 222 const std::vector<base::StringPiece>& der_certs) { |
223 if (der_certs.empty()) | 223 if (der_certs.empty()) |
224 return NULL; | 224 return NULL; |
225 | 225 |
226 X509Certificate::OSCertHandles intermediate_ca_certs; | 226 X509Certificate::OSCertHandles intermediate_ca_certs; |
227 for (size_t i = 1; i < der_certs.size(); i++) { | 227 for (size_t i = 1; i < der_certs.size(); i++) { |
228 OSCertHandle handle = CreateOSCert(der_certs[i]); | 228 OSCertHandle handle = CreateOSCert(der_certs[i]); |
229 DCHECK(handle); | 229 DCHECK(handle); |
wtc
2011/07/19 21:57:01
You can also replace this DCHECK with proper error
Sergey Ulanov
2011/07/19 23:50:21
Done.
| |
230 intermediate_ca_certs.push_back(handle); | 230 intermediate_ca_certs.push_back(handle); |
231 } | 231 } |
232 | 232 |
233 OSCertHandle handle = CreateOSCert(der_certs[0]); | 233 OSCertHandle handle = CreateOSCert(der_certs[0]); |
234 DCHECK(handle); | 234 if (!handle) |
235 return NULL; | |
236 | |
235 X509Certificate* cert = | 237 X509Certificate* cert = |
236 CreateFromHandle(handle, SOURCE_FROM_NETWORK, intermediate_ca_certs); | 238 CreateFromHandle(handle, SOURCE_FROM_NETWORK, intermediate_ca_certs); |
237 FreeOSCertHandle(handle); | 239 FreeOSCertHandle(handle); |
238 for (size_t i = 0; i < intermediate_ca_certs.size(); i++) | 240 for (size_t i = 0; i < intermediate_ca_certs.size(); i++) |
239 FreeOSCertHandle(intermediate_ca_certs[i]); | 241 FreeOSCertHandle(intermediate_ca_certs[i]); |
240 | 242 |
241 return cert; | 243 return cert; |
242 } | 244 } |
243 | 245 |
244 // static | 246 // static |
(...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
632 bool X509Certificate::IsSHA1HashInSortedArray(const SHA1Fingerprint& hash, | 634 bool X509Certificate::IsSHA1HashInSortedArray(const SHA1Fingerprint& hash, |
633 const uint8* array, | 635 const uint8* array, |
634 size_t array_byte_len) { | 636 size_t array_byte_len) { |
635 DCHECK_EQ(0u, array_byte_len % base::SHA1_LENGTH); | 637 DCHECK_EQ(0u, array_byte_len % base::SHA1_LENGTH); |
636 const unsigned arraylen = array_byte_len / base::SHA1_LENGTH; | 638 const unsigned arraylen = array_byte_len / base::SHA1_LENGTH; |
637 return NULL != bsearch(hash.data, array, arraylen, base::SHA1_LENGTH, | 639 return NULL != bsearch(hash.data, array, arraylen, base::SHA1_LENGTH, |
638 CompareSHA1Hashes); | 640 CompareSHA1Hashes); |
639 } | 641 } |
640 | 642 |
641 } // namespace net | 643 } // namespace net |
OLD | NEW |