Vulnerabilities | |||||
---|---|---|---|---|---|
Version | Suggest | Low | Medium | High | Critical |
1.0.3 | 0 | 0 | 0 | 0 | 0 |
1.0.2 | 0 | 0 | 0 | 0 | 0 |
1.0.1 | 0 | 0 | 0 | 0 | 0 |
1.0.0 | 0 | 0 | 0 | 0 | 0 |
0.5.11 | 0 | 0 | 0 | 0 | 0 |
0.5.10 | 0 | 0 | 0 | 0 | 0 |
0.5.9 | 0 | 0 | 0 | 0 | 0 |
0.5.8 | 0 | 0 | 0 | 0 | 0 |
0.5.7 | 0 | 0 | 0 | 0 | 0 |
0.5.6 | 0 | 0 | 0 | 0 | 0 |
0.5.5 | 0 | 0 | 0 | 0 | 0 |
0.5.4 | 0 | 0 | 0 | 0 | 0 |
0.5.3 | 0 | 0 | 0 | 0 | 0 |
0.5.2 | 0 | 0 | 0 | 0 | 0 |
0.5.1 | 0 | 0 | 0 | 0 | 0 |
0.5.0 | 0 | 0 | 0 | 0 | 0 |
0.4.1 | 0 | 0 | 0 | 0 | 0 |
0.4.0 | 0 | 0 | 0 | 0 | 0 |
0.3.1 | 0 | 0 | 0 | 0 | 0 |
0.3.0 | 0 | 0 | 0 | 0 | 0 |
0.2.5 | 0 | 0 | 0 | 0 | 0 |
0.2.4 | 0 | 0 | 0 | 0 | 0 |
0.2.3 | 0 | 0 | 0 | 0 | 0 |
0.2.2 | 0 | 0 | 0 | 0 | 0 |
0.2.1 | 0 | 0 | 0 | 0 | 0 |
0.2.0 | 0 | 0 | 0 | 0 | 0 |
0.1.0 | 0 | 0 | 0 | 0 | 0 |
1.0.3 - This version is safe to use because it has no known security vulnerabilities at this time. Find out if your coding project uses this component and get notified of any reported security vulnerabilities with Meterian-X Open Source Security Platform
Maintain your licence declarations and avoid unwanted licences to protect your IP the way you intended.
MIT - MIT LicenseAn implementation of the BLAKE2(b/s/bp/sp) family of hash functions with:
blake2-avx2
.
These are very fast. See the Performance section below.blake2
command line utility, published as the
blake2_bin
crate, with command line flags for all
the BLAKE2 variants and associated data features.no_std
support. The std
Cargo feature is on by default, for CPU feature detection and
for implementing std::io::Write
.many
module in each crate.use blake2b_simd::{blake2b, Params};
let expected = "ca002330e69d3e6b84a46a56a6533fd79d51d97a3bb7cad6c2ff43b354185d6d\
c1e723fb3db4ae0737e120378424c714bb982d9dc5bbd7a0ab318240ddd18f8d";
let hash = blake2b(b"foo");
assert_eq!(expected, &hash.to_hex());
let hash = Params::new()
.hash_length(16)
.key(b"The Magic Words are Squeamish Ossifrage")
.personal(b"L. P. Waterhouse")
.to_state()
.update(b"foo")
.update(b"bar")
.update(b"baz")
.finalize();
assert_eq!("ee8ff4e9be887297cf79348dc35dab56", &hash.to_hex());
An example using the included blake2
command line utility:
$ cargo install blake2_bin
$ echo hi | blake2 -sp
49228db2a2fa8d25e8b3b2aca5a70234c71490516eaca9cba007b27d59c532b8
To run small benchmarks yourself, run cargo +nightly bench
. If you
have OpenSSL, libsodium, and Clang installed on your machine, you can
add --all-features
to include comparison benchmarks with other native
libraries.
The benches/bench_multiprocess
sub-crate runs various hash functions
on long inputs in memory and tries to average over many sources of
variability. Here are the results from my laptop for cargo run --release
(lower is better):
╭─────────────────────────┬──────────╮
│ BLAKE3 │ 0.95 cpb │
│ blake2s_simd many::hash │ 1.31 cpb │
│ blake2s_simd BLAKE2sp │ 1.32 cpb │
│ blake2b_simd many::hash │ 1.43 cpb │
│ blake2b_simd BLAKE2bp │ 1.44 cpb │
│ blake2b_simd BLAKE2b │ 2.81 cpb │
│ libsodium BLAKE2b │ 3.07 cpb │
│ OpenSSL SHA-1 │ 3.51 cpb │
│ blake2s_simd BLAKE2s │ 4.66 cpb │
│ OpenSSL SHA-512 │ 5.11 cpb │
╰─────────────────────────┴──────────╯