a safe wrapper around the BLAKE2 C implementation (deprecated in favor of blake2b_simd)
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
BLAKE2
benches
src
.gitattributes
.gitignore
.travis.yml
Cargo.toml
LICENSE
README.md
README.tpl
appveyor.yml
build.rs

README.md

blake2_c.rs Travis build AppVeyor build crates.io docs.rs

Deprecation: The blake2b_simd crate has better performance than this one, with the added benefit of being pure Rust. This library probably won't be developed any further. blake2b_simd doesn't currently support BLAKE2s, but if there are any callers that need it I can add support or fork the crate, so let me know.

blake2_c is a safe Rust wrapper around the C implementation of BLAKE2. It exposes all the parameters that BLAKE2 supports, like personalization and tree hashing.

By default this crate links against the portable "ref" implementation, but if you turn on the native feature it will link against the "sse" implementation, which uses SIMD instructions if your processor supports them. That gives about an 8% speedup on my machine, but the resulting binary is probably not portable.

This crate supports no_std. The std feature is on by default, to provide implementations of std::io::Write, but it can be disabled in the caller's Cargo.toml using default-features = false.

Originally based on libb2-sys by @cmr and @cesarb and blake2-rfc by @cesarb.