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

Side by Side Diff: components/proximity_auth/cryptauth/proto/cryptauth_api.proto

Issue 616233002: Add proto definitions for messages used by CryptAuth APIs and the authentication protocol. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fixes Created 6 years, 2 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
« no previous file with comments | « components/proximity_auth/cryptauth/proto/BUILD.gn ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2014 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 // Definitions for CryptAuth API calls.
6 // Generated from server definitions. Do not edit.
7 syntax = "proto2";
8
9 package cryptauth;
10
11 option optimize_for = LITE_RUNTIME;
12
13 // Wait for the specified transaction to change state.
14 message AwaitTxRequest {
15 // An opaque (random) identifier for this transaction.
16 optional bytes tx_id = 1;
17 }
18
19 // If the transaction has completed, a token will be returned encapsulating the
20 // result of the transaction. The token is opaque, and can be decoded by using
21 // the CompleteTx backend query.
22 message AwaitTxResponse {
23 // An opaque token encoding the transaction result.
24 optional bytes tx_token = 1;
25
26 // Identifies what kind of resource this is. Value: the fixed string
27 // <code>"cryptauth#awaitTxResponse"</code>.
28 optional string kind = 2;
29 }
30
31 // Device information provided to external clients that need to sync device
32 // state.
33 message ExternalDeviceInfo {
34 // A cryptographic public key associated with the device.
35 optional bytes public_key = 1;
36
37 // A user friendly (human readable) name for this device.
38 optional string friendly_device_name = 2;
39
40 // If available, the device's bluetooth MAC address
41 optional string bluetooth_address = 3;
42
43 // Whether or not this device can be used as an unlock key
44 optional bool unlock_key = 4;
45
46 // Whether or not this device can be unlocked
47 optional bool unlockable = 5;
48 }
49
50 // Request for a list of devices that could be used as Unlock Keys, optionally
51 // requesting a callback over bluetooth (for proximity detection).
52 message FindEligibleUnlockDevicesRequest {
53 // A bluetooth MAC address to be contacted if a device that may be eligible
54 // for unlock is nearby. If set, a message will be pushed to all eligible
55 // unlock devices requesting that they contact the specified MAC address. If
56 // this field is left unset, no callback will be made, and no message will be
57 // pushed to the user's devices.
58 optional string callback_bluetooth_address = 2;
59
60 // Identifies what kind of resource this is. Value: the fixed string
61 // <code>"cryptauth#findEligibleUnlockDevicesRequest"</code>.
62 optional string kind = 3;
63 }
64
65 // Response containing a list of devices that could be made Unlock Keys
66 message FindEligibleUnlockDevicesResponse {
67 // Devices that could be made Unlock Keys (even if they aren't enabled yet)
68 repeated ExternalDeviceInfo eligible_devices = 1;
69
70 // Devices that cannot be made unlock keys, and reasons for this. This list
71 // will not contain any non-gms core devices, even though these are also not
72 // eligible to be unlock keys.
73 repeated IneligibleDevice ineligible_devices = 2;
74
75 // Identifies what kind of resource this is. Value: the fixed string
76 // <code>"cryptauth#findEligibleUnlockDevicesResponse"</code>.
77 optional string kind = 3;
78 }
79
80 // Request to complete a device enrollment.
81 message FinishEnrollmentRequest {
82 // The enrollment session identifer from the <code>setup</code> response.
83 optional bytes enrollment_session_id = 2;
84
85 // An encrypted payload containing enrollment information for the device.
86 optional bytes enrollment_message = 3;
87
88 // A Diffie-Hellman public key for the device, to complete the key exchange.
89 optional bytes device_ephemeral_key = 4;
90 }
91
92 // Response indicating whether a device enrollment completed successfully.
93 message FinishEnrollmentResponse {
94 // Status should be OK if the request was successful.
95 optional string status = 1;
96
97 // A detailed error message if there was a failure.
98 optional string error_message = 2;
99
100 // Identifies what kind of resource this is. Value: the fixed string
101 // <code>"cryptauth#finishEnrollmentResponse"</code>.
102 optional string kind = 5;
103 }
104
105 // Used to request devices that have a specific feature.
106 message GetDevicesForFeatureRequest {
107 // Requests those devices that support the specified DeviceFeature
108 optional string device_feature = 2;
109 }
110
111 // Devices that have a certain feature, as returned by the GetDevicesForFeature
112 // RPC.
113 message GetDevicesForFeatureResponse {
114 // A (possibly empty) list of devices supporting the requested feature.
115 repeated ExternalDeviceInfo result_sets = 1;
116
117 // Identifies what kind of resource this is. Value: the fixed string
118 // <code>"cryptauth#getDevicesForFeatureResponse"</code>.
119 optional string kind = 2;
120 }
121
122 // This request is sent by the login page to obtain one challenge session for
123 // each of the user's devices. Challenges can be signed by the user's device as
124 // part of a login assertion.
125 message GetLoginChallengesRequest {
126 // Protocol type to be used with the requested login challenges.
127 optional string protocol_type = 3;
128
129 // Used to request a login challenge for a particular device, specified by
130 // its public key
Ilya Sherman 2014/10/07 01:09:09 nit: Why did you rewrap this? It seemed fine befo
Tim Song 2014/10/07 17:05:42 I just did a vim autoformat (gq) on all comments,
Ilya Sherman 2014/10/07 20:46:41 It looks like that tool reformatted everything to
Tim Song 2014/10/14 00:30:24 I'm not following. The comments looks fine to me =
Ilya Sherman 2014/10/14 00:38:10 Sorry, typing fail. It looks like the tool reform
Tim Song 2014/10/15 17:30:10 Done.
131 optional bytes user_public_key = 5;
132 }
133
134 // Response encapsulating a list of login challenges (together with their
135 // metadata).
136 message GetLoginChallengesResponse {
137 // List of login challenges (with associated metadata)
138 repeated LoginChallengeInfo login_challenge_infos = 3;
139
140 // Identifies what kind of resource this is. Value: the fixed string
141 // <code>"cryptauth#getLoginChallengesResponse"</code>.
142 optional string kind = 4;
143 }
144
145 // Request for a listing of a user's own devices
146 message GetMyDevicesRequest {
147 // Return only devices that can act as EasyUnlock keys.
148 optional bool approved_for_unlock_required = 2;
149
150 // Identifies what kind of resource this is. Value: the fixed string
151 // <code>"cryptauth#getMyDevicesRequest"</code>.
152 optional string kind = 3;
153 }
154
155 // Response containing a listing of the users device's
156 message GetMyDevicesResponse {
157 // A listing of all sync-able devices
158 repeated ExternalDeviceInfo devices = 1;
159
160 // Identifies what kind of resource this is. Value: the fixed string
161 // <code>"cryptauth#getMyDevicesResponse"</code>.
162 optional string kind = 2;
163 }
164
165 // A device that the server thinks is not eligible to be an unlock key, and the
166 // reason for this.
167 message IneligibleDevice {
168 // The device that is not eligible to be an unlock key.
169 optional ExternalDeviceInfo device = 1;
170
171 // The reasons why the server thinks it is not an unlock key. NOTE: for now,
172 // this list of reasons will contain exactly one element. It is a repeated
173 // field because, in principle, there can be more than one reason that makes
174 // a device not eligible to be an unlock key, and we want to be able to add
Ilya Sherman 2014/10/07 01:09:08 Ditto.
Tim Song 2014/10/07 17:05:42 Same.
175 // multiple reasons in the future.
176 repeated string reasons = 2;
177 }
178
179 // A login challenge together with its metadata
180 message LoginChallengeInfo {
181 // Protocol type to be used with this login challenge
182 optional string type = 1;
183
184 // Challenge to be signed by the device
185 optional bytes challenge = 2;
186
187 // Key handle that the device registered with
188 optional bytes key_handle = 3;
189
190 // Used to identify this challenge to the server
191 optional bytes challenge_session_id = 7;
192
193 // Application id for which the device key is supposed to work
194 optional string application_id = 8;
195 }
196
197 // Encapsulates a transaction reply, sent from the user's device. The details of
198 // the transaction and the reply are encrypted.
199 message ReplyTxRequest {
200 // Encrypted transaction ledger, containing the original prompt request and
201 // the user's response.
202 optional bytes secure_tx_ledger = 1;
203 }
204
205 // Requests to send a "tickle" requesting to sync all of a user's devices now
206 message SendDeviceSyncTickleRequest {
207 // Identifies what kind of resource this is. Value: the fixed string
208 // <code>"cryptauth#sendDeviceSyncTickleRequest"</code>.
209 optional string kind = 2;
210 }
211
212 // Contains information needed to begin a device enrollment.
213 message SetupEnrollmentInfo {
214 // Type of protocol this setup information was requested for
215 optional string type = 1;
216
217 // A session identifier to be used for this enrollment session.
218 optional bytes enrollment_session_id = 2;
219
220 // A Diffie-Hellman public key used perform a key exchange during enrollment.
Ilya Sherman 2014/10/07 01:09:09 nit: "used perform" -> "used to perform"
Tim Song 2014/10/07 17:05:43 Done. Sorry forgot to edit this file after editing
221 optional bytes server_ephemeral_key = 3;
222 }
223
224 // Requests information needed to begin a device enrollment.
225 message SetupEnrollmentRequest {
226 // Deprecated. See <code>application_id</code>
227 optional string origin = 2;
228
229 // Type(s) of protocol supported by this enrolling device (e.g. "gcmV1")
230 repeated string types = 3;
231
232 // Indicates whether a legacy crypto suite must be used with this device.
233 optional bool use_legacy_crypto = 4;
234
235 // A URL describing which application facets this enrollment can be used (see
236 // http://go/appid).
237 optional string application_id = 5;
238 }
239
240 // Contains information needed to begin a device enrollment.
241 message SetupEnrollmentResponse {
242 // Should return OK if the request was well formed.
243 optional string status = 1;
244
245 // Information for each of the requested protocol <code>type</code>s.
246 repeated SetupEnrollmentInfo infos = 2;
247
248 // Identifies what kind of resource this is. Value: the fixed string
249 // <code>"cryptauth#setupEnrollmentResponse"</code>.
250 optional string kind = 3;
251 }
252
253 // Encapsulates a sync request from the user's device, in encrypted form. This
254 // is used to inform the server when the user's device has received a
255 // transaction, as well as to provide additional client state information
256 // useful for updating device records, debugging, UI indications, etc.
257 message SyncTxRequest {
258 // Encrypted sync request, containing state of the user's device at the time
259 // the sync request was sent, as well as indicating whether a specific
260 // transaction is desired to be sync'd, or if a list of all pending
261 // transactions should be sent back in the response.
262 optional bytes secure_sync_request = 1;
263 }
264 message SyncTxResponse {
265 // Encrypted sync response, containing any additional transaction information
266 // requested by the device for a specific transaction, or a list of all
267 // currently pending transactions if none was specified in the request.
268 optional bytes secure_sync_response = 1;
269
270 // Identifies what kind of resource this is. Value: the fixed string
271 // <code>"cryptauth#syncTxResponse"</code>.
272 optional string kind = 2;
273 }
274
275 // Used to enable or disable EasyUnlock features on a specified device, and
276 // also causes other devices to sync the new EasyUnlock state.
Ilya Sherman 2014/10/07 01:09:08 nit: Unnecessary rewrap
Tim Song 2014/10/07 17:05:43 Same.
277 message ToggleEasyUnlockRequest {
278 // If true, Easyunlock will be enabled for the device with public key equal
Ilya Sherman 2014/10/07 01:09:08 nit: "Easyunlock" -> "EasyUnlock"
Tim Song 2014/10/07 17:05:42 Done.
279 // to public_key. Otherwise, it will be disabled for that device.
280 optional bool enable = 1;
281
282 // Encoded public key of the device to enable/disable (here you must use the
283 // same exact encoding that was sent during device enrollment).
284 optional bytes public_key = 2;
285
286 // If true, EasyUnlock enabled state will be set to the value of "enable" for
287 // all of a user's devices. This is the same as calling the toggle RPC for
288 // every device. However, this removes the need for calling GetMyDevices, so
289 // it reduces network overhead. If this field is set "public_key" must not be
290 // set. NOTE: the case enable=true is not yet supported, so this option can
291 // only disable EasyUnlock for all devices.
292 optional bool apply_to_all = 3;
293
294 // Identifies what kind of resource this is. Value: the fixed string
295 // <code>"cryptauth#toggleEasyUnlockRequest"</code>.
296 optional string kind = 4;
297 }
OLDNEW
« no previous file with comments | « components/proximity_auth/cryptauth/proto/BUILD.gn ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698