esp-idf/components/protocomm/proto/sec2.proto

49 wiersze
1.3 KiB
Protocol Buffer

syntax = "proto3";
import "constants.proto";
/* A message must be of type Cmd0 / Cmd1 / Resp0 / Resp1 */
enum Sec2MsgType {
S2Session_Command0 = 0;
S2Session_Response0 = 1;
S2Session_Command1 = 2;
S2Session_Response1 = 3;
}
// NOTE: Client: Host (shell, Android/iOS) | Device: ESP32-XX
/* Data structure of Session command0 packet */
message S2SessionCmd0 {
bytes client_username = 1;
bytes client_pubkey = 2;
}
/* Data structure of Session response0 packet */
message S2SessionResp0 {
Status status = 1;
bytes device_pubkey = 2;
bytes device_salt = 3;
}
/* Data structure of Session command1 packet */
message S2SessionCmd1 {
bytes client_proof = 1;
}
/* Data structure of Session response1 packet */
message S2SessionResp1 {
Status status = 1;
bytes device_proof = 2;
bytes device_nonce = 3;
}
/* Payload structure of session data */
message Sec2Payload {
Sec2MsgType msg = 1; /*!< Type of message */
oneof payload {
S2SessionCmd0 sc0 = 20; /*!< Payload data interpreted as Cmd0 */
S2SessionResp0 sr0 = 21; /*!< Payload data interpreted as Resp0 */
S2SessionCmd1 sc1 = 22; /*!< Payload data interpreted as Cmd1 */
S2SessionResp1 sr1 = 23; /*!< Payload data interpreted as Resp1 */
}
}