// Copyright 2023 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 // // http://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; option optimize_for = LITE_RUNTIME; option java_package = "com.google.security.cryptauth.lib.securegcm"; option java_outer_classname = "SecureGcmProto"; option objc_class_prefix = "SGCM"; enum Type { 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; // DEPRECATED (can be re-used after Aug 2015) PROXIMITYAUTH_PAIRING = 10; // The kind of identity assertion generated by a "GCM V1" device (i.e., // an Android phone that has registered with us a public and a symmetric // key) 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; // Specialty (corp only) features LOGIN_NOTIFICATION = 101; } message GcmMetadata { required Type type = 1; optional int32 version = 2 [default = 0]; }