Index: components/proximity_auth/cryptauth/proto/cryptauth_api.proto |
diff --git a/components/proximity_auth/cryptauth/proto/cryptauth_api.proto b/components/proximity_auth/cryptauth/proto/cryptauth_api.proto |
deleted file mode 100644 |
index 301355f0dc5089ecd56f73437b6404a2c97731a3..0000000000000000000000000000000000000000 |
--- a/components/proximity_auth/cryptauth/proto/cryptauth_api.proto |
+++ /dev/null |
@@ -1,485 +0,0 @@ |
-// Copyright 2014 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. |
- |
-// Definitions for CryptAuth API calls. Do not edit unless transcribing |
-// from server definitions. |
-syntax = "proto2"; |
- |
-package cryptauth; |
- |
-option optimize_for = LITE_RUNTIME; |
- |
-// Basic device information used to classify the source of a request. |
-message DeviceClassifier { |
- // The Operating System version number on the device. |
- // (e.g., an android.os.Build.VERSION.SDK_INT) |
- optional int64 device_os_version_code = 14; |
- |
- // The software version number running on the device |
- // (e.g., GmsCore version code). |
- optional int64 device_software_version_code = 18; |
- |
- // Software package information if applicable |
- // (e.g., com.google.android.apps.authenticator2). |
- optional string device_software_package = 19; |
- |
- // Device type/platform. |
- optional DeviceType device_type = 32 [default = UNKNOWN]; |
-} |
- |
-enum DeviceType { |
- UNKNOWN = 0; |
- ANDROIDOS = 1; |
- CHROME = 2; |
- IOS = 3; |
- BROWSER = 4; |
-} |
- |
-// Device information provided to external clients that need to sync device |
-// state. |
-message ExternalDeviceInfo { |
- // A cryptographic public key associated with the device. |
- optional bytes public_key = 1; |
- |
- // A user friendly (human readable) name for this device. |
- optional string friendly_device_name = 2; |
- |
- // If available, the device's bluetooth MAC address. |
- optional string bluetooth_address = 3; |
- |
- // Whether or not this device can be used as an unlock key. |
- optional bool unlock_key = 4; |
- |
- // Whether or not this device can be unlocked. |
- optional bool unlockable = 5; |
-} |
- |
-// Determine if the calling device is allowed to promote the SmartLock |
-// feature to the user and contact the user's authzen enrolled devices to make |
-// them update their enrollments and to check if they're reachable (we don't |
-// want to show a promotional popup if the user has no reachable devices). |
-message FindEligibleForPromotionRequest { |
- // The public key of the device that is asking us whether it should show |
- // promotional material. Required. |
- optional bytes promoter_public_key = 2; |
- |
- // Information about the requesting device and its platform. |
- optional DeviceClassifier device_classifier = 3; |
-} |
- |
-// Contains the authzen transaction id that the caller can use to check if |
-// there are reachable devices. |
-message FindEligibleForPromotionResponse { |
- // Whether the caller is allowed to show promotional material. |
- optional bool may_show_promo = 1; |
-} |
- |
-// Request for a list of devices that could be used as Unlock Keys, optionally |
-// requesting a callback over bluetooth (for proximity detection). |
-message FindEligibleUnlockDevicesRequest { |
- // A bluetooth MAC address to be contacted if a device that may be eligible |
- // for unlock is nearby. If set, a message will be pushed to all eligible |
- // unlock devices requesting that they contact the specified MAC address. If |
- // this field is left unset, no callback will be made, and no message will be |
- // pushed to the user's devices. |
- optional string callback_bluetooth_address = 2; |
- |
- // During setup, we call find and sendDeviceSyncTickle. If no devices are |
- // found, we call find again, in hopes that the tickle caused a state |
- // change that made some device eligible. This is the count for these |
- // retries (in practice, this will always be 0 or 1). |
- // Should always be set. |
- optional int32 retry_count = 3; |
- |
- // If present and positive, the devices must have been updated within this |
- // many milliseconds of the RPC in order to be considered eligible. |
- optional int64 max_last_update_time_delta_millis = 4; |
- |
- // If true, we will not examine the push connectivity status of devices |
- // when determining eligibility. |
- optional bool offline_allowed = 5 [default = false]; |
- |
- // Information about the requesting device and its platform. |
- optional DeviceClassifier device_classifier = 6; |
-} |
- |
-// Response containing a list of devices that could be made Unlock Keys |
-message FindEligibleUnlockDevicesResponse { |
- // Devices that could be made Unlock Keys (even if they aren't enabled yet) |
- repeated ExternalDeviceInfo eligible_devices = 1; |
- |
- // Devices that cannot be made unlock keys, and reasons for this. This list |
- // will not contain any non-gms core devices, even though these are also not |
- // eligible to be unlock keys. |
- repeated IneligibleDevice ineligible_devices = 2; |
-} |
- |
-// Request to complete a device enrollment. |
-message FinishEnrollmentRequest { |
- // The enrollment session identifer from the <code>setup</code> response. |
- optional bytes enrollment_session_id = 2; |
- |
- // An encrypted payload containing enrollment information for the device. |
- optional bytes enrollment_message = 3; |
- |
- // A Diffie-Hellman public key for the device, to complete the key exchange. |
- optional bytes device_ephemeral_key = 4; |
- |
- // An integer encoding the reason this enrollment was invoked (triggered). |
- // See InvocationReason enum for definitions. |
- optional int32 invocation_reason = 11 [default = 0]; |
- |
- // How many retries of this operation have happened thus far. |
- optional int32 retry_count = 12 [default = 0]; |
- |
- // Information about the requesting device and its platform. |
- optional DeviceClassifier device_classifier = 13; |
-} |
- |
-// Response indicating whether a device enrollment completed successfully. |
-message FinishEnrollmentResponse { |
- // Status should be OK if the request was successful. |
- optional string status = 1; |
- |
- // A detailed error message if there was a failure. |
- optional string error_message = 2; |
-} |
- |
-// Device info uploaded during enrollment. |
-message GcmDeviceInfo { |
- // This field's name does not match the one in DeviceInfo for legacy reasons. |
- // Consider using long_device_id and device_type instead when enrolling |
- // non-android devices. |
- optional fixed64 android_device_id = 1; |
- |
- // Used for device_address of DeviceInfo field 2, but for GCM capable devices. |
- optional bytes gcm_registration_id = 102; |
- |
- // Used for device_address of DeviceInfo field 2, but for iOS devices. |
- optional bytes apn_registration_id = 202; |
- |
- // Has the user enabled the associated apn_registration_id for notifications. |
- optional bool apn_notification_enabled = 203 [default = false]; |
- |
- // Used for device_address of DeviceInfo field 2, a Bluetooth Mac address for |
- // the device (e.g., to be used with EasyUnlock). |
- optional string bluetooth_mac_address = 302; |
- |
- // SHA-256 hash of the device master key (from the key exchange). |
- // Differs from DeviceInfo field 3, which contains the actual master key. |
- optional bytes device_master_key_hash = 103; |
- |
- // A SecureMessage.EcP256PublicKey. |
- required bytes user_public_key = 4; |
- |
- // device's model name |
- // (e.g., an android.os.Build.MODEL or UIDevice.model). |
- optional string device_model = 7; |
- |
- // device's locale |
- optional string locale = 8; |
- |
- // The handle for user_public_key (and implicitly, a master key). |
- optional bytes key_handle = 9; |
- |
- // The initial counter value for the device, sent by the device. |
- optional int64 counter = 12 [default = 0]; |
- |
- // The Operating System version on the device |
- // (e.g., an android.os.Build.DISPLAY or UIDevice.systemVersion). |
- optional string device_os_version = 13; |
- |
- // The Operating System version number on the device |
- // (e.g., an android.os.Build.VERSION.SDK_INT). |
- optional int64 device_os_version_code = 14; |
- |
- // The Operating System release on the device |
- // (e.g., an android.os.Build.VERSION.RELEASE). |
- optional string device_os_release = 15; |
- |
- // The Operating System codename on the device |
- // (e.g., an android.os.Build.VERSION.CODENAME or UIDevice.systemName). |
- optional string device_os_codename = 16; |
- |
- // The software version running on the device |
- // (e.g., Authenticator app version string). |
- optional string device_software_version = 17; |
- |
- // The software version number running on the device |
- // (e.g., Authenticator app version code). |
- optional int64 device_software_version_code = 18; |
- |
- // Software package information if applicable |
- // (e.g., com.google.android.apps.authenticator2). |
- optional string device_software_package = 19; |
- |
- // Size of the display in thousandths of an inch (e.g., 7000 mils = 7 in). |
- optional int32 device_display_diagonal_mils = 22; |
- |
- // For Authzen capable devices, their Authzen protocol version. |
- optional int32 device_authzen_version = 24; |
- |
- // Not all devices have device identifiers that fit in 64 bits. |
- optional bytes long_device_id = 29; |
- |
- // The device manufacturer name |
- // (e.g., android.os.Build.MANUFACTURER). |
- optional string device_manufacturer = 31; |
- |
- // Used to indicate which type of device this is. |
- optional DeviceType device_type = 32 [default = ANDROIDOS]; |
- |
- // Fields corresponding to screenlock type/features and hardware features |
- // should be numbered in the 400 range. |
- |
- // Is this device using a secure screenlock (e.g., pattern or pin unlock). |
- optional bool using_secure_screenlock = 400 [default = false]; |
- |
- // Is auto-unlocking the screenlock (e.g., when at "home") supported? |
- optional bool auto_unlock_screenlock_supported = 401 [default = false]; |
- |
- // Is auto-unlocking the screenlock (e.g., when at "home") enabled? |
- optional bool auto_unlock_screenlock_enabled = 402 [default = false]; |
- |
- // Does the device have a Bluetooth (classic) radio? |
- optional bool bluetooth_radio_supported = 403 [default = false]; |
- |
- // Is the Bluetooth (classic) radio on? |
- optional bool bluetooth_radio_enabled = 404 [default = false]; |
- |
- // The enrollment session id this is sent with. |
- optional bytes enrollment_session_id = 1000; |
- |
- // A copy of the user's OAuth token. |
- optional string oauth_token = 1001; |
-} |
- |
-message GcmMetadata { |
- required MessageType type = 1; |
- optional int32 version = 2 [default = 0]; |
-} |
- |
-// Request for a listing of a user's own devices. |
-message GetMyDevicesRequest { |
- // Return only devices that can act as EasyUnlock keys. |
- optional bool approved_for_unlock_required = 2; |
- |
- // Allow the returned list to be somewhat out of date (read will be faster). |
- optional bool allow_stale_read = 3 [default = false]; |
- |
- // An integer encoding the reason this request was invoked (triggered). |
- // See InvocationReason enum for definitions. |
- optional int32 invocation_reason = 4 [default = 0]; |
- |
- // How many retries of this operation have happened thus far. |
- optional int32 retry_count = 5 [default = 0]; |
- |
- // Information about the requesting device and its platform. |
- optional DeviceClassifier device_classifier = 6; |
-} |
- |
-// Response containing a listing of the users devices. |
-message GetMyDevicesResponse { |
- // A listing of all sync-able devices. |
- repeated ExternalDeviceInfo devices = 1; |
-} |
- |
-// A device that the server thinks is not eligible to be an unlock key, and the |
-// reason for this. |
-message IneligibleDevice { |
- // The device that is not eligible to be an unlock key. |
- optional ExternalDeviceInfo device = 1; |
- |
- // The reasons why the server thinks it is not an unlock key. NOTE: for now, |
- // this list of reasons will contain exactly one element. It is a repeated |
- // field because, in principle, there can be more than one reason that makes a |
- // device not eligible to be an unlock key, and we want to be able to add |
- // multiple reasons in the future. |
- repeated string reasons = 2; |
-} |
- |
-// A list of "reasons" that can be provided for calling server-side APIs. |
-// This is particularly important for calls that can be triggered by different |
-// kinds of events. |
-// NOTE: Added INVOCATION_* prefix to enum names due to name conflict with |
-// preprocessor MACRO on Windows. |
-enum InvocationReason { |
- INVOCATION_REASON_UNKNOWN = 0; |
- // First run of the software package invoking this call. |
- INVOCATION_REASON_INITIALIZATION = 1; |
- // Ordinary periodic actions (e.g. monthly master key rotation). |
- INVOCATION_REASON_PERIODIC = 2; |
- // Slow-cycle periodic action (e.g. yearly keypair rotation???). |
- INVOCATION_REASON_SLOW_PERIODIC = 3; |
- // Fast-cycle periodic action (e.g. daily sync for Smart Lock users). |
- INVOCATION_REASON_FAST_PERIODIC = 4; |
- // Expired state (e.g. expired credentials, or cached entries) was detected. |
- INVOCATION_REASON_EXPIRATION = 5; |
- // An unexpected protocol failure occurred (so attempting to repair state). |
- INVOCATION_REASON_FAILURE_RECOVERY = 6; |
- // A new account has been added to the device. |
- INVOCATION_REASON_NEW_ACCOUNT = 7; |
- // An existing account on the device has been changed. |
- INVOCATION_REASON_CHANGED_ACCOUNT = 8; |
- // The user toggled the state of a feature (e.g. Smart Lock enabled via BT). |
- INVOCATION_REASON_FEATURE_TOGGLED = 9; |
- // A "push" from the server caused this action (e.g. a sync tickle). |
- INVOCATION_REASON_SERVER_INITIATED = 10; |
- // A local address change triggered this (e.g. GCM registration id changed). |
- INVOCATION_REASON_ADDRESS_CHANGE = 11; |
- // A software update has triggered this. |
- INVOCATION_REASON_SOFTWARE_UPDATE = 12; |
- // A manual action by the user triggered this (e.g. commands sent via adb). |
- INVOCATION_REASON_MANUAL = 13; |
-} |
- |
-// Note: This is the same enum as securegcm.Type in securegcm.proto in the |
-// server definitions. Renamed for clarity here. |
-enum MessageType { |
- ENROLLMENT = 0; |
- TICKLE = 1; |
- TX_REQUEST = 2; |
- TX_REPLY = 3; |
- TX_SYNC_REQUEST = 4; |
- TX_SYNC_RESPONSE = 5; |
- TX_PING = 6; |
- DEVICE_INFO_UPDATE = 7; |
- TX_CANCEL_REQUEST = 8; |
- PROXIMITYAUTH_PAIRING = 10; |
- GCMV1_IDENTITY_ASSERTION = 11; |
- |
- // Device-to-device communications are protected by an unauthenticated |
- // Diffie-Hellman exchange. The InitiatorHello message is simply the |
- // initiator's public DH key, and is not encoded as a SecureMessage, so |
- // it doesn't have a tag. |
- // The ResponderHello message (which is sent by the responder |
- // to the initiator), on the other hand, carries a payload that is protected |
- // by the derived shared key. It also contains the responder's |
- // public DH key. ResponderHelloAndPayload messages have the |
- // DEVICE_TO_DEVICE_RESPONDER_HELLO tag. |
- DEVICE_TO_DEVICE_RESPONDER_HELLO_PAYLOAD = 12; |
- |
- // Device-to-device communications are protected by an unauthenticated |
- // Diffie-Hellman exchange. Once the initiator and responder |
- // agree on a shared key (through Diffie-Hellman), they will use messages |
- // tagged with DEVICE_TO_DEVICE_MESSAGE to exchange data. |
- DEVICE_TO_DEVICE_MESSAGE = 13; |
- |
- // Notification to let a device know it should contact a nearby device. |
- DEVICE_PROXIMITY_CALLBACK = 14; |
- |
- // Device-to-device communications are protected by an unauthenticated |
- // Diffie-Hellman exchange. During device-to-device authentication, the first |
- // message from initiator (the challenge) is signed and put into the payload |
- // of the message sent back to the initiator. |
- UNLOCK_KEY_SIGNED_CHALLENGE = 15; |
-} |
- |
-// GCM tickles related to registration management. |
-enum RegistrationTickleType { |
- UNKNOWN_REGISTRATION_TICKLE_TYPE = 0; |
- |
- // Force a re-enrollment with the server. |
- FORCE_ENROLLMENT = 1; |
- |
- // Update enrollment information with the server. This could either be an |
- // authzen re-enrollment or a SyncTx. |
- UPDATE_ENROLLMENT = 2; |
- |
- // Devices that receive this should sync the user's list of devices. |
- DEVICES_SYNC = 3; |
-} |
- |
-// Requests to send a "tickle" requesting to sync all of a user's devices now |
-message SendDeviceSyncTickleRequest { |
- // The type of tickle. *_ENROLLMENT tickles will only be sent to |
- // android devices. DEVICES_SYNC will be sent to chromebooks and android |
- // devices. UNKNOWN_TICKLE_TYPE or absent will be treated as |
- // UPDATE_ENROLLMENT. |
- // This field will also determine GCM parameters, such as |
- // TTL and collapse token. |
- optional RegistrationTickleType tickle_type = 3; |
- |
- // Information about the requesting device and its platform. |
- optional DeviceClassifier device_classifier = 4; |
-} |
- |
-message SendDeviceSyncTickleResponse { |
- // empty for now. |
-} |
- |
-// Contains information needed to begin a device enrollment. |
-message SetupEnrollmentInfo { |
- // Type of protocol this setup information was requested for. |
- optional string type = 1; |
- |
- // A session identifier to be used for this enrollment session. |
- optional bytes enrollment_session_id = 2; |
- |
- // A Diffie-Hellman public key used to perform a key exchange during |
- // enrollment. |
- optional bytes server_ephemeral_key = 3; |
-} |
- |
-// Requests information needed to begin a device enrollment. |
-message SetupEnrollmentRequest { |
- // Deprecated. See <code>application_id</code>. |
- optional string origin = 2; |
- |
- // Type(s) of protocol supported by this enrolling device (e.g. "gcmV1"). |
- repeated string types = 3; |
- |
- // Indicates whether a legacy crypto suite must be used with this device. |
- optional bool use_legacy_crypto = 4; |
- |
- // A URL describing which application facets this enrollment can be used (see |
- // http://go/appid). |
- optional string application_id = 5; |
- |
- // An integer encoding the reason this enrollment was invoked (triggered). |
- // See InvocationReason enum for definitions. |
- optional int32 invocation_reason = 6 [default = 0]; |
- |
- // How many retries of this operation have happened thus far. |
- optional int32 retry_count = 7 [default = 0]; |
- |
- // Information about the requesting device and its platform. |
- optional DeviceClassifier device_classifier = 8; |
-} |
- |
-// Contains information needed to begin a device enrollment. |
-message SetupEnrollmentResponse { |
- // Should return OK if the request was well formed. |
- optional string status = 1; |
- |
- // Information for each of the requested protocol <code>type</code>s. |
- repeated SetupEnrollmentInfo infos = 2; |
-} |
- |
-// Used to enable or disable EasyUnlock features on a specified device, and also |
-// causes other devices to sync the new EasyUnlock state. |
-message ToggleEasyUnlockRequest { |
- // If true, Easy Unlock will be enabled for the device with public key equal |
- // to public_key. Otherwise, it will be disabled for that device. |
- optional bool enable = 1; |
- |
- // Encoded public key of the device to enable/disable (here you must use the |
- // same exact encoding that was sent during device enrollment). |
- optional bytes public_key = 2; |
- |
- // If true, EasyUnlock enabled state will be set to the value of "enable" for |
- // all of a user's devices. This is the same as calling the toggle RPC for |
- // every device. However, this removes the need for calling GetMyDevices, so |
- // it reduces network overhead. If this field is set "public_key" must not be |
- // set. NOTE: the case enable=true is not yet supported, so this option can |
- // only disable EasyUnlock for all devices. |
- optional bool apply_to_all = 3; |
- |
- // Information about the requesting device and its platform. |
- optional DeviceClassifier device_classifier = 4; |
-} |
- |
-message ToggleEasyUnlockResponse { |
- // empty for now. |
-} |