syntax = "proto3"; package attestation.v1; option go_package = "github.com/ultravioletrs/cocos/internal/proto/attestation/v1;attestation"; service AttestationService { rpc FetchAttestation (AttestationRequest) returns (AttestationResponse); rpc FetchRawEvidence (AttestationRequest) returns (RawEvidenceResponse); rpc FetchAzureToken (AzureTokenRequest) returns (AzureTokenResponse); rpc FetchKbsToken (KbsTokenRequest) returns (KbsTokenResponse); } message KbsTokenRequest {} message KbsTokenResponse { bytes token = 1; } message AttestationRequest { bytes report_data = 1; // 64 bytes for SNP/TDX bytes nonce = 2; // Nonce for vTPM PlatformType platform_type = 3; } message AttestationResponse { bytes eat_token = 1; // EAT token (JWT or CBOR format) } message RawEvidenceResponse { bytes evidence = 1; // Raw binary evidence (for KBS) } message AzureTokenRequest { bytes nonce = 1; } message AzureTokenResponse { bytes token = 1; } enum PlatformType { PLATFORM_TYPE_UNSPECIFIED = 0; PLATFORM_TYPE_SNP = 1; PLATFORM_TYPE_TDX = 2; PLATFORM_TYPE_VTPM = 3; PLATFORM_TYPE_SNP_VTPM = 4; PLATFORM_TYPE_AZURE = 5; PLATFORM_TYPE_NO_CC = 6; }