pqblocks-cbom
High-throughput CycloneDX 1.5 CBOM metadata enrichment engine injecting quantum-safe classifications and CNSA 2.0 compliance properties.
Overview
pqblocks-cbom is an ultra-fast metadata enrichment engine and CLI that transforms standard CycloneDX 1.5 Software Bill of Materials (SBOM) documents into Cryptographic Bill of Materials (CBOM) enriched with post-quantum cryptography properties.
Designed for high-speed CI/CD pipelines, pqblocks-cbom operates purely on CPU using deterministic property injection and validation. It enriches 10,000 components in just 13 milliseconds with zero runtime dependencies.
Standards Alignment
- OWASP CycloneDX v1.5: Software Bill of Materials (SBOM) and Cryptographic Bill of Materials (CBOM) specification.
- NIST FIPS 203 / 204 / 205: Module-Lattice and Hash-Based Post-Quantum Cryptography standards (ML-KEM, ML-DSA, SLH-DSA).
- NSA CNSA 2.0: Commercial National Security Algorithm Suite 2.0 requirements for national security systems.
- CBOM Profiles: Support for
cnsa20andccf(Cryptographic Concentration Framework) property sets.
Installation
pip install pqblocks-cbom
Dependencies
Requires Python 3.11+. The core engine and CLI require zero third-party runtime dependencies (dependencies = []).
Quickstart
Python API
from pqblocks_cbom import CBOMEnricher, CBOMProfile
# Initialize enricher with NSA CNSA 2.0 profile
enricher = CBOMEnricher(CBOMProfile.CNSA20)
sbom = {
"bomFormat": "CycloneDX",
"specVersion": "1.5",
"version": 1,
"components": [
{"type": "library", "name": "liboqs", "version": "3.5.7"}
]
}
cbom = enricher.enrich_sbom(sbom)
print("Enriched components:", len(cbom["components"]))
print("Injected properties:", [p["name"] for p in cbom["components"][0]["properties"]])
CLI Interface
# Enrich an existing CycloneDX SBOM
pqblocks-cbom enrich sbom.json --profile cnsa20 -o cbom.json
# Validate a CBOM against profile rules
pqblocks-cbom validate cbom.json --profile cnsa20
# Scan a source tree and generate enriched CBOM
pqblocks-cbom scan ./src --profile cnsa20 -o cbom.json
# Generate a verifiable attestation manifest package
pqblocks-cbom attest cbom.json --profile cnsa20 -o ./attestation_output/
Features
- Extreme Performance: Enriches 10,000 components in ~13 ms (>768,000 components/second). Single-component classification in 0.80 µs.
- Zero Runtime Dependencies: Written entirely in pure Python standard library (
json,hashlib,argparse,datetime,enum). - Deterministic & Idempotent: Re-enriching existing CBOMs does not duplicate properties or alter existing component metadata.
- Automated Attestation: Generates attestation manifests with SHA-256 digests and profile validation state.
- Interoperable: Fully tested and round-trip compatible with
cyclonedx-python-lib11+.
Documentation
- BENCHMARKS.md - Empirical throughput and scaling measurements.
- TESTING.md - Test harness details and 95% statement coverage.
- EVIDENCE.md - Standard mappings and parameter table references.
- VERIFICATION_REPORT.md - Multi-python verification log.
- USE_CASES.md - Pipeline recipes and security compliance workflows.
- SECURITY_NOTES.md - Security scope and defensive parser design.
- AGENTS.md - Automated verification and integration instructions.
- CHANGELOG.md - Release history.
License
Metadata
Release files for pqblocks-cbom 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| pqblocks_cbom-0.1.0.tar.gz | 21.1 kB | Without provenance | Details for pqblocks_cbom-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pqblocks_cbom-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for pqblocks_cbom-0.1.0-py3-none-any.whl |
Total release size: 35.5 kB
Release files / pqblocks_cbom-0.1.0.tar.gz
| Download URL | pqblocks_cbom-0.1.0.tar.gz |
|---|---|
| Size | 21.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
abbf3538fe477817f5f217aeddafa587f4911b60d7448ab3507a862f85d8d601
|
|
BLAKE2b-256 checksum How to use checksums |
d3d152582a5935070ddab3aa8b3ec9d5a1598624b76541300659c2aa428d4c99
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / pqblocks_cbom-0.1.0-py3-none-any.whl
| Download URL | pqblocks_cbom-0.1.0-py3-none-any.whl |
|---|---|
| Size | 14.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7f6f9878e34f52ec1f1134e1cfa09a2776eefb4821c23dadf5ee10cc09587b0d
|
|
BLAKE2b-256 checksum How to use checksums |
312b67450946098a6a07fc9189dc341a385e74eb43cc2c7b10a3a800e8bc1282
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Security for pqblocks-cbom 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.