TDX Quote
Attestation Service
TDX Quote
POST
TDX Quote
Get TDX Quote
Generate an Intel TDX attestation quote with custom report data. This endpoint implements TLS channel binding using EKM (Exported Keying Material) as defined in RFC 5705.Endpoint
Authentication
The EKM header format is{ekm_hex}:{hmac_hex} where:
ekm_hex: 64-character hex string (32 bytes) of the TLS Exported Keying Materialhmac_hex: 64-character HMAC-SHA256 signature of the EKM value
HMAC-SHA256(ekm_hex, EKM_SHARED_SECRET)
Request Parameters
64-character hexadecimal string (32 bytes). Provides freshness to the attestation quote. Must be a valid hex string.
Request Body
Response
Whether the quote generation succeeded
TDX quote object from dstack_sdk containing the raw attestation data
Trusted Computing Base (TCB) information for quote verification
Unix timestamp (in seconds) when the quote was generated
Type of quote generated (always “tdx” for Intel TDX)
Error message if quote generation failed
Error Responses
400 Bad Request
- Missing or invalid
nonce_hex(must be exactly 64 hex characters) - Missing EKM header
403 Forbidden
- Invalid EKM header HMAC signature
500 Internal Server Error
- Dstack client not initialized
- Failed to obtain TDX quote or TCB info
- EKM_SHARED_SECRET not configured
Report Data Computation
Thereport_data field in the TDX quote is computed as:
- The specific nonce (freshness)
- The TLS session via EKM (channel binding)
Example
Success Response
Security Considerations
Development Mode: In non-TEE environments, the service falls back to using the
EKM_SHARED_SECRET environment variable. The secret must be at least 32 characters long.Implementation Details
The service uses the dstack_sdk to interact with Intel TDX hardware. The quote generation happens asynchronously, with both the quote and TCB info fetched concurrently for optimal performance. Source:cvm/attestation-service/attestation_service.py:182-263