import time
from importlib.metadata import version
from typing import Optional
from ._dcap_qvl import (
PyQuoteCollateralV3 as QuoteCollateralV3,
PyVerifiedReport as VerifiedReport,
PyQuoteClaims as QuoteClaims,
PyQuoteHeader as QuoteHeader,
PyTdReport10 as TdReport10,
PyTdReport15 as TdReport15,
PySgxEnclaveReport as SgxEnclaveReport,
PyPckExtension as PckExtension,
PyQuotePolicy as QuotePolicy,
PyQuoteVerifier as QuoteVerifier,
PyQuote as Quote,
py_verify as verify,
py_verify_with_root_ca as verify_with_root_ca,
parse_quote,
parse_pck_extension_from_pem,
get_collateral,
)
from .enums import AttestationKeyType, TeeType
PHALA_PCCS_URL = "https://pccs.phala.network"
INTEL_PCS_URL = "https://api.trustedservices.intel.com"
PCS_URL = INTEL_PCS_URL
async def get_collateral_from_pcs(raw_quote: bytes) -> QuoteCollateralV3:
return await get_collateral(INTEL_PCS_URL, raw_quote)
async def get_collateral_and_verify(
raw_quote: bytes,
pccs_url: Optional[str] = None,
) -> VerifiedReport:
url = (pccs_url or "").strip() or PHALA_PCCS_URL
collateral = await get_collateral(url, raw_quote)
now_secs = int(time.time())
return verify(raw_quote, collateral, now_secs)
__all__ = [
"QuoteCollateralV3",
"QuoteClaims",
"QuoteVerifier",
"VerifiedReport",
"QuoteHeader",
"TdReport10",
"TdReport15",
"SgxEnclaveReport",
"PckExtension",
"QuotePolicy",
"AttestationKeyType",
"TeeType",
"Quote",
"verify",
"verify_with_root_ca",
"get_collateral",
"get_collateral_from_pcs",
"get_collateral_and_verify",
"parse_quote",
"parse_pck_extension_from_pem",
"PHALA_PCCS_URL",
"INTEL_PCS_URL",
"PCS_URL",
]
__version__ = version("dcap-qvl")