aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-01-04WIP switch to new permutationpermutationJack O'Connor
2020-01-04turn on AVX-512 in the test vectorsJack O'Connor
2020-01-04comment punctuation nitJack O'Connor
2020-01-04merge fixJP Aumasson
2020-01-04readme tweaksJP Aumasson
2019-12-29add the guts module to share code with BaoJack O'Connor
2019-12-28make derive_key take a key of any lengthJack O'Connor
The previous version of this API called for a key of exactly 256 bits. That's good for optimal performance, but it would mean losing the use-with-other-algorithms property for applications whose input keys are a different size. There's no way for an abstraction over the previous version to provide reliable domain separation for the "extract" step.
2019-12-24switch back to counting trailing 0 bitsJack O'Connor
These things are totally equivalent, and I keep going back and forth, but now I think this is slightly clearer.
2019-12-24use self.flags instead of self.chunk_state.flags in the reference implJack O'Connor
This is clearer, and because of padding requirements it doesn't change the size of the Hasher struct. (We have a test for this.)
2019-12-24switch from counting trailing 0 bits to counting trailing 1 bitsJack O'Connor
2019-12-23get rid of unnecessary variables in push_chunk_chaining_valueJack O'Connor
2019-12-23add a parent_cv helper function to the reference implJack O'Connor
Also use fewer array references (the compiler doesn't care) be more explicit with a `new_cv` mutable variable. This clarifies push_chunk_chaining_value just a bit. Since that's the trickiest function in the entire thing, it's good to clarify it. (It also gets excerpted directly into the spec.)
2019-12-23switch to simplified rotationsJack O'Connor
This is a performance improvement on modern x86 chips (Skylake and later), and the LLVM optimizer can convert these to AVX-512 rotations when those are enabled.
2019-12-22rework push_chunk_chaining_value in terms of trailing 0'sJack O'Connor
2019-12-15add a readme link to b3sumJack O'Connor
2019-12-15add a LICENSE file including CC0 and Apache 2.0Jack O'Connor
2019-12-14docs tweaksJack O'Connor
2019-12-14a few more comments in reference_impl.rsJack O'Connor
2019-12-13show the default value for b3sum --lengthJack O'Connor
2019-12-13make the b3sum --help text wording more consistentJack O'Connor
2019-12-13make b3sum --keyed and --derive-key read the key from stdinJack O'Connor
Putting secret keys on the command line is bad practice, because command line args are usually globally visible within the OS. Even if these flags are mostly intended for testing and experimentation, we might as well do the right thing. Plus this saves people the trouble of hex encoding their keys.
2019-12-13fix another warning in b3sum --no-default-featuresJack O'Connor
2019-12-13silence another warning in the --no-default-features testsJack O'Connor
2019-12-13test release mode in CIJack O'Connor
As part of this, get rid of the BLAKE3_FUZZ_ITERATIONS variable. I wasn't using it anywhere, and it was leading to some compiler warnings in --no-default-features mode.
2019-12-13fix the doc tests buildJack O'Connor
2019-12-13add to b3sum/README.mdJack O'Connor
2019-12-13add --no-names to b3sumJack O'Connor
Printing all names by default is more consistent with Coreutils.
2019-12-13expand the docsJack O'Connor
2019-12-13rename 1_chunk benchmarks to 1_kibJack O'Connor
2019-12-13add 2 KiB benchmarksJack O'Connor
2019-12-12update MAX_DEPTHJack O'Connor
2019-12-12fix benchmarks buildJack O'Connor
2019-12-12rename "offset" to "counter" and always increment it by 1Jack O'Connor
This is simpler than sometimes incrementing by CHUNK_LEN and other times incrementing by BLOCK_LEN.
2019-12-12reduce the CHUNK_LEN from 2048 bytes to 1024 bytesJack O'Connor
Smaller chunk sizes are a big benefit for parallelism at shorter input lengths, and recent benchmarks show that this reduction has a relative small cost in terms of peak throughput. It's also a nice round number.
2019-12-12add some more description in README.mdJack O'Connor
2019-12-12make the "c_avx512" feature a no-op on non-x86Jack O'Connor
This lets us enable it by default in b3sum.
2019-12-12fix the test_vectors buildJack O'Connor
2019-12-12initial version of b3sumJack O'Connor
2019-12-12struct OutputReaderJack O'Connor
2019-12-11fix syntax errors in ci.ymlJack O'Connor
2019-12-11run the test vectors on cross tests (ARM, MIPS) on CIJack O'Connor
2019-12-11account for Windows newlines when checking for test vector changesJack O'Connor
2019-12-11fix bench tests running in the wrong directoryJack O'Connor
2019-12-11delete an unused importJack O'Connor
2019-12-11run test vectors and bench tests in the regular CI test matrixJack O'Connor
2019-12-11switch to representing CVs as words for the compression functionJack O'Connor
The portable implementation was getting slowed down by converting back and forth between words and bytes. I made the corresponding change on the C side first (https://github.com/veorq/BLAKE3-c/commit/12a37be8b50922a358c016ba07f46816a3da4a31), and as part of this commit I'm re-vendoring the C code. I'm also exposing a small FFI interface to C so that blake3_neon.c can link against portable.rs rather than blake3_portable.c, see c_neon.rs.
2019-12-11test_checked_in_vectors_up_to_dateJack O'Connor
2019-12-11test against test_vectors.json in CIJack O'Connor
2019-12-11check in test_vectors.jsonJack O'Connor
This file is generated with: cd ./test_vectors cargo run --bin generate > ./test_vectors.json
2019-12-11add the test_vectors sub-crateJack O'Connor