Python bindings for DCAP (Data Center Attestation Primitives) quote verification library
Project description
Python Bindings for DCAP-QVL
Python bindings for parsing and verifying Intel SGX/TDX DCAP (Data Center Attestation Primitives) quotes. Built on a Rust implementation for use in TEE (Trusted Execution Environment) remote attestation workflows.
Quick Start
# Install from PyPI
pip install dcap-qvl
# Basic usage
python -c "
import dcap_qvl
print('DCAP-QVL Python bindings successfully installed!')
print(f'Available functions: {dcap_qvl.__all__}')
"
Features
- Parse and inspect SGX/TDX quotes (headers, reports, embedded certificates)
- Extract PCK certificate extension fields (FMSPC, PPID, CPU SVN, etc.) or look up arbitrary OIDs
- Verify SGX and TDX quotes against collateral data
- Handle quote collateral data (serialize/deserialize JSON)
- Asynchronous collateral fetching from PCCS/PCS with async/await support
- Pure Rust implementation with Python bindings
- Cross-platform compatibility (Linux, macOS, Windows)
- Compatible with Python 3.8+
Installation
From PyPI (recommended)
pip install dcap-qvl
Using uv
uv add dcap-qvl
Usage
Parsing Quotes
import dcap_qvl
raw = open("quote.bin", "rb").read()
quote = dcap_qvl.parse_quote(raw)
# Quote type
print(quote.quote_type()) # "SGX" or "TDX"
print(quote.fmspc()) # e.g. "B0C06F000000"
# Header fields
hdr = quote.header
print(hdr.version, hdr.tee_type, hdr.attestation_key_type)
# Report body (TdReport10, TdReport15, or SgxEnclaveReport)
report = quote.report
if quote.is_tdx():
print(report.mr_td.hex())
print(report.rt_mr0.hex())
else:
print(report.mr_enclave.hex())
print(report.mr_signer.hex())
print(report.report_data.hex())
# Embedded PEM certificate chain
pem = quote.cert_chain_pem_bytes() # bytes or None
PCK Extension Parsing
# From a parsed quote
ext = quote.pck_extension() # PckExtension or None
if ext:
print(ext.fmspc.hex()) # 6-byte FMSPC
print(ext.ppid.hex()) # PPID
print(ext.cpu_svn.hex()) # CPU SVN
print(ext.pce_svn) # PCE SVN (int)
print(ext.pce_id.hex()) # PCE ID
print(ext.sgx_type) # SGX type (int)
# From a PEM certificate chain directly
ext = dcap_qvl.parse_pck_extension_from_pem(pem_bytes)
print(ext.fmspc.hex())
# Look up any OID in the Intel SGX extension (recursive search)
value = ext.get_value("1.2.840.113741.1.13.1.2.17") # PCESVN
if value is not None:
print(value.hex())
Basic Quote Verification
import dcap_qvl
import json
import time
# Load quote data (binary)
with open("path/to/quote", "rb") as f:
quote_data = f.read()
# Load collateral data (JSON)
with open("path/to/collateral.json", "r") as f:
collateral_json = json.load(f)
# Create collateral object
collateral = dcap_qvl.QuoteCollateralV3.from_json(json.dumps(collateral_json))
# Verify the quote
now = int(time.time())
try:
result = dcap_qvl.verify(quote_data, collateral, now)
print(f"Verification successful! Status: {result.status}")
print(f"Advisory IDs: {result.advisory_ids}")
except ValueError as e:
print(f"Verification failed: {e}")
Working with Collateral Data
# Create collateral manually
collateral = dcap_qvl.QuoteCollateralV3(
pck_crl_issuer_chain="...",
root_ca_crl=b"...", # bytes
pck_crl=b"...", # bytes
tcb_info_issuer_chain="...",
tcb_info="...", # JSON string
tcb_info_signature=b"...", # bytes
qe_identity_issuer_chain="...",
qe_identity="...", # JSON string
qe_identity_signature=b"...", # bytes
)
# Serialize to JSON
json_str = collateral.to_json()
# Deserialize from JSON
collateral = dcap_qvl.QuoteCollateralV3.from_json(json_str)
API Reference
Async Collateral Functions
All collateral functions are asynchronous and must be awaited. They use the Rust async runtime for optimal performance.
async get_collateral(pccs_url: str, raw_quote: bytes) -> QuoteCollateralV3
Fetch full collateral (PCK cert chain, TCB info, QE identity, CRLs) for a raw DCAP quote from the given PCCS / PCS URL. Handles every supported certification data type (including cert_type 2 / 3 where the PCK cert is retrieved from PCCS via encrypted PPID).
Parameters:
pccs_url: PCCS URL (e.g., "https://api.trustedservices.intel.com")raw_quote: Raw quote data as bytes
Returns:
QuoteCollateralV3: Quote collateral data (with PCK certificate chain attached)
Raises:
ValueError: If the quote is invalid, the HTTP client can't be built, or the PCCS / PCS fetch fails
Example:
import asyncio
import dcap_qvl
async def main():
pccs_url = "https://api.trustedservices.intel.com"
quote_data = open("quote.bin", "rb").read()
collateral = await dcap_qvl.get_collateral(pccs_url, quote_data)
print(f"Got collateral: {len(collateral.tcb_info)} chars")
asyncio.run(main())
async get_collateral_from_pcs(raw_quote: bytes) -> QuoteCollateralV3
Get collateral from Intel's PCS (default).
Parameters:
raw_quote: Raw quote data as bytes
Returns:
QuoteCollateralV3: Quote collateral data
Raises:
ValueError: If quote is invalid or FMSPC cannot be extractedRuntimeError: If network request fails
Example:
import asyncio
import dcap_qvl
async def main():
quote_data = open("quote.bin", "rb").read()
collateral = await dcap_qvl.get_collateral_from_pcs(quote_data)
print(f"Got collateral from Intel PCS")
asyncio.run(main())
async get_collateral_and_verify(raw_quote: bytes, pccs_url: Optional[str] = None) -> VerifiedReport
Get collateral and verify quote in one step.
Parameters:
raw_quote: Raw quote data as bytespccs_url: Optional PCCS URL (uses Intel PCS if None)
Returns:
VerifiedReport: Verification results
Raises:
ValueError: If quote is invalid or verification failsRuntimeError: If network request fails
Example:
import asyncio
import dcap_qvl
async def main():
quote_data = open("quote.bin", "rb").read()
result = await dcap_qvl.get_collateral_and_verify(quote_data)
print(f"Status: {result.status}")
print(f"Advisory IDs: {result.advisory_ids}")
asyncio.run(main())
Classes
QuoteCollateralV3
Represents quote collateral data required for verification.
Constructor:
QuoteCollateralV3(
pck_crl_issuer_chain: str,
root_ca_crl: bytes,
pck_crl: bytes,
tcb_info_issuer_chain: str,
tcb_info: str,
tcb_info_signature: bytes,
qe_identity_issuer_chain: str,
qe_identity: str,
qe_identity_signature: bytes,
)
Methods:
to_json() -> str: Serialize to JSON stringfrom_json(json_str: str) -> QuoteCollateralV3: Create from JSON string (static method)
Properties:
pck_crl_issuer_chain: strroot_ca_crl: bytespck_crl: bytestcb_info_issuer_chain: strtcb_info: strtcb_info_signature: bytesqe_identity_issuer_chain: strqe_identity: strqe_identity_signature: bytes
VerifiedReport
Contains the results of quote verification.
Properties:
status: str: Verification status (e.g., "OK", "SW_HARDENING_NEEDED", "CONFIGURATION_NEEDED", "OUT_OF_DATE", "REVOKED")advisory_ids: List[str]: List of Intel security advisory IDs (e.g., "INTEL-SA-00334")ppid: bytes: Platform PPID parsed from the PCK certificate
Methods:
to_json() -> str: Serialize to JSON string
Quote
Represents a parsed SGX or TDX quote. Created via parse_quote() or Quote.parse().
Properties:
header: QuoteHeader: Parsed quote headerreport: Union[TdReport10, TdReport15, SgxEnclaveReport]: Parsed report body
Methods:
parse(raw_quote: bytes) -> Quote: Parse from raw bytes (static method)fmspc() -> str: FMSPC as uppercase hex stringca() -> str: Certificate Authority identifieris_sgx() -> bool/is_tdx() -> bool: Check quote typequote_type() -> str: Returns "SGX" or "TDX"cert_chain_pem_bytes() -> Optional[bytes]: Embedded PEM certificate chainpck_extension() -> Optional[PckExtension]: Parse Intel SGX extension from leaf PCK cert
QuoteHeader
Properties:
version: int,attestation_key_type: int,tee_type: intqe_svn: int,pce_svn: intqe_vendor_id: bytes(16 bytes),user_data: bytes(20 bytes)
TdReport10 / TdReport15
TDX TDREPORT structures. TdReport15 extends TdReport10 with tee_tcb_svn2 and mr_service_td.
Properties (TdReport10):
tee_tcb_svn: bytes,mr_seam: bytes,mr_signer_seam: bytes,seam_attributes: bytestd_attributes: bytes,xfam: bytes,mr_td: bytes,mr_config_id: bytesmr_owner: bytes,mr_owner_config: bytesrt_mr0: bytes,rt_mr1: bytes,rt_mr2: bytes,rt_mr3: bytesreport_data: bytes
SgxEnclaveReport
Properties:
cpu_svn: bytes,attributes: bytesmr_enclave: bytes,mr_signer: bytesreport_data: bytes
PckExtension
Parsed values from the Intel SGX extension in the PCK leaf certificate.
Properties:
ppid: bytes,cpu_svn: bytes,pce_svn: int,pce_id: bytesfmspc: bytes(6 bytes),sgx_type: intplatform_instance_id: Optional[bytes]
Methods:
get_value(oid: str) -> Optional[bytes]: Look up any OID in the Intel SGX extension by dotted-decimal string. Returns raw DER value bytes, or None if not found.
Functions
parse_quote(raw_quote: bytes) -> Quote
Parse a raw SGX or TDX quote from bytes.
parse_pck_extension_from_pem(pem_bytes: bytes) -> PckExtension
Parse the Intel SGX extension from a PEM-encoded certificate chain (uses the first/leaf certificate).
verify(raw_quote: bytes, collateral: QuoteCollateralV3, now_secs: int) -> VerifiedReport
Verify a quote with the provided collateral data.
Parameters:
raw_quote: Raw quote data as bytescollateral: Quote collateral datanow_secs: Current timestamp in seconds since Unix epoch
Returns:
VerifiedReport: Verification results
Raises:
ValueError: If verification fails
verify_with_root_ca(raw_quote: bytes, collateral: QuoteCollateralV3, root_ca_der: bytes, now_secs: int) -> VerifiedReport
Verify a quote with a custom root CA certificate (DER format) instead of the built-in Intel root CA.
Development
Building from Source
If you want to build from source or contribute to development:
# Clone the repository
git clone https://github.com/Phala-Network/dcap-qvl.git
cd dcap-qvl/python-bindings
# Install development dependencies (including maturin)
uv sync
# Build and install the Python extension in development mode
uv run maturin develop --features python
# Run tests
uv run pytest tests/ -v
Note: maturin is only required for building from source. Regular users installing from PyPI don't need maturin.
Running Examples
After installing the package, you can run the examples:
# Download the examples from the repository
git clone https://github.com/Phala-Network/dcap-qvl.git
cd dcap-qvl/python-bindings
# Basic functionality test
python examples/basic_test.py
# Full example (requires sample data files)
python examples/python_example.py
Or if you're using uv for development:
# Basic functionality test
uv run python examples/basic_test.py
# Full example (requires sample data files)
uv run python examples/python_example.py
Testing Across Python Versions
The project includes comprehensive testing across all supported Python versions:
# Quick test across all Python versions
make test_python_versions
# Test current Python version only
make test_python
See PYTHON_TESTING.md for detailed information about Python version compatibility testing.
Requirements
For regular usage (installing from PyPI):
- Python 3.8+
For development (building from source):
- Python 3.8+
- Rust toolchain (rustc, cargo)
- maturin (automatically installed with
uv sync)
License
MIT License - see LICENSE for details.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dcap_qvl-0.4.0.tar.gz.
File metadata
- Download URL: dcap_qvl-0.4.0.tar.gz
- Upload date:
- Size: 250.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a729bfd8daa36530feaaa54bf58fab9c5107103c4a7471ef480cad39db1b8e6b
|
|
| MD5 |
20ef20fd1317ba66317d28cc557d8b4c
|
|
| BLAKE2b-256 |
c1e1c163d56d30bb9f984363ed150e517d206fdd99a45c038d4b3557b2272407
|
Provenance
The following attestation bundles were made for dcap_qvl-0.4.0.tar.gz:
Publisher:
python-wheels.yml on Phala-Network/dcap-qvl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dcap_qvl-0.4.0.tar.gz -
Subject digest:
a729bfd8daa36530feaaa54bf58fab9c5107103c4a7471ef480cad39db1b8e6b - Sigstore transparency entry: 1357017173
- Sigstore integration time:
-
Permalink:
Phala-Network/dcap-qvl@c5990615c01ae77fd2f6981f1f8c6b7c7ae9bdb9 -
Branch / Tag:
refs/heads/master - Owner: https://github.com/Phala-Network
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-wheels.yml@c5990615c01ae77fd2f6981f1f8c6b7c7ae9bdb9 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file dcap_qvl-0.4.0-cp38-abi3-win_amd64.whl.
File metadata
- Download URL: dcap_qvl-0.4.0-cp38-abi3-win_amd64.whl
- Upload date:
- Size: 1.6 MB
- Tags: CPython 3.8+, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
46ed03e546b83e7debc5a00c191b4e750b90c9b0fbf57ef4d57793ebf6926535
|
|
| MD5 |
84f1c482178239cda0b47a1cf57b2f3a
|
|
| BLAKE2b-256 |
6581ac99711068cbb4f28a9801c1592e270b773a4e0b330185cd34d8fc8c6858
|
Provenance
The following attestation bundles were made for dcap_qvl-0.4.0-cp38-abi3-win_amd64.whl:
Publisher:
python-wheels.yml on Phala-Network/dcap-qvl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dcap_qvl-0.4.0-cp38-abi3-win_amd64.whl -
Subject digest:
46ed03e546b83e7debc5a00c191b4e750b90c9b0fbf57ef4d57793ebf6926535 - Sigstore transparency entry: 1357017191
- Sigstore integration time:
-
Permalink:
Phala-Network/dcap-qvl@c5990615c01ae77fd2f6981f1f8c6b7c7ae9bdb9 -
Branch / Tag:
refs/heads/master - Owner: https://github.com/Phala-Network
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-wheels.yml@c5990615c01ae77fd2f6981f1f8c6b7c7ae9bdb9 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file dcap_qvl-0.4.0-cp38-abi3-musllinux_1_1_x86_64.whl.
File metadata
- Download URL: dcap_qvl-0.4.0-cp38-abi3-musllinux_1_1_x86_64.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.8+, musllinux: musl 1.1+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3b02d374af58b0d9314116a4445dffb5d7ae45b0ced31388293ade4ee07cd7e8
|
|
| MD5 |
162b0e44dd405dae1ab53f514b35ae52
|
|
| BLAKE2b-256 |
bf5a93f3cb5175ff240b6b199443fc17c33d8e9aed94dfd952c48619023e356a
|
Provenance
The following attestation bundles were made for dcap_qvl-0.4.0-cp38-abi3-musllinux_1_1_x86_64.whl:
Publisher:
python-wheels.yml on Phala-Network/dcap-qvl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dcap_qvl-0.4.0-cp38-abi3-musllinux_1_1_x86_64.whl -
Subject digest:
3b02d374af58b0d9314116a4445dffb5d7ae45b0ced31388293ade4ee07cd7e8 - Sigstore transparency entry: 1357017220
- Sigstore integration time:
-
Permalink:
Phala-Network/dcap-qvl@c5990615c01ae77fd2f6981f1f8c6b7c7ae9bdb9 -
Branch / Tag:
refs/heads/master - Owner: https://github.com/Phala-Network
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-wheels.yml@c5990615c01ae77fd2f6981f1f8c6b7c7ae9bdb9 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file dcap_qvl-0.4.0-cp38-abi3-musllinux_1_1_aarch64.whl.
File metadata
- Download URL: dcap_qvl-0.4.0-cp38-abi3-musllinux_1_1_aarch64.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.8+, musllinux: musl 1.1+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2c9def35ae5419c9616dab69b65da13cffce984f11ec4c4abe2c70a8f611d01e
|
|
| MD5 |
97721ffbae943972689e1407ad34ccc1
|
|
| BLAKE2b-256 |
d4c14e22d91d813cb3c222d763d8c058fa749bc04e5943184d88ee9137ebedfa
|
Provenance
The following attestation bundles were made for dcap_qvl-0.4.0-cp38-abi3-musllinux_1_1_aarch64.whl:
Publisher:
python-wheels.yml on Phala-Network/dcap-qvl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dcap_qvl-0.4.0-cp38-abi3-musllinux_1_1_aarch64.whl -
Subject digest:
2c9def35ae5419c9616dab69b65da13cffce984f11ec4c4abe2c70a8f611d01e - Sigstore transparency entry: 1357017227
- Sigstore integration time:
-
Permalink:
Phala-Network/dcap-qvl@c5990615c01ae77fd2f6981f1f8c6b7c7ae9bdb9 -
Branch / Tag:
refs/heads/master - Owner: https://github.com/Phala-Network
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-wheels.yml@c5990615c01ae77fd2f6981f1f8c6b7c7ae9bdb9 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file dcap_qvl-0.4.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: dcap_qvl-0.4.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.8+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
15bff64e138a3a98d283b9bfffb1077f0994ea8b29c13b823b1c73bc97349de8
|
|
| MD5 |
453db45b93b803de33632c14383eca17
|
|
| BLAKE2b-256 |
dace8b0c7a405eefb7c43acea59b85ca7b1abdbf070c0cc39bf3b322ffa847c1
|
Provenance
The following attestation bundles were made for dcap_qvl-0.4.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
python-wheels.yml on Phala-Network/dcap-qvl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dcap_qvl-0.4.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
15bff64e138a3a98d283b9bfffb1077f0994ea8b29c13b823b1c73bc97349de8 - Sigstore transparency entry: 1357017209
- Sigstore integration time:
-
Permalink:
Phala-Network/dcap-qvl@c5990615c01ae77fd2f6981f1f8c6b7c7ae9bdb9 -
Branch / Tag:
refs/heads/master - Owner: https://github.com/Phala-Network
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-wheels.yml@c5990615c01ae77fd2f6981f1f8c6b7c7ae9bdb9 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file dcap_qvl-0.4.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: dcap_qvl-0.4.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.8+, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4099c5f04abd8a7cfb0865dc0333c86ded35cb14d1b9a326a6a64c0d71068e0d
|
|
| MD5 |
5d62721fea4b0e2bf624295ee46eec49
|
|
| BLAKE2b-256 |
4f6930ff7c8b70a772163fd80c48b6eb108c9300c67ceba00af214194a606f22
|
Provenance
The following attestation bundles were made for dcap_qvl-0.4.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
python-wheels.yml on Phala-Network/dcap-qvl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dcap_qvl-0.4.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
4099c5f04abd8a7cfb0865dc0333c86ded35cb14d1b9a326a6a64c0d71068e0d - Sigstore transparency entry: 1357017233
- Sigstore integration time:
-
Permalink:
Phala-Network/dcap-qvl@c5990615c01ae77fd2f6981f1f8c6b7c7ae9bdb9 -
Branch / Tag:
refs/heads/master - Owner: https://github.com/Phala-Network
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-wheels.yml@c5990615c01ae77fd2f6981f1f8c6b7c7ae9bdb9 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file dcap_qvl-0.4.0-cp38-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: dcap_qvl-0.4.0-cp38-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 4.2 MB
- Tags: CPython 3.8+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1704b588df68d89537744a4a950fd2e8723adad798e3a79abc2cf48f3814ee11
|
|
| MD5 |
954b2bbb09a58e2de81efd6da87ac8d1
|
|
| BLAKE2b-256 |
e723f5f2081f531ee52e0d6c2d364648a4439fed01e808891bbbaed6d003658a
|
Provenance
The following attestation bundles were made for dcap_qvl-0.4.0-cp38-abi3-macosx_11_0_arm64.whl:
Publisher:
python-wheels.yml on Phala-Network/dcap-qvl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dcap_qvl-0.4.0-cp38-abi3-macosx_11_0_arm64.whl -
Subject digest:
1704b588df68d89537744a4a950fd2e8723adad798e3a79abc2cf48f3814ee11 - Sigstore transparency entry: 1357017204
- Sigstore integration time:
-
Permalink:
Phala-Network/dcap-qvl@c5990615c01ae77fd2f6981f1f8c6b7c7ae9bdb9 -
Branch / Tag:
refs/heads/master - Owner: https://github.com/Phala-Network
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-wheels.yml@c5990615c01ae77fd2f6981f1f8c6b7c7ae9bdb9 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file dcap_qvl-0.4.0-cp38-abi3-macosx_10_12_x86_64.whl.
File metadata
- Download URL: dcap_qvl-0.4.0-cp38-abi3-macosx_10_12_x86_64.whl
- Upload date:
- Size: 1.6 MB
- Tags: CPython 3.8+, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
00974f12027b6167972fb9f1a013ee15b69bbd2dafc69ff0f3c3d77c5796da8d
|
|
| MD5 |
f96eee5189b1a9d967fbe47fb236d422
|
|
| BLAKE2b-256 |
333328914a83320200a20b38aacba9335f8a69c7f5f7dbdc8e5516b774cf3c90
|
Provenance
The following attestation bundles were made for dcap_qvl-0.4.0-cp38-abi3-macosx_10_12_x86_64.whl:
Publisher:
python-wheels.yml on Phala-Network/dcap-qvl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dcap_qvl-0.4.0-cp38-abi3-macosx_10_12_x86_64.whl -
Subject digest:
00974f12027b6167972fb9f1a013ee15b69bbd2dafc69ff0f3c3d77c5796da8d - Sigstore transparency entry: 1357017184
- Sigstore integration time:
-
Permalink:
Phala-Network/dcap-qvl@c5990615c01ae77fd2f6981f1f8c6b7c7ae9bdb9 -
Branch / Tag:
refs/heads/master - Owner: https://github.com/Phala-Network
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-wheels.yml@c5990615c01ae77fd2f6981f1f8c6b7c7ae9bdb9 -
Trigger Event:
workflow_dispatch
-
Statement type: