Skip to main content

Composable DSSE envelope adapter that layers Pre-Authentication Encoding onto Swarmauri signing providers

Project description

Swarmauri Logo

PyPI - Downloads Hits PyPI - Python Version PyPI - License PyPI - swarmauri_signing_dsse


Swarmauri Signing DSSE

DSSESigner layers the in-toto DSSE envelope format on top of any existing Swarmauri signer. It computes the Pre-Authentication Encoding (PAE) defined by the spec, delegates raw signing and verification to the wrapped provider, and exposes helpers for serializing envelopes in the DSSE JSON representation.

Features

  • Adds the dsse-pae canonicalization surface to any SigningBase provider.
  • Supports detached signature workflows for bytes, digests, streams, and envelopes.
  • Includes a strict JSON codec with typed helpers for building and inspecting DSSE envelopes.
  • Maintains the inner signer's capability matrix while declaring DSSE-specific features (detached_only, multi).

Installation

Install the package with your preferred Python packaging tool:

Using uv

uv add swarmauri_signing_dsse

Using pip

pip install swarmauri_signing_dsse

Usage

import base64

from swarmauri_signing_dsse import DSSESigner, DSSEEnvelope
from swarmauri_signing_ed25519 import Ed25519EnvelopeSigner

# Wrap an existing Swarmauri signer.
inner_signer = Ed25519EnvelopeSigner()
dsse_signer = DSSESigner(inner_signer)

# Prepare a DSSE envelope.
payload = b"example payload"
payload_b64 = base64.urlsafe_b64encode(payload).decode("ascii").rstrip("=")
envelope = DSSEEnvelope(payload_type="text/plain", payload_b64=payload_b64)

# Sign and verify using DSSE PAE over the payload.
key_ref = {"kind": "raw_ed25519_sk", "bytes": b"\x01" * 32}
signatures = await dsse_signer.sign_envelope(key_ref, envelope)
assert await dsse_signer.verify_envelope(envelope, signatures)

DSSESigner accepts existing DSSE JSON mappings or bytes anywhere an envelope is expected. The helper methods encode_envelope() and decode_envelope() let you round-trip envelopes without reimplementing JSON handling.

License

This project is licensed under the Apache License 2.0.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

swarmauri_signing_dsse-0.1.3.dev17.tar.gz (9.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

swarmauri_signing_dsse-0.1.3.dev17-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

File details

Details for the file swarmauri_signing_dsse-0.1.3.dev17.tar.gz.

File metadata

  • Download URL: swarmauri_signing_dsse-0.1.3.dev17.tar.gz
  • Upload date:
  • Size: 9.7 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

Hashes for swarmauri_signing_dsse-0.1.3.dev17.tar.gz
Algorithm Hash digest
SHA256 620caac1744baafb65774eebb531f478c9ee9505e77f37b8397dc2aadcca1782
MD5 d1dc55697635e4f831fafc6ddaec9e6e
BLAKE2b-256 655249b92b3e45f7a06b7848c1d108af979f1d27e8b120ea1826fbb6bcbcc3e8

See more details on using hashes here.

File details

Details for the file swarmauri_signing_dsse-0.1.3.dev17-py3-none-any.whl.

File metadata

  • Download URL: swarmauri_signing_dsse-0.1.3.dev17-py3-none-any.whl
  • Upload date:
  • Size: 11.5 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

Hashes for swarmauri_signing_dsse-0.1.3.dev17-py3-none-any.whl
Algorithm Hash digest
SHA256 6790ad192d5a93b4169cc546d556240c5361fc762644752b8782e57d3a35c5a6
MD5 e9821d83d4d9ab0f0e7bbb54c1c76aef
BLAKE2b-256 e9b901c60fb4af2a7d6395601e6dd83b027b78ff042b7e3d8f83f4f9ed712a73

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page