aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2023-05-28test_fuzz_xofxof_integrationJack O'Connor
2023-05-28integrate xof_many with the Rust implementation and with Rust and C testsJack O'Connor
2023-05-23Fix typosJoel Rosdahl
2023-05-01small doc tweakJack O'Connor
2023-05-01add `from_bytes` for conversions from `[u8; 32]`Eduardo Leegwater Simões
The function is `const`, so it is fundamentally different from the `From` trait implementation by allowing compile-time instantiation of a `Hash`.
2023-05-01make `Hash::as_bytes` constEduardo Leegwater Simões
2022-11-22test multiple initial counter values for hash_manyJack O'Connor
I'm adding the i32::MAX test case here because I personally screwed it up while I was working on https://github.com/BLAKE3-team/BLAKE3/issues/271. The correct implementation of the carry bit is the ANDNOT of old high bit (1) and the new high bit (0). Using XOR instead of ANDNOT gives the correct answer in the overflow case, but it also reports an incorrect "extra" overflow when the high bit goes from 0 to 1.
2022-07-28Fix doc typoRicardo Fernández Serrata
2022-06-07simplify a line in the docs example codeJack O'Connor
The same change was previously made in README.md.
2022-03-04add "(if any)" regarding keying in the security notesJack O'Connor
2022-03-03simplify a bit moreJack O'Connor
2022-03-02simplify the security notes, avoid referring to entropyJack O'Connor
2022-03-02document the extended output security issue found by Aldo GunsingJack O'Connor
https://eprint.iacr.org/2022/283
2022-01-24check the HMAC output bytesJack O'Connor
2022-01-24Adds testjbis9051
2022-01-23Add blocksize traitjbis9051
2021-12-30a few more comment tweaksJack 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-11-05fix incorrect output / undefined behavior in Windows SSE2 assemblyJack 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-29remove an incorrect commentJack O'Connor
2021-10-23update NEON docs in lib.rsJack O'Connor
2021-10-07Implement better target detection for NEONrsdy
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-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-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-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-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-25Cargo.toml: upgrade all non API breaking dependenciesPaul Grandperrin
2021-02-04rename ParseError to HexError and update docsJack O'Connor
2021-02-04implement Error for ParseError, make it opaque, and support from_hex(&[u8])Jack O'Connor
2021-02-03merge "Adding from_hex and implementing FromStr for Hash"Jack O'Connor
https://github.com/BLAKE3-team/BLAKE3/pull/24
2020-09-29add more test cases at shorter input lengthsJack O'Connor
2020-09-10cargo fmtJack O'Connor
2020-08-31add the dynamic check for SSE2 supportJack O'Connor
It will be very rare that this actually executes, but we should include it for completeness.
2020-08-31fix a build break on x86 targets without guaranteed SSE2 supportJack O'Connor
This is quite hard to trigger, because SSE2 has been guaranteed for a long time. But you could trigger it this way: rustup target add i686-unknown-linux-musl RUSTFLAGS="-C target-cpu=i386" cargo build --target i686-unknown-linux-musl Note a relevant gotcha though: The `cross` tool will not forward environment variables like RUSTFLAGS to the container by default, so if you're testing with `cross` you'll need to use the `rustc` command to explicitly pass the flag, as I've done here in ci.yml. (Or you could create a `Cross.toml` file, but I don't want to commit one of those if I can avoid it.)
2020-08-31Merge pull request #110 from mkrupcale/sse2Samuel Neves
Add SSE2 implementations
2020-08-31Implement `fmt::Debug` using buildersNikolai Vazquez
This enables pretty printing via `{:#?}`. The normal style for `{:?}` is kept exactly the same.
2020-08-25Write _mm_blend_epi16 emulation without multiplicationMatthew Krupcale
Use _mm_and_si128 and _mm_cmpeq_epi16 rather than expensive multiplication _mm_mullo_epi16 with _mm_srai_epi16 that compiler may not be able to optimize.
2020-08-24Fix unreachable expression compiler warningMatthew Krupcale
SSE2 target_feature appears to always be present for x86_64.