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

Side by Side Diff: components/sync/core_impl/sync_encryption_handler_impl.h

Issue 2130453004: [Sync] Move //sync to //components/sync. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 4 years, 4 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
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 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 #ifndef SYNC_INTERNAL_API_SYNC_ENCRYPTION_HANDLER_IMPL_H_ 5 #ifndef COMPONENTS_SYNC_CORE_IMPL_SYNC_ENCRYPTION_HANDLER_IMPL_H_
6 #define SYNC_INTERNAL_API_SYNC_ENCRYPTION_HANDLER_IMPL_H_ 6 #define COMPONENTS_SYNC_CORE_IMPL_SYNC_ENCRYPTION_HANDLER_IMPL_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/compiler_specific.h" 11 #include "base/compiler_specific.h"
12 #include "base/gtest_prod_util.h" 12 #include "base/gtest_prod_util.h"
13 #include "base/macros.h" 13 #include "base/macros.h"
14 #include "base/memory/weak_ptr.h" 14 #include "base/memory/weak_ptr.h"
15 #include "base/observer_list.h" 15 #include "base/observer_list.h"
16 #include "base/threading/thread_checker.h" 16 #include "base/threading/thread_checker.h"
17 #include "base/time/time.h" 17 #include "base/time/time.h"
18 #include "sync/base/sync_export.h" 18 #include "components/sync/base/cryptographer.h"
19 #include "sync/internal_api/public/sync_encryption_handler.h" 19 #include "components/sync/base/sync_export.h"
20 #include "sync/syncable/nigori_handler.h" 20 #include "components/sync/core/sync_encryption_handler.h"
21 #include "sync/util/cryptographer.h" 21 #include "components/sync/syncable/nigori_handler.h"
22 22
23 namespace syncer { 23 namespace syncer {
24 24
25 class Encryptor; 25 class Encryptor;
26 struct UserShare; 26 struct UserShare;
27 class WriteNode; 27 class WriteNode;
28 class WriteTransaction; 28 class WriteTransaction;
29 29
30 // Sync encryption handler implementation. 30 // Sync encryption handler implementation.
31 // 31 //
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 private: 96 private:
97 friend class SyncEncryptionHandlerImplTest; 97 friend class SyncEncryptionHandlerImplTest;
98 FRIEND_TEST_ALL_PREFIXES(SyncEncryptionHandlerImplTest, 98 FRIEND_TEST_ALL_PREFIXES(SyncEncryptionHandlerImplTest,
99 NigoriEncryptionTypes); 99 NigoriEncryptionTypes);
100 FRIEND_TEST_ALL_PREFIXES(SyncEncryptionHandlerImplTest, 100 FRIEND_TEST_ALL_PREFIXES(SyncEncryptionHandlerImplTest,
101 EncryptEverythingExplicit); 101 EncryptEverythingExplicit);
102 FRIEND_TEST_ALL_PREFIXES(SyncEncryptionHandlerImplTest, 102 FRIEND_TEST_ALL_PREFIXES(SyncEncryptionHandlerImplTest,
103 EncryptEverythingImplicit); 103 EncryptEverythingImplicit);
104 FRIEND_TEST_ALL_PREFIXES(SyncEncryptionHandlerImplTest, 104 FRIEND_TEST_ALL_PREFIXES(SyncEncryptionHandlerImplTest,
105 UnknownSensitiveTypes); 105 UnknownSensitiveTypes);
106 FRIEND_TEST_ALL_PREFIXES(SyncEncryptionHandlerImplTest, 106 FRIEND_TEST_ALL_PREFIXES(SyncEncryptionHandlerImplTest, GetKeystoreDecryptor);
107 GetKeystoreDecryptor);
108 FRIEND_TEST_ALL_PREFIXES(SyncEncryptionHandlerImplTest, 107 FRIEND_TEST_ALL_PREFIXES(SyncEncryptionHandlerImplTest,
109 ReceiveMigratedNigoriKeystorePass); 108 ReceiveMigratedNigoriKeystorePass);
110 FRIEND_TEST_ALL_PREFIXES(SyncEncryptionHandlerImplTest, 109 FRIEND_TEST_ALL_PREFIXES(SyncEncryptionHandlerImplTest,
111 ReceiveUmigratedNigoriAfterMigration); 110 ReceiveUmigratedNigoriAfterMigration);
112 FRIEND_TEST_ALL_PREFIXES(SyncEncryptionHandlerImplTest, 111 FRIEND_TEST_ALL_PREFIXES(SyncEncryptionHandlerImplTest,
113 ReceiveOldMigratedNigori); 112 ReceiveOldMigratedNigori);
114 FRIEND_TEST_ALL_PREFIXES(SyncEncryptionHandlerImplTest, 113 FRIEND_TEST_ALL_PREFIXES(SyncEncryptionHandlerImplTest,
115 SetKeystoreAfterReceivingMigratedNigori); 114 SetKeystoreAfterReceivingMigratedNigori);
116 FRIEND_TEST_ALL_PREFIXES(SyncEncryptionHandlerImplTest, 115 FRIEND_TEST_ALL_PREFIXES(SyncEncryptionHandlerImplTest,
117 SetCustomPassAfterMigration); 116 SetCustomPassAfterMigration);
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 // the encrypted types/encrypt everything state, as well as the keybag/ 161 // the encrypted types/encrypt everything state, as well as the keybag/
163 // explicit passphrase state (if the cryptographer is ready). 162 // explicit passphrase state (if the cryptographer is ready).
164 void WriteEncryptionStateToNigori(WriteTransaction* trans); 163 void WriteEncryptionStateToNigori(WriteTransaction* trans);
165 164
166 // Updates local encrypted types from |nigori|. 165 // Updates local encrypted types from |nigori|.
167 // Returns true if the local set of encrypted types either matched or was 166 // Returns true if the local set of encrypted types either matched or was
168 // a subset of that in |nigori|. Returns false if the local state already 167 // a subset of that in |nigori|. Returns false if the local state already
169 // had stricter encryption than |nigori|, and the nigori node needs to be 168 // had stricter encryption than |nigori|, and the nigori node needs to be
170 // updated with the newer encryption state. 169 // updated with the newer encryption state.
171 // Note: must be called from within a transaction. 170 // Note: must be called from within a transaction.
172 bool UpdateEncryptedTypesFromNigori( 171 bool UpdateEncryptedTypesFromNigori(const sync_pb::NigoriSpecifics& nigori,
173 const sync_pb::NigoriSpecifics& nigori, 172 syncable::BaseTransaction* const trans);
174 syncable::BaseTransaction* const trans);
175 173
176 // TODO(zea): make these public and have them replace SetEncryptionPassphrase 174 // TODO(zea): make these public and have them replace SetEncryptionPassphrase
177 // and SetDecryptionPassphrase. 175 // and SetDecryptionPassphrase.
178 // Helper methods for handling passphrases once keystore migration has taken 176 // Helper methods for handling passphrases once keystore migration has taken
179 // place. 177 // place.
180 // 178 //
181 // Sets a new custom passphrase. Should only be called if a custom passphrase 179 // Sets a new custom passphrase. Should only be called if a custom passphrase
182 // is not already set. 180 // is not already set.
183 // Triggers OnPassphraseAccepted on success, OnPassphraseRequired if a custom 181 // Triggers OnPassphraseAccepted on success, OnPassphraseRequired if a custom
184 // passphrase already existed. 182 // passphrase already existed.
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
233 231
234 // Performs the actual migration of the |nigori_node| to support keystore 232 // Performs the actual migration of the |nigori_node| to support keystore
235 // encryption iff ShouldTriggerMigration(..) returns true. 233 // encryption iff ShouldTriggerMigration(..) returns true.
236 bool AttemptToMigrateNigoriToKeystore(WriteTransaction* trans, 234 bool AttemptToMigrateNigoriToKeystore(WriteTransaction* trans,
237 WriteNode* nigori_node); 235 WriteNode* nigori_node);
238 236
239 // Fill |encrypted_blob| with the keystore decryptor token if 237 // Fill |encrypted_blob| with the keystore decryptor token if
240 // |encrypted_blob|'s contents didn't already contain the key. 238 // |encrypted_blob|'s contents didn't already contain the key.
241 // The keystore decryptor token is the serialized current default encryption 239 // The keystore decryptor token is the serialized current default encryption
242 // key, encrypted with the keystore key. 240 // key, encrypted with the keystore key.
243 bool GetKeystoreDecryptor( 241 bool GetKeystoreDecryptor(const Cryptographer& cryptographer,
244 const Cryptographer& cryptographer, 242 const std::string& keystore_key,
245 const std::string& keystore_key, 243 sync_pb::EncryptedData* encrypted_blob);
246 sync_pb::EncryptedData* encrypted_blob);
247 244
248 // Helper method for installing the keys encrypted in |encryption_keybag| 245 // Helper method for installing the keys encrypted in |encryption_keybag|
249 // into |cryptographer|. 246 // into |cryptographer|.
250 // Returns true on success, false if we were unable to install the keybag. 247 // Returns true on success, false if we were unable to install the keybag.
251 // Will not update the default key. 248 // Will not update the default key.
252 bool AttemptToInstallKeybag(const sync_pb::EncryptedData& keybag, 249 bool AttemptToInstallKeybag(const sync_pb::EncryptedData& keybag,
253 bool update_default, 250 bool update_default,
254 Cryptographer* cryptographer); 251 Cryptographer* cryptographer);
255 252
256 // Helper method for decrypting pending keys with the keystore bootstrap. 253 // Helper method for decrypting pending keys with the keystore bootstrap.
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
314 // before support for this field was added. 311 // before support for this field was added.
315 base::Time custom_passphrase_time_; 312 base::Time custom_passphrase_time_;
316 313
317 base::WeakPtrFactory<SyncEncryptionHandlerImpl> weak_ptr_factory_; 314 base::WeakPtrFactory<SyncEncryptionHandlerImpl> weak_ptr_factory_;
318 315
319 DISALLOW_COPY_AND_ASSIGN(SyncEncryptionHandlerImpl); 316 DISALLOW_COPY_AND_ASSIGN(SyncEncryptionHandlerImpl);
320 }; 317 };
321 318
322 } // namespace syncer 319 } // namespace syncer
323 320
324 #endif // SYNC_INTERNAL_API_SYNC_ENCRYPTION_HANDLER_IMPL_H_ 321 #endif // COMPONENTS_SYNC_CORE_IMPL_SYNC_ENCRYPTION_HANDLER_IMPL_H_
OLDNEW
« no previous file with comments | « components/sync/core_impl/protocol_event_buffer_unittest.cc ('k') | components/sync/core_impl/sync_encryption_handler_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698