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

Side by Side Diff: base/crypto/symmetric_key_nss.cc

Issue 6683060: Private API for extensions like ssh-client that need access to TCP. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix Created 9 years, 9 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) 2010 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 "base/crypto/symmetric_key.h" 5 #include "base/crypto/symmetric_key.h"
6 6
7 #include <nss.h> 7 #include <nss.h>
8 #include <pk11pub.h> 8 #include <pk11pub.h>
9 9
10 #include "base/nss_util.h" 10 #include "base/nss_util.h"
11 #include "base/logging.h" 11 #include "base/logging.h"
12 12
13 namespace base { 13 namespace base {
14 14
15 SymmetricKey::~SymmetricKey() {} 15 SymmetricKey::~SymmetricKey() {}
16 16
17 // static 17 // static
18 bool SymmetricKey::GenerateRandomBytes(size_t num_bytes, uint8* out) {
19 LOG(ERROR) << "GenerateRandomBytes nss" << num_bytes;
20 return num_bytes == 0 ||
21 (out != NULL && PK11_GenerateRandom(out, num_bytes) == SECSuccess);
22 }
23
24 // static
18 SymmetricKey* SymmetricKey::GenerateRandomKey(Algorithm algorithm, 25 SymmetricKey* SymmetricKey::GenerateRandomKey(Algorithm algorithm,
19 size_t key_size_in_bits) { 26 size_t key_size_in_bits) {
20 DCHECK_EQ(AES, algorithm); 27 DCHECK_EQ(AES, algorithm);
21 28
22 EnsureNSSInit(); 29 EnsureNSSInit();
23 if (key_size_in_bits == 0) 30 if (key_size_in_bits == 0)
24 return NULL; 31 return NULL;
25 32
26 ScopedPK11Slot slot(PK11_GetBestSlot(CKM_AES_KEY_GEN, NULL)); 33 ScopedPK11Slot slot(PK11_GetBestSlot(CKM_AES_KEY_GEN, NULL));
27 if (!slot.get()) 34 if (!slot.get())
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 125
119 raw_key->assign(reinterpret_cast<char*>(key_item->data), key_item->len); 126 raw_key->assign(reinterpret_cast<char*>(key_item->data), key_item->len);
120 return true; 127 return true;
121 } 128 }
122 129
123 SymmetricKey::SymmetricKey(PK11SymKey* key) : key_(key) { 130 SymmetricKey::SymmetricKey(PK11SymKey* key) : key_(key) {
124 DCHECK(key); 131 DCHECK(key);
125 } 132 }
126 133
127 } // namespace base 134 } // namespace base
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698