| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "chrome/browser/extensions/api/networking_private/networking_private_cr
ypto.h" | 5 #include "chrome/browser/extensions/api/networking_private/networking_private_cr
ypto.h" |
| 6 | 6 |
| 7 #include <cert.h> | 7 #include <cert.h> |
| 8 #include <cryptohi.h> | 8 #include <cryptohi.h> |
| 9 #include <keyhi.h> | 9 #include <keyhi.h> |
| 10 #include <keythi.h> | 10 #include <keythi.h> |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 83 LOG(ERROR) << "Failed to parse certificate."; | 83 LOG(ERROR) << "Failed to parse certificate."; |
| 84 return false; | 84 return false; |
| 85 } | 85 } |
| 86 SECItem der_cert; | 86 SECItem der_cert; |
| 87 der_cert.type = siDERCertBuffer; | 87 der_cert.type = siDERCertBuffer; |
| 88 der_cert.data = reinterpret_cast<unsigned char*>( | 88 der_cert.data = reinterpret_cast<unsigned char*>( |
| 89 const_cast<char*>(cert_data.c_str())); | 89 const_cast<char*>(cert_data.c_str())); |
| 90 der_cert.len = cert_data.length(); | 90 der_cert.len = cert_data.length(); |
| 91 | 91 |
| 92 // Parse into a certificate structure. | 92 // Parse into a certificate structure. |
| 93 typedef scoped_ptr_malloc< | 93 typedef scoped_ptr< |
| 94 CERTCertificate, | 94 CERTCertificate, |
| 95 crypto::NSSDestroyer<CERTCertificate, | 95 crypto::NSSDestroyer<CERTCertificate, CERT_DestroyCertificate> > |
| 96 CERT_DestroyCertificate> > | 96 ScopedCERTCertificate; |
| 97 ScopedCERTCertificate; | |
| 98 ScopedCERTCertificate cert(CERT_NewTempCertificate( | 97 ScopedCERTCertificate cert(CERT_NewTempCertificate( |
| 99 CERT_GetDefaultCertDB(), &der_cert, NULL, PR_FALSE, PR_TRUE)); | 98 CERT_GetDefaultCertDB(), &der_cert, NULL, PR_FALSE, PR_TRUE)); |
| 100 if (!cert.get()) { | 99 if (!cert.get()) { |
| 101 LOG(ERROR) << "Failed to parse certificate."; | 100 LOG(ERROR) << "Failed to parse certificate."; |
| 102 return false; | 101 return false; |
| 103 } | 102 } |
| 104 | 103 |
| 105 // Check that the certificate is signed by trusted CA. | 104 // Check that the certificate is signed by trusted CA. |
| 106 SECItem trusted_ca_key_der_item; | 105 SECItem trusted_ca_key_der_item; |
| 107 trusted_ca_key_der_item.type = siDERCertBuffer; | 106 trusted_ca_key_der_item.type = siDERCertBuffer; |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 232 encrypted_data.length()); | 231 encrypted_data.length()); |
| 233 if (decrypted != SECSuccess) { | 232 if (decrypted != SECSuccess) { |
| 234 LOG(ERROR) << "Error during decryption."; | 233 LOG(ERROR) << "Error during decryption."; |
| 235 return false; | 234 return false; |
| 236 } | 235 } |
| 237 decrypted_output->assign(reinterpret_cast<char*>(rsa_output.get()), | 236 decrypted_output->assign(reinterpret_cast<char*>(rsa_output.get()), |
| 238 output_length); | 237 output_length); |
| 239 return true; | 238 return true; |
| 240 } | 239 } |
| 241 | 240 |
| OLD | NEW |