Chromium Code Reviews| 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 |