1 // Copyright (c) 2010 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 // Sync protocol datatype extension for nigori keys. 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 import "encryption.proto"; 18 import "sync.proto"; 19 20 message NigoriKey { 21 optional string name = 1; 22 optional bytes user_key = 2; 23 optional bytes encryption_key = 3; 24 optional bytes mac_key = 4; 25 } 26 27 message NigoriKeyBag { 28 repeated NigoriKey key = 2; 29 } 30 31 // Properties of nigori sync object. 32 message NigoriSpecifics { 33 optional EncryptedData encrypted = 1; 34 // True if |encrypted| is encrypted using a passphrase 35 // explicitly set by the user. 36 optional bool using_explicit_passphrase = 2; 37 38 // Booleans corresponding to whether a datatype should be encrypted. 39 // Passwords are always encrypted, so we don't need a field here. 40 optional bool encrypt_bookmarks = 3; 41 optional bool encrypt_preferences = 4; 42 optional bool encrypt_autofill_profile = 5; 43 optional bool encrypt_autofill = 6; 44 optional bool encrypt_themes = 7; 45 optional bool encrypt_typed_urls = 8; 46 optional bool encrypt_extensions = 9; 47 optional bool encrypt_sessions = 10; 48 optional bool encrypt_apps = 11; 49 } 50 51 extend EntitySpecifics { 52 optional NigoriSpecifics nigori = 47745; 53 } 54 55