TrustRoll
Sequence-aware cryptographic trust-rotation safety verifier.
TrustRoll checks whether a staged root/anchor rotation remains both available and appropriately scoped while old/new credentials and lagging consumers coexist.
Why this is not another certificate manager
It does not issue, renew, distribute, or automatically rotate production certificates. Existing systems already do that. TrustRoll consumes test PEMs plus a rollout contract and verifies the sequence.
Requirements
- Python 3.10+
- OpenSSL available on PATH
- No Python runtime dependencies
Quick start
python -m pip install https://github.com/virajsabhaya23/trustroll/releases/download/v0.1.0/trustroll-0.1.0-py3-none-any.whl
python -m trustroll verify examples/safe.json --out out/safe-report.json
python -m trustroll verify examples/unsafe.json --out out/unsafe-report.json --minimized out/minimized.json
Unsafe plans exit 2.
Benchmark
python -m trustroll benchmark benchmark/corpus.json --out benchmark/results.json
The 40-case corpus has 25 unsafe cases and 15 safe controls. Direct certificate paths use real OpenSSL verification. Consul-style cross-sign bridge controls are explicitly modeled because this project is a verifier, not a Consul CA implementation.
Contract shape
A contract declares roots, leaves, phases, consumers, current/previous bundles, async refresh behavior, required communication edges, retirement rules, and allowed roots.
Evidence
Reports include every failure, the first counterexample, phase/schedule coverage, and a deterministic SHA-256 certificate. evidence/ preserves research provenance and source hashes.
Limitations
- v0.1 models X.509 root trust and bounded async refresh, not every mesh implementation detail.
- Long-lived TLS session resumption, revocation, OCSP/CRL, and real cluster capture are future adapters.
- Cross-sign bridge semantics are declared rather than generated with a full Consul CA implementation.
Metadata
Release files for trustroll 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| trustroll-0.1.1.tar.gz | 11.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| trustroll-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 23.5 kB
Release files / trustroll-0.1.1.tar.gz
| Download URL | trustroll-0.1.1.tar.gz |
|---|---|
| Size | 11.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
996222c7a2a778b23215d0f597fdd02bf2daf86019fed39676c38edf14e0a53f
|
|
BLAKE2b-256 checksum How to use checksums |
2aa63fef5aa303d0df4d0099e70cbe3fc04b254463412e1b486d436775beeba0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 16, 2026.
Transparency logRelease files / trustroll-0.1.1-py3-none-any.whl
| Download URL | trustroll-0.1.1-py3-none-any.whl |
|---|---|
| Size | 12.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0567f979c438f2f86070e59171abc3702280fd3e458154f6441b15889d85113b
|
|
BLAKE2b-256 checksum How to use checksums |
40212b01be55e4ab7b467139f6ee91141983eef27d4a657f2daa85eaefa5bfc3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 16, 2026.
Transparency log