blake2b_ref/
lib.rs

1//! This crate is transcompiled from blake2b-ref
2//!
3//! # Example:
4//!
5//! ```
6//! use blake2b_ref::Blake2bBuilder;
7//!
8//! fn hash_message(msg: &[u8]) -> [u8; 32] {
9//!     let mut output = [0u8; 32];
10//!     let mut blake2b = Blake2bBuilder::new(32).personal(b"SMT").build();
11//!     blake2b.update(msg);
12//!     blake2b.finalize(&mut output);
13//!     output
14//! }
15//! ```
16
17#![cfg_attr(not(test), no_std)]
18
19mod blake2b_ref;
20mod libc;
21#[cfg(test)]
22mod tests;
23mod wrapper;
24
25pub use crate::wrapper::{blake2b, Blake2b, Blake2bBuilder};
26
27trait Fill {
28    fn fill_bytes(&mut self, num: u8, size: usize);
29}
30
31impl Fill for [u8] {
32    fn fill_bytes(&mut self, num: u8, size: usize) {
33        for i in &mut self[..size] {
34            *i = num;
35        }
36    }
37}