[−][src]Crate ristretto255_dh
ristretto255-dh
Diffie-Hellman key exchange using the Ristretto255 group, in pure Rust.
This crate provides a high-level API for static and ephemeral Diffie-Hellman in the Ristretto255 prime order group, as specified the IETF draft, implemented internally over Curve25519 using curve25519-dalek.
Example
use rand_core::OsRng; use ristretto255_dh::EphemeralSecret; use ristretto255_dh::PublicKey; // Alice's side let alice_secret = EphemeralSecret::new(&mut OsRng); let alice_public = PublicKey::from(&alice_secret); // Bob's side let bob_secret = EphemeralSecret::new(&mut OsRng); let bob_public = PublicKey::from(&bob_secret); // Alice again let alice_shared_secret = alice_secret.diffie_hellman(&bob_public); // Bob again let bob_shared_secret = bob_secret.diffie_hellman(&alice_public); // Each peer's computed shared secret should be the same. assert_eq!(<[u8; 32]>::from(alice_shared_secret), <[u8; 32]>::from(bob_shared_secret));
About
The high-level Diffie-Hellman API is inspired by x25519-dalek.
Structs
EphemeralSecret | A Diffie-Hellman secret key used to derive a shared secret when combined with a public key, that only exists for a short time. |
PublicKey | The public key derived from an ephemeral or static secret key. |
SharedSecret | A Diffie-Hellman shared secret derived from an |
StaticSecret | A Diffie-Hellman secret key used to derive a shared secret when combined with a public key, that can be stored and loaded. |