Skip to main content

Age-style X25519 sealed-per-recipient MRE provider for Swarmauri

Project description

Swamauri Logo

PyPI - Downloads Hits PyPI - Python Version PyPI - License PyPI - swarmauri_mre_crypto_age


Swarmauri MRE Crypto Age

Age-based multi-recipient encryption provider implementing the IMreCrypto contract.

  • Sealed-per-recipient X25519 stanzas
  • ChaCha20-Poly1305 payload encryption
  • Deterministic recipient identifiers via SHA-256 public key fingerprints

Installation

pip install swarmauri_mre_crypto_age

Usage

The provider exposes asynchronous helpers for encrypting data to many recipients and decrypting it for a specific private key. The example below walks through a complete round trip.

  1. Create the crypto provider.
  2. Generate key pairs for two recipients.
  3. Encrypt a payload for both recipients.
  4. Decrypt the payload for one recipient.
from swarmauri_mre_crypto_age import AgeMreCrypto
from cryptography.hazmat.primitives.asymmetric.x25519 import X25519PrivateKey

crypto = AgeMreCrypto()

# generate key pairs for each participant
sk1 = X25519PrivateKey.generate()
pk1 = sk1.public_key()
sk2 = X25519PrivateKey.generate()
pk2 = sk2.public_key()

recipients = [
    {"kind": "cryptography_obj", "obj": pk1},
    {"kind": "cryptography_obj", "obj": pk2},
]

env = await crypto.encrypt_for_many(recipients, b"secret")
pt = await crypto.open_for({"kind": "cryptography_obj", "obj": sk1}, env)
assert pt == b"secret"

Entry point

The provider is registered under the swarmauri.mre_cryptos entry-point as AgeMreCrypto.

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_mre_crypto_age-0.3.0.dev3.tar.gz (8.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_mre_crypto_age-0.3.0.dev3-py3-none-any.whl (9.7 kB view details)

Uploaded Python 3

File details

Details for the file swarmauri_mre_crypto_age-0.3.0.dev3.tar.gz.

File metadata

File hashes

Hashes for swarmauri_mre_crypto_age-0.3.0.dev3.tar.gz
Algorithm Hash digest
SHA256 404c2ee3bd35029827d0ca6017b7e8a9b52379d6a7e77438283df91d8f53286a
MD5 b667b8bdf367b91eefc3cef8d76e2ae3
BLAKE2b-256 48dcc424df41b198e8d0092d8d1f62221869c2c9597dea7eee1d5827bc6fdeaf

See more details on using hashes here.

File details

Details for the file swarmauri_mre_crypto_age-0.3.0.dev3-py3-none-any.whl.

File metadata

File hashes

Hashes for swarmauri_mre_crypto_age-0.3.0.dev3-py3-none-any.whl
Algorithm Hash digest
SHA256 05f5c234350117451adc497c655e1dda6df1d8b8971775e6fcb6041e13a50813
MD5 fc9d2db907d66745f1a9390d445afd25
BLAKE2b-256 e819f2e185bfbadac6d8d9855de8bd5e0af5ca996f30b6b15e2e406bde43567b

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