PEP 458 policy and algorithm definitions for Swarmauri cipher suites
Project description
swarmauri_cipher_suite_pep458
swarmauri_cipher_suite_pep458 captures the policy surface and algorithm registry
that PEP 458 describes for securing Python
package repositories. The suite models canonicalization, allowed algorithms, role
thresholds, and metadata lifetimes so Swarmauri services can negotiate the same
expectations when they sign or verify TUF metadata.
Highlights
- Explicit role policies – Encodes recommended thresholds, expiration windows,
and algorithm selections for the canonical
root,targets,snapshot, andtimestampmetadata roles. - Deterministic defaults – Advertises TUF canonical JSON (
tuf-json) as the canonicalization format and returns Ed25519 as the default online algorithm while still supporting RSA-PSS-SHA256 for offline roots. - Descriptor normalization – Produces rich normalized descriptors containing the
signer implementation hint (
swarmauri_signing_pep458.Pep458Signer), canonical preferences, and caller-specified policy overrides. - Compliance metadata – Surfaces machine readable notes indicating PEP 458 and TUF compatibility, enabling automated linting and negotiation between components.
Installation
Using uv
uv add swarmauri_cipher_suite_pep458
Using pip
pip install swarmauri_cipher_suite_pep458
Quick Usage
from swarmauri_cipher_suite_pep458 import Pep458CipherSuite
suite = Pep458CipherSuite()
print(suite.features())
# {'suite': 'pep458', 'version': 1, ...}
descriptor = suite.normalize(op="sign", params={"role": "targets", "threshold": 2})
print(descriptor["mapped"]["provider"]["signer"])
# 'swarmauri_signing_pep458.Pep458Signer'
Combine the descriptor with instances of Pep458Signer to build automated
pipelines that enforce PEP 458's online/offline separation.
Role Guidance
| Role | Default Alg | Threshold | Recommended Expiration |
|---|---|---|---|
root |
RSA-PSS-SHA256 |
2 | P365D |
targets |
Ed25519 |
1 | P90D |
snapshot |
Ed25519 |
1 | P14D |
timestamp |
Ed25519 |
1 | P1D |
These defaults mirror the best practices described in PEP 458, but you can
override them by passing parameters to normalize or adjusting the resulting
policy document.
Relationship to the Signer
This package pairs with swarmauri_signing_pep458, which implements the detached
signature algorithm itself. The cipher suite surfaces metadata while the signer
performs the cryptographic operations.
Development
- Format the code with
ruff format .and lint withruff check . --fix. - Add or update unit tests alongside policy changes to validate normalization and feature reporting.
- Document any new role guidance in both the README and the
policy()payload so downstream systems stay synchronized.
License
This project is licensed under the Apache License 2.0.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file swarmauri_cipher_suite_pep458-0.2.0.dev2.tar.gz.
File metadata
- Download URL: swarmauri_cipher_suite_pep458-0.2.0.dev2.tar.gz
- Upload date:
- Size: 8.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7eba7e9ce67971d412c782b7136648e6b01f039a34651feae3dbeaa29ff807aa
|
|
| MD5 |
95dc064047905a1843ed2d8de5f85ca5
|
|
| BLAKE2b-256 |
afeefac09b4b37cc24a8060de78519c5a9c207515c3c9e5f689a74113b4944ef
|
File details
Details for the file swarmauri_cipher_suite_pep458-0.2.0.dev2-py3-none-any.whl.
File metadata
- Download URL: swarmauri_cipher_suite_pep458-0.2.0.dev2-py3-none-any.whl
- Upload date:
- Size: 9.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
22a5062b3c27e999a307ed6eca49b0e83caa3f85e9b00c0cc1741d3748a84006
|
|
| MD5 |
494825d1b6e1dc4021ac30399a0d949b
|
|
| BLAKE2b-256 |
70282a72b884962e88326acb22d202d17f2d582ee0607e2b2025f109594d693a
|