age.algorithms package

Submodules

age.algorithms.scrypt module

age.algorithms.scrypt.scrypt_decrypt_file_key(password, salt, log_cost, encrypted_file_key)
Parameters
Return type

bytes

age.algorithms.scrypt.scrypt_encrypt_file_key(password, file_key, log_cost=None)
Parameters
Return type

Tuple[bytes, int, bytes]

age.algorithms.ssh_ed25519 module

age.algorithms.ssh_ed25519.ssh_ed25519_decrypt_file_key(ed25519_private_key, fingerprint, derived_secret, encrypted_file_key)
Parameters
age.algorithms.ssh_ed25519.ssh_ed25519_encrypt_file_key(ed25519_public_key, file_key)
Parameters
Return type

Tuple[bytes, NewType()(ECPoint, bytes), bytes]

age.algorithms.ssh_rsa module

age.algorithms.ssh_rsa.ssh_rsa_decrypt_file_key(private_key, fingerprint, encrypted_file_key)
Parameters
Return type

bytes

age.algorithms.ssh_rsa.ssh_rsa_encrypt_file_key(public_key, file_key)
Parameters
Return type

Tuple[bytes, bytes]

age.algorithms.x25519 module

age.algorithms.x25519.x25519_decrypt_file_key(private_key, derived_secret, encrypted_file_key)

Decrypt file_key using the private_key and the two parameters returned by x25519_encrypt_file_key().

The inversion of x25519_encrypt_file_key() is:

file key = decrypt[hkdf[salt, label](x25519(private key, derived_secret), 32)](encrypted file key)

where salt is derived_secret || public key, label is b"age-encryption.org/v1/X25519" and derived_secret is the first parameter returned by x25519_encrypt_file_key().

Parameters
Return type

bytes

age.algorithms.x25519.x25519_encrypt_file_key(public_key, file_key)

Encrypt file_key with public_key

From the specification from age-encryption.org/v1 :

-> X25519 encode(X25519(ephemeral secret, basepoint))
    encode(encrypt[HKDF[salt, label](X25519(ephemeral secret, public key), 32)](file key))

where ephemeral secret is age.primitives.random() (32) and MUST be new for every new file key, salt is age.primitives.X25519() (ephemeral secret, basepoint) || public key, and label is b"age-encryption.org/v1/X25519".

Return type

Tuple[NewType()(ECPoint, bytes), bytes]

Returns

derived_secret, encrypted_file_key

Parameters

Module contents

This module implements the recipient algorithms