You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fills documentation gaps for features that shipped in 0.5.6-0.5.8 but
were never surfaced in the README, and adds a forward-looking roadmap:
- Features: rate limiting, CIDR-aware reverse-proxy trust for
X-Forwarded-For, cosign-signed releases, client IP in audit trail.
- New "Verify release signatures (cosign)" block under Install with
cosign verify-blob against the GitHub OIDC identity regex.
- Security section now covers body-limit 413 (CL + chunked TE),
rate limiting, supply-chain signing regression test, YAML-lint
gate, secret scanning, CSP + fail-closed auth middleware.
- New Roadmap section mapping open issues to v0.6 (#42 ml-dsa timing,
#55 signer/verifier decomp, #72 pq-experimental feature-gate),
v0.7 (#22 hybrid/composite PQ certs), and v1.0 (API freeze, SLSA
provenance, HSM/KMS backends).
- New Contributing section pointing to triage labels, pre-PR
command checklist, and good-first-issue queries.
Co-Authored-By: Claude <noreply@anthropic.com>
Windows: download [`pki-sign-windows-x86_64.exe`](https://github.com/rayketcham-lab/PKI-Signing-Service/releases/latest) and verify against the accompanying `.sha256`.
Every release binary is signed with [cosign](https://github.com/sigstore/cosign) keyless signing. The matching `.sig` and `.cosign-bundle` are uploaded next to each artifact.
-**Security headers** --- Applied via middleware on all responses.
450
-
-**CI hardening** --- `cargo-audit` + `cargo-deny` on every push. Pinned action SHAs.
473
+
-**Security headers + CSP** --- Applied via middleware on all responses; fail-closed auth middleware.
474
+
-**Body-limit enforcement** --- Oversized uploads rejected with `413` before any bytes are buffered (Content-Length + chunked transfer-encoding both covered).
475
+
-**Rate limiting** --- Per-endpoint and per-IP, with CIDR-aware reverse-proxy trust for `X-Forwarded-For`.
476
+
-**Supply-chain signing** --- Release artifacts signed with cosign (keyless / GitHub OIDC). Regression test asserts `.sig` + `.cosign-bundle` ship for every binary.
477
+
-**CI hardening** --- `cargo-audit` + `cargo-deny` on every push *and* the release gate. YAML lint on workflows + dependabot config. All GitHub Action versions pinned to commit SHAs.
-**Static binary** --- musl target for minimal attack surface in production.
452
480
453
481
> [!IMPORTANT]
@@ -502,6 +530,39 @@ WantedBy=multi-user.target
502
530
503
531
---
504
532
533
+
## Roadmap
534
+
535
+
The project is stable for Authenticode, detached CMS, and RFC 3161 signing workloads. Ongoing work is tracked in [GitHub issues](https://github.com/rayketcham-lab/PKI-Signing-Service/issues); the milestones below capture the directional bets.
-**Feature-gate ML-DSA behind `pq-experimental`** ([#72](https://github.com/rayketcham-lab/PKI-Signing-Service/issues/72)) --- default builds drop the `ml-dsa` / `slh-dsa` dependencies entirely. Operators who want PQC opt in explicitly with `cargo build --features pq-experimental`.
540
+
-**Decompose `signer.rs` / `verifier.rs` monoliths** ([#55](https://github.com/rayketcham-lab/PKI-Signing-Service/issues/55)) --- extract PFX loading and cert-validation helpers into dedicated modules without public-API churn.
541
+
-**ML-DSA timing-side-channel tracking** ([#42](https://github.com/rayketcham-lab/PKI-Signing-Service/issues/42)) --- follow the upstream `ml-dsa` 0.0.4 → stable release and drop the `cargo-audit` ignores as soon as a constant-time Decompose lands.
542
+
543
+
### v0.7 --- Hybrid / composite certificates
544
+
545
+
-**Dual-sign PKCS#7** ([#22](https://github.com/rayketcham-lab/PKI-Signing-Service/issues/22) phase 2) --- same PKCS#7 envelope carries an RSA or ECDSA signature *and* an ML-DSA counter-signature, so a downstream verifier with either capability can validate.
546
+
-**Composite signatures (NIST SP 800-227)** ([#22](https://github.com/rayketcham-lab/PKI-Signing-Service/issues/22) phase 3) --- single certificate carrying both a classical and a PQ key; tracks the NIST composite-signature spec as it finalizes.
547
+
548
+
### v1.0 --- Production freeze
549
+
550
+
- Stable REST API surface with semver guarantees on `/api/v1/*`
551
+
- CAB/MSI Authenticode interop parity with `osslsigncode` / `signtool` (current gaps tracked in [#45](https://github.com/rayketcham-lab/PKI-Signing-Service/issues/45), [#46](https://github.com/rayketcham-lab/PKI-Signing-Service/issues/46))
552
+
- SLSA provenance attestations alongside the existing cosign signatures
553
+
- Documented HSM / KMS key-backend interfaces (no private-key-on-disk requirement)
554
+
555
+
Want to pull something forward? File an issue with the `roadmap` label or comment on an existing one.
556
+
557
+
## Contributing
558
+
559
+
Issues and PRs welcome. See [SECURITY.md](SECURITY.md) for vulnerability reports (please don't file those as public issues).
0 commit comments