Crate ed25519_dalek_hpke

Crate ed25519_dalek_hpke 

Source
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§

Ed25519hpkeDecryption
Trait for decrypting data with an Ed25519 signing (private) key.
Ed25519hpkeEncryption
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.