#deprecated #blake2 #safe-wrapper #native #parameters #blake2b-simd

deprecated no-std bin+lib blake2_c

[deprecated] a safe wrapper for the official BLAKE2 C implementation

8 releases

Uses old Rust 2015

0.3.3 Oct 18, 2018
0.3.2 Sep 10, 2018
0.3.1 Mar 16, 2018
0.3.0 Dec 17, 2017
0.1.2 Nov 10, 2017

#21 in #blake2

Used in rsbx

MIT license


C 1K SLoC // 0.1% comments Rust 1K SLoC // 0.0% comments Python 10 SLoC // 0.6% comments Pan 1 SLoC

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.