summaryrefslogtreecommitdiffstats
path: root/crypto/rsa_private_key_unittest.cc
diff options
context:
space:
mode:
authordougsteed <dougsteed@chromium.org>2014-09-10 16:21:48 -0700
committerCommit bot <commit-bot@chromium.org>2014-09-10 23:25:47 +0000
commitdb7726aee7993008dff742790337f950fb371ebf (patch)
tree0ab743ac87b4724b2b1a88df5a4c0edf53673c6b /crypto/rsa_private_key_unittest.cc
parent7e8e1bc34c946f7f361bfd16c2628170b55dd45a (diff)
downloadchromium_src-db7726aee7993008dff742790337f950fb371ebf.zip
chromium_src-db7726aee7993008dff742790337f950fb371ebf.tar.gz
chromium_src-db7726aee7993008dff742790337f950fb371ebf.tar.bz2
Allow a crypto::RSAPrivateKey object to be wrapped round a pre-existing
openssl key, as is currently supported for NSS. Change-Id: I36c848884273fe8e23451259655680b6b7d46a98 BUG=412427 R=davidben@chromium.org Review URL: https://codereview.chromium.org/559623002 Cr-Commit-Position: refs/heads/master@{#294254}
Diffstat (limited to 'crypto/rsa_private_key_unittest.cc')
-rw-r--r--crypto/rsa_private_key_unittest.cc27
1 files changed, 27 insertions, 0 deletions
diff --git a/crypto/rsa_private_key_unittest.cc b/crypto/rsa_private_key_unittest.cc
index de88908..d53d502 100644
--- a/crypto/rsa_private_key_unittest.cc
+++ b/crypto/rsa_private_key_unittest.cc
@@ -403,3 +403,30 @@ TEST(RSAPrivateKeyUnitTest, ShortIntegers) {
ASSERT_TRUE(0 == memcmp(&output2.front(), &input2.front(),
input2.size()));
}
+
+// The following test can run if either USE_NSS or USE_OPENSSL is defined, but
+// not otherwise (since it uses crypto::RSAPrivateKey::CreateFromKey).
+#if defined(USE_NSS) || defined(USE_OPENSSL)
+TEST(RSAPrivateKeyUnitTest, CreateFromKeyTest) {
+ scoped_ptr<crypto::RSAPrivateKey> key_pair(
+ crypto::RSAPrivateKey::Create(256));
+
+ scoped_ptr<crypto::RSAPrivateKey> key_copy(
+ crypto::RSAPrivateKey::CreateFromKey(key_pair->key()));
+ ASSERT_TRUE(key_copy.get());
+
+ std::vector<uint8> privkey;
+ std::vector<uint8> pubkey;
+ ASSERT_TRUE(key_pair->ExportPrivateKey(&privkey));
+ ASSERT_TRUE(key_pair->ExportPublicKey(&pubkey));
+
+ std::vector<uint8> privkey_copy;
+ std::vector<uint8> pubkey_copy;
+ ASSERT_TRUE(key_copy->ExportPrivateKey(&privkey_copy));
+ ASSERT_TRUE(key_copy->ExportPublicKey(&pubkey_copy));
+
+ ASSERT_EQ(privkey, privkey_copy);
+ ASSERT_EQ(pubkey, pubkey_copy);
+}
+#endif
+