summaryrefslogtreecommitdiffstats
path: root/chrome/browser/sync/protocol/nigori_specifics.proto
blob: 9a5f914791e3e8ce5fa766564d57efbe05879a36 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
// Copyright (c) 2011 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.
//
// Sync protocol datatype extension for nigori keys.

// 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;

import "encryption.proto";
import "sync.proto";

message NigoriKey {
  optional string name = 1;
  optional bytes user_key = 2;
  optional bytes encryption_key = 3;
  optional bytes mac_key = 4;
}

message NigoriKeyBag {
  repeated NigoriKey key = 2;
}

message DeviceInformation {
  optional string cache_guid = 1;
  optional string name = 2;
  optional string platform = 3;
  optional string chrome_version = 4;
}

// Properties of nigori sync object.
message NigoriSpecifics {
  optional EncryptedData encrypted = 1;
  // True if |encrypted| is encrypted using a passphrase
  // explicitly set by the user.
  optional bool using_explicit_passphrase = 2;

  // Obsolete encryption fields. These were deprecated due to legacy versions
  // that understand their usage but did not perform encryption properly.
  // optional bool deprecated_encrypt_bookmarks = 3;
  // optional bool deprecated_encrypt_preferences = 4;
  // optional bool deprecated_encrypt_autofill_profile = 5;
  // optional bool deprecated_encrypt_autofill = 6;
  // optional bool deprecated_encrypt_themes = 7;
  // optional bool deprecated_encrypt_typed_urls = 8;
  // optional bool deprecated_encrypt_extensions = 9;
  // optional bool deprecated_encrypt_sessions = 10;
  // optional bool deprecated_encrypt_apps = 11;
  // optional bool deprecated_encrypt_search_engines = 12;

  // Booleans corresponding to whether a datatype should be encrypted.
  // Passwords are always encrypted, so we don't need a field here.
  optional bool encrypt_bookmarks = 13;
  optional bool encrypt_preferences = 14;
  optional bool encrypt_autofill_profile = 15;
  optional bool encrypt_autofill = 16;
  optional bool encrypt_themes = 17;
  optional bool encrypt_typed_urls = 18;
  optional bool encrypt_extensions = 19;
  optional bool encrypt_sessions = 20;
  optional bool encrypt_apps = 21;
  optional bool encrypt_search_engines = 22;

  optional bool sync_tabs = 23;

  // If true, all current and future datatypes will be encrypted.
  optional bool encrypt_everything = 24;

  optional bool encrypt_extension_settings = 25;
  optional bool encrypt_app_notifications = 26;
  optional bool encrypt_app_settings = 27;

  // User device information.
  repeated DeviceInformation device_information = 28;
}

extend EntitySpecifics {
  optional NigoriSpecifics nigori = 47745;
}