Merge branch 'release/0.3.0'

This commit is contained in:
Isis Lovecruft 2018-07-27 20:25:57 +00:00
commit e8858ae65e
Failed to extract signature
4 changed files with 27 additions and 27 deletions

View file

@ -1,6 +1,6 @@
[package]
name = "x25519-dalek"
version = "0.2.1"
version = "0.3.0"
authors = ["Isis Lovecruft <isis@patternsinthevoid.net>"]
readme = "README.md"
license = "BSD-3-Clause"
@ -20,15 +20,16 @@ exclude = [
travis-ci = { repository = "dalek-cryptography/x25519-dalek", branch = "master"}
[dependencies.curve25519-dalek]
version = "^0.18"
version = "^0.19"
default-features = false
[dependencies.rand]
optional = true
version = "^0.5"
[dependencies.rand_core]
default-features = false
version = "0.2"
[dev-dependencies]
criterion = "0.2"
rand = "0.5"
[[bench]]
name = "x25519"
@ -36,7 +37,7 @@ harness = false
[features]
default = ["std", "nightly", "u64_backend"]
std = ["rand", "curve25519-dalek/std"]
std = ["curve25519-dalek/std"]
nightly = ["curve25519-dalek/nightly"]
u64_backend = ["curve25519-dalek/u64_backend"]
u32_backend = ["curve25519-dalek/u32_backend"]

View file

@ -1,5 +1,5 @@
# x25519-dalek [![](https://img.shields.io/crates/v/x25519-dalek.svg)](https://crates.io/crates/x25519-dalek) [![](https://docs.rs/x25519-dalek/badge.svg)](https://docs.rs/x25519-dalek) [![](https://travis-ci.org/isislovecruft/x25519-dalek.svg?branch=master)](https://travis-ci.org/dalek-cryptography/x25519-dalek)
# x25519-dalek [![](https://img.shields.io/crates/v/x25519-dalek.svg)](https://crates.io/crates/x25519-dalek) [![](https://docs.rs/x25519-dalek/badge.svg)](https://docs.rs/x25519-dalek) [![](https://travis-ci.org/dalek-cryptography/x25519-dalek.svg?branch=master)](https://travis-ci.org/dalek-cryptography/x25519-dalek)
A pure-Rust implementation of x25519 elliptic curve Diffie-Hellman key exchange,
as specified by Mike Hamburg and Adam Langley in
@ -92,7 +92,7 @@ To install, add the following to your project's `Cargo.toml`:
```toml
[dependencies.x25519-dalek]
version = "^0.2"
version = "^0.3"
```
Then, in your library or executable source, add:

View file

@ -42,9 +42,9 @@
//! # fn main() {
//! use x25519_dalek::generate_secret;
//! use x25519_dalek::generate_public;
//! use rand::OsRng;
//! use rand::thread_rng;
//!
//! let mut alice_csprng = OsRng::new().unwrap();
//! let mut alice_csprng = thread_rng();
//! let alice_secret = generate_secret(&mut alice_csprng);
//! let alice_public = generate_public(&alice_secret);
//! # }
@ -59,9 +59,9 @@
//! # fn main() {
//! # use x25519_dalek::generate_secret;
//! # use x25519_dalek::generate_public;
//! # use rand::OsRng;
//! # use rand::thread_rng;
//! #
//! let mut bob_csprng = OsRng::new().unwrap();
//! let mut bob_csprng = thread_rng();
//! let bob_secret = generate_secret(&mut bob_csprng);
//! let bob_public = generate_public(&bob_secret);
//! # }
@ -78,13 +78,13 @@
//! # fn main() {
//! # use x25519_dalek::generate_secret;
//! # use x25519_dalek::generate_public;
//! # use rand::OsRng;
//! # use rand::thread_rng;
//! #
//! # let mut alice_csprng = OsRng::new().unwrap();
//! # let mut alice_csprng = thread_rng();
//! # let alice_secret = generate_secret(&mut alice_csprng);
//! # let alice_public = generate_public(&alice_secret);
//! #
//! # let mut bob_csprng = OsRng::new().unwrap();
//! # let mut bob_csprng = thread_rng();
//! # let bob_secret = generate_secret(&mut bob_csprng);
//! # let bob_public = generate_public(&bob_secret);
//! #
@ -104,13 +104,13 @@
//! # use x25519_dalek::diffie_hellman;
//! # use x25519_dalek::generate_secret;
//! # use x25519_dalek::generate_public;
//! # use rand::OsRng;
//! # use rand::thread_rng;
//! #
//! # let mut alice_csprng = OsRng::new().unwrap();
//! # let mut alice_csprng = thread_rng();
//! # let alice_secret = generate_secret(&mut alice_csprng);
//! # let alice_public = generate_public(&alice_secret);
//! #
//! # let mut bob_csprng = OsRng::new().unwrap();
//! # let mut bob_csprng = thread_rng();
//! # let bob_secret = generate_secret(&mut bob_csprng);
//! # let bob_public = generate_public(&bob_secret);
//! #
@ -128,13 +128,11 @@
extern crate curve25519_dalek;
#[cfg(feature = "std")]
extern crate rand;
extern crate rand_core;
#[cfg(all(test, feature = "bench"))]
extern crate test;
#[cfg(test)]
extern crate rand;
mod x25519;
#[allow(missing_docs)]
pub use x25519::*;

View file

@ -16,8 +16,8 @@ use curve25519_dalek::constants::ED25519_BASEPOINT_TABLE;
use curve25519_dalek::montgomery::MontgomeryPoint;
use curve25519_dalek::scalar::Scalar;
#[cfg(feature = "std")]
use rand::Rng;
use rand_core::RngCore;
use rand_core::CryptoRng;
/// "Decode" a scalar from a 32-byte array.
///
@ -38,8 +38,9 @@ fn decode_scalar(scalar: &[u8; 32]) -> Scalar {
}
/// Generate an x25519 secret key.
#[cfg(feature = "std")]
pub fn generate_secret<T: Rng>(csprng: &mut T) -> [u8; 32] {
pub fn generate_secret<T>(csprng: &mut T) -> [u8; 32]
where T: RngCore + CryptoRng
{
let mut bytes = [0u8; 32];
csprng.fill_bytes(&mut bytes);
bytes