Sha256: 57faa41f4b36fd98d24235f28abeb265958e813d57bcf75b3228330acf2e7aa3

Contents?: true

Size: 329 Bytes

Versions: 103

Compression:

Stored size: 329 Bytes

Contents

extern crate rand;

use rand::distributions::{IndependentSample, Range};

pub fn private_key(p: u64) -> u64 {
    Range::new(2, p).ind_sample(&mut rand::thread_rng())
}

pub fn public_key(p: u64, g: u64, a: u64) -> u64 {
    g.pow(a as u32) % p
}

pub fn secret(p: u64, b_pub: u64, a: u64) -> u64 {
    b_pub.pow(a as u32) % p
}

Version data entries

103 entries across 103 versions & 1 rubygems

Version Path
trackler-2.2.1.115 tracks/rust/exercises/diffie-hellman/example.rs
trackler-2.2.1.114 tracks/rust/exercises/diffie-hellman/example.rs
trackler-2.2.1.113 tracks/rust/exercises/diffie-hellman/example.rs
trackler-2.2.1.111 tracks/rust/exercises/diffie-hellman/example.rs
trackler-2.2.1.110 tracks/rust/exercises/diffie-hellman/example.rs
trackler-2.2.1.109 tracks/rust/exercises/diffie-hellman/example.rs
trackler-2.2.1.108 tracks/rust/exercises/diffie-hellman/example.rs
trackler-2.2.1.107 tracks/rust/exercises/diffie-hellman/example.rs
trackler-2.2.1.106 tracks/rust/exercises/diffie-hellman/example.rs
trackler-2.2.1.105 tracks/rust/exercises/diffie-hellman/example.rs
trackler-2.2.1.104 tracks/rust/exercises/diffie-hellman/example.rs
trackler-2.2.1.103 tracks/rust/exercises/diffie-hellman/example.rs
trackler-2.2.1.102 tracks/rust/exercises/diffie-hellman/example.rs
trackler-2.2.1.101 tracks/rust/exercises/diffie-hellman/example.rs
trackler-2.2.1.100 tracks/rust/exercises/diffie-hellman/example.rs
trackler-2.2.1.99 tracks/rust/exercises/diffie-hellman/example.rs
trackler-2.2.1.98 tracks/rust/exercises/diffie-hellman/example.rs
trackler-2.2.1.97 tracks/rust/exercises/diffie-hellman/example.rs
trackler-2.2.1.96 tracks/rust/exercises/diffie-hellman/example.rs
trackler-2.2.1.95 tracks/rust/exercises/diffie-hellman/example.rs