| // 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]; |
| } |