1syntax = "proto3"; 2 3import "constants.proto"; 4 5/* Data structure of Session command1 packet */ 6message SessionCmd1 { 7 bytes client_verify_data = 2; 8} 9 10/* Data structure of Session response1 packet */ 11message SessionResp1 { 12 Status status = 1; 13 bytes device_verify_data = 3; 14} 15 16/* Data structure of Session command0 packet */ 17message SessionCmd0 { 18 bytes client_pubkey = 1; 19} 20 21/* Data structure of Session response0 packet */ 22message SessionResp0 { 23 Status status = 1; 24 bytes device_pubkey = 2; 25 bytes device_random = 3; 26} 27 28/* A message must be of type Cmd0 / Cmd1 / Resp0 / Resp1 */ 29enum Sec1MsgType { 30 Session_Command0 = 0; 31 Session_Response0 = 1; 32 Session_Command1 = 2; 33 Session_Response1 = 3; 34} 35 36/* Payload structure of session data */ 37message Sec1Payload { 38 Sec1MsgType msg = 1; /*!< Type of message */ 39 oneof payload { 40 SessionCmd0 sc0 = 20; /*!< Payload data interpreted as Cmd0 */ 41 SessionResp0 sr0 = 21; /*!< Payload data interpreted as Resp0 */ 42 SessionCmd1 sc1 = 22; /*!< Payload data interpreted as Cmd1 */ 43 SessionResp1 sr1 = 23; /*!< Payload data interpreted as Resp1 */ 44 } 45} 46