[package]
name = "srp"
-version = "0.2.5"
+version = "0.3.0"
authors = ["RustCrypto Developers"]
license = "MIT OR Apache-2.0"
description = "Secure Remote Password (SRP) protocol implementation"
categories = ["cryptography", "authentication"]
[dependencies]
-num = "0.1"
-generic-array = "0.8"
-digest = "0.6"
+num = "0.2"
+generic-array = "0.12"
+digest = "0.8"
lazy_static = "0.2"
[dev-dependencies]
-rand = "0.3"
-sha2 = "0.6"
-sha-1 = "0.4"
+rand = "0.5"
+sha2 = "0.8"
+sha-1 = "0.8"
[badges]
travis-ci = { repository = "RustCrypto/PAKEs" }
//! use srp::groups::G_2048;
//! use sha2::Sha256;
//!
-//! let a = rng.gen_iter::<u8>().take(64).collect::<Vec<u8>>();
+//! let mut a = [0u8; 64];
+//! rng.fill_bytes(&mut a);
//! let client = SrpClient::<Sha256>::new(&a, &G_2048);
//! ```
//!
//! let pwd_verifier = client.get_password_verifier(&private_key);
//! conn.send_registration_data(username, salt, pwd_verifier);
//! ```
-
-//let buf = rng.gen_iter::<u8>().take(l).collect::<Vec<u8>>();
use std::marker::PhantomData;
use digest::Digest;
extern crate lazy_static;
#[cfg(test)]
-extern crate sha_1;
+extern crate sha1;
pub mod client;
pub mod groups;
//!
//! let (username, a_pub) = conn.receive_handshake();
//! let user = db.retrieve_user_record(username);
-//! let b = rng.gen_iter::<u8>().take(64).collect::<Vec<u8>>();
+//! let b = [0u8; 64];
+//! rng.fill_bytes(&mut b);
//! let server = SrpServer::<Sha256>::new(&user, &a_pub, &b, &G_2048)?;
//! ```
//!
#[cfg(test)]
mod tests {
use groups::G_1024;
- use sha_1::Sha1;
+ use sha1::Sha1;
#[test]
fn test_k_1024_sha1() {
extern crate sha2;
extern crate srp;
-use rand::Rng;
+use rand::RngCore;
use sha2::Sha256;
use srp::client::{srp_private_key, SrpClient};
let username = b"alice";
// Client instance creation
- let a = rng.gen_iter::<u8>().take(64).collect::<Vec<u8>>();
+ let mut a = [0u8; 64];
+ rng.fill_bytes(&mut a);
let client = SrpClient::<Sha256>::new(&a, &G_2048);
// Registration
- let salt: [u8; 16] = rng.gen();
+ let mut salt = [0u8; 16];
+ rng.fill_bytes(&mut salt);
let reg_priv_key = srp_private_key::<Sha256>(username, reg_pwd, &salt);
let verif = client.get_password_verifier(®_priv_key);
salt: &salt,
verifier: &verif,
};
- let b = rng.gen_iter::<u8>().take(64).collect::<Vec<u8>>();
+ let mut b = [0u8; 64];
+ rng.fill_bytes(&mut b);
let server = SrpServer::<Sha256>::new(&user, &a_pub, &b, &G_2048).unwrap();
let (salt, b_pub) = (&user.salt, server.get_b_pub());