aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2024-08-27Remove Miri equality workaround functionAaron Feickert
2024-08-22put equivalent Hasher examples in the hash/keyed_hash/derive_key docsJack O'Connor
This was a good suggestion by @dhardy: https://github.com/rust-random/rand/issues/989#issuecomment-2303969094
2024-08-19test_compare_reference_impl_long_xofJack O'Connor
2024-08-18delete portable::xof_many and blake3_xof_many_portableJack O'Connor
2024-08-18make xof_many fall back to compress_xof instead of portable codeJack O'Connor
2024-08-18small cleanup in fill_one_blockJack O'Connor
2024-08-18debug_assert that xof_many is always called with whole blocksJack O'Connor
2024-08-18test that xof_many doesn't write more blocks than requestedJack O'Connor
2024-08-15mark blake3_xof_many_avx512 Unix-only in Rust and CJack O'Connor
2024-08-15test_fuzz_xofJack O'Connor
2024-08-15integrate xof_many with the Rust implementation and with Rust and C testsJack O'Connor
2024-07-17Manually implement `Zeroize`Gard Kylling
Removes dependence on proc-macros when enabling the zeroize feature.
2024-07-14Revert "serialize Hash with serde_bytes"Jack O'Connor
This mostly reverts commits 8416b1658c2690dc6351bdc7e0975b0d5f1a5282 and dd0afd640ad97b5ebcf887107162009a23ffdca0. Changing the serialization of Hash can only be backwards-compatible in self-describing formats like CBOR. In non-self-describing formats like bincode, the deserializer has to know in advance which serialization format was used. Fixes https://github.com/BLAKE3-team/BLAKE3/issues/414. Reopens https://github.com/BLAKE3-team/BLAKE3/issues/412.
2024-07-10update CBOR tests per @BurningEnlightenment's suggestionsJack O'Connor
https://github.com/BLAKE3-team/BLAKE3/issues/412#issuecomment-2220970998
2024-07-09serialize Hash with serde_bytesJack O'Connor
Closes #412.
2024-07-03chore: fix some commentswangcundashang
Signed-off-by: wangcundashang <[email protected]>
2024-07-03Switch to rayon-core for faster buildsilvanshade
2024-03-10test_miri_smoketestJack O'Connor
2024-03-09avoid using NamedTempFile under MiriJack O'Connor
2024-03-09avoid using constant_time_eq under MiriJack O'Connor
2024-03-09Support running inside miriRyo Onodera
2023-10-02allow(unreachable_code) in all the *_detected functionsJack O'Connor
Previously we only disabled these warnings for SSE2, which is assumed enabled on x86-64, but it looks like new nightly compilers are also assuming SSE4.1 on macOS. Disabling these warnings across all the detection functions accounts for that, and it also gets rid of some warnings that you'd see if you used RUSTFLAGS='-C target-cpu=native'.
2023-09-19add a test for the new serde featureJack O'Connor
2023-09-19Add serde support for Hash behind optional featureRalph Minderhoud
Added a new cargo feature `serde` that when enabled will derive `serde::Serialize` and `serde::Deserialize` for the `blake3::Hash` struct.
2023-09-19minor cleanup in Hasher docsJack O'Connor
2023-09-16make update_reader/mmap/mmap_rayon return selfJack O'Connor
This makes them consistent with how the existing update() and update_rayon() methods work, with the difference being that it's it's io::Result<&mut Self> instead of just &mut Self.
2023-09-16replace the new file module with inherent methods on HasherJack O'Connor
New methods: - update_reader - update_mmap - update_mmap_rayon These are more discoverable, more convenient, and safer. There are two problems I want to avoid by taking a `Path` instead of a `File`. First, exposing `Mmap` objects to the caller is fundamentally unsafe, and making `maybe_mmap_file` private avoids that issue. Second, taking a `File` raises questions about whether memory mapped reads should behave like regular file reads. (Should they respect the current seek position? Should they update the seek position?) Taking a `Path` from the caller and opening the `File` internally avoids these questions.
2023-09-16move file operations from b3sum to blake3Banyc
2023-09-16document the `zeroize` Cargo featureJack O'Connor
As part of this change, I don't think we need the `zeroize_crate` workaround anymore if we use the relateively new `dep:` syntax in Cargo.toml.
2023-07-16Add tests for ZeroizeElichai Turkel
2023-07-16Implement Zeroize on exported typesElichai Turkel
2023-06-27Fix typo exendable -> extendable1f604
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