// Copyright (c) Ultraviolet // SPDX-License-Identifier: Apache-2.0 syntax = "proto3"; package agent; option go_package = "./agent"; service AgentService { rpc Algo(stream AlgoRequest) returns (AlgoResponse) {} rpc Data(stream DataRequest) returns (DataResponse) {} rpc Result(ResultRequest) returns (stream ResultResponse) {} rpc Attestation(AttestationRequest) returns (stream AttestationResponse) {} rpc IMAMeasurements(IMAMeasurementsRequest) returns (stream IMAMeasurementsResponse) {} rpc AzureAttestationToken(AttestationTokenRequest) returns (AttestationTokenResponse) {} } message AlgoRequest { bytes algorithm = 1; bytes requirements = 2; } message AlgoResponse {} message DataRequest { bytes dataset = 1; string filename = 2; } message DataResponse {} message ResultRequest { } message ResultResponse { bytes file = 1; } message AttestationRequest { bytes teeNonce = 1; // Should be less or equal 64 bytes. bytes vtpmNonce = 2; // Should be less or equal 32 bytes. int32 type = 3; } message AttestationResponse { bytes file = 1; } message IMAMeasurementsRequest { } message IMAMeasurementsResponse { bytes file = 1; bytes pcr10 = 2; } message AttestationTokenRequest{ bytes tokenNonce = 1; // Should be less or equal 32 bytes int32 type = 3; } message AttestationTokenResponse{ bytes file = 1; }