atlas-pca
Reference verifier for Proof-Carrying Authority (PCA), an execution-authentication framework for autonomous agents. With every action the agent presents a self-contained proof-carrying action (PCActn); the resource server verifies the proof offline instead of trusting a bearer token.
Status: 0.3.0, unaudited. Not independently security-reviewed; evaluate before relying on it for production authorization decisions.
Install
pip install atlas-pca
The verifier has no required dependencies. Optional extras: atlas-pca[fast] (native Ed25519 via
cryptography), atlas-pca[pq] (ML-DSA-65 post-quantum signatures via dilithium-py),
atlas-pca[fastapi], atlas-pca[django].
Use
from atlas_pca import verify_pcactn_core
verdict = verify_pcactn_core(pcactn, grant, audience="https://api.example.com")
if not verdict.allow:
raise PermissionError(f"authF failed: {verdict.reason}")
Checks
Verification is stateless, fail-closed and runs in a fixed, normative order:
wire, version, audience, validity, chain, grant_ref_bound, plan_inclusion,
leaf_signature, counter.
grant_ref_bound (new in 0.2.0) requires the signed grant_ref to equal the id of the root capability
(cap_chain[0]), so replay state cannot be keyed on an attacker-chosen value.
The package passes the shared 172-vector PCA conformance corpus, which the TypeScript, Rust, Go and other verifiers also pass.
Links
- Source: https://github.com/Atlas-Authorization/pca-python
- Specification and docs: https://github.com/Atlas-Authorization/pca
License: MIT
Metadata
Release files for atlas-pca 0.3.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 | |
|---|---|---|---|
| atlas_pca-0.3.0.tar.gz | 20.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| atlas_pca-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 42.2 kB
Release files / atlas_pca-0.3.0.tar.gz
| Download URL | atlas_pca-0.3.0.tar.gz |
|---|---|
| Size | 20.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9e4acaedcb59392ef424e51ae003e5582d8504f9f650216bc9f70996f3630e9e
|
|
BLAKE2b-256 checksum How to use checksums |
ee1d42beed02d930d9b97f85c7494a91de0c127c9ca5d903f7125e1e283ad494
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / atlas_pca-0.3.0-py3-none-any.whl
| Download URL | atlas_pca-0.3.0-py3-none-any.whl |
|---|---|
| Size | 21.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7f440cece5588a72627d369e62ff6c723576254aa05fcd9cb48ca55a401563a1
|
|
BLAKE2b-256 checksum How to use checksums |
e184a2229842d7becfcb597962a4cca45e896d42f8113daf71a61c3f4a45ffc7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|