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 "base/logging.h" | 7 #include "base/logging.h" |
8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
9 #include "base/pickle.h" | 9 #include "base/pickle.h" |
10 #include "base/sha1.h" | 10 #include "base/sha1.h" |
(...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
365 } | 365 } |
366 unsigned int result_len; | 366 unsigned int result_len; |
367 SHA1_End(sha1_ctx, sha1.data, &result_len, SHA1_LENGTH); | 367 SHA1_End(sha1_ctx, sha1.data, &result_len, SHA1_LENGTH); |
368 SHA1_DestroyContext(sha1_ctx, PR_TRUE); | 368 SHA1_DestroyContext(sha1_ctx, PR_TRUE); |
369 #endif // USE_OPENSSL | 369 #endif // USE_OPENSSL |
370 | 370 |
371 return sha1; | 371 return sha1; |
372 } | 372 } |
373 | 373 |
374 // static | 374 // static |
375 X509Certificate::OSCertHandle | 375 X509Certificate::OSCertHandle X509Certificate::ReadOSCertHandleFromPickle( |
376 X509Certificate::ReadOSCertHandleFromPickle(PickleIterator* pickle_iter) { | 376 base::PickleIterator* pickle_iter) { |
377 const char* data; | 377 const char* data; |
378 int length; | 378 int length; |
379 if (!pickle_iter->ReadData(&data, &length)) | 379 if (!pickle_iter->ReadData(&data, &length)) |
380 return NULL; | 380 return NULL; |
381 | 381 |
382 // Legacy serialized certificates were serialized with extended attributes, | 382 // Legacy serialized certificates were serialized with extended attributes, |
383 // rather than as DER only. As a result, these serialized certificates are | 383 // rather than as DER only. As a result, these serialized certificates are |
384 // not portable across platforms and may have side-effects on Windows due | 384 // not portable across platforms and may have side-effects on Windows due |
385 // to extended attributes being serialized/deserialized - | 385 // to extended attributes being serialized/deserialized - |
386 // http://crbug.com/118706. To avoid deserializing these attributes, write | 386 // http://crbug.com/118706. To avoid deserializing these attributes, write |
(...skipping 17 matching lines...) Expand all Loading... |
404 FreeOSCertHandle(cert_handle); | 404 FreeOSCertHandle(cert_handle); |
405 cert_handle = NULL; | 405 cert_handle = NULL; |
406 | 406 |
407 if (ok) | 407 if (ok) |
408 cert_handle = CreateOSCertHandleFromBytes(encoded.data(), encoded.size()); | 408 cert_handle = CreateOSCertHandleFromBytes(encoded.data(), encoded.size()); |
409 return cert_handle; | 409 return cert_handle; |
410 } | 410 } |
411 | 411 |
412 // static | 412 // static |
413 bool X509Certificate::WriteOSCertHandleToPickle(OSCertHandle cert_handle, | 413 bool X509Certificate::WriteOSCertHandleToPickle(OSCertHandle cert_handle, |
414 Pickle* pickle) { | 414 base::Pickle* pickle) { |
415 return pickle->WriteData( | 415 return pickle->WriteData( |
416 reinterpret_cast<char*>(cert_handle->pbCertEncoded), | 416 reinterpret_cast<char*>(cert_handle->pbCertEncoded), |
417 cert_handle->cbCertEncoded); | 417 cert_handle->cbCertEncoded); |
418 } | 418 } |
419 | 419 |
420 // static | 420 // static |
421 void X509Certificate::GetPublicKeyInfo(OSCertHandle cert_handle, | 421 void X509Certificate::GetPublicKeyInfo(OSCertHandle cert_handle, |
422 size_t* size_bits, | 422 size_t* size_bits, |
423 PublicKeyType* type) { | 423 PublicKeyType* type) { |
424 *type = kPublicKeyTypeUnknown; | 424 *type = kPublicKeyTypeUnknown; |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
492 X509_ASN_ENCODING, | 492 X509_ASN_ENCODING, |
493 CRYPT_VERIFY_CERT_SIGN_SUBJECT_CERT, | 493 CRYPT_VERIFY_CERT_SIGN_SUBJECT_CERT, |
494 reinterpret_cast<void*>(const_cast<PCERT_CONTEXT>(cert_handle)), | 494 reinterpret_cast<void*>(const_cast<PCERT_CONTEXT>(cert_handle)), |
495 CRYPT_VERIFY_CERT_SIGN_ISSUER_CERT, | 495 CRYPT_VERIFY_CERT_SIGN_ISSUER_CERT, |
496 reinterpret_cast<void*>(const_cast<PCERT_CONTEXT>(cert_handle)), | 496 reinterpret_cast<void*>(const_cast<PCERT_CONTEXT>(cert_handle)), |
497 0, | 497 0, |
498 NULL); | 498 NULL); |
499 } | 499 } |
500 | 500 |
501 } // namespace net | 501 } // namespace net |
OLD | NEW |