| Index: chrome/browser/sync/util/cryptographer_unittest.cc
|
| diff --git a/chrome/browser/sync/util/cryptographer_unittest.cc b/chrome/browser/sync/util/cryptographer_unittest.cc
|
| index e9110d0c2faf01030c513ffc48c21a30069f46b9..2f66fb96055d7e25e013d936d8d654e26f619304 100644
|
| --- a/chrome/browser/sync/util/cryptographer_unittest.cc
|
| +++ b/chrome/browser/sync/util/cryptographer_unittest.cc
|
| @@ -87,6 +87,39 @@ TEST(CryptographerTest, CanEncryptAndDecrypt) {
|
| EXPECT_EQ(original.SerializeAsString(), decrypted.SerializeAsString());
|
| }
|
|
|
| +TEST(CryptographerTest, EncryptOnlyIfDifferent) {
|
| + Cryptographer cryptographer;
|
| +
|
| + KeyParams params = {"localhost", "dummy", "dummy"};
|
| + EXPECT_TRUE(cryptographer.AddKey(params));
|
| + EXPECT_TRUE(cryptographer.is_ready());
|
| +
|
| + sync_pb::PasswordSpecificsData original;
|
| + original.set_origin("http://example.com");
|
| + original.set_username_value("azure");
|
| + original.set_password_value("hunter2");
|
| +
|
| + sync_pb::EncryptedData encrypted;
|
| + EXPECT_TRUE(cryptographer.Encrypt(original, &encrypted));
|
| +
|
| + sync_pb::EncryptedData encrypted2, encrypted3;
|
| + encrypted2.CopyFrom(encrypted);
|
| + encrypted3.CopyFrom(encrypted);
|
| + EXPECT_TRUE(cryptographer.Encrypt(original, &encrypted2));
|
| +
|
| + // Now encrypt with a new default key. Should overwrite the old data.
|
| + KeyParams params_new = {"localhost", "dummy", "dummy2"};
|
| + cryptographer.AddKey(params_new);
|
| + EXPECT_TRUE(cryptographer.Encrypt(original, &encrypted3));
|
| +
|
| + sync_pb::PasswordSpecificsData decrypted;
|
| + EXPECT_TRUE(cryptographer.Decrypt(encrypted2, &decrypted));
|
| + // encrypted2 should match encrypted, encrypted3 should not (due to salting).
|
| + EXPECT_EQ(encrypted.SerializeAsString(), encrypted2.SerializeAsString());
|
| + EXPECT_NE(encrypted.SerializeAsString(), encrypted3.SerializeAsString());
|
| + EXPECT_EQ(original.SerializeAsString(), decrypted.SerializeAsString());
|
| +}
|
| +
|
| TEST(CryptographerTest, AddKeySetsDefault) {
|
| Cryptographer cryptographer;
|
|
|
|
|