Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
d2621bd
feat(ccoe): OID registry, service profiles and attestation register
rajnishprecogs Aug 1, 2026
0cfdd24
feat(gen-009): per-component SSH cryptographic configuration profile
rajnishprecogs Aug 1, 2026
afdd4b0
feat(gen-005): semantic CBOM diff, versioning and signed change log
rajnishprecogs Aug 1, 2026
c90b0a2
feat(clm): certificate lifecycle connector and CLM-001/003/004 profiles
rajnishprecogs Aug 1, 2026
5ae36b2
feat(hsm): agent CBOM ingest, artefact identity and HSM/PCAM profiles
rajnishprecogs Aug 1, 2026
aa009a3
fix(hsm): treat an unreported PKCS#11 attribute as undetermined, not …
rajnishprecogs Aug 1, 2026
ed454f8
feat(gen-006): ML-DSA-65 CBOM signing, with hybrid transition support
rajnishprecogs Aug 2, 2026
61dcb20
feat(gen-001): version-parameterised CycloneDX emit and ingest
rajnishprecogs Aug 2, 2026
66747d7
feat(gen-001,gen-004): CycloneDX 1.7 support and OIDs in emitted CBOMs
rajnishprecogs Aug 2, 2026
eb74a98
GEN-005: a first CBOM release is 1.0.0, not 0.1.0
rajnishprecogs Aug 11, 2026
b9eba9f
Add organisational cryptographic policy packs
rajnishprecogs Aug 11, 2026
fc2dbba
Expose policy packs through the compliance module
rajnishprecogs Aug 12, 2026
34b931e
feat(gen-004): identify all 96 registered algorithm families from the…
rajnishprecogs Aug 12, 2026
0ab4337
feat(gen-004): assess all 96 registry families in the Precogs overlay
rajnishprecogs Aug 12, 2026
196f419
feat(gen-004): resolve all 246 registry curves, not a curated nine
rajnishprecogs Aug 12, 2026
a53ce45
fix(scanners): identify findings against the registry, not a fifty-en…
rajnishprecogs Aug 12, 2026
e32925d
feat(gen-004): cite the standard behind every family in Appendix A
rajnishprecogs Aug 12, 2026
d1cc3b6
fix(gen-004): identify bare family names, pre-standardisation names, …
rajnishprecogs Aug 12, 2026
fa34c8c
feat(pqc): identify the post-quantum families the CycloneDX registry …
rajnishprecogs Aug 12, 2026
c5feb8c
fix(output): emit CBOM algorithm properties from the registry
rajnishprecogs Aug 12, 2026
ca222bd
feat(docs): generate the CycloneDX registry appendix instead of trans…
rajnishprecogs Aug 12, 2026
a2d70a1
Give certificates an identity, and judge every key on its real strength
AbhishekPrecogsAI Aug 12, 2026
e6a72c7
fix(gen-004): identify unqualified RSA, and stop treating one family'…
rajnishprecogs Aug 12, 2026
5d47d27
Merge branch 'feat/ccoe-conformance-attestation' of https://github.co…
rajnishprecogs Aug 12, 2026
a018c47
Record the certificate chain an endpoint actually presents
AbhishekPrecogsAI Aug 12, 2026
4a510d3
Ask servers which cipher suites they accept, rather than watching one…
AbhishekPrecogsAI Aug 12, 2026
952a737
fix(hsm): identify HSM keys against the registry and emit them as assets
rajnishprecogs Aug 13, 2026
1210ef4
feat(fr2): import a CycloneDX CBOM produced by someone else
rajnishprecogs Aug 14, 2026
6af346e
Merge remote-tracking branch 'origin/feat/ccoe-conformance-attestatio…
rajnishprecogs Aug 14, 2026
be7bfdb
feat(fr3): serialise and parse CycloneDX as XML, and let the caller p…
rajnishprecogs Aug 14, 2026
d3e9507
feat(fr3): make CycloneDX lossless for our own data, and ingest SPDX
rajnishprecogs Aug 14, 2026
04ff3c5
feat(gen-004): resolve the national and legacy OID arcs, 26 families …
rajnishprecogs Aug 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,116 changes: 1,116 additions & 0 deletions data/algorithm-oids.json

Large diffs are not rendered by default.

838 changes: 838 additions & 0 deletions data/attestation-schemas.json

