aboutsummaryrefslogtreecommitdiff
path: root/b3sum
AgeCommit message (Collapse)Author
2022-03-27fix a deprecation warning from clapJack O'Connor
2022-03-27refresh the Cargo.lock file for b3sumJack O'Connor
2022-03-26Update crossbeam-utils from yanked versionZach Crownover
2022-03-26Update crossbeam-channel from yanked versionZach Crownover
2022-03-26Update block-buffer from yanked versionZach Crownover
2022-03-26RUSTSEC-2020-0077Zach Crownover
Migrate from the abandoned memmap library to the now maintained fork of memmap2
2022-01-25version 1.3.11.3.1Jack O'Connor
Changes since 1.3.0: - The unstable `traits-preview` feature now includes an implementation of `crypto_common::BlockSizeUser`, AKA `digest::core_api::BlockSizeUser`. This allows `blake3::Hasher` to be used with `hmac::SimpleHmac`.
2022-01-08version 1.3.01.3.0Jack O'Connor
Changes since 1.2.0: - Added blake3_hasher_reset to the C API, for parity with the Rust API. - Updated digest to v0.10. This version merged the crypto-mac crate with digest, so the dependency on crypto-mac has been removed. These trait implementations are still gated behind the "traits-preview" feature. - Updated clap to v3.
2022-01-07update clap to v3Jack O'Connor
2021-12-30Update digest crate to 0.10 for traits-preview featureMatthias Schiffer
Adjust to the following changes that happened in digest: - The crypto-mac crate has been merged into digest (with "mac" feature enabled) - Various traits have been split up - The Digest and Mac traits now share their update/finalize/reset implementations - The BlockInput trait was dropped without replacement apparently (as long as the low-level core API is not used)
2021-12-18check in the Cargo.lock for b3sumJack O'Connor
We'll need to make sure to update this when we do a version bump. Adding an explicit `!Cargo.lock` line to b3sum/.gitignore helps with this, by making sure Cargo.lock shows up by defauls in searches like: rg "1\.2\.0" Closes https://github.com/BLAKE3-team/BLAKE3/issues/210.
2021-11-13fix a typo in the check docJack O'Connor
2021-11-05version 1.2.01.2.0Jack O'Connor
Changes since 1.1.0: - SECURITY FIX: Fixed an instance of undefined behavior in the Windows SSE2 assembly implementations, which affected both the Rust and C libraries in their default build configurations. See https://github.com/BLAKE3-team/BLAKE3/issues/206. The cause was a vector register that wasn't properly saved and restored. This bug has been present since SSE2 support was initially added in v0.3.7. The effects of this bug depend on surrounding code and compiler optimizations; see test_issue_206_windows_sse2 for an example of this bug causing incorrect hash output. Note that even when surrounding code is arranged to trigger this bug, the SSE2 implementation is normally only invoked on CPUs where SSE4.1 (introduced in 2007) isn't supported. One notable exception, however, is if the Rust library is built in `no_std` mode, with `default_features = false` or similar. In that case, runtime CPU feature detection is disabled, and since LLVM assumes that all x86-64 targets support SSE2, the SSE2 implementation will be invoked. For that reason, Rust callers who build `blake3` in `no_std` mode for x86-64 Windows targets are the most likely to trigger this bug. We found this bug in internal testing, and we aren't aware of any callers encountering it in practice. - Added the Hasher::count() method.
2021-10-21version 1.1.01.1.0Jack O'Connor
Changes since 1.0.0: - The NEON implementation is now enabled by default on AArch64 targets. Previously it was disabled without the "neon" Cargo feature in Rust or the "BLAKE3_USE_NEON=1" preprocessor flag in C. This is still the case on ARM targets other than AArch64, because of the lack of dynamic CPU feature detection on ARM. Contributed by @rsdy. - The previous change leads to some build incompatibilities, particularly in C. If you build the C implementation for AArch64 targets, you now need to include blake3_neon.c, or else you'll get a linker error like "undefined reference to `blake3_hash_many_neon'". If you don't want the NEON implementation, you need to explicitly set "BLAKE3_USE_NEON=0". On the Rust side, AArch64 targets now require the C toolchain by default. build.rs includes workarounds for missing or very old C compilers for x86, but it doesn't currently include such workarounds for AArch64. If we hear about build breaks related to this, we can add more workarounds as appropriate. - C-specific Git tags ("c-0.3.7" etc.) have been removed, and all the projects in this repo (Rust "blake3", Rust "b3sum", and the C implementation) will continue to be versioned in lockstep for the foreseeable future.
2021-07-27update the version number in the b3sum readmeJack O'Connor
2021-07-25version 1.0.01.0.0Jack O'Connor
Changes since 0.3.8: - Add Hash::from_hex() and implement FromStr for Hash. - Implement Display for Hash, equivalent to Hash::to_hex(). - Implement PartialEq<[u8]> for Hash, using constant_time_eq. - Change derive_key() to return a 32-byte array. As with hash() and keyed_hash(), callers who want a non-default output length can use Hasher::finalize_xof(). - Replace Hasher::update_with_join() with Hasher::update_rayon(). The former was excessively generic, and the Join trait leaked implementation details. As part of this change, the Join trait is no longer public. - Upgraded arrayvec to 0.7.0, which uses const generics. This bumps the minimum supported Rust compiler version to 1.51. - Gate the digest and crypto-mac trait implementations behind an unstable feature, "traits-preview". As part of this change upgrade crypto-mac to 0.11.0.
2021-03-28more cleaup of undocumented APIJack O'Connor
2021-03-14add *_rayon methodsJack O'Connor
2021-02-28make derive_key() return an arrayJack O'Connor
2020-10-01version 0.3.70.3.7Jack O'Connor
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.
2020-09-14use an absolute url for ↵Jack O'Connor
https://github.com/BLAKE3-team/BLAKE3/blob/master/b3sum/what_does_check_do.md
2020-09-14remove an outdated section of the b3sum readmeJack O'Connor
2020-07-29version 0.3.60.3.6Jack O'Connor
Changes since 0.3.5: - Fix a build break in the assembly files under older versions of GCC.
2020-07-10version 0.3.50.3.5Jack O'Connor
Changes since 0.3.4: - The `digest` dependency is now v0.9 and the `crypto-mac` dependency is now v0.8. - Intel CET is supported in the assembly implementations. - `b3sum` error output includes filepaths again.
2020-06-24put the file name in b3sum error outputJack O'Connor
This was previously there, but got dropped in c5c07bb337d0af7522666d05308aaf24eef3709c.
2020-05-26link to prebuilt binaries from the b3sum READMEJack O'Connor
2020-05-25all-capitalize "FILE" in the b3sum help outputJack O'Connor
2020-05-25avoid repeating a stringJack O'Connor
2020-05-23fix a typo in the docsJack O'Connor
2020-05-23add a test commentJack O'Connor
2020-05-23version 0.3.40.3.4Jack O'Connor
Changes since 0.3.3: - `b3sum` now supports the `--check` flag. This is intended to be a drop-in replacement for e.g. `md5sum --check` from Coreutils. The behavior is somewhat stricter than Coreutils with respect to invalid Unicode in filenames. For a complete description of how `--check` works, see the file `b3sum/what_does_check_do.md`. - To support the `--check` feature, backslashes and newlines that appear in filenames are now escaped in the output of `b3sum`. This is done the same way as in Coreutils. - To support `--check` interoperability between Unix and Windows, backslashes in filepaths on Windows are now replaced with forward slashes in the output of `b3sum`. Note that this is different from Coreutils.
2020-05-23remove an extra space in some help textJack O'Connor
2020-05-23use wild::args_os to support globbing on WindowsJack O'Connor
2020-05-23add support for --quiet to `b3sum --check`Jack O'Connor
Suggested by @llowrey: https://github.com/BLAKE3-team/BLAKE3/issues/33#issuecomment-629853747
2020-05-16some more clarifications in the --check docsJack O'Connor
2020-05-15clarify the replacement character exampleJack O'Connor
2020-05-15small typoJack O'Connor
2020-05-15finish the --check documentationJack O'Connor
2020-05-14start documenting the --check flagJack O'Connor
2020-05-14enable clap default featuresJack O'Connor
These are nice to have. I used to think this would increase build times, but in practice it doesn't.
2020-05-14clarify that --no-mmap disables threadingJack O'Connor
2020-05-14print per-file errros more gracefuly in --checkJack O'Connor
2020-05-13refactor b3sum to support --checkJack O'Connor
This is an overall cleanup of everything that b3sum is doing, especially file opening and memory mapping, which makes it easier for the regular hashing mode to share code with the checking mode.
2020-05-13switch from assert_cmd to CARGO_BIN_EXE_*Jack O'Connor
2020-05-12add parse_check_lineJack O'Connor
As part of this, reorganize b3sum tests into src/unit_tests.rs and tests/cli_tests.rs.
2020-05-12stop printing the lossy warningJack O'Connor
Rather than breaking the check parse with more output, we'll have a rule that a Unicode replacement character (�) in a path name automatically fails the check.
2020-05-05add newline and backslash escaping to b3sum outputJack O'Connor
As proposed in https://github.com/BLAKE3-team/BLAKE3/issues/33#issuecomment-623153164 This brings b3sum behavior close to md5sum. All occurrences of backslash are replaced with "\\", and all occurrences of (Unix) newline are replaced with "\n". In addition, any line containing these escapes has a single "\" prepended to the front. Filepaths were already being converted to UTF-8 with to_string_lossy(), but this commit adds an extra warning when that conversion is in fact lossy (because the path is not valid Unicode). This new warning is printed to stdout, with the goal of deliberately breaking --check (which is not yet implemented) in this case.
2020-04-28version 0.3.30.3.3Jack O'Connor
Changes since 0.3.2: - `b3sum` binaries are built in CI and attached to new GitHub tags.
2020-04-14version 0.3.20.3.2Jack O'Connor
Changes since 0.3.1: - Fixed a compiler error on older versions of Clang, https://github.com/BLAKE3-team/BLAKE3/issues/79.
2020-04-02version 0.3.10.3.1Jack O'Connor
Changes since 0.3.0: - The x86 build now automatically falls back to "pure" Rust intrinsics, under either of two possible conditions: 1. The `cc` crate fails to invoke a C compiler at all, indicating that nothing of the right name (e.g. "cc" or "$CC" on Unix) is installed. 2. The `cc` crate detects that the compiler doesn't support AVX-512 flags, usually because it's too old. The end result should be that most callers successfully build the assembly implementations, and that callers who can't build those see a warning but not an error. (And note that Cargo suppresses warnings for non-path depencies.)