From 9bf42245e258c94e37d81737bbba0bc7044d5a44 Mon Sep 17 00:00:00 2001 From: Shahriyar Jalayeri Date: Wed, 27 Nov 2024 20:34:57 +0200 Subject: [PATCH] attest : remove "storage" and "volume" from the field names Remove "storage" and "volume" from the field names, this is to make the field names more generic and not tied to storage or volume. This will make adding new keys to the attestation process easier. There has been no change in the wire format. Signed-off-by: Shahriyar Jalayeri --- go/attest/attest.pb.go | 716 ++++++++++++++++++------------------ proto/attest/attest.proto | 126 +++---- python/attest/attest_pb2.py | 88 ++--- 3 files changed, 462 insertions(+), 468 deletions(-) diff --git a/go/attest/attest.pb.go b/go/attest/attest.pb.go index 0e5d7fe6..7a278104 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,98 +340,98 @@ 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} } @@ -442,10 +442,10 @@ type ZAttestReq struct { 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,7 +501,7 @@ func (x *ZAttestReq) GetCerts() []*certs.ZCert { return nil } -func (x *ZAttestReq) GetStorageKeys() *AttestStorageKeys { +func (x *ZAttestReq) GetStorageKeys() *AttestKeys { if x != nil { return x.StorageKeys } @@ -515,10 +515,10 @@ type ZAttestResponse struct { 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,19 +1091,19 @@ 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 } @@ -1118,7 +1118,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 +1167,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 +1193,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 +1211,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_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 +1247,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 +1265,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 +1295,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 +1313,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 +1339,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 +1350,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 +1576,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 +1618,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 +1745,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 +1769,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 +1781,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 +1793,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..c0f1a756 100644 --- a/proto/attest/attest.proto +++ b/proto/attest/attest.proto @@ -12,42 +12,42 @@ 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 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 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,66 @@ 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; } 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_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)