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

Unified Diff: crypto/encryptor_unittest.cc

Issue 7056026: Implement AES-CTR for NSS. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: done Created 9 years, 7 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 side-by-side diff with in-line comments
Download patch
« crypto/encryptor_nss.cc ('K') | « crypto/encryptor_nss.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: crypto/encryptor_unittest.cc
diff --git a/crypto/encryptor_unittest.cc b/crypto/encryptor_unittest.cc
index b916854a9d81e9b71cc51457bc4512dcdf1ae602..44105bf93004bda9a0c1f8da433ca318845d574c 100644
--- a/crypto/encryptor_unittest.cc
+++ b/crypto/encryptor_unittest.cc
@@ -35,6 +35,50 @@ TEST(EncryptorTest, EncryptDecrypt) {
EXPECT_EQ(plaintext, decypted);
}
+// ECB mode encryption is only implemented using NSS.
+#if defined(OS_LINUX) && defined(USE_NSS)
Ryan Sleevi 2011/06/02 01:19:23 nit: Just "defined(USE_NSS)" is sufficient.
+
+TEST(EncryptorTest, EncryptDecryptECB) {
+ scoped_ptr<crypto::SymmetricKey> key(
+ crypto::SymmetricKey::DeriveKeyFromPassword(
Ryan Sleevi 2011/06/02 01:19:23 It would be better for the valgrind/heapchecker bo
+ crypto::SymmetricKey::AES, "password", "saltiest", 1000, 128));
+ EXPECT_TRUE(NULL != key.get());
Ryan Sleevi 2011/06/02 01:19:23 nit?: EXPECT_NE? My own opinion is that it's fine
+
+ crypto::Encryptor encryptor;
+ EXPECT_TRUE(encryptor.Init(key.get(), crypto::Encryptor::ECB, ""));
+
+ std::string plaintext("normal plaintext");
Ryan Sleevi 2011/06/02 01:19:23 It's not clear from this string, compared with lin
+ std::string ciphertext;
+ EXPECT_TRUE(encryptor.Encrypt(plaintext, &ciphertext));
Ryan Sleevi 2011/06/02 01:19:23 nit: Since this is ECB mode, I think you may want
+
+ EXPECT_LT(0U, ciphertext.size());
+
+ std::string decypted;
+ EXPECT_TRUE(encryptor.Decrypt(ciphertext, &decypted));
Ryan Sleevi 2011/06/02 01:19:23 nit: Is the "normal" use case to use two Encryptor
+
+ EXPECT_EQ(plaintext, decypted);
+}
+
+TEST(EncryptorTest, ECBNoPadding) {
+ scoped_ptr<crypto::SymmetricKey> key(
+ crypto::SymmetricKey::DeriveKeyFromPassword(
+ crypto::SymmetricKey::AES, "password", "saltiest", 1000, 128));
+ EXPECT_TRUE(NULL != key.get());
+
+ crypto::Encryptor encryptor;
+ EXPECT_TRUE(encryptor.Init(key.get(), crypto::Encryptor::ECB, ""));
+
+ std::string plaintext("invalid plaintext");
+ std::string ciphertext;
+ EXPECT_FALSE(encryptor.Encrypt(plaintext, &ciphertext));
+
+ ciphertext = "invalid cipher text";
+ std::string decypted;
+ EXPECT_FALSE(encryptor.Decrypt(ciphertext, &decypted));
+}
+
+#endif
+
// TODO(wtc): add more known-answer tests. Test vectors are available from
// http://www.ietf.org/rfc/rfc3602
// http://csrc.nist.gov/publications/nistpubs/800-38a/sp800-38a.pdf
« crypto/encryptor_nss.cc ('K') | « crypto/encryptor_nss.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698