Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(128)

Side by Side Diff: net/base/x509_certificate.cc

Issue 7401003: Don't use X509Certificate in SSLConfig. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: merged Created 9 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698