clique_sibyl_commonlib/
lib.rs1#![feature(once_cell_try)]
2#![feature(io_error_more)]
3pub mod attestation;
4mod config;
5pub mod dcap;
6pub mod errors;
7pub mod key_manager;
8pub mod signature;
9pub mod utils;
10
11#[cfg(feature = "tdx_attest")]
12mod tdx_attest;
13
14#[cfg(any(
15 feature = "rustls-0_20",
16 feature = "rustls-0_21",
17 feature = "rustls-0_22",
18 feature = "rustls-0_23"
19))]
20pub mod tls;
21
22#[cfg(feature = "rustls-0_20")]
23pub use rustls_020 as rustls;
24#[cfg(feature = "rustls-0_21")]
25pub use rustls_021 as rustls;
26#[cfg(feature = "rustls-0_22")]
27pub use rustls_022 as rustls;
28#[cfg(feature = "rustls-0_23")]
29pub use rustls_023 as rustls;
30
31pub use serde_json;
32
33#[cfg(feature = "wasm")]
34mod wasm {
35 use wasm_bindgen::prelude::*;
36
37 use crate::attestation::Attestation;
38
39 #[wasm_bindgen]
40 pub fn verify_attestation(
41 attestation: &str,
42 trusted_enclaves: Option<Vec<String>>,
43 trusted_signers: Option<Vec<String>>,
44 ) -> Option<Vec<u8>> {
45 if let Ok(attestation) = serde_json::from_str::<Attestation>(attestation) {
46 if let Ok(user_report) = crate::attestation::verify_attestation(
47 &attestation,
48 trusted_enclaves.as_ref(),
49 trusted_signers.as_ref(),
50 ) {
51 return Some(user_report);
52 }
53 }
54
55 None
56 }
57
58 #[wasm_bindgen]
59 pub fn verify_with_signature(
60 message: Vec<u8>,
61 signature: &str,
62 attestation: &str,
63 trusted_enclaves: Option<Vec<String>>,
64 trusted_signers: Option<Vec<String>>,
65 ) -> bool {
66 if let Ok(attestation) = serde_json::from_str::<Attestation>(attestation) {
67 crate::attestation::verify_with_signature(
68 &message,
69 signature,
70 &attestation,
71 trusted_enclaves.as_ref(),
72 trusted_signers.as_ref(),
73 )
74 .is_ok()
75 } else {
76 false
77 }
78 }
79}