| Index: crypto/rsa_private_key_nss_unittest.cc
|
| ===================================================================
|
| --- crypto/rsa_private_key_nss_unittest.cc (revision 0)
|
| +++ crypto/rsa_private_key_nss_unittest.cc (revision 0)
|
| @@ -0,0 +1,64 @@
|
| +// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "crypto/rsa_private_key.h"
|
| +
|
| +#include <keyhi.h>
|
| +#include <pk11pub.h>
|
| +
|
| +#include "base/memory/scoped_ptr.h"
|
| +#include "base/nss_util.h"
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +
|
| +namespace crypto {
|
| +
|
| +class RSAPrivateKeyNSSTest : public testing::Test {
|
| + public:
|
| + RSAPrivateKeyNSSTest() {}
|
| + virtual ~RSAPrivateKeyNSSTest() {}
|
| +
|
| + virtual void SetUp() {
|
| +#if defined(OS_CHROMEOS)
|
| + OpenPersistentNSSDB();
|
| +#endif
|
| + }
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(RSAPrivateKeyNSSTest);
|
| +};
|
| +
|
| +TEST_F(RSAPrivateKeyNSSTest, FindFromPublicKey) {
|
| + // Create a keypair, which will put the keys in the user's NSSDB.
|
| + scoped_ptr<crypto::RSAPrivateKey> key_pair(RSAPrivateKey::Create(256));
|
| +
|
| + std::vector<uint8> public_key;
|
| + ASSERT_TRUE(key_pair->ExportPublicKey(&public_key));
|
| +
|
| + scoped_ptr<crypto::RSAPrivateKey> key_pair_2(
|
| + crypto::RSAPrivateKey::FindFromPublicKeyInfo(public_key));
|
| +
|
| + EXPECT_EQ(key_pair->key_->pkcs11ID, key_pair_2->key_->pkcs11ID);
|
| +}
|
| +
|
| +TEST_F(RSAPrivateKeyNSSTest, FailedFindFromPublicKey) {
|
| + // Create a keypair, which will put the keys in the user's NSSDB.
|
| + scoped_ptr<crypto::RSAPrivateKey> key_pair(RSAPrivateKey::Create(256));
|
| +
|
| + std::vector<uint8> public_key;
|
| + ASSERT_TRUE(key_pair->ExportPublicKey(&public_key));
|
| +
|
| + // Remove the keys from the DB, and make sure we can't find them again.
|
| + if (key_pair->key_) {
|
| + PK11_DestroyTokenObject(key_pair->key_->pkcs11Slot,
|
| + key_pair->key_->pkcs11ID);
|
| + }
|
| + if (key_pair->public_key_) {
|
| + PK11_DestroyTokenObject(key_pair->public_key_->pkcs11Slot,
|
| + key_pair->public_key_->pkcs11ID);
|
| + }
|
| +
|
| + EXPECT_EQ(NULL, crypto::RSAPrivateKey::FindFromPublicKeyInfo(public_key));
|
| +}
|
| +
|
| +} // namespace crypto
|
|
|
| Property changes on: crypto\rsa_private_key_nss_unittest.cc
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|