Expand description
HPKE encryption/decryption for Ed25519 keys.
This library provides HPKE (Hybrid Public Key Encryption) support for Ed25519 keys
by converting them to X25519 keys internally. It implements simple encryption and
decryption traits on the standard ed25519-dalek key types.
§Examples
use ed25519_dalek::SigningKey;
use ed25519_dalek_hpke::{Ed25519hpkeEncryption, Ed25519hpkeDecryption};
let signing_key = SigningKey::generate(&mut rand::rng());
let verifying_key = signing_key.verifying_key();
let plaintext = b"secret message";
let ciphertext = verifying_key.encrypt(plaintext).unwrap();
let decrypted = signing_key.decrypt(&ciphertext).unwrap();
assert_eq!(plaintext, decrypted.as_slice());Enums§
- Error
- Errors that can occur during HPKE operations.
Traits§
- Ed25519hpke
Decryption - Trait for decrypting data with an Ed25519 signing (private) key.
- Ed25519hpke
Encryption - Trait for encrypting data with an Ed25519 verifying (public) key.
Functions§
- public_
key_ from_ ed25519_ to_ x25519 - Converts an Ed25519 public key to X25519 (Curve25519 Montgomery form).
- secret_
key_ from_ ed25519_ to_ x25519 - Converts an Ed25519 private key to X25519 scalar.