SANCTUM SECOPS · PKI / PQC CONSOLE
Status: DRAFT — v0.1 Document OID: 1.3.6.1.4.1.65953.23.1.1 Version: 0.1 Effective date: DRAFT — not yet effective. Pending Brian Vicente review and approval. Document date: 2026-07-27
DRAFT NOTICE. This document is version 0.1 and is a DRAFT. It has not been approved by Sanctum SecOps LLC policy management authority. It describes a LAB/TEST demonstration PKI hierarchy (
sanctum-root-ca-g1,sanctum-issuing-ca-g1,sanctum-pqc-ca-g1) built for the Cygnus PQC console repository build. No certificate issued under this hierarchy should be relied upon for any production purpose. Section numbering follows RFC 3647 verbatim, including sections with "No stipulation," because auditors check for the presence of every numbered section.
1.1.1. This Certificate Policy ("CP") specifies the policies and requirements
governing the issuance, management, and use of public key certificates issued
by the Sanctum SecOps Trust Foundation demonstration hierarchy that
underlies the public PKI repository at pki.sanctumsecops.com and
crl.sanctumsecops.com.
1.1.2. This CP is written against the framework of RFC 3647, Internet X.509 Public Key Infrastructure Certificate Policy and Certification Practices Framework.
1.1.3. This CP covers a three-tier hierarchy: sanctum-root-ca-g1 (root),
sanctum-issuing-ca-g1 (classical-algorithm issuing CA), and
sanctum-pqc-ca-g1 (post-quantum-flagged issuing CA). All three are LAB/TEST
demonstration material as of this version; see Section 1.1 DRAFT NOTICE
above.
1.1.4. This CP's own policy object identifier is
1.3.6.1.4.1.65953.23.1.1 (see Section 1.2). It is distinct from, and must
not be confused with, the published production OID assignments in the
Sanctum SecOps OID registry (Sanc-Admin/sanctum-oid-registry), including
sanctum-root-ca-g1 = 1.3.6.1.4.1.65953.1.1, which identifies the real
production root CA, not the LAB/TEST material described here.
1.2.1. Document name: Sanctum SecOps LLC Certificate Policy (CP).
1.2.2. Document OID: 1.3.6.1.4.1.65953.23.1.1.
1.2.3. Version: 0.1 (DRAFT).
1.2.4. This CP cross-references, but does not redefine, the following
already-published certificate policy OIDs from the production OID registry:
sanctum-policy-dv (1.3.6.1.4.1.65953.2.1), sanctum-policy-ov
(1.3.6.1.4.1.65953.2.2), sanctum-policy-hv (1.3.6.1.4.1.65953.2.3),
sanctum-policy-pqc-only (1.3.6.1.4.1.65953.2.4), and
sanctum-policy-hybrid-composite (1.3.6.1.4.1.65953.2.5).
1.3.1.1. The demonstration hierarchy consists of sanctum-root-ca-g1,
sanctum-issuing-ca-g1, and sanctum-pqc-ca-g1, as generated by
scripts/gen-ca.sh.
1.3.2.1. No stipulation. No separate registration authority function exists for this LAB/TEST demonstration hierarchy in v0.1.
1.3.3.1. For this demonstration hierarchy, the only subscriber is the sample
leaf certificate demo.pki.sanctumsecops.com, issued for repository-plumbing
demonstration purposes only.
1.3.4.1. Relying parties are any party that validates a certificate chaining
to sanctum-root-ca-g1. Given the DRAFT/LAB status of this hierarchy,
relying parties are advised not to extend any trust to it.
1.3.5.1. No stipulation.
1.4.1.1. Demonstration and repository-plumbing purposes only: validating that AIA/CDP URIs resolve correctly over plain HTTP, and that the repository directory layout functions end to end.
1.4.2.1. Certificates issued under this hierarchy must not be used to secure production traffic, must not be installed in any browser or OS trust store, and must not be relied upon for authentication, encryption, or code signing in any production system.
1.5.1.1. Sanctum SecOps LLC. Custodian: Brian Vicente, Founding Principal | Architect.
1.5.2.1. Brian Vicente, [email protected] (per the custodian contact on file in the published OID registry).
1.5.3.1. Brian Vicente, pending formal policy management authority designation. DRAFT — not yet finalized.
1.5.4.1. DRAFT — no stipulation until Brian Vicente formally approves v1.0.
1.6.1. CA — Certification Authority. CP — Certificate Policy. CPS — Certification Practice Statement. CDP — CRL Distribution Point. AIA — Authority Information Access. CRL — Certificate Revocation List. PQC — Post-Quantum Cryptography. ML-DSA — Module-Lattice Digital Signature Algorithm (FIPS 204). ML-KEM — Module-Lattice Key Encapsulation Mechanism (FIPS 203). SLH-DSA — Stateless Hash-Based Digital Signature Algorithm (FIPS 205). PEN — Private Enterprise Number (IANA).
2.1.1. The repository is published at http://pki.sanctumsecops.com/ (AIA/
certificate retrieval) and http://crl.sanctumsecops.com/ (CRL retrieval),
served over plain HTTP per Section 4.9.7 and Section 6.
2.2.1. This CP, the associated CPS, all CA certificates, and all CRLs are
published under public/{docs,pem,aia,crl}/ in this repository.
2.3.1. DRAFT — no stipulation on a production publication cadence. For this
lab hierarchy, CRLs are issued once at generation time by scripts/gen-ca.sh
with a 7-day (issuing CA), 1-day (delta), and 365-day (root) validity window.
2.4.1. The repository is intentionally public and world-readable. See Hard
Rule 4 in the build context: all PKI repository directories are
world-traversable (o+x) and files world-readable (o+r), verified by
scripts/fix-perms.sh. No authentication gate is applied to pki. or crl.
hostnames.
3.1.1.1. X.501 Distinguished Names are used in all certificate subjects, e.g.
CN=demo.pki.sanctumsecops.com.
3.1.2.1. Subject CNs must be meaningful and correspond to the actual entity (hostname, CA name) being represented.
3.1.3.1. Not permitted. No stipulation beyond that for this demonstration hierarchy.
3.1.4.1. No stipulation.
3.1.5.1. Subject names must be unique within the scope of the issuing CA's
index.txt database.
3.1.6.1. No stipulation.
3.2.1.1. Standard PKCS#10 CSR signature verification, per openssl req -new.
3.2.2.1. No stipulation for this LAB/TEST hierarchy — no real organization identity is validated; subjects are demonstration/lab material only.
3.2.3.1. No stipulation.
3.2.4.1. All subscriber information in this demonstration hierarchy is non-verified lab material.
3.2.5.1. No stipulation.
3.2.6.1. No stipulation.
3.3.1.1. No stipulation. Re-key is out of scope for this v0.1 demonstration hierarchy.
3.3.2.1. No stipulation.
3.4.1. No stipulation for v0.1. A revocation runbook is planned for a future
version of this CP, aligned with sanctum-pki-cert-ops operational guidance.
4.1.1.1. For this demonstration hierarchy, only the repository build process
(scripts/gen-ca.sh) submits certificate applications (CSRs), for the sample
leaf demo.pki.sanctumsecops.com.
4.1.2.1. No stipulation beyond the automated CSR generation performed by
scripts/gen-ca.sh.
4.2.1.1. No stipulation for this lab hierarchy; see Section 3.2.
4.2.2.1. No stipulation.
4.2.3.1. No stipulation.
4.3.1.1. Certificates are issued via openssl x509 -req ... -CA ... -CAkey
... as scripted in scripts/gen-ca.sh, embedding the applicable CDP and AIA
extensions described in Section 4.9.7 and Section 7.
4.3.2.1. No stipulation.
4.4.1.1. No stipulation.
4.4.2.1. Issued CA certificates and the sample leaf are published in DER form
under public/aia/ and in PEM form under public/pem/.
4.4.3.1. No stipulation.
4.5.1.1. Demonstration/lab use only. See Section 1.4.2 prohibited uses.
4.5.2.1. Relying parties should not extend production trust to this hierarchy. See Section 1.3.4.
4.6.1.1. No stipulation. Out of scope for v0.1.
4.6.2.1. No stipulation.
4.6.3.1. No stipulation.
4.6.4.1. No stipulation.
4.6.5.1. No stipulation.
4.6.6.1. No stipulation.
4.6.7.1. No stipulation.
4.7.1 through 4.7.7. No stipulation for v0.1. Certificate re-key is out of scope for this demonstration hierarchy.
4.8.1 through 4.8.7. No stipulation for v0.1.
4.9.1.1. No stipulation for v0.1; the demonstration hierarchy does not
currently revoke any certificate. scripts/gen-ca.sh provisions an
index.txt entry for the sample leaf sufficient to support revocation
tooling in a future version.
4.9.2.1. No stipulation.
4.9.3.1. No stipulation.
4.9.4.1. No stipulation.
4.9.5.1. No stipulation.
4.9.6.1. Relying parties that choose to validate this demonstration hierarchy's certificates should check the applicable CRL via the plain-HTTP CDP URIs embedded in the certificate (see Section 4.9.7), consistent with RFC 5280 guidance not to require HTTPS for CRL retrieval.
4.9.7.1. Base CRLs are issued with a 7-day validity for sanctum-issuing-ca-g1
and sanctum-pqc-ca-g1, and a 365-day validity for the offline
sanctum-root-ca-g1, matching typical offline-root operational practice
(Reference Architecture point 1, sanctum-pki-cert-ops).
4.9.7.2. A delta-style CRL, sanctum-issuing-ca-g1+.crl, is published with a
1-day validity, following the widely-used "+" delta CRL naming convention.
This is a documented limitation: it is not a byte-for-byte RFC 5280 formal
Delta CRL (id-ce-deltaCRLIndicator, OID 2.5.29.27), because OpenSSL 3.5.5's
ca -gencrl CLI does not support setting that extension via its config-file
mechanism. See scripts/gen-ca.sh inline comments.
4.9.7.3. All CDP URIs are plain http://, never https://. This is a
deliberate, non-negotiable design choice per RFC 5280 guidance: validating
the TLS certificate of an HTTPS CRL-distribution host would itself require
fetching a CRL to check that very host's certificate, creating a circular
dependency. crl.sanctumsecops.com and pki.sanctumsecops.com must never
have HSTS or an HTTP→HTTPS redirect.
4.9.8.1. No stipulation for v0.1.
4.9.9.1. No stipulation. No OCSP responder is deployed for this demonstration hierarchy in v0.1.
4.9.10.1. No stipulation.
4.9.11.1. No stipulation.
4.9.12.1. No stipulation.
4.9.13.1. No stipulation. Certificate suspension is not implemented.
4.9.14.1. No stipulation.
4.9.15.1. No stipulation.
4.9.16.1. No stipulation.
4.10.1.1. Certificate status is available only via CRL at this time; see Section 4.9.9.
4.10.2.1. No stipulation for v0.1 uptime commitments.
4.10.3.1. No stipulation.
4.11.1. No stipulation.
4.12.1.1. No key escrow is performed. No stipulation beyond this.
4.12.2.1. No stipulation.
5.1.1 through 5.1.8. No stipulation for v0.1. This demonstration hierarchy's key material is generated and stored only within this repository build sandbox and is not deployed to any physical facility.
5.2.1 through 5.2.4. No stipulation for v0.1.
5.3.1 through 5.3.8. No stipulation for v0.1.
5.4.1 through 5.4.8. No stipulation for v0.1.
5.5.1 through 5.5.8. No stipulation for v0.1.
5.6.1. No stipulation for v0.1.
5.7.1 through 5.7.4. No stipulation for v0.1.
5.8.1. No stipulation for v0.1.
6.1.1.1. Root CA: RSA 4096-bit. Issuing CAs (sanctum-issuing-ca-g1,
sanctum-pqc-ca-g1): ECDSA P-384. Sample leaf: ECDSA P-256. All generated
via openssl genpkey inside scripts/gen-ca.sh.
6.1.1.2. PQC note: sanctum-pqc-ca-g1 is a demonstration CA flagged for
future PQC signing. OpenSSL 3.5.5 as configured in this sandbox does not
provide a default provider for ML-DSA CA-certificate signing operations
invoked through the openssl ca/openssl req CLI used by
scripts/gen-ca.sh; the CA's own certificate is therefore signed with
ECDSA P-384 today, with PQC/hybrid leaf issuance profiles defined in Section
7.1.3 for when a PQC-enabled provider is integrated. This is a documented
gap, not a silent substitution.
6.1.2.1. No stipulation.
6.1.3.1. Standard PKCS#10 CSR.
6.1.4.1. Via the public repository (public/aia/, public/pem/).
6.1.5.1. See 6.1.1.1. For the target production PQC profile (Section 7.1.3):
ML-DSA-65 (FIPS 204), ML-KEM-768 (FIPS 203), SLH-DSA-128f (FIPS 205), and the
X25519+ML-KEM-768 hybrid — matching the algorithm set surfaced by
/api/algorithms in the Cygnus console.
6.1.6.1. No stipulation.
6.1.7.1. Per the keyUsage and extendedKeyUsage extensions defined in
scripts/gen-ca.sh's generated openssl.cnf templates (v3_root,
v3_intermediate_ca, v3_leaf).
6.2.1 through 6.2.11. No stipulation for v0.1. This demonstration hierarchy's
private keys are stored as plain files under pki-repo/ca/*/private/ with
mode 600, for build/demo purposes only — not FIPS 140-3 validated HSM
storage. Production key custody requirements are deferred to a future CPS
version aligned with sanctum-pki-cert-ops (offline air-gapped root,
YubiKey/HSM key protection).
6.3.1.1. No stipulation.
6.3.2.1. Root: 20 years (7300 days). Issuing CAs: 10 years (3650 days).
Sample leaf: 825 days. See scripts/gen-ca.sh DAYS_ROOT, DAYS_ICA,
DAYS_LEAF constants.
6.4.1 through 6.4.3. No stipulation for v0.1.
6.5.1 through 6.5.2. No stipulation for v0.1.
6.6.1 through 6.6.3. No stipulation for v0.1.
6.7.1. No stipulation for v0.1. Note: crl.sanctumsecops.com and
pki.sanctumsecops.com must be served over plain HTTP with no HSTS and no
forced HTTPS redirect, per Section 4.9.7.3.
6.8.1. No stipulation for v0.1. No RFC 3161 timestamp authority is deployed.
7.1.1.1. X.509 v3 for all CA and leaf certificates.
7.1.2.1. CA certificates carry basicConstraints (critical, CA:true),
keyUsage (critical, keyCertSign/cRLSign), subjectKeyIdentifier,
authorityKeyIdentifier, crlDistributionPoints (plain http://), and
authorityInfoAccess (plain http://, caIssuers).
7.1.2.2. Leaf certificates additionally carry extendedKeyUsage
(serverAuth, clientAuth) and subjectAltName.
7.1.3.1. Classical profile (sanctum-issuing-ca-g1): RSA/ECDSA with
SHA-256/SHA-384, as generated today.
7.1.3.2. PQC profile (target, sanctum-pqc-ca-g1, cross-referencing
sanctum-policy-pqc-only = 1.3.6.1.4.1.65953.2.4 in the published registry):
7.1.3.3. Hybrid profile (target, cross-referencing
sanctum-policy-hybrid-composite = 1.3.6.1.4.1.65953.2.5): X25519 +
ML-KEM-768 hybrid key exchange, pairing classical X25519 ECDH with
ML-KEM-768 KEM shares for harvest-now-decrypt-later mitigation during the
PQC transition period.
7.1.3.4. These four algorithm identifiers match the algorithm set exposed by
the Cygnus console's /api/algorithms endpoint (ML-KEM-768, ML-DSA-65,
SLH-DSA-128f, X25519+ML-KEM-768), and are registered informationally at
1.3.6.1.4.1.65953.23.4.1–.23.4.4 in this repository's registry.json (see
Section 1.2.4 and public/oid/registry.json).
7.1.4.1. No stipulation.
7.1.5.1. No stipulation.
7.1.6.1. This CP: 1.3.6.1.4.1.65953.23.1.1. The companion CPS:
1.3.6.1.4.1.65953.23.1.2.
7.1.7.1. No stipulation.
7.1.8.1. No stipulation.
7.1.9.1. No stipulation.
7.2.1.1. X.509 v2 CRLs, as confirmed by openssl crl -text output showing
Version 2 (0x1) (zero-indexed encoding) for all CRLs generated by
scripts/gen-ca.sh.
7.2.2.1. X509v3 CRL Number is present on all base and delta CRLs. See
Section 4.9.7.2 for the documented delta-CRL-indicator limitation.
7.3.1.1. No stipulation. OCSP is not deployed in v0.1.
7.3.2.1. No stipulation.
8.1.1. No stipulation for v0.1.
8.2.1. No stipulation.
8.3.1. No stipulation.
8.4.1. No stipulation.
8.5.1. No stipulation.
8.6.1. No stipulation.
9.1.1 through 9.1.5. No stipulation for v0.1. This demonstration hierarchy is issued at no cost and provides no commercial certificate issuance service.
9.2.1 through 9.2.3. No stipulation.
9.3.1 through 9.3.3. No stipulation.
9.4.1 through 9.4.9. See the companion Privacy Policy at
public/policy/privacy-policy.md, itself DRAFT v0.1.
9.5.1. No stipulation.
9.6.1.1. No stipulation. This demonstration hierarchy makes no representations or warranties; see the DRAFT NOTICE at the top of this document.
9.6.2.1. No stipulation.
9.6.3.1. No stipulation.
9.6.4.1. See the companion Relying Party Agreement at
public/policy/relying-party-agreement.md, DRAFT v0.1.
9.6.5.1. No stipulation.
9.7.1. This demonstration hierarchy and this CP are provided "as is" with no warranty of any kind. DRAFT — subject to change before v1.0.
9.8.1. No stipulation for v0.1.
9.9.1. No stipulation.
9.10.1.1. This CP is effective only upon formal approval; as DRAFT v0.1 it has no legal effective date.
9.10.2.1. No stipulation.
9.10.3.1. No stipulation.
9.11.1. No stipulation.
9.12.1.1. No stipulation for v0.1. Future amendments will increment the
version number in this document's header and be republished at
public/docs/CP.html and public/docs/CP.pdf.
9.12.2.1. No stipulation.
9.12.3.1. No stipulation.
9.13.1. No stipulation.
9.14.1. No stipulation for v0.1. Anticipated: State of New York, United States, consistent with Sanctum SecOps LLC's registered address.
9.15.1. No stipulation.
9.16.1.1. No stipulation.
9.16.2.1. No stipulation.
9.16.3.1. No stipulation.
9.16.4.1. No stipulation.
9.16.5.1. No stipulation.
9.17.1. No stipulation.
Generated from a single Markdown source (docs/CP.md) by
scripts/render-docs.py, which produces both public/docs/CP.html and
public/docs/CP.pdf so the two can never diverge. Do not hand-edit the HTML
or PDF outputs.
Rendered 2026-07-27 11:56 UTC by scripts/render-docs.py from a single Markdown source. HTML and PDF outputs are generated from the same source and can never diverge.