summaryrefslogtreecommitdiffstats
path: root/sync/protocol/encryption.proto
diff options
context:
space:
mode:
authorakalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-10 01:06:41 +0000
committerakalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-10 01:06:41 +0000
commit1bcf30ec84f19d40cc5c3f6051d0bb5860bfc74a (patch)
treea1c5b036a8aad3554aaca8947c3a249a8d5945e3 /sync/protocol/encryption.proto
parent70180a806fe954878cdca606620da7a153a9efe7 (diff)
downloadchromium_src-1bcf30ec84f19d40cc5c3f6051d0bb5860bfc74a.zip
chromium_src-1bcf30ec84f19d40cc5c3f6051d0bb5860bfc74a.tar.gz
chromium_src-1bcf30ec84f19d40cc5c3f6051d0bb5860bfc74a.tar.bz2
[Sync] Create new top-level sync/ directory
Move sync .proto files to sync/protocol. Update all references. This begins the Great Sync Migration. BUG=117585,43624 TEST= Review URL: https://chromiumcodereview.appspot.com/9668028 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@125967 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'sync/protocol/encryption.proto')
-rw-r--r--sync/protocol/encryption.proto32
1 files changed, 32 insertions, 0 deletions
diff --git a/sync/protocol/encryption.proto b/sync/protocol/encryption.proto
new file mode 100644
index 0000000..202ec33
--- /dev/null
+++ b/sync/protocol/encryption.proto
@@ -0,0 +1,32 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+// Common sync protocol for encrypted data.
+
+// Update proto_value_conversions{.h,.cc,_unittest.cc} if you change
+// any fields in this file.
+
+syntax = "proto2";
+
+option optimize_for = LITE_RUNTIME;
+option retain_unknown_fields = true;
+
+package sync_pb;
+
+// Encrypted sync data consists of two parts: a key name and a blob. Key name is
+// the name of the key that was used to encrypt blob and blob is encrypted data
+// itself.
+//
+// The reason we need to keep track of the key name is that a sync user can
+// change their passphrase (and thus their encryption key) at any time. When
+// that happens, we make a best effort to reencrypt all nodes with the new
+// passphrase, but since we don't have transactions on the server-side, we
+// cannot guarantee that every node will be reencrypted. As a workaround, we
+// keep track of all keys, assign each key a name (by using that key to encrypt
+// a well known string) and keep track of which key was used to encrypt each
+// node.
+message EncryptedData {
+ optional string key_name = 1;
+ optional string blob = 2;
+};