Skip to content

Commit

Permalink
Use the NSS internal key slot for all temporary key operations
Browse files Browse the repository at this point in the history
Rather than calling PK11_GetBestSlot, which requires enumerating all
connected tokens, use PK11_GetInternalSlot, which explicitly uses the
internal NSS key database. On Linux, this will ignore any user preferences
regarding what tokens should be used for which mechanisms, but for
internal/temporary operations, this is an acceptable tradeoff.

BUG=chrome-os-partner:14707


Review URL: https://chromiumcodereview.appspot.com/11186004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@162309 0039d316-1c4b-4281-b951-d872f2087c98
  • Loading branch information
rsleevi@chromium.org committed Oct 17, 2012
1 parent 54db05e commit 4ad67c6
Show file tree
Hide file tree
Showing 5 changed files with 5 additions and 10 deletions.
1 change: 0 additions & 1 deletion crypto/encryptor.h
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,6 @@ class CRYPTO_EXPORT Encryptor {
bool CryptCTR(PK11Context* context,
const base::StringPiece& input,
std::string* output);
ScopedPK11Slot slot_;
ScopedSECItem param_;
#endif
};
Expand Down
4 changes: 0 additions & 4 deletions crypto/encryptor_nss.cc
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,6 @@ bool Encryptor::Init(SymmetricKey* key,
if (mode == CBC && iv.size() != AES_BLOCK_SIZE)
return false;

slot_.reset(PK11_GetBestSlot(GetMechanism(mode), NULL));
if (!slot_.get())
return false;

switch (mode) {
case CBC:
SECItem iv_item;
Expand Down
2 changes: 1 addition & 1 deletion crypto/openpgp_symmetric_encryption.cc
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ void SaltedIteratedS2K(unsigned cipher_key_length,
// in ECB mode and with no IV.
bool CreateAESContext(const uint8* key, unsigned key_len,
ScopedPK11Context* out_decryption_context) {
ScopedPK11Slot slot(PK11_GetBestSlot(CKM_AES_ECB, NULL));
ScopedPK11Slot slot(PK11_GetInternalSlot());
if (!slot.get())
return false;
SECItem key_item;
Expand Down
6 changes: 3 additions & 3 deletions crypto/symmetric_key_nss.cc
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ SymmetricKey* SymmetricKey::GenerateRandomKey(Algorithm algorithm,
if (key_size_in_bits == 0)
return NULL;

ScopedPK11Slot slot(PK11_GetBestSlot(CKM_AES_KEY_GEN, NULL));
ScopedPK11Slot slot(PK11_GetInternalSlot());
if (!slot.get())
return NULL;

Expand Down Expand Up @@ -68,7 +68,7 @@ SymmetricKey* SymmetricKey::DeriveKeyFromPassword(Algorithm algorithm,
if (!alg_id.get())
return NULL;

ScopedPK11Slot slot(PK11_GetBestSlot(SEC_OID_PKCS5_PBKDF2, NULL));
ScopedPK11Slot slot(PK11_GetInternalSlot());
if (!slot.get())
return NULL;

Expand All @@ -93,7 +93,7 @@ SymmetricKey* SymmetricKey::Import(Algorithm algorithm,
const_cast<char *>(raw_key.data()));
key_item.len = raw_key.size();

ScopedPK11Slot slot(PK11_GetBestSlot(cipher, NULL));
ScopedPK11Slot slot(PK11_GetInternalSlot());
if (!slot.get())
return NULL;

Expand Down
2 changes: 1 addition & 1 deletion net/http/des.cc
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ void DESEncrypt(const uint8* key, const uint8* src, uint8* hash) {

crypto::EnsureNSSInit();

slot = PK11_GetBestSlot(cipher_mech, NULL);
slot = PK11_GetInternalSlot();
if (!slot)
goto done;

Expand Down

0 comments on commit 4ad67c6

Please sign in to comment.