aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-11-05fix incorrect output / undefined behavior in Windows SSE2 assemblyfix_sse2Jack O'Connor
The SSE2 patch introduced xmm10 as a temporary register for one of the rotations, but xmm6-xmm15 are callee-save registers on Windows, and SSE4.1 was only saving the registers it used. The minimal fix is to use one of the saved registers instead of xmm10. See https://github.com/BLAKE3-team/BLAKE3/issues/206.
2021-11-04add Hasher::countJack O'Connor
2021-10-29make field ordering more consistent in the reference implJack O'Connor
2021-10-29distinguish between key and key_words in the reference implJack O'Connor
2021-10-29remove an incorrect commentJack O'Connor
2021-10-23update NEON docs in lib.rsJack O'Connor
2021-10-21add aarch64-apple-darwin builds to GitHub CIJack O'Connor
I'm not sure how to build for Apple Silicon from a Linux host, but it seems to work as-is from an x86_64 macOS host. Alas, GitHub doesn't yet provide Apple Silicon hosts to run these binaries, and Cross doesn't yet support virtualizing them either.
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-10-21a small capitalization changeJack O'Connor
2021-10-21fix a comment typoJack O'Connor
2021-10-14Merge pull request #201 from symmetree-labs/masterJack O'Connor
Improve compile-time target detection for NEON
2021-10-12Use BLAKE3_USE_NEON=0 instead of BLAKE3_NO_NEON defrsdy
2021-10-12Disable no_neon feature for C bindings as we can't propagate from cargo buildrsdy
2021-10-12Include MSVC naming of aarch64 archrsdy
2021-10-11Match the C binding's target arch detection with the root crate'srsdy
2021-10-08Make the C implementation default to using NEON on aarch64rsdy
2021-10-08Add no_neon feature tests to CIrsdy
2021-10-08Add `no_neon` feature to disable NEON on aarch64rsdy
2021-10-07Implement better target detection for NEONrsdy
2021-09-17linkfixJP Aumasson
2021-09-10replace an assert!(... != ...) with an assert_ne!Jack O'Connor
2021-09-10clarify that OutputReader::position is equivalent to Seek::stream_positionJack O'Connor
2021-09-10link to the paper in the derive_key docsJack O'Connor
2021-09-01check length arg (out_len_ll) instead of default value (out_len)David Burkett
2021-08-24explicitly #error on big-endian ARMJack O'Connor
2021-08-24add a redundant loop condition to silence GCC warningsJack O'Connor
See: https://github.com/BLAKE3-team/BLAKE3/issues/94 https://github.com/BLAKE3-team/BLAKE3/issues/183 https://github.com/BLAKE3-team/BLAKE3/issues/189
2021-08-24handle IO errors in example.cJack O'Connor
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-07-25update README examplesJack O'Connor
2021-05-18upgrade to arrayvec 0.7.0Jack O'Connor
This version uses const generics, which bumps our minimum supported compiler version to 1.51.
2021-05-18upgrade crypto-mac to 0.11.0Jack O'Connor
2021-05-18explicitly document the properties of short outputsJack O'Connor
Suggested by @joshtriplett at: https://github.com/BLAKE3-team/BLAKE3/issues/168#issuecomment-829609667
2021-03-28more cleaup of undocumented APIJack O'Connor
2021-03-28update doc comments on guts moduleJack O'Connor
2021-03-22comment cleanup in build.rs (#164)P.M
2021-03-21implement Display for HashJack O'Connor
2021-03-21get rid of the standalone "*_rayon" functionsJack O'Connor
These clutter the toplevel API, and their prominence might lead callers to prefer them as a first resort, which probably isn't a good idea. Restricting multithreading to `Hasher::update_rayon` feels better, similar to what we've done with `Hasher::finalize_xof`. (But I think `update_rayon` is still an improvement over the trait-based interface that it replaced.)
2021-03-21gate digest and crypto-mac implementations behind "traits-preview"Jack O'Connor
This approach was suggested by @tarcieri at https://github.com/BLAKE3-team/BLAKE3/pull/157.
2021-03-21Cargo.toml: update crypto-mac to 0.10.0Paul Grandperrin
2021-03-20Rayon-related doc fixesJack O'Connor
2021-03-14add *_rayon methodsJack O'Connor
2021-03-14re-privatize the Join traitJack O'Connor
2021-02-28make derive_key() return an arrayJack O'Connor
2021-02-28impl PartialEq<[u8]> for HashJack O'Connor
2021-02-26Another movd/movq inconsistency.Samuel Neves
- Visual Studio <= 2015 does not support AVX-512 either way; - Visual Studio 2017 does not tolerate vmovd with 64-bit operands; - Visual Studio 2019 does not care.
2021-02-25Cargo.toml: upgrade all non API breaking dependenciesPaul Grandperrin
2021-02-18clarify C build instructions a bitJack O'Connor
2021-02-15delete an unused constantJack O'Connor
Fixes https://github.com/BLAKE3-team/BLAKE3/issues/152.
2021-02-15clang-format a few filesJack O'Connor
Some of the SIMD code is still unformatted, so for now I'm only touching the files that just have a couple small changes.