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.155 tracks/rust/exercises/diffie-hellman/example.rs
trackler-2.2.1.154 tracks/rust/exercises/diffie-hellman/example.rs
trackler-2.2.1.153 tracks/rust/exercises/diffie-hellman/example.rs
trackler-2.2.1.152 tracks/rust/exercises/diffie-hellman/example.rs
trackler-2.2.1.151 tracks/rust/exercises/diffie-hellman/example.rs
trackler-2.2.1.150 tracks/rust/exercises/diffie-hellman/example.rs
trackler-2.2.1.149 tracks/rust/exercises/diffie-hellman/example.rs
trackler-2.2.1.148 tracks/rust/exercises/diffie-hellman/example.rs
trackler-2.2.1.147 tracks/rust/exercises/diffie-hellman/example.rs
trackler-2.2.1.146 tracks/rust/exercises/diffie-hellman/example.rs
trackler-2.2.1.145 tracks/rust/exercises/diffie-hellman/example.rs
trackler-2.2.1.144 tracks/rust/exercises/diffie-hellman/example.rs
trackler-2.2.1.143 tracks/rust/exercises/diffie-hellman/example.rs
trackler-2.2.1.142 tracks/rust/exercises/diffie-hellman/example.rs
trackler-2.2.1.141 tracks/rust/exercises/diffie-hellman/example.rs
trackler-2.2.1.140 tracks/rust/exercises/diffie-hellman/example.rs
trackler-2.2.1.139 tracks/rust/exercises/diffie-hellman/example.rs
trackler-2.2.1.138 tracks/rust/exercises/diffie-hellman/example.rs
trackler-2.2.1.137 tracks/rust/exercises/diffie-hellman/example.rs
trackler-2.2.1.136 tracks/rust/exercises/diffie-hellman/example.rs