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

Side by Side Diff: sync/util/cryptographer_unittest.cc

Issue 10855037: [Sync] Add history delete directive type (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix tests Created 8 years, 2 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « sync/syncable/model_type.cc ('k') | sync/util/data_type_histogram.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "sync/util/cryptographer.h" 5 #include "sync/util/cryptographer.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/string_util.h" 10 #include "base/string_util.h"
11 #include "sync/protocol/password_specifics.pb.h" 11 #include "sync/protocol/password_specifics.pb.h"
12 #include "sync/test/fake_encryptor.h" 12 #include "sync/test/fake_encryptor.h"
13 #include "testing/gmock/include/gmock/gmock.h" 13 #include "testing/gmock/include/gmock/gmock.h"
14 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
15 15
16 namespace syncer { 16 namespace syncer {
17 17
18 namespace { 18 namespace {
19 19
20 using ::testing::_; 20 using ::testing::_;
21 21
22 } // namespace 22 } // namespace
23 23
24 class SyncCryptographerTest : public ::testing::Test { 24 class CryptographerTest : public ::testing::Test {
25 protected: 25 protected:
26 SyncCryptographerTest() : cryptographer_(&encryptor_) {} 26 CryptographerTest() : cryptographer_(&encryptor_) {}
27 27
28 FakeEncryptor encryptor_; 28 FakeEncryptor encryptor_;
29 Cryptographer cryptographer_; 29 Cryptographer cryptographer_;
30 }; 30 };
31 31
32 TEST_F(SyncCryptographerTest, EmptyCantDecrypt) { 32 TEST_F(CryptographerTest, EmptyCantDecrypt) {
33 EXPECT_FALSE(cryptographer_.is_ready()); 33 EXPECT_FALSE(cryptographer_.is_ready());
34 34
35 sync_pb::EncryptedData encrypted; 35 sync_pb::EncryptedData encrypted;
36 encrypted.set_key_name("foo"); 36 encrypted.set_key_name("foo");
37 encrypted.set_blob("bar"); 37 encrypted.set_blob("bar");
38 38
39 EXPECT_FALSE(cryptographer_.CanDecrypt(encrypted)); 39 EXPECT_FALSE(cryptographer_.CanDecrypt(encrypted));
40 } 40 }
41 41
42 TEST_F(SyncCryptographerTest, EmptyCantEncrypt) { 42 TEST_F(CryptographerTest, EmptyCantEncrypt) {
43 EXPECT_FALSE(cryptographer_.is_ready()); 43 EXPECT_FALSE(cryptographer_.is_ready());
44 44
45 sync_pb::EncryptedData encrypted; 45 sync_pb::EncryptedData encrypted;
46 sync_pb::PasswordSpecificsData original; 46 sync_pb::PasswordSpecificsData original;
47 EXPECT_FALSE(cryptographer_.Encrypt(original, &encrypted)); 47 EXPECT_FALSE(cryptographer_.Encrypt(original, &encrypted));
48 } 48 }
49 49
50 TEST_F(SyncCryptographerTest, MissingCantDecrypt) { 50 TEST_F(CryptographerTest, MissingCantDecrypt) {
51 KeyParams params = {"localhost", "dummy", "dummy"}; 51 KeyParams params = {"localhost", "dummy", "dummy"};
52 cryptographer_.AddKey(params); 52 cryptographer_.AddKey(params);
53 EXPECT_TRUE(cryptographer_.is_ready()); 53 EXPECT_TRUE(cryptographer_.is_ready());
54 54
55 sync_pb::EncryptedData encrypted; 55 sync_pb::EncryptedData encrypted;
56 encrypted.set_key_name("foo"); 56 encrypted.set_key_name("foo");
57 encrypted.set_blob("bar"); 57 encrypted.set_blob("bar");
58 58
59 EXPECT_FALSE(cryptographer_.CanDecrypt(encrypted)); 59 EXPECT_FALSE(cryptographer_.CanDecrypt(encrypted));
60 } 60 }
61 61
62 TEST_F(SyncCryptographerTest, CanEncryptAndDecrypt) { 62 TEST_F(CryptographerTest, CanEncryptAndDecrypt) {
63 KeyParams params = {"localhost", "dummy", "dummy"}; 63 KeyParams params = {"localhost", "dummy", "dummy"};
64 EXPECT_TRUE(cryptographer_.AddKey(params)); 64 EXPECT_TRUE(cryptographer_.AddKey(params));
65 EXPECT_TRUE(cryptographer_.is_ready()); 65 EXPECT_TRUE(cryptographer_.is_ready());
66 66
67 sync_pb::PasswordSpecificsData original; 67 sync_pb::PasswordSpecificsData original;
68 original.set_origin("http://example.com"); 68 original.set_origin("http://example.com");
69 original.set_username_value("azure"); 69 original.set_username_value("azure");
70 original.set_password_value("hunter2"); 70 original.set_password_value("hunter2");
71 71
72 sync_pb::EncryptedData encrypted; 72 sync_pb::EncryptedData encrypted;
73 EXPECT_TRUE(cryptographer_.Encrypt(original, &encrypted)); 73 EXPECT_TRUE(cryptographer_.Encrypt(original, &encrypted));
74 74
75 sync_pb::PasswordSpecificsData decrypted; 75 sync_pb::PasswordSpecificsData decrypted;
76 EXPECT_TRUE(cryptographer_.Decrypt(encrypted, &decrypted)); 76 EXPECT_TRUE(cryptographer_.Decrypt(encrypted, &decrypted));
77 77
78 EXPECT_EQ(original.SerializeAsString(), decrypted.SerializeAsString()); 78 EXPECT_EQ(original.SerializeAsString(), decrypted.SerializeAsString());
79 } 79 }
80 80
81 TEST_F(SyncCryptographerTest, EncryptOnlyIfDifferent) { 81 TEST_F(CryptographerTest, EncryptOnlyIfDifferent) {
82 KeyParams params = {"localhost", "dummy", "dummy"}; 82 KeyParams params = {"localhost", "dummy", "dummy"};
83 EXPECT_TRUE(cryptographer_.AddKey(params)); 83 EXPECT_TRUE(cryptographer_.AddKey(params));
84 EXPECT_TRUE(cryptographer_.is_ready()); 84 EXPECT_TRUE(cryptographer_.is_ready());
85 85
86 sync_pb::PasswordSpecificsData original; 86 sync_pb::PasswordSpecificsData original;
87 original.set_origin("http://example.com"); 87 original.set_origin("http://example.com");
88 original.set_username_value("azure"); 88 original.set_username_value("azure");
89 original.set_password_value("hunter2"); 89 original.set_password_value("hunter2");
90 90
91 sync_pb::EncryptedData encrypted; 91 sync_pb::EncryptedData encrypted;
(...skipping 10 matching lines...) Expand all
102 EXPECT_TRUE(cryptographer_.Encrypt(original, &encrypted3)); 102 EXPECT_TRUE(cryptographer_.Encrypt(original, &encrypted3));
103 103
104 sync_pb::PasswordSpecificsData decrypted; 104 sync_pb::PasswordSpecificsData decrypted;
105 EXPECT_TRUE(cryptographer_.Decrypt(encrypted2, &decrypted)); 105 EXPECT_TRUE(cryptographer_.Decrypt(encrypted2, &decrypted));
106 // encrypted2 should match encrypted, encrypted3 should not (due to salting). 106 // encrypted2 should match encrypted, encrypted3 should not (due to salting).
107 EXPECT_EQ(encrypted.SerializeAsString(), encrypted2.SerializeAsString()); 107 EXPECT_EQ(encrypted.SerializeAsString(), encrypted2.SerializeAsString());
108 EXPECT_NE(encrypted.SerializeAsString(), encrypted3.SerializeAsString()); 108 EXPECT_NE(encrypted.SerializeAsString(), encrypted3.SerializeAsString());
109 EXPECT_EQ(original.SerializeAsString(), decrypted.SerializeAsString()); 109 EXPECT_EQ(original.SerializeAsString(), decrypted.SerializeAsString());
110 } 110 }
111 111
112 TEST_F(SyncCryptographerTest, AddKeySetsDefault) { 112 TEST_F(CryptographerTest, AddKeySetsDefault) {
113 KeyParams params1 = {"localhost", "dummy", "dummy1"}; 113 KeyParams params1 = {"localhost", "dummy", "dummy1"};
114 EXPECT_TRUE(cryptographer_.AddKey(params1)); 114 EXPECT_TRUE(cryptographer_.AddKey(params1));
115 EXPECT_TRUE(cryptographer_.is_ready()); 115 EXPECT_TRUE(cryptographer_.is_ready());
116 116
117 sync_pb::PasswordSpecificsData original; 117 sync_pb::PasswordSpecificsData original;
118 original.set_origin("http://example.com"); 118 original.set_origin("http://example.com");
119 original.set_username_value("azure"); 119 original.set_username_value("azure");
120 original.set_password_value("hunter2"); 120 original.set_password_value("hunter2");
121 121
122 sync_pb::EncryptedData encrypted1; 122 sync_pb::EncryptedData encrypted1;
(...skipping 14 matching lines...) Expand all
137 EXPECT_NE(encrypted1.key_name(), encrypted3.key_name()); 137 EXPECT_NE(encrypted1.key_name(), encrypted3.key_name());
138 EXPECT_EQ(encrypted3.key_name(), encrypted4.key_name()); 138 EXPECT_EQ(encrypted3.key_name(), encrypted4.key_name());
139 } 139 }
140 140
141 // Crashes, Bug 55178. 141 // Crashes, Bug 55178.
142 #if defined(OS_WIN) 142 #if defined(OS_WIN)
143 #define MAYBE_EncryptExportDecrypt DISABLED_EncryptExportDecrypt 143 #define MAYBE_EncryptExportDecrypt DISABLED_EncryptExportDecrypt
144 #else 144 #else
145 #define MAYBE_EncryptExportDecrypt EncryptExportDecrypt 145 #define MAYBE_EncryptExportDecrypt EncryptExportDecrypt
146 #endif 146 #endif
147 TEST_F(SyncCryptographerTest, MAYBE_EncryptExportDecrypt) { 147 TEST_F(CryptographerTest, MAYBE_EncryptExportDecrypt) {
148 sync_pb::EncryptedData nigori; 148 sync_pb::EncryptedData nigori;
149 sync_pb::EncryptedData encrypted; 149 sync_pb::EncryptedData encrypted;
150 150
151 sync_pb::PasswordSpecificsData original; 151 sync_pb::PasswordSpecificsData original;
152 original.set_origin("http://example.com"); 152 original.set_origin("http://example.com");
153 original.set_username_value("azure"); 153 original.set_username_value("azure");
154 original.set_password_value("hunter2"); 154 original.set_password_value("hunter2");
155 155
156 { 156 {
157 Cryptographer cryptographer(&encryptor_); 157 Cryptographer cryptographer(&encryptor_);
(...skipping 18 matching lines...) Expand all
176 EXPECT_TRUE(cryptographer.DecryptPendingKeys(params)); 176 EXPECT_TRUE(cryptographer.DecryptPendingKeys(params));
177 EXPECT_TRUE(cryptographer.is_ready()); 177 EXPECT_TRUE(cryptographer.is_ready());
178 EXPECT_FALSE(cryptographer.has_pending_keys()); 178 EXPECT_FALSE(cryptographer.has_pending_keys());
179 179
180 sync_pb::PasswordSpecificsData decrypted; 180 sync_pb::PasswordSpecificsData decrypted;
181 EXPECT_TRUE(cryptographer.Decrypt(encrypted, &decrypted)); 181 EXPECT_TRUE(cryptographer.Decrypt(encrypted, &decrypted));
182 EXPECT_EQ(original.SerializeAsString(), decrypted.SerializeAsString()); 182 EXPECT_EQ(original.SerializeAsString(), decrypted.SerializeAsString());
183 } 183 }
184 } 184 }
185 185
186 TEST_F(SyncCryptographerTest, Bootstrap) { 186 TEST_F(CryptographerTest, Bootstrap) {
187 KeyParams params = {"localhost", "dummy", "dummy"}; 187 KeyParams params = {"localhost", "dummy", "dummy"};
188 cryptographer_.AddKey(params); 188 cryptographer_.AddKey(params);
189 189
190 std::string token; 190 std::string token;
191 EXPECT_TRUE(cryptographer_.GetBootstrapToken(&token)); 191 EXPECT_TRUE(cryptographer_.GetBootstrapToken(&token));
192 EXPECT_TRUE(IsStringUTF8(token)); 192 EXPECT_TRUE(IsStringUTF8(token));
193 193
194 Cryptographer other_cryptographer(&encryptor_); 194 Cryptographer other_cryptographer(&encryptor_);
195 other_cryptographer.Bootstrap(token); 195 other_cryptographer.Bootstrap(token);
196 EXPECT_TRUE(other_cryptographer.is_ready()); 196 EXPECT_TRUE(other_cryptographer.is_ready());
197 197
198 const char secret[] = "secret"; 198 const char secret[] = "secret";
199 sync_pb::EncryptedData encrypted; 199 sync_pb::EncryptedData encrypted;
200 EXPECT_TRUE(other_cryptographer.EncryptString(secret, &encrypted)); 200 EXPECT_TRUE(other_cryptographer.EncryptString(secret, &encrypted));
201 EXPECT_TRUE(cryptographer_.CanDecryptUsingDefaultKey(encrypted)); 201 EXPECT_TRUE(cryptographer_.CanDecryptUsingDefaultKey(encrypted));
202 } 202 }
203 203
204 } // namespace syncer 204 } // namespace syncer
OLDNEW
« no previous file with comments | « sync/syncable/model_type.cc ('k') | sync/util/data_type_histogram.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698