summaryrefslogtreecommitdiff
path: root/rand/rand_hc
diff options
context:
space:
mode:
Diffstat (limited to 'rand/rand_hc')
-rw-r--r--rand/rand_hc/CHANGELOG.md8
-rw-r--r--rand/rand_hc/Cargo.toml9
-rw-r--r--rand/rand_hc/README.md4
-rw-r--r--rand/rand_hc/src/hc128.rs12
-rw-r--r--rand/rand_hc/src/lib.rs2
5 files changed, 22 insertions, 13 deletions
diff --git a/rand/rand_hc/CHANGELOG.md b/rand/rand_hc/CHANGELOG.md
index d0c4a2f..a629d7d 100644
--- a/rand/rand_hc/CHANGELOG.md
+++ b/rand/rand_hc/CHANGELOG.md
@@ -4,5 +4,13 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [0.2.0] - 2019-06-12
+- Bump minor crate version since rand_core bump is a breaking change
+- Switch to Edition 2018
+
+## [0.1.1] - 2019-06-06 - yanked
+- Bump `rand_core` version
+- Adjust usage of `#[inline]`
+
## [0.1.0] - 2018-10-17
- Pulled out of the Rand crate
diff --git a/rand/rand_hc/Cargo.toml b/rand/rand_hc/Cargo.toml
index ed5dd5b..40cea06 100644
--- a/rand/rand_hc/Cargo.toml
+++ b/rand/rand_hc/Cargo.toml
@@ -1,21 +1,22 @@
[package]
name = "rand_hc"
-version = "0.1.0"
+version = "0.2.0"
authors = ["The Rand Project Developers"]
-license = "MIT/Apache-2.0"
+license = "MIT OR Apache-2.0"
readme = "README.md"
repository = "https://github.com/rust-random/rand"
-documentation = "https://rust-random.github.io/rand/rand_hc"
+documentation = "https://rust-random.github.io/rand/rand_hc/"
homepage = "https://crates.io/crates/rand_hc"
description = """
HC128 random number generator
"""
keywords = ["random", "rng", "hc128"]
categories = ["algorithms", "no-std"]
+edition = "2018"
[badges]
travis-ci = { repository = "rust-random/rand" }
appveyor = { repository = "rust-random/rand" }
[dependencies]
-rand_core = { path = "../rand_core", version = ">=0.2, <0.4", default-features=false }
+rand_core = { path = "../rand_core", version = "0.5" }
diff --git a/rand/rand_hc/README.md b/rand/rand_hc/README.md
index 178548a..36449c0 100644
--- a/rand/rand_hc/README.md
+++ b/rand/rand_hc/README.md
@@ -6,7 +6,7 @@
[[![Book](https://img.shields.io/badge/book-master-yellow.svg)](https://rust-random.github.io/book/)
[![API](https://img.shields.io/badge/api-master-yellow.svg)](https://rust-random.github.io/rand/rand_hc)
[![API](https://docs.rs/rand_hc/badge.svg)](https://docs.rs/rand_hc)
-[![Minimum rustc version](https://img.shields.io/badge/rustc-1.22+-lightgray.svg)](https://github.com/rust-random/rand#rust-version-requirements)
+[![Minimum rustc version](https://img.shields.io/badge/rustc-1.32+-lightgray.svg)](https://github.com/rust-random/rand#rust-version-requirements)
A cryptographically secure random number generator that uses the HC-128
algorithm.
@@ -19,7 +19,7 @@ Links:
- [API documentation (master)](https://rust-random.github.io/rand/rand_hc)
- [API documentation (docs.rs)](https://docs.rs/rand_hc)
-- [Changelog](CHANGELOG.md)
+- [Changelog](https://github.com/rust-random/rand/blob/master/rand_hc/CHANGELOG.md)
[rand]: https://crates.io/crates/rand
[^1]: Hongjun Wu (2008). ["The Stream Cipher HC-128"](
diff --git a/rand/rand_hc/src/hc128.rs b/rand/rand_hc/src/hc128.rs
index d1dadcc..a320f48 100644
--- a/rand/rand_hc/src/hc128.rs
+++ b/rand/rand_hc/src/hc128.rs
@@ -63,27 +63,26 @@ const SEED_WORDS: usize = 8; // 128 bit key followed by 128 bit iv
///
/// [^5]: Internet Engineering Task Force (February 2015),
/// ["Prohibiting RC4 Cipher Suites"](https://tools.ietf.org/html/rfc7465).
-///
-/// [`BlockRng`]: ../rand_core/block/struct.BlockRng.html
-/// [`RngCore`]: ../rand_core/trait.RngCore.html
#[derive(Clone, Debug)]
pub struct Hc128Rng(BlockRng<Hc128Core>);
impl RngCore for Hc128Rng {
- #[inline(always)]
+ #[inline]
fn next_u32(&mut self) -> u32 {
self.0.next_u32()
}
- #[inline(always)]
+ #[inline]
fn next_u64(&mut self) -> u64 {
self.0.next_u64()
}
+ #[inline]
fn fill_bytes(&mut self, dest: &mut [u8]) {
self.0.fill_bytes(dest)
}
+ #[inline]
fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), Error> {
self.0.try_fill_bytes(dest)
}
@@ -92,10 +91,12 @@ impl RngCore for Hc128Rng {
impl SeedableRng for Hc128Rng {
type Seed = <Hc128Core as SeedableRng>::Seed;
+ #[inline]
fn from_seed(seed: Self::Seed) -> Self {
Hc128Rng(BlockRng::<Hc128Core>::from_seed(seed))
}
+ #[inline]
fn from_rng<R: RngCore>(rng: R) -> Result<Self, Error> {
BlockRng::<Hc128Core>::from_rng(rng).map(Hc128Rng)
}
@@ -271,6 +272,7 @@ impl Hc128Core {
// Initialize an HC-128 random number generator. The seed has to be
// 256 bits in length (`[u32; 8]`), matching the 128 bit `key` followed by
// 128 bit `iv` when HC-128 where to be used as a stream cipher.
+ #[inline(always)] // single use: SeedableRng::from_seed
fn init(seed: [u32; SEED_WORDS]) -> Self {
#[inline]
fn f1(x: u32) -> u32 {
diff --git a/rand/rand_hc/src/lib.rs b/rand/rand_hc/src/lib.rs
index 10466cf..c1ae665 100644
--- a/rand/rand_hc/src/lib.rs
+++ b/rand/rand_hc/src/lib.rs
@@ -18,8 +18,6 @@
#![no_std]
-pub extern crate rand_core;
-
mod hc128;
pub use hc128::{Hc128Rng, Hc128Core};