aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2026-01-08update to the 2024 editionJack O'Connor
While we're taking this MSRV bump, we can also update `constant_time_eq`, which uses the 2024 edition in its most recent versions.
2025-11-24Add `Hash::as_slice()` for convenient serialization to bytesJosh Triplett
`Hash::as_bytes()` returns the hash as an array of bytes. However, sometimes it's useful to have the hash as a slice of bytes instead, such as for serialization via an API that takes `&[u8]`. While `.as_bytes().as_slice()` works for this, it'd be more convenient to have a direct `.as_slice()` on hashes.
2025-10-22chore: make some documents clearer (#528)wyrapeseed
2025-09-29some more unsafe blocks, in wasm32_simd.rsJack O'Connor
2025-09-29one more unsafe block, in ffi_neon.rsJack O'Connor
2025-09-29add explicit unsafe blocks to more unsafe functionsJack O'Connor
These blocks silence warnings that we'll see when we eventually turn on the 2024 edition. I used Claude to make these changes.
2025-08-12Fix prefetch pointer addition that resulted in UBNazar Mokrynskyi
2025-06-20Update wasm32_simd.rskilavvy
2025-06-16Update wasm32_simd.rsleopardracer
2025-06-04remove a commaJack O'Connor
2025-04-24flesh out hash_derive_key_context and new_from_context_key docsJack O'Connor
2025-04-24update docs for the "std" featureJack O'Connor
Previously "std" enabled runtime CPU feature detection on x86, but as of https://github.com/BLAKE3-team/BLAKE3/pull/469 that's always on.
2025-04-24Check x86 features even in `no_std`Nazar Mokrynskyi
2025-04-16clarify a commentJack O'Connor
2025-03-30add the `hazmat` module and deprecate the undocumented `guts` moduleJack O'Connor
https://github.com/BLAKE3-team/BLAKE3/pull/458
2025-03-18mention the "wasm32_simd" Cargo feature in the crate docsJack O'Connor
2025-03-16Make some function safeIvan Boldyrev
Certain functions' unsafety comes from v128 loads and store. If argument types guarantee that these loads and stores are safe, function is declared safe, and internal unsafe blocks are commented.
2025-03-16Fix platform constantsIvan Boldyrev
2025-03-16Fix commentIvan Boldyrev
2025-03-16Remove unsafe from functions that do not need itIvan Boldyrev
Wasm SIMD API has certain function safe.
2025-03-16Misc textual improvementsIvan Boldyrev
2025-03-16Wasm32 SIMD implementationIvan Boldyrev
This code is based on rust_sse2.rs of the same distribution, and is subject to further improvements. Some comments are left intact even if their applicability is questioned. SIMD implementation is gated by `wasm32-simd` feature, portable version is used otherwise. Performance measurements with a primitive benchmark with ~16Kb of data: | M1 native | 11,610 ns | | M1 WASM SIMD | 13,355 ns | | M1 WASM | 22,037 ns | | x64 native | 6,713 ns | | x64 WASM SIMD | 11,985 ns | | x64 WASM | 25,978 ns | wasmtime v12.0.1 was used on both platforms. Closes #187.
2025-02-20revert `unsafe extern "C"` blocksJack O'Connor
This will be necessary when we eventually move to the 2024 edition, but for now it's an unnecessary MSRV bump.
2025-02-20add `unsafe` annotations needed for the 2024 editionJack O'Connor
2025-02-17Add `Hash::from_slice` to handle conversion from `&[u8]` bytesJosh Triplett
This is a convenience method, to avoid having to first call `<[u8; 32]>::try_from(slice)?`.
2025-02-06remove checks that memmap2 does internallyJack O'Connor
2025-02-03upgrade rand to v0.9Jack O'Connor
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