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 "crypto/rsa_private_key.h" | 5 #include "crypto/rsa_private_key.h" |
6 | 6 |
7 #include <cryptohi.h> | 7 #include <cryptohi.h> |
8 #include <keyhi.h> | 8 #include <keyhi.h> |
9 #include <pk11pub.h> | 9 #include <pk11pub.h> |
10 #include <secmod.h> | 10 #include <secmod.h> |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
92 NOTREACHED(); | 92 NOTREACHED(); |
93 delete copy; | 93 delete copy; |
94 return NULL; | 94 return NULL; |
95 } | 95 } |
96 return copy; | 96 return copy; |
97 } | 97 } |
98 | 98 |
99 // static | 99 // static |
100 RSAPrivateKey* RSAPrivateKey::FindFromPublicKeyInfo( | 100 RSAPrivateKey* RSAPrivateKey::FindFromPublicKeyInfo( |
101 const std::vector<uint8>& input) { | 101 const std::vector<uint8>& input) { |
| 102 LOG(ERROR) << "HIIIIIIIIIIIIIIIIIIIIIIIIIII"; |
102 EnsureNSSInit(); | 103 EnsureNSSInit(); |
103 | 104 |
104 scoped_ptr<RSAPrivateKey> result(new RSAPrivateKey); | 105 scoped_ptr<RSAPrivateKey> result(new RSAPrivateKey); |
105 | 106 |
106 // First, decode and save the public key. | 107 // First, decode and save the public key. |
107 SECItem key_der; | 108 SECItem key_der; |
108 key_der.type = siBuffer; | 109 key_der.type = siBuffer; |
109 key_der.data = const_cast<unsigned char*>(&input[0]); | 110 key_der.data = const_cast<unsigned char*>(&input[0]); |
110 key_der.len = input.size(); | 111 key_der.len = input.size(); |
111 | 112 |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
189 if (!der_pubkey.get()) { | 190 if (!der_pubkey.get()) { |
190 NOTREACHED(); | 191 NOTREACHED(); |
191 return false; | 192 return false; |
192 } | 193 } |
193 | 194 |
194 output->assign(der_pubkey->data, der_pubkey->data + der_pubkey->len); | 195 output->assign(der_pubkey->data, der_pubkey->data + der_pubkey->len); |
195 return true; | 196 return true; |
196 } | 197 } |
197 | 198 |
198 RSAPrivateKey::RSAPrivateKey() : key_(NULL), public_key_(NULL) { | 199 RSAPrivateKey::RSAPrivateKey() : key_(NULL), public_key_(NULL) { |
| 200 LOG(ERROR) << "HIIIIIIIIIIIIIIIIIIIIIIIIIII"; |
199 EnsureNSSInit(); | 201 EnsureNSSInit(); |
200 } | 202 } |
201 | 203 |
202 // static | 204 // static |
203 RSAPrivateKey* RSAPrivateKey::CreateWithParams(uint16 num_bits, | 205 RSAPrivateKey* RSAPrivateKey::CreateWithParams(uint16 num_bits, |
204 bool permanent, | 206 bool permanent, |
205 bool sensitive) { | 207 bool sensitive) { |
206 #if !defined(USE_NSS) | 208 #if !defined(USE_NSS) |
207 if (permanent) { | 209 if (permanent) { |
208 NOTIMPLEMENTED(); | 210 NOTIMPLEMENTED(); |
209 return NULL; | 211 return NULL; |
210 } | 212 } |
211 #endif | 213 #endif |
212 | 214 |
| 215 LOG(ERROR) << "HIIIIIIIIIIIIIIIIIIIIIIIIIII"; |
213 EnsureNSSInit(); | 216 EnsureNSSInit(); |
214 | 217 |
215 scoped_ptr<RSAPrivateKey> result(new RSAPrivateKey); | 218 scoped_ptr<RSAPrivateKey> result(new RSAPrivateKey); |
216 | 219 |
217 ScopedPK11Slot slot(permanent ? GetPrivateNSSKeySlot() : | 220 ScopedPK11Slot slot(permanent ? GetPrivateNSSKeySlot() : |
218 PK11_GetInternalSlot()); | 221 PK11_GetInternalSlot()); |
219 if (!slot.get()) | 222 if (!slot.get()) |
220 return NULL; | 223 return NULL; |
221 | 224 |
222 PK11RSAGenParams param; | 225 PK11RSAGenParams param; |
(...skipping 18 matching lines...) Expand all Loading... |
241 #if !defined(USE_NSS) | 244 #if !defined(USE_NSS) |
242 if (permanent) { | 245 if (permanent) { |
243 NOTIMPLEMENTED(); | 246 NOTIMPLEMENTED(); |
244 return NULL; | 247 return NULL; |
245 } | 248 } |
246 #endif | 249 #endif |
247 | 250 |
248 // This method currently leaks some memory. | 251 // This method currently leaks some memory. |
249 // See http://crbug.com/34742. | 252 // See http://crbug.com/34742. |
250 ANNOTATE_SCOPED_MEMORY_LEAK; | 253 ANNOTATE_SCOPED_MEMORY_LEAK; |
| 254 LOG(ERROR) << "HIIIIIIIIIIIIIIIIIIIIIIIIIII"; |
251 EnsureNSSInit(); | 255 EnsureNSSInit(); |
252 | 256 |
253 scoped_ptr<RSAPrivateKey> result(new RSAPrivateKey); | 257 scoped_ptr<RSAPrivateKey> result(new RSAPrivateKey); |
254 | 258 |
255 ScopedPK11Slot slot(permanent ? GetPrivateNSSKeySlot() : | 259 ScopedPK11Slot slot(permanent ? GetPrivateNSSKeySlot() : |
256 PK11_GetInternalSlot()); | 260 PK11_GetInternalSlot()); |
257 if (!slot.get()) | 261 if (!slot.get()) |
258 return NULL; | 262 return NULL; |
259 | 263 |
260 SECItem der_private_key_info; | 264 SECItem der_private_key_info; |
(...skipping 14 matching lines...) Expand all Loading... |
275 result->public_key_ = SECKEY_ConvertToPublicKey(result->key_); | 279 result->public_key_ = SECKEY_ConvertToPublicKey(result->key_); |
276 if (!result->public_key_) { | 280 if (!result->public_key_) { |
277 NOTREACHED(); | 281 NOTREACHED(); |
278 return NULL; | 282 return NULL; |
279 } | 283 } |
280 | 284 |
281 return result.release(); | 285 return result.release(); |
282 } | 286 } |
283 | 287 |
284 } // namespace crypto | 288 } // namespace crypto |
OLD | NEW |