NOISSUE - Introduce a dedicated attestation service and refactor agent to use its gRPC client (#558)

* feat: introduce a dedicated attestation service and refactor agent to use its gRPC client

Signed-off-by: Sammy Oina <sammyoina@gmail.com>

* feat: Source attestation-service from GitHub, updating its build and installation process.

Signed-off-by: Sammy Oina <sammyoina@gmail.com>

* fix: update protoc version to 33.1 in CI workflow

Signed-off-by: Sammy Oina <sammyoina@gmail.com>

* refactor: Update Go build tag syntax, octal literals, and simplify agent attestation logic.

Signed-off-by: Sammy Oina <sammyoina@gmail.com>

* chore: update igvmmeasure script's subdirectory path to tools/igvmmeasure

Signed-off-by: Sammy Oina <sammyoina@gmail.com>

* refactor: rename AttestationService RPC methods from `Get` to `Fetch` and update corresponding service implementation.

Signed-off-by: Sammy Oina <sammyoina@gmail.com>

* refactor: rename attestation client methods from `GetX` to `FetchX`

Signed-off-by: Sammy Oina <sammyoina@gmail.com>

---------

Signed-off-by: Sammy Oina <sammyoina@gmail.com>
This commit is contained in:
Sammy Kerata Oina
2025-12-17 16:07:11 +03:00
committed by GitHub
parent 3f06971976
commit c422afe0a6
35 changed files with 1024 additions and 132 deletions
@@ -0,0 +1,38 @@
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 FetchAzureToken (AzureTokenRequest) returns (AzureTokenResponse);
}
message AttestationRequest {
bytes report_data = 1; // 64 bytes for SNP/TDX
bytes nonce = 2; // Nonce for vTPM
PlatformType platform_type = 3;
}
message AttestationResponse {
bytes quote = 1;
}
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;
}