Changes since 0.3.6: - BUGFIX: The C implementation was incorrect on big endian systems for inputs longer than 1024 bytes. This bug affected all previous versions of the C implementation. Little endian platforms like x86 were unaffected. The Rust implementation was also unaffected. @jakub-zwolakowski and @pascal-cuoq from TrustInSoft reported this bug: https://github.com/BLAKE3-team/BLAKE3/pull/118 - BUGFIX: The C build on x86-64 was producing binaries with an executable stack. @tristanheaven reported this bug: https://github.com/BLAKE3-team/BLAKE3/issues/109 - @mkrupcale added optimized implementations for SSE2. This improves performance on older x86 processors that don't support SSE4.1. - The C implementation now exposes the `blake3_hasher_init_derive_key_raw` function, to make it easier to implement language bindings. Added by @k0001.
|1 month ago|
|src||5 months ago|
|tests||5 months ago|
|Cargo.toml||1 month ago|
|README.md||2 months ago|
|what_does_check_do.md||6 months ago|
A command line utility for calculating
BLAKE3 hashes, similar to
Coreutils tools like
b3sum 0.3.6 USAGE: b3sum [FLAGS] [OPTIONS] [FILE]... FLAGS: -c, --check Reads BLAKE3 sums from the [file]s and checks them -h, --help Prints help information --keyed Uses the keyed mode. The secret key is read from standard input, and it must be exactly 32 raw bytes. --no-mmap Disables memory mapping. Currently this also disables multithreading. --no-names Omits filenames in the output --quiet Skips printing OK for each successfully verified file. Must be used with --check. --raw Writes raw output bytes to stdout, rather than hex. --no-names is implied. In this case, only a single input is allowed. -V, --version Prints version information OPTIONS: --derive-key <CONTEXT> Uses the key derivation mode, with the given context string. Cannot be used with --keyed. -l, --length <LEN> The number of output bytes, prior to hex encoding (default 32) --num-threads <NUM> The maximum number of threads to use. By default, this is the number of logical cores. If this flag is omitted, or if its value is 0, RAYON_NUM_THREADS is also respected. ARGS: <FILE>... Files to hash, or checkfiles to check. When no file is given, or when - is given, read standard input.
Hash the file
Time hashing a gigabyte of data, to see how fast it is:
# Create a 1 GB file. head -c 1000000000 /dev/zero > /tmp/bigfile # Hash it with SHA-256. time openssl sha256 /tmp/bigfile # Hash it with BLAKE3. time b3sum /tmp/bigfile
Prebuilt binaries are available for Linux, Windows, and macOS (requiring
the unidentified developer
on the releases page.
If you've installed Rust and
you can also build
b3sum yourself with:
cargo install b3sum
On Linux for example, Cargo will put the compiled binary in
~/.cargo/bin. You might want to add that directory to your
rustup might have done it for you when you installed Cargo.
If you want to install directly from this directory, you can run
cargo install --path .. Or you can just build with
cargo build --release,
which puts the binary at