1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
//! # dcap-qvl
//!
//! This crate implements the quote verification logic for DCAP (Data Center Attestation Primitives) in pure Rust. It supports both SGX (Software Guard Extensions) and TDX (Trust Domain Extensions) quotes.
//!
//! # Features
//! - Verify SGX and TDX quotes
//! - Get collateral from PCCS
//! - Extract information from quotes
//!
//! # Usage
//! Add the following dependency to your `Cargo.toml` file to use this crate:
//! ```toml
//! [dependencies]
//! dcap-qvl = "0.1.0"
//! ```
//!
//! # Example: Get Collateral from PCCS_URL and Verify Quote
//!
//! To get collateral from a PCCS_URL and verify a quote, you can use the following example code:
//! ```no_run
//! use dcap_qvl::collateral::get_collateral;
//! use dcap_qvl::verify::verify;
//!
//! #[tokio::main]
//! async fn main() {
//! // Get PCCS_URL from environment variable. The URL is like "https://localhost:8081/sgx/certification/v4/".
//! let pccs_url = std::env::var("PCCS_URL").expect("PCCS_URL is not set");
//! let quote = std::fs::read("tdx_quote").expect("tdx_quote is not found");
//! let collateral = get_collateral(&pccs_url, "e).await.expect("failed to get collateral");
//! let now = std::time::SystemTime::now().duration_since(std::time::UNIX_EPOCH).unwrap().as_secs();
//! let tcb = verify("e, &collateral, now).expect("failed to verify quote");
//! println!("{:?}", tcb);
//! }
//! ```
extern crate alloc;
use ;
use ;