Large diffs are not rendered by default.

909 changes: 909 additions & 0 deletions data/crypto-overlay.json

Large diffs are not rendered by default.

124 changes: 124 additions & 0 deletions data/detection-tiers.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
{
"$comment": "How an algorithm name was obtained, and how much that basis is worth. Ordered, first match wins, adapted from the identity priority ladder in the Enterprise CBOM Aggregation Engine design — the same principle applied to identification rather than asset matching. A finding always records the tier it was established at, so a reviewer can tell an API call site from a variable name that merely looked cryptographic.",
"$schemaVersion": "1.0.0",
"$updated": "2026-08-12",
"$comment_review": "Tiers at or below the reviewFrom rank carry reviewRequired. They are reported, never silently dropped — a weak signal is still evidence — but they are not presented as established fact.",
"reviewFrom": 7,
"tiers": [
{
"rank": 1,
"id": "api-call-exact",
"confidence": 1.0,
"strength": "exact",
"description": "A known cryptographic API was called and its algorithm argument matched a registry pattern exactly."
},
{
"rank": 2,
"id": "api-call-normalised",
"confidence": 0.9,
"strength": "strong",
"description": "A known cryptographic API was called and its algorithm argument matched a registry pattern once real-world spelling was normalised — HMAC-SHA256 for the registry's HMAC-SHA-256."
},
{
"rank": 3,
"id": "api-constant",
"confidence": 0.85,
"strength": "strong",
"description": "A library constant that names an algorithm outright, such as an OpenSSL padding or curve constant."
},
{
"rank": 4,
"id": "config-value",
"confidence": 0.75,
"strength": "strong",
"description": "A configuration or manifest value in a field known to carry an algorithm — a cipher suite list, a signature algorithm setting."
},
{
"rank": 5,
"id": "family-name-only",
"confidence": 0.65,
"strength": "strong",
"description": "The name is a registry algorithm family but carries no parameter set — a CBOM component named ML-KEM, or a call site naming the family alone. The family is established; the parameters that decide its strength are not."
},
{
"rank": 6,
"id": "import-inferred",
"confidence": 0.6,
"strength": "heuristic",
"description": "A cryptographic module import that names the algorithm, without an observed call site. Evidence the algorithm is available, not that it is used."
},
{
"rank": 7,
"id": "string-literal",
"confidence": 0.5,
"strength": "heuristic",
"description": "A bare string literal matching a registry name, with no call site to anchor it. May be a log message or a comment."
},
{
"rank": 8,
"id": "identifier-name",
"confidence": 0.3,
"strength": "weak",
"description": "A variable, function or field name containing an algorithm name. Frequently a legacy name that outlived the algorithm it refers to."
},
{
"rank": 9,
"id": "ambiguous",
"confidence": 0.25,
"strength": "weak",
"description": "The name matched, but more than one registry family accepts it and nothing in the evidence settles which — a bare RSA-PKCS1-1.5 is both an encryption and a signature scheme."
}
],
"$comment_riskMapping": "Overlay assessment mapped onto the risk vocabulary the scanners already emit. Status governs; quantum exposure raises the floor for an otherwise sound algorithm, because harvest-now-decrypt-later makes a classically fine algorithm a scheduling problem rather than a safe one.",
"riskMapping": {
"broken": {
"level": "CRITICAL",
"score": 95
},
"deprecated": {
"level": "HIGH",
"score": 75
},
"test-only": {
"level": "HIGH",
"score": 70
},
"legacy": {
"level": "MEDIUM",
"score": 45
},
"active": {
"level": "SAFE",
"score": 10
}
},
"quantumFloor": {
"shor": {
"level": "MEDIUM",
"score": 40
},
"depends": {
"level": "LOW",
"score": 20
},
"grover": null,
"safe": null
},
"$comment_categoryMapping": "Registry primitive mapped onto the category vocabulary the scanners already emit.",
"categoryMapping": {
"block-cipher": "symmetric",
"stream-cipher": "symmetric",
"ae": "symmetric",
"key-wrap": "symmetric",
"signature": "asymmetric",
"pke": "asymmetric",
"kem": "asymmetric",
"key-agree": "asymmetric",
"hash": "hash",
"xof": "hash",
"mac": "mac",
"kdf": "kdf",
"drbg": "rbg",
"other": "other"
}
}
Loading