diff --git a/go/attest/attest.pb.go b/go/attest/attest.pb.go index 0e5d7fe6..a476f9ff 100644 --- a/go/attest/attest.pb.go +++ b/go/attest/attest.pb.go @@ -28,10 +28,10 @@ type ZAttestReqType int32 const ( ZAttestReqType_ATTEST_REQ_NONE ZAttestReqType = 0 - ZAttestReqType_ATTEST_REQ_CERT ZAttestReqType = 1 //EVE X.509 certificates - ZAttestReqType_ATTEST_REQ_NONCE ZAttestReqType = 2 //nonce request to Controller - ZAttestReqType_ATTEST_REQ_QUOTE ZAttestReqType = 3 //quote msg - ZAttestReqType_Z_ATTEST_REQ_TYPE_STORE_KEYS ZAttestReqType = 4 //to store device keys in Controller + ZAttestReqType_ATTEST_REQ_CERT ZAttestReqType = 1 // EVE X.509 certificates + ZAttestReqType_ATTEST_REQ_NONCE ZAttestReqType = 2 // nonce request to Controller + ZAttestReqType_ATTEST_REQ_QUOTE ZAttestReqType = 3 // quote msg from device + ZAttestReqType_Z_ATTEST_REQ_TYPE_STORE_KEYS ZAttestReqType = 4 // to store device keys in Controller ) // Enum value maps for ZAttestReqType. @@ -83,9 +83,9 @@ type ZAttestRespType int32 const ( ZAttestRespType_ATTEST_RESP_NONE ZAttestRespType = 0 - ZAttestRespType_ATTEST_RESP_CERT ZAttestRespType = 1 //response to cert msg - ZAttestRespType_ATTEST_RESP_NONCE ZAttestRespType = 2 //response to quote request - ZAttestRespType_ATTEST_RESP_QUOTE_RESP ZAttestRespType = 3 //response to quote msg + ZAttestRespType_ATTEST_RESP_CERT ZAttestRespType = 1 // response to cert msg + ZAttestRespType_ATTEST_RESP_NONCE ZAttestRespType = 2 // response to quote request + ZAttestRespType_ATTEST_RESP_QUOTE_RESP ZAttestRespType = 3 // response to quote msg ZAttestRespType_Z_ATTEST_RESP_TYPE_STORE_KEYS ZAttestRespType = 4 //response to Z_ATTEST_REQ_TYPE_STORE_KEYS ) @@ -191,8 +191,8 @@ type AttestGPSInput int32 const ( AttestGPSInput_ATTEST_GPS_INPUT_INVALID AttestGPSInput = 0 - AttestGPSInput_ATTEST_GPS_INPUT_PRESENT AttestGPSInput = 1 //GPS Coordinates are available - AttestGPSInput_ATTEST_GPS_INPUT_ABSENT AttestGPSInput = 2 //GPS Coordinates are not available/reliable + AttestGPSInput_ATTEST_GPS_INPUT_PRESENT AttestGPSInput = 1 // GPS Coordinates are available + AttestGPSInput_ATTEST_GPS_INPUT_ABSENT AttestGPSInput = 2 // GPS Coordinates are not available/reliable ) // Enum value maps for AttestGPSInput. @@ -289,10 +289,10 @@ type ZAttestResponseCode int32 const ( ZAttestResponseCode_Z_ATTEST_RESPONSE_CODE_INVALID ZAttestResponseCode = 0 - ZAttestResponseCode_Z_ATTEST_RESPONSE_CODE_SUCCESS ZAttestResponseCode = 1 //Attestation successful - ZAttestResponseCode_Z_ATTEST_RESPONSE_CODE_NONCE_MISMATCH ZAttestResponseCode = 2 //Attestation failed due to nonce mismatch - ZAttestResponseCode_Z_ATTEST_RESPONSE_CODE_NO_CERT_FOUND ZAttestResponseCode = 3 //There was no attestation certificate in Controller to validate attestation quote - ZAttestResponseCode_Z_ATTEST_RESPONSE_CODE_QUOTE_FAILED ZAttestResponseCode = 4 //Attestation failed due to quote mismatch + ZAttestResponseCode_Z_ATTEST_RESPONSE_CODE_SUCCESS ZAttestResponseCode = 1 // Attestation successful + ZAttestResponseCode_Z_ATTEST_RESPONSE_CODE_NONCE_MISMATCH ZAttestResponseCode = 2 // Attestation failed due to nonce mismatch + ZAttestResponseCode_Z_ATTEST_RESPONSE_CODE_NO_CERT_FOUND ZAttestResponseCode = 3 // There was no attestation certificate in Controller to validate attestation quote + ZAttestResponseCode_Z_ATTEST_RESPONSE_CODE_QUOTE_FAILED ZAttestResponseCode = 4 // Attestation failed due to quote mismatch ) // Enum value maps for ZAttestResponseCode. @@ -340,112 +340,112 @@ func (ZAttestResponseCode) EnumDescriptor() ([]byte, []int) { return file_attest_attest_proto_rawDescGZIP(), []int{5} } -type AttestVolumeKeyType int32 +type AttestKeyType int32 const ( - AttestVolumeKeyType_ATTEST_VOLUME_KEY_TYPE_INVALID AttestVolumeKeyType = 0 - AttestVolumeKeyType_ATTEST_VOLUME_KEY_TYPE_VSK AttestVolumeKeyType = 1 //Volume storage key, for /persist/vault + AttestKeyType_ATTEST_KEY_TYPE_INVALID AttestKeyType = 0 // Invalid key type + AttestKeyType_ATTEST_KEY_TYPE_VSK AttestKeyType = 1 // Volume Storage Key (VSK), for /persist/vault ) -// Enum value maps for AttestVolumeKeyType. +// Enum value maps for AttestKeyType. var ( - AttestVolumeKeyType_name = map[int32]string{ - 0: "ATTEST_VOLUME_KEY_TYPE_INVALID", - 1: "ATTEST_VOLUME_KEY_TYPE_VSK", + AttestKeyType_name = map[int32]string{ + 0: "ATTEST_KEY_TYPE_INVALID", + 1: "ATTEST_KEY_TYPE_VSK", } - AttestVolumeKeyType_value = map[string]int32{ - "ATTEST_VOLUME_KEY_TYPE_INVALID": 0, - "ATTEST_VOLUME_KEY_TYPE_VSK": 1, + AttestKeyType_value = map[string]int32{ + "ATTEST_KEY_TYPE_INVALID": 0, + "ATTEST_KEY_TYPE_VSK": 1, } ) -func (x AttestVolumeKeyType) Enum() *AttestVolumeKeyType { - p := new(AttestVolumeKeyType) +func (x AttestKeyType) Enum() *AttestKeyType { + p := new(AttestKeyType) *p = x return p } -func (x AttestVolumeKeyType) String() string { +func (x AttestKeyType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -func (AttestVolumeKeyType) Descriptor() protoreflect.EnumDescriptor { +func (AttestKeyType) Descriptor() protoreflect.EnumDescriptor { return file_attest_attest_proto_enumTypes[6].Descriptor() } -func (AttestVolumeKeyType) Type() protoreflect.EnumType { +func (AttestKeyType) Type() protoreflect.EnumType { return &file_attest_attest_proto_enumTypes[6] } -func (x AttestVolumeKeyType) Number() protoreflect.EnumNumber { +func (x AttestKeyType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } -// Deprecated: Use AttestVolumeKeyType.Descriptor instead. -func (AttestVolumeKeyType) EnumDescriptor() ([]byte, []int) { +// Deprecated: Use AttestKeyType.Descriptor instead. +func (AttestKeyType) EnumDescriptor() ([]byte, []int) { return file_attest_attest_proto_rawDescGZIP(), []int{6} } -type AttestStorageKeysResponseCode int32 +type AttestKeysResponseCode int32 const ( - AttestStorageKeysResponseCode_ATTEST_STORAGE_KEYS_RESPONSE_CODE_INVALID AttestStorageKeysResponseCode = 0 - AttestStorageKeysResponseCode_ATTEST_STORAGE_KEYS_RESPONSE_CODE_SUCCESS AttestStorageKeysResponseCode = 1 // key(s) successfully stored - AttestStorageKeysResponseCode_ATTEST_STORAGE_KEYS_RESPONSE_CODE_ITOKEN_MISMATCH AttestStorageKeysResponseCode = 2 // integrity_token was not valid, try after successful attestation + AttestKeysResponseCode_ATTEST_KEYS_RESPONSE_CODE_INVALID AttestKeysResponseCode = 0 + AttestKeysResponseCode_ATTEST_KEYS_RESPONSE_CODE_SUCCESS AttestKeysResponseCode = 1 // key(s) successfully stored + AttestKeysResponseCode_ATTEST_KEYS_RESPONSE_CODE_ITOKEN_MISMATCH AttestKeysResponseCode = 2 // integrity_token was not valid, try after successful attestation ) -// Enum value maps for AttestStorageKeysResponseCode. +// Enum value maps for AttestKeysResponseCode. var ( - AttestStorageKeysResponseCode_name = map[int32]string{ - 0: "ATTEST_STORAGE_KEYS_RESPONSE_CODE_INVALID", - 1: "ATTEST_STORAGE_KEYS_RESPONSE_CODE_SUCCESS", - 2: "ATTEST_STORAGE_KEYS_RESPONSE_CODE_ITOKEN_MISMATCH", + AttestKeysResponseCode_name = map[int32]string{ + 0: "ATTEST_KEYS_RESPONSE_CODE_INVALID", + 1: "ATTEST_KEYS_RESPONSE_CODE_SUCCESS", + 2: "ATTEST_KEYS_RESPONSE_CODE_ITOKEN_MISMATCH", } - AttestStorageKeysResponseCode_value = map[string]int32{ - "ATTEST_STORAGE_KEYS_RESPONSE_CODE_INVALID": 0, - "ATTEST_STORAGE_KEYS_RESPONSE_CODE_SUCCESS": 1, - "ATTEST_STORAGE_KEYS_RESPONSE_CODE_ITOKEN_MISMATCH": 2, + AttestKeysResponseCode_value = map[string]int32{ + "ATTEST_KEYS_RESPONSE_CODE_INVALID": 0, + "ATTEST_KEYS_RESPONSE_CODE_SUCCESS": 1, + "ATTEST_KEYS_RESPONSE_CODE_ITOKEN_MISMATCH": 2, } ) -func (x AttestStorageKeysResponseCode) Enum() *AttestStorageKeysResponseCode { - p := new(AttestStorageKeysResponseCode) +func (x AttestKeysResponseCode) Enum() *AttestKeysResponseCode { + p := new(AttestKeysResponseCode) *p = x return p } -func (x AttestStorageKeysResponseCode) String() string { +func (x AttestKeysResponseCode) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -func (AttestStorageKeysResponseCode) Descriptor() protoreflect.EnumDescriptor { +func (AttestKeysResponseCode) Descriptor() protoreflect.EnumDescriptor { return file_attest_attest_proto_enumTypes[7].Descriptor() } -func (AttestStorageKeysResponseCode) Type() protoreflect.EnumType { +func (AttestKeysResponseCode) Type() protoreflect.EnumType { return &file_attest_attest_proto_enumTypes[7] } -func (x AttestStorageKeysResponseCode) Number() protoreflect.EnumNumber { +func (x AttestKeysResponseCode) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } -// Deprecated: Use AttestStorageKeysResponseCode.Descriptor instead. -func (AttestStorageKeysResponseCode) EnumDescriptor() ([]byte, []int) { +// Deprecated: Use AttestKeysResponseCode.Descriptor instead. +func (AttestKeysResponseCode) EnumDescriptor() ([]byte, []int) { return file_attest_attest_proto_rawDescGZIP(), []int{7} } -//  This is the request payload for POST /api/v2/edgeDevice/id//attest -// The message is assumed to be protected by signing envelope +//  This is the payload for a POST request to /api/v2/edgeDevice/id//attest +// The message is assumed to be encapsulated by AuthContainer. type ZAttestReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ReqType ZAttestReqType `protobuf:"varint,1,opt,name=reqType,proto3,enum=org.lfedge.eve.attest.ZAttestReqType" json:"reqType,omitempty"` //type of the request - Quote *ZAttestQuote `protobuf:"bytes,2,opt,name=quote,proto3" json:"quote,omitempty"` //attestation quote msg - Certs []*certs.ZCert `protobuf:"bytes,3,rep,name=certs,proto3" json:"certs,omitempty"` //X509 certs in .PEM format, signed by device certificate - StorageKeys *AttestStorageKeys `protobuf:"bytes,4,opt,name=storage_keys,json=storageKeys,proto3" json:"storage_keys,omitempty"` //encrypted secrets to be saved by the Controller, like encrypted keys for the volume storage vaults + ReqType ZAttestReqType `protobuf:"varint,1,opt,name=reqType,proto3,enum=org.lfedge.eve.attest.ZAttestReqType" json:"reqType,omitempty"` // type of the request + Quote *ZAttestQuote `protobuf:"bytes,2,opt,name=quote,proto3" json:"quote,omitempty"` // attestation quote msg + Certs []*certs.ZCert `protobuf:"bytes,3,rep,name=certs,proto3" json:"certs,omitempty"` // X509 certs in .PEM format, signed by device certificate + StorageKeys *AttestKeys `protobuf:"bytes,4,opt,name=storage_keys,json=storageKeys,proto3" json:"storage_keys,omitempty"` // encrypted secrets to be saved by the Controller, like encrypted keys for the volume storage (vaults) } func (x *ZAttestReq) Reset() { @@ -501,24 +501,24 @@ func (x *ZAttestReq) GetCerts() []*certs.ZCert { return nil } -func (x *ZAttestReq) GetStorageKeys() *AttestStorageKeys { +func (x *ZAttestReq) GetStorageKeys() *AttestKeys { if x != nil { return x.StorageKeys } return nil } -//  This is the response payload for POST /api/v2/edgeDevice/id//attest -// The message is assumed to be protected by signing envelope +//  This is the payload for a POST response to /api/v2/edgeDevice/id//attest +// The message is assumed to be encapsulated by AuthContainer. type ZAttestResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - RespType ZAttestRespType `protobuf:"varint,1,opt,name=respType,proto3,enum=org.lfedge.eve.attest.ZAttestRespType" json:"respType,omitempty"` //type of the response - Nonce *ZAttestNonceResp `protobuf:"bytes,2,opt,name=nonce,proto3" json:"nonce,omitempty"` //nonce from Controller - QuoteResp *ZAttestQuoteResp `protobuf:"bytes,3,opt,name=quoteResp,proto3" json:"quoteResp,omitempty"` //attest quote response from Controller - StorageKeysResp *AttestStorageKeysResp `protobuf:"bytes,4,opt,name=storage_keys_resp,json=storageKeysResp,proto3" json:"storage_keys_resp,omitempty"` //attest storage_keys response from Controller + RespType ZAttestRespType `protobuf:"varint,1,opt,name=respType,proto3,enum=org.lfedge.eve.attest.ZAttestRespType" json:"respType,omitempty"` // type of the response + Nonce *ZAttestNonceResp `protobuf:"bytes,2,opt,name=nonce,proto3" json:"nonce,omitempty"` // nonce from Controller + QuoteResp *ZAttestQuoteResp `protobuf:"bytes,3,opt,name=quoteResp,proto3" json:"quoteResp,omitempty"` // attest quote response from Controller, this can includes the encrypted keys + StorageKeysResp *AttestKeysResp `protobuf:"bytes,4,opt,name=storage_keys_resp,json=storageKeysResp,proto3" json:"storage_keys_resp,omitempty"` // attest storage keys response from Controller } func (x *ZAttestResponse) Reset() { @@ -574,7 +574,7 @@ func (x *ZAttestResponse) GetQuoteResp() *ZAttestQuoteResp { return nil } -func (x *ZAttestResponse) GetStorageKeysResp() *AttestStorageKeysResp { +func (x *ZAttestResponse) GetStorageKeysResp() *AttestKeysResp { if x != nil { return x.StorageKeysResp } @@ -586,7 +586,7 @@ type ZAttestNonceResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Nonce []byte `protobuf:"bytes,1,opt,name=nonce,proto3" json:"nonce,omitempty"` //nonce to use in quote generation + Nonce []byte `protobuf:"bytes,1,opt,name=nonce,proto3" json:"nonce,omitempty"` // nonce to use in quote generation } func (x *ZAttestNonceResp) Reset() { @@ -908,9 +908,9 @@ type TpmPCRValue struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Index uint32 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"` //PCR index - HashAlgo TpmHashAlgo `protobuf:"varint,2,opt,name=hash_algo,json=hashAlgo,proto3,enum=org.lfedge.eve.attest.TpmHashAlgo" json:"hash_algo,omitempty"` //SHA1/SHA256/SHA384/SHA256 - Value []byte `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` //value in PCR + Index uint32 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"` // PCR index + HashAlgo TpmHashAlgo `protobuf:"varint,2,opt,name=hash_algo,json=hashAlgo,proto3,enum=org.lfedge.eve.attest.TpmHashAlgo" json:"hash_algo,omitempty"` // SHA1/SHA256/SHA384/SHA256 + Value []byte `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` // value in PCR } func (x *TpmPCRValue) Reset() { @@ -1055,17 +1055,17 @@ func (x *ZAttestQuote) GetGpsInfo() *AttestGPSCoordinates { return nil } -type AttestVolumeKey struct { +type AttestKey struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - KeyType AttestVolumeKeyType `protobuf:"varint,1,opt,name=key_type,json=keyType,proto3,enum=org.lfedge.eve.attest.AttestVolumeKeyType" json:"key_type,omitempty"` - Key []byte `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` + KeyType AttestKeyType `protobuf:"varint,1,opt,name=key_type,json=keyType,proto3,enum=org.lfedge.eve.attest.AttestKeyType" json:"key_type,omitempty"` + Key []byte `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` } -func (x *AttestVolumeKey) Reset() { - *x = AttestVolumeKey{} +func (x *AttestKey) Reset() { + *x = AttestKey{} if protoimpl.UnsafeEnabled { mi := &file_attest_attest_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1073,13 +1073,13 @@ func (x *AttestVolumeKey) Reset() { } } -func (x *AttestVolumeKey) String() string { +func (x *AttestKey) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AttestVolumeKey) ProtoMessage() {} +func (*AttestKey) ProtoMessage() {} -func (x *AttestVolumeKey) ProtoReflect() protoreflect.Message { +func (x *AttestKey) ProtoReflect() protoreflect.Message { mi := &file_attest_attest_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1091,25 +1091,26 @@ func (x *AttestVolumeKey) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use AttestVolumeKey.ProtoReflect.Descriptor instead. -func (*AttestVolumeKey) Descriptor() ([]byte, []int) { +// Deprecated: Use AttestKey.ProtoReflect.Descriptor instead. +func (*AttestKey) Descriptor() ([]byte, []int) { return file_attest_attest_proto_rawDescGZIP(), []int{9} } -func (x *AttestVolumeKey) GetKeyType() AttestVolumeKeyType { +func (x *AttestKey) GetKeyType() AttestKeyType { if x != nil { return x.KeyType } - return AttestVolumeKeyType_ATTEST_VOLUME_KEY_TYPE_INVALID + return AttestKeyType_ATTEST_KEY_TYPE_INVALID } -func (x *AttestVolumeKey) GetKey() []byte { +func (x *AttestKey) GetKey() []byte { if x != nil { return x.Key } return nil } +// This is part of the ZAttestResponse, sent by the Controller to the device. type ZAttestQuoteResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1118,7 +1119,7 @@ type ZAttestQuoteResp struct { Response ZAttestResponseCode `protobuf:"varint,1,opt,name=response,proto3,enum=org.lfedge.eve.attest.ZAttestResponseCode" json:"response,omitempty"` // Result of quote validation IntegrityToken []byte `protobuf:"bytes,2,opt,name=integrity_token,json=integrityToken,proto3" json:"integrity_token,omitempty"` // Valid if response is ATTEST_RESPONSE_SUCCESS, contains integrity token for device to // Cache and present in the next config request - Keys []*AttestVolumeKey `protobuf:"bytes,3,rep,name=keys,proto3" json:"keys,omitempty"` // Valid if response is ATTEST_RESPONSE_SUCCESS, contains keys of type KeyType to unlock + StorageKeys []*AttestKey `protobuf:"bytes,3,rep,name=storage_keys,json=storageKeys,proto3" json:"storage_keys,omitempty"` // Valid if response is ATTEST_RESPONSE_SUCCESS, contain keys (received encrypted } func (x *ZAttestQuoteResp) Reset() { @@ -1167,25 +1168,25 @@ func (x *ZAttestQuoteResp) GetIntegrityToken() []byte { return nil } -func (x *ZAttestQuoteResp) GetKeys() []*AttestVolumeKey { +func (x *ZAttestQuoteResp) GetStorageKeys() []*AttestKey { if x != nil { - return x.Keys + return x.StorageKeys } return nil } // Encrypted data to save and retrievable post successful attestation -type AttestStorageKeys struct { +type AttestKeys struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - IntegrityToken []byte `protobuf:"bytes,1,opt,name=integrity_token,json=integrityToken,proto3" json:"integrity_token,omitempty"` // integrity_token provided by controller in the last attestation cycle - Keys []*AttestVolumeKey `protobuf:"bytes,2,rep,name=keys,proto3" json:"keys,omitempty"` // Encrypted keys for volume vault(s) + IntegrityToken []byte `protobuf:"bytes,1,opt,name=integrity_token,json=integrityToken,proto3" json:"integrity_token,omitempty"` // integrity_token provided by controller in the last attestation cycle + Keys []*AttestKey `protobuf:"bytes,2,rep,name=keys,proto3" json:"keys,omitempty"` // Encrypted keys for volume vault(s) } -func (x *AttestStorageKeys) Reset() { - *x = AttestStorageKeys{} +func (x *AttestKeys) Reset() { + *x = AttestKeys{} if protoimpl.UnsafeEnabled { mi := &file_attest_attest_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1193,13 +1194,13 @@ func (x *AttestStorageKeys) Reset() { } } -func (x *AttestStorageKeys) String() string { +func (x *AttestKeys) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AttestStorageKeys) ProtoMessage() {} +func (*AttestKeys) ProtoMessage() {} -func (x *AttestStorageKeys) ProtoReflect() protoreflect.Message { +func (x *AttestKeys) ProtoReflect() protoreflect.Message { mi := &file_attest_attest_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1211,35 +1212,35 @@ func (x *AttestStorageKeys) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use AttestStorageKeys.ProtoReflect.Descriptor instead. -func (*AttestStorageKeys) Descriptor() ([]byte, []int) { +// Deprecated: Use AttestKeys.ProtoReflect.Descriptor instead. +func (*AttestKeys) Descriptor() ([]byte, []int) { return file_attest_attest_proto_rawDescGZIP(), []int{11} } -func (x *AttestStorageKeys) GetIntegrityToken() []byte { +func (x *AttestKeys) GetIntegrityToken() []byte { if x != nil { return x.IntegrityToken } return nil } -func (x *AttestStorageKeys) GetKeys() []*AttestVolumeKey { +func (x *AttestKeys) GetKeys() []*AttestKey { if x != nil { return x.Keys } return nil } -type AttestStorageKeysResp struct { +type AttestKeysResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Response AttestStorageKeysResponseCode `protobuf:"varint,1,opt,name=response,proto3,enum=org.lfedge.eve.attest.AttestStorageKeysResponseCode" json:"response,omitempty"` //Result of processing Z_ATTEST_REQ_TYPE_STORE_KEYS in Controller + Response AttestKeysResponseCode `protobuf:"varint,1,opt,name=response,proto3,enum=org.lfedge.eve.attest.AttestKeysResponseCode" json:"response,omitempty"` // Result of processing Z_ATTEST_REQ_TYPE_STORE_KEYS in Controller } -func (x *AttestStorageKeysResp) Reset() { - *x = AttestStorageKeysResp{} +func (x *AttestKeysResp) Reset() { + *x = AttestKeysResp{} if protoimpl.UnsafeEnabled { mi := &file_attest_attest_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1247,13 +1248,13 @@ func (x *AttestStorageKeysResp) Reset() { } } -func (x *AttestStorageKeysResp) String() string { +func (x *AttestKeysResp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AttestStorageKeysResp) ProtoMessage() {} +func (*AttestKeysResp) ProtoMessage() {} -func (x *AttestStorageKeysResp) ProtoReflect() protoreflect.Message { +func (x *AttestKeysResp) ProtoReflect() protoreflect.Message { mi := &file_attest_attest_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1265,29 +1266,29 @@ func (x *AttestStorageKeysResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use AttestStorageKeysResp.ProtoReflect.Descriptor instead. -func (*AttestStorageKeysResp) Descriptor() ([]byte, []int) { +// Deprecated: Use AttestKeysResp.ProtoReflect.Descriptor instead. +func (*AttestKeysResp) Descriptor() ([]byte, []int) { return file_attest_attest_proto_rawDescGZIP(), []int{12} } -func (x *AttestStorageKeysResp) GetResponse() AttestStorageKeysResponseCode { +func (x *AttestKeysResp) GetResponse() AttestKeysResponseCode { if x != nil { return x.Response } - return AttestStorageKeysResponseCode_ATTEST_STORAGE_KEYS_RESPONSE_CODE_INVALID + return AttestKeysResponseCode_ATTEST_KEYS_RESPONSE_CODE_INVALID } -type AttestVolumeKeyData struct { +type AttestKeyData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - EncryptedKey []byte `protobuf:"bytes,1,opt,name=encrypted_key,json=encryptedKey,proto3" json:"encrypted_key,omitempty"` //key in encrypted format - DigestSha256 []byte `protobuf:"bytes,2,opt,name=digest_sha256,json=digestSha256,proto3" json:"digest_sha256,omitempty"` //SHA 256 digest of the key + EncryptedKey []byte `protobuf:"bytes,1,opt,name=encrypted_key,json=encryptedKey,proto3" json:"encrypted_key,omitempty"` // key in encrypted format (encrypted with device wrapping key or KEK) + DigestSha256 []byte `protobuf:"bytes,2,opt,name=digest_sha256,json=digestSha256,proto3" json:"digest_sha256,omitempty"` // SHA256 digest of the key } -func (x *AttestVolumeKeyData) Reset() { - *x = AttestVolumeKeyData{} +func (x *AttestKeyData) Reset() { + *x = AttestKeyData{} if protoimpl.UnsafeEnabled { mi := &file_attest_attest_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1295,13 +1296,13 @@ func (x *AttestVolumeKeyData) Reset() { } } -func (x *AttestVolumeKeyData) String() string { +func (x *AttestKeyData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AttestVolumeKeyData) ProtoMessage() {} +func (*AttestKeyData) ProtoMessage() {} -func (x *AttestVolumeKeyData) ProtoReflect() protoreflect.Message { +func (x *AttestKeyData) ProtoReflect() protoreflect.Message { mi := &file_attest_attest_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1313,19 +1314,19 @@ func (x *AttestVolumeKeyData) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use AttestVolumeKeyData.ProtoReflect.Descriptor instead. -func (*AttestVolumeKeyData) Descriptor() ([]byte, []int) { +// Deprecated: Use AttestKeyData.ProtoReflect.Descriptor instead. +func (*AttestKeyData) Descriptor() ([]byte, []int) { return file_attest_attest_proto_rawDescGZIP(), []int{13} } -func (x *AttestVolumeKeyData) GetEncryptedKey() []byte { +func (x *AttestKeyData) GetEncryptedKey() []byte { if x != nil { return x.EncryptedKey } return nil } -func (x *AttestVolumeKeyData) GetDigestSha256() []byte { +func (x *AttestKeyData) GetDigestSha256() []byte { if x != nil { return x.DigestSha256 } @@ -1339,7 +1340,7 @@ var file_attest_attest_proto_rawDesc = []byte{ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x15, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x63, 0x65, 0x72, 0x74, 0x73, 0x2f, 0x63, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, - 0x88, 0x02, 0x0a, 0x0a, 0x5a, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x3f, + 0x81, 0x02, 0x0a, 0x0a, 0x5a, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x3f, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x5a, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x52, @@ -1350,221 +1351,215 @@ var file_attest_attest_proto_rawDesc = []byte{ 0x6f, 0x74, 0x65, 0x52, 0x05, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x12, 0x31, 0x0a, 0x05, 0x63, 0x65, 0x72, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x73, - 0x2e, 0x5a, 0x43, 0x65, 0x72, 0x74, 0x52, 0x05, 0x63, 0x65, 0x72, 0x74, 0x73, 0x12, 0x4b, 0x0a, + 0x2e, 0x5a, 0x43, 0x65, 0x72, 0x74, 0x52, 0x05, 0x63, 0x65, 0x72, 0x74, 0x73, 0x12, 0x44, 0x0a, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, + 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x74, 0x74, 0x65, - 0x73, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x0b, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x22, 0xb5, 0x02, 0x0a, 0x0f, 0x5a, - 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, - 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x26, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, - 0x65, 0x2e, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x5a, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x3d, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, - 0x76, 0x65, 0x2e, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x5a, 0x41, 0x74, 0x74, 0x65, 0x73, - 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, - 0x65, 0x12, 0x45, 0x0a, 0x09, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, - 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x5a, 0x41, 0x74, - 0x74, 0x65, 0x73, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x52, 0x09, 0x71, - 0x75, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x58, 0x0a, 0x11, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, - 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x74, 0x74, 0x65, - 0x73, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x52, 0x0f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x28, 0x0a, 0x10, 0x5a, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x4e, 0x6f, 0x6e, - 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x22, 0x69, 0x0a, 0x0e, - 0x54, 0x70, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x3f, - 0x0a, 0x09, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, - 0x76, 0x65, 0x2e, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x70, 0x6d, 0x48, 0x61, 0x73, - 0x68, 0x41, 0x6c, 0x67, 0x6f, 0x52, 0x08, 0x68, 0x61, 0x73, 0x68, 0x41, 0x6c, 0x67, 0x6f, 0x12, - 0x16, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x22, 0xa7, 0x02, 0x0a, 0x10, 0x54, 0x70, 0x6d, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x14, 0x0a, 0x05, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x63, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x63, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, - 0x1d, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3d, - 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, - 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x70, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, - 0x69, 0x67, 0x65, 0x73, 0x74, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, - 0x11, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x69, 0x6e, 0x61, - 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x44, - 0x61, 0x74, 0x61, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x2a, 0x0a, 0x11, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x2a, 0x0a, 0x11, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x62, - 0x69, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x53, 0x69, 0x7a, - 0x65, 0x22, 0x94, 0x01, 0x0a, 0x14, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x47, 0x50, 0x53, 0x43, - 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x67, 0x70, - 0x73, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, + 0x73, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4b, + 0x65, 0x79, 0x73, 0x22, 0xae, 0x02, 0x0a, 0x0f, 0x5a, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x72, 0x67, 0x2e, + 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x61, 0x74, 0x74, 0x65, 0x73, + 0x74, 0x2e, 0x5a, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3d, 0x0a, 0x05, 0x6e, + 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x72, 0x67, + 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x61, 0x74, 0x74, 0x65, + 0x73, 0x74, 0x2e, 0x5a, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x45, 0x0a, 0x09, 0x71, 0x75, + 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x61, - 0x74, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x47, 0x50, 0x53, 0x49, - 0x6e, 0x70, 0x75, 0x74, 0x52, 0x08, 0x67, 0x70, 0x73, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x1a, - 0x0a, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, - 0x52, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x6f, - 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6c, - 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x22, 0x7a, 0x0a, 0x11, 0x41, 0x74, 0x74, 0x65, - 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4b, 0x0a, - 0x0c, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, - 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x74, 0x74, 0x65, - 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x7a, 0x0a, 0x0b, 0x54, 0x70, 0x6d, 0x50, 0x43, 0x52, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3f, 0x0a, 0x09, 0x68, 0x61, 0x73, - 0x68, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, + 0x74, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x5a, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x51, 0x75, 0x6f, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x52, 0x09, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x51, 0x0a, 0x11, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6b, 0x65, 0x79, + 0x73, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x61, 0x74, - 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x70, 0x6d, 0x48, 0x61, 0x73, 0x68, 0x41, 0x6c, 0x67, 0x6f, - 0x52, 0x08, 0x68, 0x61, 0x73, 0x68, 0x41, 0x6c, 0x67, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0xe3, 0x02, 0x0a, 0x0c, 0x5a, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x51, 0x75, 0x6f, 0x74, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, - 0x41, 0x0a, 0x0a, 0x70, 0x63, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, - 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x70, 0x6d, 0x50, - 0x43, 0x52, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x70, 0x63, 0x72, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x6f, 0x67, 0x18, - 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, + 0x74, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x52, 0x0f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x28, 0x0a, 0x10, 0x5a, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x4e, + 0x6f, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x22, 0x69, + 0x0a, 0x0e, 0x54, 0x70, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, + 0x12, 0x3f, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, + 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x70, 0x6d, 0x48, + 0x61, 0x73, 0x68, 0x41, 0x6c, 0x67, 0x6f, 0x52, 0x08, 0x68, 0x61, 0x73, 0x68, 0x41, 0x6c, 0x67, + 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x22, 0xa7, 0x02, 0x0a, 0x10, 0x54, 0x70, + 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x63, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x63, 0x72, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x3d, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, + 0x65, 0x2e, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x70, 0x6d, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, + 0x2a, 0x0a, 0x11, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x69, + 0x6e, 0x61, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x44, 0x61, 0x74, 0x61, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x2a, 0x0a, 0x11, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, + 0x61, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x2a, 0x0a, 0x11, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x5f, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x53, + 0x69, 0x7a, 0x65, 0x22, 0x94, 0x01, 0x0a, 0x14, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x47, 0x50, + 0x53, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x09, + 0x67, 0x70, 0x73, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, + 0x2e, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x47, 0x50, + 0x53, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x08, 0x67, 0x70, 0x73, 0x49, 0x6e, 0x70, 0x75, 0x74, + 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, + 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x22, 0x7a, 0x0a, 0x11, 0x41, 0x74, + 0x74, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x4b, 0x0a, 0x0c, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, + 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x74, + 0x74, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x0b, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x7a, 0x0a, 0x0b, 0x54, 0x70, 0x6d, 0x50, 0x43, 0x52, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3f, 0x0a, 0x09, 0x68, + 0x61, 0x73, 0x68, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, + 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, + 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x70, 0x6d, 0x48, 0x61, 0x73, 0x68, 0x41, 0x6c, + 0x67, 0x6f, 0x52, 0x08, 0x68, 0x61, 0x73, 0x68, 0x41, 0x6c, 0x67, 0x6f, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0xe3, 0x02, 0x0a, 0x0c, 0x5a, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x51, 0x75, + 0x6f, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x44, 0x61, 0x74, + 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x12, 0x41, 0x0a, 0x0a, 0x70, 0x63, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x70, - 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x12, 0x44, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x72, 0x67, - 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x61, 0x74, 0x74, 0x65, - 0x73, 0x74, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x46, - 0x0a, 0x08, 0x67, 0x70, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, - 0x65, 0x2e, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x47, - 0x50, 0x53, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x52, 0x07, 0x67, - 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x6a, 0x0a, 0x0f, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x45, 0x0a, 0x08, 0x6b, 0x65, 0x79, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x72, - 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x61, 0x74, 0x74, - 0x65, 0x73, 0x74, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x22, 0xbf, 0x01, 0x0a, 0x10, 0x5a, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x51, 0x75, - 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x72, 0x67, 0x2e, - 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x61, 0x74, 0x74, 0x65, 0x73, - 0x74, 0x2e, 0x5a, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, - 0x69, 0x74, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x3a, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, - 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x41, - 0x74, 0x74, 0x65, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x04, - 0x6b, 0x65, 0x79, 0x73, 0x22, 0x78, 0x0a, 0x11, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x53, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x74, - 0x65, 0x67, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x12, 0x3a, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, - 0x65, 0x2e, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x56, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x22, 0x69, - 0x0a, 0x15, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4b, - 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x50, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6f, 0x72, 0x67, 0x2e, - 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x61, 0x74, 0x74, 0x65, 0x73, - 0x74, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4b, - 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, - 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5f, 0x0a, 0x13, 0x41, 0x74, 0x74, - 0x65, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4b, 0x65, 0x79, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x6b, 0x65, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, - 0x65, 0x64, 0x4b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x5f, - 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x64, 0x69, - 0x67, 0x65, 0x73, 0x74, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x2a, 0x88, 0x01, 0x0a, 0x0e, 0x5a, - 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x54, 0x79, 0x70, 0x65, 0x12, 0x13, 0x0a, - 0x0f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x52, 0x45, 0x51, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, - 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x52, 0x45, 0x51, - 0x5f, 0x43, 0x45, 0x52, 0x54, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x41, 0x54, 0x54, 0x45, 0x53, - 0x54, 0x5f, 0x52, 0x45, 0x51, 0x5f, 0x4e, 0x4f, 0x4e, 0x43, 0x45, 0x10, 0x02, 0x12, 0x14, 0x0a, - 0x10, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x52, 0x45, 0x51, 0x5f, 0x51, 0x55, 0x4f, 0x54, - 0x45, 0x10, 0x03, 0x12, 0x20, 0x0a, 0x1c, 0x5a, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, - 0x52, 0x45, 0x51, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x4f, 0x52, 0x45, 0x5f, 0x4b, - 0x45, 0x59, 0x53, 0x10, 0x04, 0x2a, 0x93, 0x01, 0x0a, 0x0f, 0x5a, 0x41, 0x74, 0x74, 0x65, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x41, 0x54, 0x54, - 0x45, 0x53, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x50, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, - 0x14, 0x0a, 0x10, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x50, 0x5f, 0x43, - 0x45, 0x52, 0x54, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, - 0x52, 0x45, 0x53, 0x50, 0x5f, 0x4e, 0x4f, 0x4e, 0x43, 0x45, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, - 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x50, 0x5f, 0x51, 0x55, 0x4f, 0x54, - 0x45, 0x5f, 0x52, 0x45, 0x53, 0x50, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x5a, 0x5f, 0x41, 0x54, - 0x54, 0x45, 0x53, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, - 0x54, 0x4f, 0x52, 0x45, 0x5f, 0x4b, 0x45, 0x59, 0x53, 0x10, 0x04, 0x2a, 0x74, 0x0a, 0x0b, 0x54, - 0x70, 0x6d, 0x48, 0x61, 0x73, 0x68, 0x41, 0x6c, 0x67, 0x6f, 0x12, 0x19, 0x0a, 0x15, 0x54, 0x50, - 0x4d, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x41, 0x4c, 0x47, 0x4f, 0x5f, 0x49, 0x4e, 0x56, 0x41, - 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x50, 0x4d, 0x5f, 0x48, 0x41, 0x53, - 0x48, 0x5f, 0x41, 0x4c, 0x47, 0x4f, 0x5f, 0x53, 0x48, 0x41, 0x31, 0x10, 0x01, 0x12, 0x18, 0x0a, - 0x14, 0x54, 0x50, 0x4d, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x41, 0x4c, 0x47, 0x4f, 0x5f, 0x53, - 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x50, 0x4d, 0x5f, 0x48, - 0x41, 0x53, 0x48, 0x5f, 0x41, 0x4c, 0x47, 0x4f, 0x5f, 0x53, 0x48, 0x41, 0x35, 0x31, 0x32, 0x10, - 0x03, 0x2a, 0x69, 0x0a, 0x0e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x47, 0x50, 0x53, 0x49, 0x6e, - 0x70, 0x75, 0x74, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x47, 0x50, - 0x53, 0x5f, 0x49, 0x4e, 0x50, 0x55, 0x54, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, - 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x47, 0x50, 0x53, 0x5f, - 0x49, 0x4e, 0x50, 0x55, 0x54, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, - 0x1b, 0x0a, 0x17, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x47, 0x50, 0x53, 0x5f, 0x49, 0x4e, - 0x50, 0x55, 0x54, 0x5f, 0x41, 0x42, 0x53, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x2a, 0x73, 0x0a, 0x11, - 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x56, 0x45, 0x52, 0x53, - 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, - 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x56, 0x45, 0x52, - 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x10, 0x01, 0x12, - 0x20, 0x0a, 0x1c, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, - 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x52, 0x4d, 0x57, 0x41, 0x52, 0x45, 0x10, - 0x02, 0x2a, 0xdb, 0x01, 0x0a, 0x13, 0x5a, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x1e, 0x5a, 0x5f, 0x41, - 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x5f, 0x43, - 0x4f, 0x44, 0x45, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x22, 0x0a, - 0x1e, 0x5a, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, - 0x53, 0x45, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, - 0x01, 0x12, 0x29, 0x0a, 0x25, 0x5a, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x52, 0x45, - 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x43, - 0x45, 0x5f, 0x4d, 0x49, 0x53, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x10, 0x02, 0x12, 0x28, 0x0a, 0x24, - 0x5a, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, - 0x45, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x4e, 0x4f, 0x5f, 0x43, 0x45, 0x52, 0x54, 0x5f, 0x46, - 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x03, 0x12, 0x27, 0x0a, 0x23, 0x5a, 0x5f, 0x41, 0x54, 0x54, 0x45, - 0x53, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x5f, 0x43, 0x4f, 0x44, 0x45, - 0x5f, 0x51, 0x55, 0x4f, 0x54, 0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x2a, - 0x59, 0x0a, 0x13, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4b, - 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, - 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x54, - 0x54, 0x45, 0x53, 0x54, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x4b, 0x45, 0x59, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x53, 0x4b, 0x10, 0x01, 0x2a, 0xb4, 0x01, 0x0a, 0x1d, 0x41, - 0x74, 0x74, 0x65, 0x73, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x2d, 0x0a, 0x29, - 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x4b, - 0x45, 0x59, 0x53, 0x5f, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x5f, 0x43, 0x4f, 0x44, - 0x45, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x2d, 0x0a, 0x29, 0x41, - 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x4b, 0x45, - 0x59, 0x53, 0x5f, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x5f, 0x43, 0x4f, 0x44, 0x45, - 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x35, 0x0a, 0x31, 0x41, 0x54, - 0x54, 0x45, 0x53, 0x54, 0x5f, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x4b, 0x45, 0x59, - 0x53, 0x5f, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, - 0x49, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x5f, 0x4d, 0x49, 0x53, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x10, - 0x02, 0x42, 0x3d, 0x0a, 0x15, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, - 0x65, 0x76, 0x65, 0x2e, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x5a, 0x24, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x66, 0x2d, 0x65, 0x64, 0x67, 0x65, 0x2f, 0x65, - 0x76, 0x65, 0x2d, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6d, 0x50, 0x43, 0x52, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x70, 0x63, 0x72, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x6f, + 0x67, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, + 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x2e, + 0x54, 0x70, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x12, 0x44, 0x0a, 0x08, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, + 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x61, 0x74, + 0x74, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x46, 0x0a, 0x08, 0x67, 0x70, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, + 0x65, 0x76, 0x65, 0x2e, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, + 0x74, 0x47, 0x50, 0x53, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x52, + 0x07, 0x67, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x5e, 0x0a, 0x09, 0x41, 0x74, 0x74, 0x65, + 0x73, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x3f, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, + 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x2e, + 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x6b, + 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0xc8, 0x01, 0x0a, 0x10, 0x5a, 0x41, 0x74, + 0x74, 0x65, 0x73, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, + 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2a, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, + 0x2e, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x5a, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x69, + 0x74, 0x79, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, + 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x43, + 0x0a, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, + 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x74, 0x74, + 0x65, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4b, + 0x65, 0x79, 0x73, 0x22, 0x6b, 0x0a, 0x0a, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x4b, 0x65, 0x79, + 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x69, 0x6e, 0x74, 0x65, + 0x67, 0x72, 0x69, 0x74, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x34, 0x0a, 0x04, 0x6b, 0x65, + 0x79, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, + 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, + 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, + 0x22, 0x5b, 0x0a, 0x0e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x49, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, + 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x74, 0x74, + 0x65, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, + 0x6f, 0x64, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x59, 0x0a, + 0x0d, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, + 0x0a, 0x0d, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, + 0x4b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x68, + 0x61, 0x32, 0x35, 0x36, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x64, 0x69, 0x67, 0x65, + 0x73, 0x74, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x2a, 0x88, 0x01, 0x0a, 0x0e, 0x5a, 0x41, 0x74, + 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x54, 0x79, 0x70, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x41, + 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x52, 0x45, 0x51, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, + 0x12, 0x13, 0x0a, 0x0f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x52, 0x45, 0x51, 0x5f, 0x43, + 0x45, 0x52, 0x54, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, + 0x52, 0x45, 0x51, 0x5f, 0x4e, 0x4f, 0x4e, 0x43, 0x45, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x41, + 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x52, 0x45, 0x51, 0x5f, 0x51, 0x55, 0x4f, 0x54, 0x45, 0x10, + 0x03, 0x12, 0x20, 0x0a, 0x1c, 0x5a, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x52, 0x45, + 0x51, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x4f, 0x52, 0x45, 0x5f, 0x4b, 0x45, 0x59, + 0x53, 0x10, 0x04, 0x2a, 0x93, 0x01, 0x0a, 0x0f, 0x5a, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x41, 0x54, 0x54, 0x45, 0x53, + 0x54, 0x5f, 0x52, 0x45, 0x53, 0x50, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x14, 0x0a, + 0x10, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x50, 0x5f, 0x43, 0x45, 0x52, + 0x54, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x52, 0x45, + 0x53, 0x50, 0x5f, 0x4e, 0x4f, 0x4e, 0x43, 0x45, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x54, + 0x54, 0x45, 0x53, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x50, 0x5f, 0x51, 0x55, 0x4f, 0x54, 0x45, 0x5f, + 0x52, 0x45, 0x53, 0x50, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x5a, 0x5f, 0x41, 0x54, 0x54, 0x45, + 0x53, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x4f, + 0x52, 0x45, 0x5f, 0x4b, 0x45, 0x59, 0x53, 0x10, 0x04, 0x2a, 0x74, 0x0a, 0x0b, 0x54, 0x70, 0x6d, + 0x48, 0x61, 0x73, 0x68, 0x41, 0x6c, 0x67, 0x6f, 0x12, 0x19, 0x0a, 0x15, 0x54, 0x50, 0x4d, 0x5f, + 0x48, 0x41, 0x53, 0x48, 0x5f, 0x41, 0x4c, 0x47, 0x4f, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, + 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x50, 0x4d, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, + 0x41, 0x4c, 0x47, 0x4f, 0x5f, 0x53, 0x48, 0x41, 0x31, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x54, + 0x50, 0x4d, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x41, 0x4c, 0x47, 0x4f, 0x5f, 0x53, 0x48, 0x41, + 0x32, 0x35, 0x36, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x50, 0x4d, 0x5f, 0x48, 0x41, 0x53, + 0x48, 0x5f, 0x41, 0x4c, 0x47, 0x4f, 0x5f, 0x53, 0x48, 0x41, 0x35, 0x31, 0x32, 0x10, 0x03, 0x2a, + 0x69, 0x0a, 0x0e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x47, 0x50, 0x53, 0x49, 0x6e, 0x70, 0x75, + 0x74, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x47, 0x50, 0x53, 0x5f, + 0x49, 0x4e, 0x50, 0x55, 0x54, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, + 0x1c, 0x0a, 0x18, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x47, 0x50, 0x53, 0x5f, 0x49, 0x4e, + 0x50, 0x55, 0x54, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x1b, 0x0a, + 0x17, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x47, 0x50, 0x53, 0x5f, 0x49, 0x4e, 0x50, 0x55, + 0x54, 0x5f, 0x41, 0x42, 0x53, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x2a, 0x73, 0x0a, 0x11, 0x41, 0x74, + 0x74, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1f, 0x0a, 0x1b, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, + 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, + 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, + 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x56, 0x45, 0x10, 0x01, 0x12, 0x20, 0x0a, + 0x1c, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x52, 0x4d, 0x57, 0x41, 0x52, 0x45, 0x10, 0x02, 0x2a, + 0xdb, 0x01, 0x0a, 0x13, 0x5a, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x1e, 0x5a, 0x5f, 0x41, 0x54, 0x54, + 0x45, 0x53, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x5f, 0x43, 0x4f, 0x44, + 0x45, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x5a, + 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, + 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, + 0x29, 0x0a, 0x25, 0x5a, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x50, + 0x4f, 0x4e, 0x53, 0x45, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x43, 0x45, 0x5f, + 0x4d, 0x49, 0x53, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x10, 0x02, 0x12, 0x28, 0x0a, 0x24, 0x5a, 0x5f, + 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x5f, + 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x4e, 0x4f, 0x5f, 0x43, 0x45, 0x52, 0x54, 0x5f, 0x46, 0x4f, 0x55, + 0x4e, 0x44, 0x10, 0x03, 0x12, 0x27, 0x0a, 0x23, 0x5a, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, + 0x5f, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x51, + 0x55, 0x4f, 0x54, 0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x2a, 0x45, 0x0a, + 0x0d, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, + 0x0a, 0x17, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x41, + 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, + 0x53, 0x4b, 0x10, 0x01, 0x2a, 0x95, 0x01, 0x0a, 0x16, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x4b, + 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x25, 0x0a, 0x21, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x4b, 0x45, 0x59, 0x53, 0x5f, 0x52, + 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x49, 0x4e, 0x56, + 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, + 0x5f, 0x4b, 0x45, 0x59, 0x53, 0x5f, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x5f, 0x43, + 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x2d, 0x0a, + 0x29, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x4b, 0x45, 0x59, 0x53, 0x5f, 0x52, 0x45, 0x53, + 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x49, 0x54, 0x4f, 0x4b, 0x45, + 0x4e, 0x5f, 0x4d, 0x49, 0x53, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x10, 0x02, 0x42, 0x3d, 0x0a, 0x15, + 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x61, + 0x74, 0x74, 0x65, 0x73, 0x74, 0x5a, 0x24, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x6c, 0x66, 0x2d, 0x65, 0x64, 0x67, 0x65, 0x2f, 0x65, 0x76, 0x65, 0x2d, 0x61, 0x70, + 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -1582,39 +1577,39 @@ func file_attest_attest_proto_rawDescGZIP() []byte { var file_attest_attest_proto_enumTypes = make([]protoimpl.EnumInfo, 8) var file_attest_attest_proto_msgTypes = make([]protoimpl.MessageInfo, 14) var file_attest_attest_proto_goTypes = []interface{}{ - (ZAttestReqType)(0), // 0: org.lfedge.eve.attest.ZAttestReqType - (ZAttestRespType)(0), // 1: org.lfedge.eve.attest.ZAttestRespType - (TpmHashAlgo)(0), // 2: org.lfedge.eve.attest.TpmHashAlgo - (AttestGPSInput)(0), // 3: org.lfedge.eve.attest.AttestGPSInput - (AttestVersionType)(0), // 4: org.lfedge.eve.attest.AttestVersionType - (ZAttestResponseCode)(0), // 5: org.lfedge.eve.attest.ZAttestResponseCode - (AttestVolumeKeyType)(0), // 6: org.lfedge.eve.attest.AttestVolumeKeyType - (AttestStorageKeysResponseCode)(0), // 7: org.lfedge.eve.attest.AttestStorageKeysResponseCode - (*ZAttestReq)(nil), // 8: org.lfedge.eve.attest.ZAttestReq - (*ZAttestResponse)(nil), // 9: org.lfedge.eve.attest.ZAttestResponse - (*ZAttestNonceResp)(nil), // 10: org.lfedge.eve.attest.ZAttestNonceResp - (*TpmEventDigest)(nil), // 11: org.lfedge.eve.attest.TpmEventDigest - (*TpmEventLogEntry)(nil), // 12: org.lfedge.eve.attest.TpmEventLogEntry - (*AttestGPSCoordinates)(nil), // 13: org.lfedge.eve.attest.AttestGPSCoordinates - (*AttestVersionInfo)(nil), // 14: org.lfedge.eve.attest.AttestVersionInfo - (*TpmPCRValue)(nil), // 15: org.lfedge.eve.attest.TpmPCRValue - (*ZAttestQuote)(nil), // 16: org.lfedge.eve.attest.ZAttestQuote - (*AttestVolumeKey)(nil), // 17: org.lfedge.eve.attest.AttestVolumeKey - (*ZAttestQuoteResp)(nil), // 18: org.lfedge.eve.attest.ZAttestQuoteResp - (*AttestStorageKeys)(nil), // 19: org.lfedge.eve.attest.AttestStorageKeys - (*AttestStorageKeysResp)(nil), // 20: org.lfedge.eve.attest.AttestStorageKeysResp - (*AttestVolumeKeyData)(nil), // 21: org.lfedge.eve.attest.AttestVolumeKeyData - (*certs.ZCert)(nil), // 22: org.lfedge.eve.certs.ZCert + (ZAttestReqType)(0), // 0: org.lfedge.eve.attest.ZAttestReqType + (ZAttestRespType)(0), // 1: org.lfedge.eve.attest.ZAttestRespType + (TpmHashAlgo)(0), // 2: org.lfedge.eve.attest.TpmHashAlgo + (AttestGPSInput)(0), // 3: org.lfedge.eve.attest.AttestGPSInput + (AttestVersionType)(0), // 4: org.lfedge.eve.attest.AttestVersionType + (ZAttestResponseCode)(0), // 5: org.lfedge.eve.attest.ZAttestResponseCode + (AttestKeyType)(0), // 6: org.lfedge.eve.attest.AttestKeyType + (AttestKeysResponseCode)(0), // 7: org.lfedge.eve.attest.AttestKeysResponseCode + (*ZAttestReq)(nil), // 8: org.lfedge.eve.attest.ZAttestReq + (*ZAttestResponse)(nil), // 9: org.lfedge.eve.attest.ZAttestResponse + (*ZAttestNonceResp)(nil), // 10: org.lfedge.eve.attest.ZAttestNonceResp + (*TpmEventDigest)(nil), // 11: org.lfedge.eve.attest.TpmEventDigest + (*TpmEventLogEntry)(nil), // 12: org.lfedge.eve.attest.TpmEventLogEntry + (*AttestGPSCoordinates)(nil), // 13: org.lfedge.eve.attest.AttestGPSCoordinates + (*AttestVersionInfo)(nil), // 14: org.lfedge.eve.attest.AttestVersionInfo + (*TpmPCRValue)(nil), // 15: org.lfedge.eve.attest.TpmPCRValue + (*ZAttestQuote)(nil), // 16: org.lfedge.eve.attest.ZAttestQuote + (*AttestKey)(nil), // 17: org.lfedge.eve.attest.AttestKey + (*ZAttestQuoteResp)(nil), // 18: org.lfedge.eve.attest.ZAttestQuoteResp + (*AttestKeys)(nil), // 19: org.lfedge.eve.attest.AttestKeys + (*AttestKeysResp)(nil), // 20: org.lfedge.eve.attest.AttestKeysResp + (*AttestKeyData)(nil), // 21: org.lfedge.eve.attest.AttestKeyData + (*certs.ZCert)(nil), // 22: org.lfedge.eve.certs.ZCert } var file_attest_attest_proto_depIdxs = []int32{ 0, // 0: org.lfedge.eve.attest.ZAttestReq.reqType:type_name -> org.lfedge.eve.attest.ZAttestReqType 16, // 1: org.lfedge.eve.attest.ZAttestReq.quote:type_name -> org.lfedge.eve.attest.ZAttestQuote 22, // 2: org.lfedge.eve.attest.ZAttestReq.certs:type_name -> org.lfedge.eve.certs.ZCert - 19, // 3: org.lfedge.eve.attest.ZAttestReq.storage_keys:type_name -> org.lfedge.eve.attest.AttestStorageKeys + 19, // 3: org.lfedge.eve.attest.ZAttestReq.storage_keys:type_name -> org.lfedge.eve.attest.AttestKeys 1, // 4: org.lfedge.eve.attest.ZAttestResponse.respType:type_name -> org.lfedge.eve.attest.ZAttestRespType 10, // 5: org.lfedge.eve.attest.ZAttestResponse.nonce:type_name -> org.lfedge.eve.attest.ZAttestNonceResp 18, // 6: org.lfedge.eve.attest.ZAttestResponse.quoteResp:type_name -> org.lfedge.eve.attest.ZAttestQuoteResp - 20, // 7: org.lfedge.eve.attest.ZAttestResponse.storage_keys_resp:type_name -> org.lfedge.eve.attest.AttestStorageKeysResp + 20, // 7: org.lfedge.eve.attest.ZAttestResponse.storage_keys_resp:type_name -> org.lfedge.eve.attest.AttestKeysResp 2, // 8: org.lfedge.eve.attest.TpmEventDigest.hash_algo:type_name -> org.lfedge.eve.attest.TpmHashAlgo 11, // 9: org.lfedge.eve.attest.TpmEventLogEntry.digest:type_name -> org.lfedge.eve.attest.TpmEventDigest 3, // 10: org.lfedge.eve.attest.AttestGPSCoordinates.gps_input:type_name -> org.lfedge.eve.attest.AttestGPSInput @@ -1624,11 +1619,11 @@ var file_attest_attest_proto_depIdxs = []int32{ 12, // 14: org.lfedge.eve.attest.ZAttestQuote.event_log:type_name -> org.lfedge.eve.attest.TpmEventLogEntry 14, // 15: org.lfedge.eve.attest.ZAttestQuote.versions:type_name -> org.lfedge.eve.attest.AttestVersionInfo 13, // 16: org.lfedge.eve.attest.ZAttestQuote.gps_info:type_name -> org.lfedge.eve.attest.AttestGPSCoordinates - 6, // 17: org.lfedge.eve.attest.AttestVolumeKey.key_type:type_name -> org.lfedge.eve.attest.AttestVolumeKeyType + 6, // 17: org.lfedge.eve.attest.AttestKey.key_type:type_name -> org.lfedge.eve.attest.AttestKeyType 5, // 18: org.lfedge.eve.attest.ZAttestQuoteResp.response:type_name -> org.lfedge.eve.attest.ZAttestResponseCode - 17, // 19: org.lfedge.eve.attest.ZAttestQuoteResp.keys:type_name -> org.lfedge.eve.attest.AttestVolumeKey - 17, // 20: org.lfedge.eve.attest.AttestStorageKeys.keys:type_name -> org.lfedge.eve.attest.AttestVolumeKey - 7, // 21: org.lfedge.eve.attest.AttestStorageKeysResp.response:type_name -> org.lfedge.eve.attest.AttestStorageKeysResponseCode + 17, // 19: org.lfedge.eve.attest.ZAttestQuoteResp.storage_keys:type_name -> org.lfedge.eve.attest.AttestKey + 17, // 20: org.lfedge.eve.attest.AttestKeys.keys:type_name -> org.lfedge.eve.attest.AttestKey + 7, // 21: org.lfedge.eve.attest.AttestKeysResp.response:type_name -> org.lfedge.eve.attest.AttestKeysResponseCode 22, // [22:22] is the sub-list for method output_type 22, // [22:22] is the sub-list for method input_type 22, // [22:22] is the sub-list for extension type_name @@ -1751,7 +1746,7 @@ func file_attest_attest_proto_init() { } } file_attest_attest_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AttestVolumeKey); i { + switch v := v.(*AttestKey); i { case 0: return &v.state case 1: @@ -1775,7 +1770,7 @@ func file_attest_attest_proto_init() { } } file_attest_attest_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AttestStorageKeys); i { + switch v := v.(*AttestKeys); i { case 0: return &v.state case 1: @@ -1787,7 +1782,7 @@ func file_attest_attest_proto_init() { } } file_attest_attest_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AttestStorageKeysResp); i { + switch v := v.(*AttestKeysResp); i { case 0: return &v.state case 1: @@ -1799,7 +1794,7 @@ func file_attest_attest_proto_init() { } } file_attest_attest_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AttestVolumeKeyData); i { + switch v := v.(*AttestKeyData); i { case 0: return &v.state case 1: diff --git a/proto/attest/attest.proto b/proto/attest/attest.proto index cedd26c8..1e098b1d 100644 --- a/proto/attest/attest.proto +++ b/proto/attest/attest.proto @@ -9,45 +9,45 @@ package org.lfedge.eve.attest; option go_package = "github.com/lf-edge/eve-api/go/attest"; option java_package = "org.lfedge.eve.attest"; -// This is the request payload for POST /api/v2/edgeDevice/id//attest -// The message is assumed to be protected by signing envelope +// This is the payload for a POST request to /api/v2/edgeDevice/id//attest +// The message is assumed to be encapsulated by AuthContainer. message ZAttestReq { - ZAttestReqType reqType = 1; //type of the request - ZAttestQuote quote = 2; //attestation quote msg - repeated org.lfedge.eve.certs.ZCert certs = 3; //X509 certs in .PEM format, signed by device certificate - AttestStorageKeys storage_keys = 4; //encrypted secrets to be saved by the Controller, like encrypted keys for the volume storage vaults + ZAttestReqType reqType = 1; // type of the request + ZAttestQuote quote = 2; // attestation quote msg + repeated org.lfedge.eve.certs.ZCert certs = 3; // X509 certs in .PEM format, signed by device certificate + AttestKeys storage_keys = 4; // encrypted secrets to be saved by the Controller, like encrypted keys for the volume storage (vaults) } -// This is the response payload for POST /api/v2/edgeDevice/id//attest -// The message is assumed to be protected by signing envelope +// This is the payload for a POST response to /api/v2/edgeDevice/id//attest +// The message is assumed to be encapsulated by AuthContainer. message ZAttestResponse { - ZAttestRespType respType = 1; //type of the response - ZAttestNonceResp nonce = 2; //nonce from Controller - ZAttestQuoteResp quoteResp = 3; //attest quote response from Controller - AttestStorageKeysResp storage_keys_resp = 4; //attest storage_keys response from Controller + ZAttestRespType respType = 1; // type of the response + ZAttestNonceResp nonce = 2; // nonce from Controller + ZAttestQuoteResp quoteResp = 3; // attest quote response from Controller, this can includes the encrypted keys + AttestKeysResp storage_keys_resp = 4; // attest storage keys response from Controller } enum ZAttestReqType { ATTEST_REQ_NONE = 0; - ATTEST_REQ_CERT = 1; //EVE X.509 certificates - ATTEST_REQ_NONCE = 2; //nonce request to Controller - ATTEST_REQ_QUOTE = 3; //quote msg - Z_ATTEST_REQ_TYPE_STORE_KEYS = 4; //to store device keys in Controller + ATTEST_REQ_CERT = 1; // EVE X.509 certificates + ATTEST_REQ_NONCE = 2; // nonce request to Controller + ATTEST_REQ_QUOTE = 3; // quote msg from device + Z_ATTEST_REQ_TYPE_STORE_KEYS = 4; // to store device keys in Controller } enum ZAttestRespType { ATTEST_RESP_NONE = 0; - ATTEST_RESP_CERT = 1; //response to cert msg - ATTEST_RESP_NONCE = 2; //response to quote request - ATTEST_RESP_QUOTE_RESP = 3; //response to quote msg + ATTEST_RESP_CERT = 1; // response to cert msg + ATTEST_RESP_NONCE = 2; // response to quote request + ATTEST_RESP_QUOTE_RESP = 3; // response to quote msg Z_ATTEST_RESP_TYPE_STORE_KEYS = 4; //response to Z_ATTEST_REQ_TYPE_STORE_KEYS } message ZAttestNonceResp { - bytes nonce = 1; //nonce to use in quote generation + bytes nonce = 1; // nonce to use in quote generation } -//Hash algo used in digests, and PCR Extend operations +// Hash algo used in digests, and PCR Extend operations enum TpmHashAlgo { TPM_HASH_ALGO_INVALID = 0; TPM_HASH_ALGO_SHA1 = 1; @@ -55,14 +55,14 @@ enum TpmHashAlgo { TPM_HASH_ALGO_SHA512 = 3; } -//A hash algo, and corresponding digest derived using that algo +// A hash algo, and corresponding digest derived using that algo message TpmEventDigest { TpmHashAlgo hash_algo = 1; bytes digest = 2; } -//Taken from -//5.2 Crypto Agile Log Entry Format, from https://trustedcomputinggroup.org/wp-content/uploads/EFI-Protocol-Specification-rev13-160330final.pdf +// Taken from +// 5.2 Crypto Agile Log Entry Format, from https://trustedcomputinggroup.org/wp-content/uploads/EFI-Protocol-Specification-rev13-160330final.pdf message TpmEventLogEntry { uint32 index = 1; // Sequential index of event in the log uint32 pcr_index = 2; // PCR index to which this event was measured @@ -75,8 +75,8 @@ message TpmEventLogEntry { enum AttestGPSInput { ATTEST_GPS_INPUT_INVALID = 0; - ATTEST_GPS_INPUT_PRESENT = 1; //GPS Coordinates are available - ATTEST_GPS_INPUT_ABSENT = 2; //GPS Coordinates are not available/reliable + ATTEST_GPS_INPUT_PRESENT = 1; // GPS Coordinates are available + ATTEST_GPS_INPUT_ABSENT = 2; // GPS Coordinates are not available/reliable } message AttestGPSCoordinates { @@ -91,9 +91,9 @@ enum AttestVersionType { ATTEST_VERSION_TYPE_FIRMWARE = 2; // Firmware version (e.g. UEFI) } -//examples -//ATTEST_VERSION_TYPE_EVE, "5.6.1-amd64" -//ATTEST_VERSION_TYPE_FIRMWARE, "American Megatrends Inc.-5.12" +// examples +// ATTEST_VERSION_TYPE_EVE, "5.6.1-amd64" +// ATTEST_VERSION_TYPE_FIRMWARE, "American Megatrends Inc.-5.12" message AttestVersionInfo { AttestVersionType version_type = 1; // One of VersionType string version = 2; // Version string of the corresponding package @@ -101,66 +101,67 @@ message AttestVersionInfo { //Holds one single PCR value from TPM, from a particular hash bank message TpmPCRValue { - uint32 index = 1; //PCR index - TpmHashAlgo hash_algo = 2; //SHA1/SHA256/SHA384/SHA256 - bytes value = 3; //value in PCR + uint32 index = 1; // PCR index + TpmHashAlgo hash_algo = 2; // SHA1/SHA256/SHA384/SHA256 + bytes value = 3; // value in PCR } -//attestData is taken from -//TPMS_ATTEST Table 2:123) in https://trustedcomputinggroup.org/wp-content/uploads/TPM-Rev-2.0-Part-2-Structures-01.38.pdf +// attestData is taken from +// TPMS_ATTEST Table 2:123) in https://trustedcomputinggroup.org/wp-content/uploads/TPM-Rev-2.0-Part-2-Structures-01.38.pdf message ZAttestQuote { - bytes attestData = 1; // Nonce is included in attestData, see comment above - bytes signature = 2; // Signature to verify attestData - repeated TpmPCRValue pcr_values = 3; // Current values of TPM PCRs 0-15 - repeated TpmEventLogEntry event_log = 4; // TPM Event log - repeated AttestVersionInfo versions = 5; // Versions of various software packages, as defined by VersionType - AttestGPSCoordinates gps_info = 6; // Geo-Coordinates of the device + bytes attestData = 1; // Nonce is included in attestData, see comment above + bytes signature = 2; // Signature to verify attestData + repeated TpmPCRValue pcr_values = 3; // Current values of TPM PCRs 0-15 + repeated TpmEventLogEntry event_log = 4; // TPM Event log + repeated AttestVersionInfo versions = 5; // Versions of various software packages, as defined by VersionType + AttestGPSCoordinates gps_info = 6; // Geo-Coordinates of the device } enum ZAttestResponseCode { Z_ATTEST_RESPONSE_CODE_INVALID = 0; - Z_ATTEST_RESPONSE_CODE_SUCCESS = 1; //Attestation successful - Z_ATTEST_RESPONSE_CODE_NONCE_MISMATCH = 2; //Attestation failed due to nonce mismatch - Z_ATTEST_RESPONSE_CODE_NO_CERT_FOUND = 3; //There was no attestation certificate in Controller to validate attestation quote - Z_ATTEST_RESPONSE_CODE_QUOTE_FAILED = 4; //Attestation failed due to quote mismatch + Z_ATTEST_RESPONSE_CODE_SUCCESS = 1; // Attestation successful + Z_ATTEST_RESPONSE_CODE_NONCE_MISMATCH = 2; // Attestation failed due to nonce mismatch + Z_ATTEST_RESPONSE_CODE_NO_CERT_FOUND = 3; // There was no attestation certificate in Controller to validate attestation quote + Z_ATTEST_RESPONSE_CODE_QUOTE_FAILED = 4; // Attestation failed due to quote mismatch } -enum AttestVolumeKeyType { - ATTEST_VOLUME_KEY_TYPE_INVALID = 0; - ATTEST_VOLUME_KEY_TYPE_VSK = 1; //Volume storage key, for /persist/vault +enum AttestKeyType { + ATTEST_KEY_TYPE_INVALID = 0; // Invalid key type + ATTEST_KEY_TYPE_VSK = 1; // Volume Storage Key (VSK), for /persist/vault } -message AttestVolumeKey { - AttestVolumeKeyType key_type = 1; +message AttestKey { + AttestKeyType key_type = 1; bytes key = 2; } +// This is part of the ZAttestResponse, sent by the Controller to the device. message ZAttestQuoteResp { - ZAttestResponseCode response = 1; // Result of quote validation - bytes integrity_token = 2; // Valid if response is ATTEST_RESPONSE_SUCCESS, contains integrity token for device to - // Cache and present in the next config request - repeated AttestVolumeKey keys = 3; // Valid if response is ATTEST_RESPONSE_SUCCESS, contains keys of type KeyType to unlock - // volume vault(s) + ZAttestResponseCode response = 1; // Result of quote validation + bytes integrity_token = 2; // Valid if response is ATTEST_RESPONSE_SUCCESS, contains integrity token for device to + // Cache and present in the next config request + repeated AttestKey storage_keys = 3; // Valid if response is ATTEST_RESPONSE_SUCCESS, contain keys (received encrypted + // with device wrapping key or KEK), for example volume storage keys (vault) } -//Encrypted data to save and retrievable post successful attestation -message AttestStorageKeys { - bytes integrity_token = 1; // integrity_token provided by controller in the last attestation cycle - repeated AttestVolumeKey keys = 2; // Encrypted keys for volume vault(s) +// Encrypted data to save and retrievable post successful attestation +message AttestKeys { + bytes integrity_token = 1; // integrity_token provided by controller in the last attestation cycle + repeated AttestKey keys = 2; // Encrypted keys for volume vault(s) } -enum AttestStorageKeysResponseCode { - ATTEST_STORAGE_KEYS_RESPONSE_CODE_INVALID = 0; - ATTEST_STORAGE_KEYS_RESPONSE_CODE_SUCCESS = 1; // key(s) successfully stored - ATTEST_STORAGE_KEYS_RESPONSE_CODE_ITOKEN_MISMATCH = 2; // integrity_token was not valid, try after successful attestation +enum AttestKeysResponseCode { + ATTEST_KEYS_RESPONSE_CODE_INVALID = 0; + ATTEST_KEYS_RESPONSE_CODE_SUCCESS = 1; // key(s) successfully stored + ATTEST_KEYS_RESPONSE_CODE_ITOKEN_MISMATCH = 2; // integrity_token was not valid, try after successful attestation } -message AttestStorageKeysResp { - AttestStorageKeysResponseCode response = 1; //Result of processing Z_ATTEST_REQ_TYPE_STORE_KEYS in Controller +message AttestKeysResp { + AttestKeysResponseCode response = 1; // Result of processing Z_ATTEST_REQ_TYPE_STORE_KEYS in Controller } -message AttestVolumeKeyData { - bytes encrypted_key = 1; //key in encrypted format - bytes digest_sha256 = 2; //SHA 256 digest of the key +message AttestKeyData { + bytes encrypted_key = 1; // key in encrypted format (encrypted with device wrapping key or KEK) + bytes digest_sha256 = 2; // SHA256 digest of the key } diff --git a/python/attest/attest_pb2.py b/python/attest/attest_pb2.py index 06134155..901383eb 100644 --- a/python/attest/attest_pb2.py +++ b/python/attest/attest_pb2.py @@ -14,7 +14,7 @@ from certs import certs_pb2 as certs_dot_certs__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13\x61ttest/attest.proto\x12\x15org.lfedge.eve.attest\x1a\x11\x63\x65rts/certs.proto\"\xe4\x01\n\nZAttestReq\x12\x36\n\x07reqType\x18\x01 \x01(\x0e\x32%.org.lfedge.eve.attest.ZAttestReqType\x12\x32\n\x05quote\x18\x02 \x01(\x0b\x32#.org.lfedge.eve.attest.ZAttestQuote\x12*\n\x05\x63\x65rts\x18\x03 \x03(\x0b\x32\x1b.org.lfedge.eve.certs.ZCert\x12>\n\x0cstorage_keys\x18\x04 \x01(\x0b\x32(.org.lfedge.eve.attest.AttestStorageKeys\"\x88\x02\n\x0fZAttestResponse\x12\x38\n\x08respType\x18\x01 \x01(\x0e\x32&.org.lfedge.eve.attest.ZAttestRespType\x12\x36\n\x05nonce\x18\x02 \x01(\x0b\x32\'.org.lfedge.eve.attest.ZAttestNonceResp\x12:\n\tquoteResp\x18\x03 \x01(\x0b\x32\'.org.lfedge.eve.attest.ZAttestQuoteResp\x12G\n\x11storage_keys_resp\x18\x04 \x01(\x0b\x32,.org.lfedge.eve.attest.AttestStorageKeysResp\"!\n\x10ZAttestNonceResp\x12\r\n\x05nonce\x18\x01 \x01(\x0c\"W\n\x0eTpmEventDigest\x12\x35\n\thash_algo\x18\x01 \x01(\x0e\x32\".org.lfedge.eve.attest.TpmHashAlgo\x12\x0e\n\x06\x64igest\x18\x02 \x01(\x0c\"\xd0\x01\n\x10TpmEventLogEntry\x12\r\n\x05index\x18\x01 \x01(\r\x12\x11\n\tpcr_index\x18\x02 \x01(\r\x12\x12\n\nevent_type\x18\x03 \x01(\r\x12\x35\n\x06\x64igest\x18\x04 \x01(\x0b\x32%.org.lfedge.eve.attest.TpmEventDigest\x12\x19\n\x11\x65vent_data_binary\x18\x05 \x01(\x0c\x12\x19\n\x11\x65vent_data_string\x18\x06 \x01(\t\x12\x19\n\x11\x65vent_binary_size\x18\x07 \x01(\r\"u\n\x14\x41ttestGPSCoordinates\x12\x38\n\tgps_input\x18\x01 \x01(\x0e\x32%.org.lfedge.eve.attest.AttestGPSInput\x12\x10\n\x08latitude\x18\x02 \x01(\x01\x12\x11\n\tlongitude\x18\x03 \x01(\x01\"d\n\x11\x41ttestVersionInfo\x12>\n\x0cversion_type\x18\x01 \x01(\x0e\x32(.org.lfedge.eve.attest.AttestVersionType\x12\x0f\n\x07version\x18\x02 \x01(\t\"b\n\x0bTpmPCRValue\x12\r\n\x05index\x18\x01 \x01(\r\x12\x35\n\thash_algo\x18\x02 \x01(\x0e\x32\".org.lfedge.eve.attest.TpmHashAlgo\x12\r\n\x05value\x18\x03 \x01(\x0c\"\xa4\x02\n\x0cZAttestQuote\x12\x12\n\nattestData\x18\x01 \x01(\x0c\x12\x11\n\tsignature\x18\x02 \x01(\x0c\x12\x36\n\npcr_values\x18\x03 \x03(\x0b\x32\".org.lfedge.eve.attest.TpmPCRValue\x12:\n\tevent_log\x18\x04 \x03(\x0b\x32\'.org.lfedge.eve.attest.TpmEventLogEntry\x12:\n\x08versions\x18\x05 \x03(\x0b\x32(.org.lfedge.eve.attest.AttestVersionInfo\x12=\n\x08gps_info\x18\x06 \x01(\x0b\x32+.org.lfedge.eve.attest.AttestGPSCoordinates\"\\\n\x0f\x41ttestVolumeKey\x12<\n\x08key_type\x18\x01 \x01(\x0e\x32*.org.lfedge.eve.attest.AttestVolumeKeyType\x12\x0b\n\x03key\x18\x02 \x01(\x0c\"\x9f\x01\n\x10ZAttestQuoteResp\x12<\n\x08response\x18\x01 \x01(\x0e\x32*.org.lfedge.eve.attest.ZAttestResponseCode\x12\x17\n\x0fintegrity_token\x18\x02 \x01(\x0c\x12\x34\n\x04keys\x18\x03 \x03(\x0b\x32&.org.lfedge.eve.attest.AttestVolumeKey\"b\n\x11\x41ttestStorageKeys\x12\x17\n\x0fintegrity_token\x18\x01 \x01(\x0c\x12\x34\n\x04keys\x18\x02 \x03(\x0b\x32&.org.lfedge.eve.attest.AttestVolumeKey\"_\n\x15\x41ttestStorageKeysResp\x12\x46\n\x08response\x18\x01 \x01(\x0e\x32\x34.org.lfedge.eve.attest.AttestStorageKeysResponseCode\"C\n\x13\x41ttestVolumeKeyData\x12\x15\n\rencrypted_key\x18\x01 \x01(\x0c\x12\x15\n\rdigest_sha256\x18\x02 \x01(\x0c*\x88\x01\n\x0eZAttestReqType\x12\x13\n\x0f\x41TTEST_REQ_NONE\x10\x00\x12\x13\n\x0f\x41TTEST_REQ_CERT\x10\x01\x12\x14\n\x10\x41TTEST_REQ_NONCE\x10\x02\x12\x14\n\x10\x41TTEST_REQ_QUOTE\x10\x03\x12 \n\x1cZ_ATTEST_REQ_TYPE_STORE_KEYS\x10\x04*\x93\x01\n\x0fZAttestRespType\x12\x14\n\x10\x41TTEST_RESP_NONE\x10\x00\x12\x14\n\x10\x41TTEST_RESP_CERT\x10\x01\x12\x15\n\x11\x41TTEST_RESP_NONCE\x10\x02\x12\x1a\n\x16\x41TTEST_RESP_QUOTE_RESP\x10\x03\x12!\n\x1dZ_ATTEST_RESP_TYPE_STORE_KEYS\x10\x04*t\n\x0bTpmHashAlgo\x12\x19\n\x15TPM_HASH_ALGO_INVALID\x10\x00\x12\x16\n\x12TPM_HASH_ALGO_SHA1\x10\x01\x12\x18\n\x14TPM_HASH_ALGO_SHA256\x10\x02\x12\x18\n\x14TPM_HASH_ALGO_SHA512\x10\x03*i\n\x0e\x41ttestGPSInput\x12\x1c\n\x18\x41TTEST_GPS_INPUT_INVALID\x10\x00\x12\x1c\n\x18\x41TTEST_GPS_INPUT_PRESENT\x10\x01\x12\x1b\n\x17\x41TTEST_GPS_INPUT_ABSENT\x10\x02*s\n\x11\x41ttestVersionType\x12\x1f\n\x1b\x41TTEST_VERSION_TYPE_INVALID\x10\x00\x12\x1b\n\x17\x41TTEST_VERSION_TYPE_EVE\x10\x01\x12 \n\x1c\x41TTEST_VERSION_TYPE_FIRMWARE\x10\x02*\xdb\x01\n\x13ZAttestResponseCode\x12\"\n\x1eZ_ATTEST_RESPONSE_CODE_INVALID\x10\x00\x12\"\n\x1eZ_ATTEST_RESPONSE_CODE_SUCCESS\x10\x01\x12)\n%Z_ATTEST_RESPONSE_CODE_NONCE_MISMATCH\x10\x02\x12(\n$Z_ATTEST_RESPONSE_CODE_NO_CERT_FOUND\x10\x03\x12\'\n#Z_ATTEST_RESPONSE_CODE_QUOTE_FAILED\x10\x04*Y\n\x13\x41ttestVolumeKeyType\x12\"\n\x1e\x41TTEST_VOLUME_KEY_TYPE_INVALID\x10\x00\x12\x1e\n\x1a\x41TTEST_VOLUME_KEY_TYPE_VSK\x10\x01*\xb4\x01\n\x1d\x41ttestStorageKeysResponseCode\x12-\n)ATTEST_STORAGE_KEYS_RESPONSE_CODE_INVALID\x10\x00\x12-\n)ATTEST_STORAGE_KEYS_RESPONSE_CODE_SUCCESS\x10\x01\x12\x35\n1ATTEST_STORAGE_KEYS_RESPONSE_CODE_ITOKEN_MISMATCH\x10\x02\x42=\n\x15org.lfedge.eve.attestZ$github.com/lf-edge/eve-api/go/attestb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13\x61ttest/attest.proto\x12\x15org.lfedge.eve.attest\x1a\x11\x63\x65rts/certs.proto\"\xdd\x01\n\nZAttestReq\x12\x36\n\x07reqType\x18\x01 \x01(\x0e\x32%.org.lfedge.eve.attest.ZAttestReqType\x12\x32\n\x05quote\x18\x02 \x01(\x0b\x32#.org.lfedge.eve.attest.ZAttestQuote\x12*\n\x05\x63\x65rts\x18\x03 \x03(\x0b\x32\x1b.org.lfedge.eve.certs.ZCert\x12\x37\n\x0cstorage_keys\x18\x04 \x01(\x0b\x32!.org.lfedge.eve.attest.AttestKeys\"\x81\x02\n\x0fZAttestResponse\x12\x38\n\x08respType\x18\x01 \x01(\x0e\x32&.org.lfedge.eve.attest.ZAttestRespType\x12\x36\n\x05nonce\x18\x02 \x01(\x0b\x32\'.org.lfedge.eve.attest.ZAttestNonceResp\x12:\n\tquoteResp\x18\x03 \x01(\x0b\x32\'.org.lfedge.eve.attest.ZAttestQuoteResp\x12@\n\x11storage_keys_resp\x18\x04 \x01(\x0b\x32%.org.lfedge.eve.attest.AttestKeysResp\"!\n\x10ZAttestNonceResp\x12\r\n\x05nonce\x18\x01 \x01(\x0c\"W\n\x0eTpmEventDigest\x12\x35\n\thash_algo\x18\x01 \x01(\x0e\x32\".org.lfedge.eve.attest.TpmHashAlgo\x12\x0e\n\x06\x64igest\x18\x02 \x01(\x0c\"\xd0\x01\n\x10TpmEventLogEntry\x12\r\n\x05index\x18\x01 \x01(\r\x12\x11\n\tpcr_index\x18\x02 \x01(\r\x12\x12\n\nevent_type\x18\x03 \x01(\r\x12\x35\n\x06\x64igest\x18\x04 \x01(\x0b\x32%.org.lfedge.eve.attest.TpmEventDigest\x12\x19\n\x11\x65vent_data_binary\x18\x05 \x01(\x0c\x12\x19\n\x11\x65vent_data_string\x18\x06 \x01(\t\x12\x19\n\x11\x65vent_binary_size\x18\x07 \x01(\r\"u\n\x14\x41ttestGPSCoordinates\x12\x38\n\tgps_input\x18\x01 \x01(\x0e\x32%.org.lfedge.eve.attest.AttestGPSInput\x12\x10\n\x08latitude\x18\x02 \x01(\x01\x12\x11\n\tlongitude\x18\x03 \x01(\x01\"d\n\x11\x41ttestVersionInfo\x12>\n\x0cversion_type\x18\x01 \x01(\x0e\x32(.org.lfedge.eve.attest.AttestVersionType\x12\x0f\n\x07version\x18\x02 \x01(\t\"b\n\x0bTpmPCRValue\x12\r\n\x05index\x18\x01 \x01(\r\x12\x35\n\thash_algo\x18\x02 \x01(\x0e\x32\".org.lfedge.eve.attest.TpmHashAlgo\x12\r\n\x05value\x18\x03 \x01(\x0c\"\xa4\x02\n\x0cZAttestQuote\x12\x12\n\nattestData\x18\x01 \x01(\x0c\x12\x11\n\tsignature\x18\x02 \x01(\x0c\x12\x36\n\npcr_values\x18\x03 \x03(\x0b\x32\".org.lfedge.eve.attest.TpmPCRValue\x12:\n\tevent_log\x18\x04 \x03(\x0b\x32\'.org.lfedge.eve.attest.TpmEventLogEntry\x12:\n\x08versions\x18\x05 \x03(\x0b\x32(.org.lfedge.eve.attest.AttestVersionInfo\x12=\n\x08gps_info\x18\x06 \x01(\x0b\x32+.org.lfedge.eve.attest.AttestGPSCoordinates\"P\n\tAttestKey\x12\x36\n\x08key_type\x18\x01 \x01(\x0e\x32$.org.lfedge.eve.attest.AttestKeyType\x12\x0b\n\x03key\x18\x02 \x01(\x0c\"\xa1\x01\n\x10ZAttestQuoteResp\x12<\n\x08response\x18\x01 \x01(\x0e\x32*.org.lfedge.eve.attest.ZAttestResponseCode\x12\x17\n\x0fintegrity_token\x18\x02 \x01(\x0c\x12\x36\n\x0cstorage_keys\x18\x03 \x03(\x0b\x32 .org.lfedge.eve.attest.AttestKey\"U\n\nAttestKeys\x12\x17\n\x0fintegrity_token\x18\x01 \x01(\x0c\x12.\n\x04keys\x18\x02 \x03(\x0b\x32 .org.lfedge.eve.attest.AttestKey\"Q\n\x0e\x41ttestKeysResp\x12?\n\x08response\x18\x01 \x01(\x0e\x32-.org.lfedge.eve.attest.AttestKeysResponseCode\"=\n\rAttestKeyData\x12\x15\n\rencrypted_key\x18\x01 \x01(\x0c\x12\x15\n\rdigest_sha256\x18\x02 \x01(\x0c*\x88\x01\n\x0eZAttestReqType\x12\x13\n\x0f\x41TTEST_REQ_NONE\x10\x00\x12\x13\n\x0f\x41TTEST_REQ_CERT\x10\x01\x12\x14\n\x10\x41TTEST_REQ_NONCE\x10\x02\x12\x14\n\x10\x41TTEST_REQ_QUOTE\x10\x03\x12 \n\x1cZ_ATTEST_REQ_TYPE_STORE_KEYS\x10\x04*\x93\x01\n\x0fZAttestRespType\x12\x14\n\x10\x41TTEST_RESP_NONE\x10\x00\x12\x14\n\x10\x41TTEST_RESP_CERT\x10\x01\x12\x15\n\x11\x41TTEST_RESP_NONCE\x10\x02\x12\x1a\n\x16\x41TTEST_RESP_QUOTE_RESP\x10\x03\x12!\n\x1dZ_ATTEST_RESP_TYPE_STORE_KEYS\x10\x04*t\n\x0bTpmHashAlgo\x12\x19\n\x15TPM_HASH_ALGO_INVALID\x10\x00\x12\x16\n\x12TPM_HASH_ALGO_SHA1\x10\x01\x12\x18\n\x14TPM_HASH_ALGO_SHA256\x10\x02\x12\x18\n\x14TPM_HASH_ALGO_SHA512\x10\x03*i\n\x0e\x41ttestGPSInput\x12\x1c\n\x18\x41TTEST_GPS_INPUT_INVALID\x10\x00\x12\x1c\n\x18\x41TTEST_GPS_INPUT_PRESENT\x10\x01\x12\x1b\n\x17\x41TTEST_GPS_INPUT_ABSENT\x10\x02*s\n\x11\x41ttestVersionType\x12\x1f\n\x1b\x41TTEST_VERSION_TYPE_INVALID\x10\x00\x12\x1b\n\x17\x41TTEST_VERSION_TYPE_EVE\x10\x01\x12 \n\x1c\x41TTEST_VERSION_TYPE_FIRMWARE\x10\x02*\xdb\x01\n\x13ZAttestResponseCode\x12\"\n\x1eZ_ATTEST_RESPONSE_CODE_INVALID\x10\x00\x12\"\n\x1eZ_ATTEST_RESPONSE_CODE_SUCCESS\x10\x01\x12)\n%Z_ATTEST_RESPONSE_CODE_NONCE_MISMATCH\x10\x02\x12(\n$Z_ATTEST_RESPONSE_CODE_NO_CERT_FOUND\x10\x03\x12\'\n#Z_ATTEST_RESPONSE_CODE_QUOTE_FAILED\x10\x04*E\n\rAttestKeyType\x12\x1b\n\x17\x41TTEST_KEY_TYPE_INVALID\x10\x00\x12\x17\n\x13\x41TTEST_KEY_TYPE_VSK\x10\x01*\x95\x01\n\x16\x41ttestKeysResponseCode\x12%\n!ATTEST_KEYS_RESPONSE_CODE_INVALID\x10\x00\x12%\n!ATTEST_KEYS_RESPONSE_CODE_SUCCESS\x10\x01\x12-\n)ATTEST_KEYS_RESPONSE_CODE_ITOKEN_MISMATCH\x10\x02\x42=\n\x15org.lfedge.eve.attestZ$github.com/lf-edge/eve-api/go/attestb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -23,48 +23,48 @@ DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b'\n\025org.lfedge.eve.attestZ$github.com/lf-edge/eve-api/go/attest' - _globals['_ZATTESTREQTYPE']._serialized_start=2037 - _globals['_ZATTESTREQTYPE']._serialized_end=2173 - _globals['_ZATTESTRESPTYPE']._serialized_start=2176 - _globals['_ZATTESTRESPTYPE']._serialized_end=2323 - _globals['_TPMHASHALGO']._serialized_start=2325 - _globals['_TPMHASHALGO']._serialized_end=2441 - _globals['_ATTESTGPSINPUT']._serialized_start=2443 - _globals['_ATTESTGPSINPUT']._serialized_end=2548 - _globals['_ATTESTVERSIONTYPE']._serialized_start=2550 - _globals['_ATTESTVERSIONTYPE']._serialized_end=2665 - _globals['_ZATTESTRESPONSECODE']._serialized_start=2668 - _globals['_ZATTESTRESPONSECODE']._serialized_end=2887 - _globals['_ATTESTVOLUMEKEYTYPE']._serialized_start=2889 - _globals['_ATTESTVOLUMEKEYTYPE']._serialized_end=2978 - _globals['_ATTESTSTORAGEKEYSRESPONSECODE']._serialized_start=2981 - _globals['_ATTESTSTORAGEKEYSRESPONSECODE']._serialized_end=3161 + _globals['_ZATTESTREQTYPE']._serialized_start=1980 + _globals['_ZATTESTREQTYPE']._serialized_end=2116 + _globals['_ZATTESTRESPTYPE']._serialized_start=2119 + _globals['_ZATTESTRESPTYPE']._serialized_end=2266 + _globals['_TPMHASHALGO']._serialized_start=2268 + _globals['_TPMHASHALGO']._serialized_end=2384 + _globals['_ATTESTGPSINPUT']._serialized_start=2386 + _globals['_ATTESTGPSINPUT']._serialized_end=2491 + _globals['_ATTESTVERSIONTYPE']._serialized_start=2493 + _globals['_ATTESTVERSIONTYPE']._serialized_end=2608 + _globals['_ZATTESTRESPONSECODE']._serialized_start=2611 + _globals['_ZATTESTRESPONSECODE']._serialized_end=2830 + _globals['_ATTESTKEYTYPE']._serialized_start=2832 + _globals['_ATTESTKEYTYPE']._serialized_end=2901 + _globals['_ATTESTKEYSRESPONSECODE']._serialized_start=2904 + _globals['_ATTESTKEYSRESPONSECODE']._serialized_end=3053 _globals['_ZATTESTREQ']._serialized_start=66 - _globals['_ZATTESTREQ']._serialized_end=294 - _globals['_ZATTESTRESPONSE']._serialized_start=297 - _globals['_ZATTESTRESPONSE']._serialized_end=561 - _globals['_ZATTESTNONCERESP']._serialized_start=563 - _globals['_ZATTESTNONCERESP']._serialized_end=596 - _globals['_TPMEVENTDIGEST']._serialized_start=598 - _globals['_TPMEVENTDIGEST']._serialized_end=685 - _globals['_TPMEVENTLOGENTRY']._serialized_start=688 - _globals['_TPMEVENTLOGENTRY']._serialized_end=896 - _globals['_ATTESTGPSCOORDINATES']._serialized_start=898 - _globals['_ATTESTGPSCOORDINATES']._serialized_end=1015 - _globals['_ATTESTVERSIONINFO']._serialized_start=1017 - _globals['_ATTESTVERSIONINFO']._serialized_end=1117 - _globals['_TPMPCRVALUE']._serialized_start=1119 - _globals['_TPMPCRVALUE']._serialized_end=1217 - _globals['_ZATTESTQUOTE']._serialized_start=1220 - _globals['_ZATTESTQUOTE']._serialized_end=1512 - _globals['_ATTESTVOLUMEKEY']._serialized_start=1514 - _globals['_ATTESTVOLUMEKEY']._serialized_end=1606 - _globals['_ZATTESTQUOTERESP']._serialized_start=1609 - _globals['_ZATTESTQUOTERESP']._serialized_end=1768 - _globals['_ATTESTSTORAGEKEYS']._serialized_start=1770 - _globals['_ATTESTSTORAGEKEYS']._serialized_end=1868 - _globals['_ATTESTSTORAGEKEYSRESP']._serialized_start=1870 - _globals['_ATTESTSTORAGEKEYSRESP']._serialized_end=1965 - _globals['_ATTESTVOLUMEKEYDATA']._serialized_start=1967 - _globals['_ATTESTVOLUMEKEYDATA']._serialized_end=2034 + _globals['_ZATTESTREQ']._serialized_end=287 + _globals['_ZATTESTRESPONSE']._serialized_start=290 + _globals['_ZATTESTRESPONSE']._serialized_end=547 + _globals['_ZATTESTNONCERESP']._serialized_start=549 + _globals['_ZATTESTNONCERESP']._serialized_end=582 + _globals['_TPMEVENTDIGEST']._serialized_start=584 + _globals['_TPMEVENTDIGEST']._serialized_end=671 + _globals['_TPMEVENTLOGENTRY']._serialized_start=674 + _globals['_TPMEVENTLOGENTRY']._serialized_end=882 + _globals['_ATTESTGPSCOORDINATES']._serialized_start=884 + _globals['_ATTESTGPSCOORDINATES']._serialized_end=1001 + _globals['_ATTESTVERSIONINFO']._serialized_start=1003 + _globals['_ATTESTVERSIONINFO']._serialized_end=1103 + _globals['_TPMPCRVALUE']._serialized_start=1105 + _globals['_TPMPCRVALUE']._serialized_end=1203 + _globals['_ZATTESTQUOTE']._serialized_start=1206 + _globals['_ZATTESTQUOTE']._serialized_end=1498 + _globals['_ATTESTKEY']._serialized_start=1500 + _globals['_ATTESTKEY']._serialized_end=1580 + _globals['_ZATTESTQUOTERESP']._serialized_start=1583 + _globals['_ZATTESTQUOTERESP']._serialized_end=1744 + _globals['_ATTESTKEYS']._serialized_start=1746 + _globals['_ATTESTKEYS']._serialized_end=1831 + _globals['_ATTESTKEYSRESP']._serialized_start=1833 + _globals['_ATTESTKEYSRESP']._serialized_end=1914 + _globals['_ATTESTKEYDATA']._serialized_start=1916 + _globals['_ATTESTKEYDATA']._serialized_end=1977 # @@protoc_insertion_point(module_scope)