Skip to content

Commit 76a1081

Browse files
committed
Write report_data according to DIP-1
1 parent 58c91b8 commit 76a1081

1 file changed

Lines changed: 10 additions & 2 deletions

File tree

guest-agent/src/rpc_service.rs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use std::sync::Arc;
66

77
use anyhow::{Context, Result};
8+
use base64::{engine::general_purpose::URL_SAFE_NO_PAD, Engine as _};
89
use cert_client::CertRequestClient;
910
use dstack_guest_agent_rpc::{
1011
dstack_guest_server::{DstackGuestRpc, DstackGuestServer},
@@ -89,10 +90,17 @@ impl AppState {
8990
let secp256k1_pubkey = secp256k1_key.verifying_key().to_sec1_bytes();
9091

9192
let mut ed25519_report_data = [0u8; 64];
92-
ed25519_report_data[..ed25519_pubkey.len()].copy_from_slice(&ed25519_pubkey);
93+
let ed25519_b64 = URL_SAFE_NO_PAD.encode(ed25519_pubkey);
94+
let ed25519_report_string = format!("dip1::ed25519-pk:{}", ed25519_b64);
95+
let ed_bytes = ed25519_report_string.as_bytes();
96+
ed25519_report_data[..ed_bytes.len()].copy_from_slice(ed_bytes);
9397

9498
let mut secp256k1_report_data = [0u8; 64];
95-
secp256k1_report_data[..secp256k1_pubkey.len()].copy_from_slice(&secp256k1_pubkey);
99+
let secp256k1_b64 = URL_SAFE_NO_PAD.encode(secp256k1_pubkey);
100+
let secp256k1_report_string = format!("dip1::secp256k1c-pk:{}", secp256k1_b64);
101+
let secp_bytes = secp256k1_report_string.as_bytes();
102+
secp256k1_report_data[..secp_bytes.len()].copy_from_slice(secp_bytes);
103+
96104
let (ed25519_attestation, secp256k1_attestation) = if config.simulator.enabled {
97105
(
98106
simulate_quote(&config, ed25519_report_data, &vm_config)?,

0 commit comments

Comments
 (0)