ristretto255-dh

Crates.ioristretto255-dh
lib.rsristretto255-dh
version0.3.0
sourcesrc
created_at2020-05-09 03:04:36.726513
updated_at2020-05-12 04:56:39.168073
descriptionDiffie-Hellman key exchange using the Ristretto255 group.
homepage
repositoryhttps://github.com/ZcashFoundation/ristretto255-dh
max_upload_size
id239115
size14,273
Conrado Gouvea (conradoplg)

documentation

https://docs.rs/ristretto255-dh

README

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.

Commit count: 75

cargo fmt