Catalog PyPI
PACKAGE EXPLORERView in registry

aauth-signing

PyPI

HTTP Message Signing (RFC 9421 + draft-hardt-httpbis-signature-key) for AAuth

Versions collected1
Direct dependencies3From release 0.2.0
Last observed20 Oct, 17:06 UTC

README

Version 0.2.0 documentation

aauth-signing

Standalone HTTP Message Signatures (RFC 9421) and the Signature-Key header, with the algorithm and validation rules used by AAuth Protocol draft -11.

from aauth_signing import sign_request, verify_signature
from aauth_signing.keys.keypair import generate_ed25519_keypair

private_key, public_key = generate_ed25519_keypair()
headers = {"Content-Type": "application/json"}
body = b'{"message":"hello"}'
headers.update(sign_request(
    "POST", "https://resource.example/data", headers, body, private_key,
    sig_scheme="hwk",
    additional_signature_components=["content-digest", "content-type"],
))
assert verify_signature(
    "POST", "https://resource.example/data", headers, body,
    headers["Signature-Input"], headers["Signature"], headers["Signature-Key"],
)

Supports hwk, jwks_uri, jwt, and jkt-jwt. AAuth agents use jwt; the generic schemes remain available for other callers. X.509 verification is not implemented.

Generated keys carry alg (Ed25519, ES256, or ES384). Verifiers reject missing or incompatible algorithms, missing/stale signature creation timestamps, expired signatures, missing required components, and body/digest mismatches. The default required components are @method, @authority, @path, and signature-key; configure required_components for the recipient's additional requirements. authorization is automatically covered when present.

Bodies are signed when requested through additional_signature_components. PS/AS and revocation callers must include content-digest and content-type. Verification checks the digest against received bytes. HTTP verification supports EC DER and P1363 signatures; JWT encoding uses standard JOSE encoding.

jwks_fetcher(issuer, dwk, kid) is synchronous and must perform admitted, identity-checked discovery and caching. The signing layer authenticates key possession; applications enforce JWT type, issuer trust, audience, authorization, and revocation. Use the aauth package for those protocol checks.

Development from the repository root:

pip install -e ./aauth-signing

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
0.2.06 Oct 20263

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 17:06 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:c77035a91f761f70d60fe4be657d2a63b666958c37fd9d4f37bef5dc25cd3a28