1
0
Fork 0
mirror of https://github.com/BLAKE3-team/BLAKE3 synced 2024-05-04 23:26:15 +02:00
Commit Graph

603 Commits

Author SHA1 Message Date
Jack O'Connor b228f46e03 add *_rayon methods 2021-03-14 00:26:18 -05:00
Jack O'Connor ea72822620 re-privatize the Join trait 2021-03-14 00:08:21 -05:00
Jack O'Connor 71d67e0810 make derive_key() return an array 2021-02-28 18:10:59 -05:00
Jack O'Connor 134bb24686 impl PartialEq<[u8]> for Hash 2021-02-28 17:50:06 -05:00
Samuel Neves 0359065018 Another movd/movq inconsistency.
- 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-26 00:17:12 +00:00
Paul Grandperrin 0872f98c15 Cargo.toml: upgrade all non API breaking dependencies 2021-02-25 11:16:27 -05:00
Jack O'Connor 1074f02d57 clarify C build instructions a bit 2021-02-18 15:34:40 -05:00
Jack O'Connor e2ae3bdd94 delete an unused constant
Fixes https://github.com/BLAKE3-team/BLAKE3/issues/152.
2021-02-15 14:24:37 -05:00
Jack O'Connor 8969cdd2f8 clang-format a few files
Some of the SIMD code is still unformatted, so for now I'm only touching
the files that just have a couple small changes.
2021-02-15 14:24:37 -05:00
Samuel Neves 8c350836b8 revert unwanted changes 2021-02-06 22:25:40 +00:00
Samuel Neves 953654e25e
More movd/movq discrepancies. Fixes #149. (#150)
This should be irrelevant, but some toolchains will not accept movd with 64-bit arguments.
2021-02-06 20:02:53 +00:00
Jack O'Connor aea29ace2d replace the 'Differences' section with 'Multithreading' 2021-02-05 17:25:45 -05:00
Jack O'Connor 0c26ed52a8 rename ParseError to HexError and update docs 2021-02-04 15:43:44 -05:00
Jack O'Connor cc21dd0132 implement Error for ParseError, make it opaque, and support from_hex(&[u8]) 2021-02-04 15:36:29 -05:00
Jack O'Connor 9e08f5c38d merge "Adding from_hex and implementing FromStr for Hash"
https://github.com/BLAKE3-team/BLAKE3/pull/24
2021-02-03 11:53:56 -05:00
Samuel Neves 3a8204f5f3
Replace movq by movd on MSVC assembly targets (#143) 2021-01-13 11:56:42 +00:00
Jack O'Connor aa23d15fa0 link to JNI bindings also 2020-12-06 12:08:37 -05:00
Alexandre Mutel 6532271a11 Add a link to the .NET version 2020-12-06 12:02:09 -05:00
Jack O'Connor 9493228b13 clarify the derive_key example to discourage passwords 2020-12-02 12:10:19 -05:00
Samuel Neves fdce1eb783
Merge pull request #131 from divinity76/blake3-version-function
add blake3_version(void) / BLAKE3_VERSION_STRING
2020-10-30 12:34:41 +00:00
Hans Henrik Bergan a2f9515785 add blake3_version(void) / BLAKE3_VERSION_STRING
related discussion here: https://github.com/BLAKE3-team/BLAKE3/issues/130
2020-10-29 23:18:34 +01:00
Jack O'Connor 09546a677d include example.c 2020-10-20 12:51:30 -04:00
Jack O'Connor dae5dc5ef3
Merge pull request #128 from divinity76/features-unused-fix
fix disabled-optimization -Wall -Werror
2020-10-20 12:23:35 -04:00
Jack O'Connor b928701893 readme tweaks 2020-10-20 12:05:27 -04:00
Hans Henrik Bergan c7c4bfafab fix disabled-optimization -Wall -Werror
patch by Samuel Neves ( https://github.com/sneves )

if you tried to compile blake3_dispatch.c with
-Wall -Werror -DBLAKE3_NO_SSE2 -DBLAKE3_NO_SSE41 -DBLAKE3_NO_AVX2 -DBLAKE3_NO_AVX512

something like this would happen:

hans@xDevAd:~/projects/BLAKE3/c$ gcc -O0 -o example example.c blake3.c blake3_dispatch.c blake3_portable.c     blake3_sse2_x86-64_unix.S blake3_sse41_x86-64_unix.S blake3_avx2_x86-64_unix.S     blake3_avx512_x86-64_unix.S -DBLAKE3_NO_SSE2 -DBLAKE3_NO_SSE41 -DBLAKE3_NO_AVX2 -DBLAKE3_NO_AVX512 -Wall -Wextra -Wpedantic -Werror
blake3_dispatch.c: In function ‘blake3_compress_in_place’:
blake3_dispatch.c:139:26: error: unused variable ‘features’ [-Werror=unused-variable]
  139 |   const enum cpu_feature features = get_cpu_features();
      |                          ^~~~~~~~
blake3_dispatch.c: In function ‘blake3_compress_xof’:
blake3_dispatch.c:167:26: error: unused variable ‘features’ [-Werror=unused-variable]
  167 |   const enum cpu_feature features = get_cpu_features();
      |                          ^~~~~~~~
blake3_dispatch.c: In function ‘blake3_hash_many’:
blake3_dispatch.c:195:26: error: unused variable ‘features’ [-Werror=unused-variable]
  195 |   const enum cpu_feature features = get_cpu_features();
      |                          ^~~~~~~~
blake3_dispatch.c: In function ‘blake3_simd_degree’:
blake3_dispatch.c:244:26: error: unused variable ‘features’ [-Werror=unused-variable]
  244 |   const enum cpu_feature features = get_cpu_features();
      |                          ^~~~~~~~
cc1: all warnings being treated as errors
2020-10-20 05:49:23 +02:00
Jack O'Connor 5361572c4a make account names into links 2020-10-16 23:23:15 -04:00
Jack O'Connor 1e98c47c7f link to the Cryptography FM interview 2020-10-16 23:21:33 -04:00
Jack O'Connor 35aa4259bd version 0.3.7
Changes since 0.3.6:
- BUGFIX: The C implementation was incorrect on big endian systems for
  inputs longer than 1024 bytes. This bug affected all previous versions
  of the C implementation. Little endian platforms like x86 were
  unaffected. The Rust implementation was also unaffected.
  @jakub-zwolakowski and @pascal-cuoq from TrustInSoft reported this
  bug: https://github.com/BLAKE3-team/BLAKE3/pull/118
- BUGFIX: The C build on x86-64 was producing binaries with an
  executable stack. @tristanheaven reported this bug:
  https://github.com/BLAKE3-team/BLAKE3/issues/109
- @mkrupcale added optimized implementations for SSE2. This improves
  performance on older x86 processors that don't support SSE4.1.
- The C implementation now exposes the
  `blake3_hasher_init_derive_key_raw` function, to make it easier to
  implement language bindings. Added by @k0001.
2020-10-01 10:00:06 -04:00
Jack O'Connor 3d212291b9 add cross_test.sh for the C bindings
This will let us add big endian testing to CI for our C code. (We were
already doing it for our Rust code.)

This is adapted from test_vectors/cross_test.sh. It works around the
limitation that the `cross` tool can't reach parent directories. It's an
unfortunate hack, but at least it's only for testing. It might've been
less hacky to use symlinks for this somehow, but I worry that would
break things on Windows, and I don't want to have to add workarounds for
my workarounds.
2020-09-29 16:48:18 -04:00
Jack O'Connor 0b13637ae3 fix a couple of big-endianness mistakes in blake3.c
Kudos to @pascal-cuoq and @jakub-zwolakowski from TrustInSoft for
catching these bugs.

Original report: https://github.com/BLAKE3-team/BLAKE3/pull/118
2020-09-29 16:09:28 -04:00
Jack O'Connor 3817999f17 fix the short_test_cases loop in the C bindings tests 2020-09-29 11:06:32 -04:00
Jack O'Connor 5bdfd07666 update the blake3_c_rust_bindings test cases also 2020-09-29 10:59:56 -04:00
Jack O'Connor ae3e8e6b3a add more test cases at shorter input lengths 2020-09-29 10:51:49 -04:00
Jack O'Connor b54f8ff5ba tweak the readme description of the benchmark chart 2020-09-24 14:12:14 -04:00
Jack O'Connor d2a23f5330 add a docs.rs badge 2020-09-15 11:49:09 -04:00
Jack O'Connor e70bc965e3 use an absolute url for https://github.com/BLAKE3-team/BLAKE3/blob/master/b3sum/what_does_check_do.md 2020-09-14 11:17:39 -04:00
Jack O'Connor 6785d7bc0c remove an outdated section of the b3sum readme 2020-09-14 11:05:15 -04:00
Jack O'Connor a01fd16011 add some horizontal rules to the C readme 2020-09-10 17:38:35 -04:00
Jack O'Connor ac1da75bb9 add a test for blake3_hasher_init_derive_key_raw 2020-09-10 16:52:14 -04:00
Jack O'Connor 44fd9efbc2 C readme edits 2020-09-10 16:40:25 -04:00
Jack O'Connor 004b39a350 cargo fmt 2020-09-10 15:55:02 -04:00
Jack O'Connor 27b7f610e0
Merge pull request #114 from k0001/no-cstr
C: Add blake3_hasher_init_derive_key_len
2020-09-10 14:54:15 -05:00
Jack O'Connor cc04130eaa cover the no_sse2 flags in CI testing 2020-09-02 12:23:49 -04:00
Jack O'Connor 38bf1cf3a0 s/multi-threading/multithreading/ 2020-09-01 09:52:36 -04:00
Jack O'Connor 9829abee72 mention @mkrupcale's SSE2 implementation in the readme 2020-09-01 09:47:24 -04:00
Renzo Carbonara b205e0efa1 C: rename blake3_hasher_init_derive_key_raw and documentation 2020-09-01 13:20:16 +03:00
Jack O'Connor 5b22bf57c8 add i586-unknown-linux-musl as a test target
Samuel noticed that rustc seems to assume (incorrectly?) that all i686
targets support SSE2, but it doesn't make that assumption for i586.
2020-08-31 18:25:38 -04:00
Jack O'Connor 3c1db55529 add the dynamic check for SSE2 support
It will be very rare that this actually executes, but we should include
it for completeness.
2020-08-31 18:25:38 -04:00
Jack O'Connor a79fec7e39 fix a build break on x86 targets without guaranteed SSE2 support
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-31 18:25:38 -04:00
Samuel Neves 8610ebda6a add sse2 tests and benchmarks 2020-08-31 19:12:01 +01:00