// Copyright 2020 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

syntax = "proto2";

package securegcm;

import "securegcm.proto";

option optimize_for = LITE_RUNTIME;
option java_package = "com.google.security.cryptauth.lib.securegcm";
option java_outer_classname = "SecureGcmProximityAuthProto";
option objc_class_prefix = "SGCM";

// Message used when one device wants to initiate a Proximity Auth pairing with
// another device DEPRECATED. DO NOT USE
message CloudToDeviceProximityAuthPairing {
  // The name or description of the device that wants to pair with another
  // personal device of the user.  This is a string that may be shown to the
  // user or may be kept in logs.
  optional string initiating_device_name = 1;

  // The original device's Bluetooth address in human readable form
  // (e.g., <code>AA:BB:CC:DD:EE:FF</code>)
  optional string initiating_device_bt_address = 2;

  // A symmetric key that was generated by the original device.
  optional bytes ephemeral_symmetric_key = 3;

  // Optional additional metadata that the initiating device can choose to send.
  // Used for quick protocol iteration.
  optional bytes additional_metadata = 4;
}

// Message to push to eligible unlock devices so that they can contact the
// device to be unlocked. Used by FindEligibleUnlockDevicesRequest, with
// PayloadType = DEVICE_PROXIMITY_CALLBACK.
message DeviceProximityCallback {
  // Required. The bluetooth MAC address that should be contacted by the unlock
  // device.
  optional string callback_bluetooth_address = 1;

  // Required. The type of the device that triggered this callback to be sent.
  optional DeviceType source_device_type = 2;

  // The version of the setup protocol that the source device expects to use.
  optional int32 protocol_version = 3;
}
