OLD | NEW |
| (Empty) |
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 | |
3 // found in the LICENSE file. | |
4 // | |
5 // Common sync protocol for encrypted data. | |
6 | |
7 // Update proto_value_conversions{.h,.cc,_unittest.cc} if you change | |
8 // any fields in this file. | |
9 | |
10 syntax = "proto2"; | |
11 | |
12 option optimize_for = LITE_RUNTIME; | |
13 option retain_unknown_fields = true; | |
14 | |
15 package sync_pb; | |
16 | |
17 // Encrypted sync data consists of two parts: a key name and a blob. Key name is | |
18 // the name of the key that was used to encrypt blob and blob is encrypted data | |
19 // itself. | |
20 // | |
21 // The reason we need to keep track of the key name is that a sync user can | |
22 // change their passphrase (and thus their encryption key) at any time. When | |
23 // that happens, we make a best effort to reencrypt all nodes with the new | |
24 // passphrase, but since we don't have transactions on the server-side, we | |
25 // cannot guarantee that every node will be reencrypted. As a workaround, we | |
26 // keep track of all keys, assign each key a name (by using that key to encrypt | |
27 // a well known string) and keep track of which key was used to encrypt each | |
28 // node. | |
29 message EncryptedData { | |
30 optional string key_name = 1; | |
31 optional string blob = 2; | |
32 }; | |
OLD | NEW |