#![cfg_attr(all(not(test), not(feature = "std")), no_std)]
#[macro_use]
extern crate alloc;
use scale::{Decode, Encode};
use serde::{Deserialize, Serialize};
#[cfg(feature = "borsh_schema")]
use borsh::BorshSchema;
#[cfg(feature = "borsh")]
use borsh::{BorshDeserialize, BorshSerialize};
#[derive(Encode, Decode, Clone, PartialEq, Eq, Debug, Serialize, Deserialize)]
#[cfg_attr(feature = "borsh", derive(BorshSerialize, BorshDeserialize))]
#[cfg_attr(feature = "borsh_schema", derive(BorshSchema))]
pub struct QuoteCollateralV3 {
pub pck_crl_issuer_chain: String,
#[serde(with = "serde_bytes")]
pub root_ca_crl: Vec<u8>,
#[serde(with = "serde_bytes")]
pub pck_crl: Vec<u8>,
pub tcb_info_issuer_chain: String,
pub tcb_info: String,
#[serde(with = "serde_bytes")]
pub tcb_info_signature: Vec<u8>,
pub qe_identity_issuer_chain: String,
pub qe_identity: String,
#[serde(with = "serde_bytes")]
pub qe_identity_signature: Vec<u8>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub pck_certificate_chain: Option<String>,
}
#[cfg(feature = "report")]
pub mod collateral;
#[cfg(feature = "report")]
pub use collateral::PHALA_PCCS_URL;
pub mod config;
#[cfg(feature = "default-x509")]
pub mod configs;
pub mod crypto;
pub mod oids;
#[cfg(feature = "default-x509")]
pub mod signature;
#[cfg(feature = "default-x509")]
pub mod x509;
mod constants;
pub mod intel;
mod qe_identity;
pub mod tcb_info;
mod utils;
pub use constants::INTEL_QE_VENDOR_ID;
pub mod quote;
pub mod verify;
#[cfg(feature = "python")]
pub mod python;
#[cfg(feature = "go")]
mod ffi;
#[cfg(feature = "python")]
use pyo3::prelude::*;
#[cfg(feature = "python")]
#[pymodule]
fn _dcap_qvl(m: &Bound<'_, PyModule>) -> PyResult<()> {
python::register_module(m)
}