Live data from Hacker News

BLAKE3 1.0

github.com

11–20 of 126 posts

Re: BLAKE3 1.0

#11
post #8

Hopefully, like BLAKE2 it makes it into OpenSSL. One thing I was wondering about, OpenSSL 1.3 dropped support for SSL compression. Would that mean the compression function in BLAKE2 and future BLAKE3 integration couldn't be used or is this a different layer? https://en.wikipedia.org/wiki/BLAKE_(hash_function)

The compression function in a hash function has nothing to do with the general data compression that TLS got rid of; it's a component of the hash that takes n bits and outputs less than n bits in an as unstructured manner as possible.

Re: BLAKE3 1.0

#12
> Secure, unlike MD5 and SHA-1. And secure against length extension, unlike SHA-2.

Aren't some variants of SHA-2 secure against length extension (like SHA512/256)?

Re: BLAKE3 1.0

#14

Could someone explain how these versions in hash algorithms work please? As I understand it version 0.3.7 from last year would produce the same hashes as version 1.0, so is the algorithm itself finished long ago and it's just the tooling that got updated over time?

Platform support is one aspect, another is re-implementing the algorithm in constant time to prevent side channel leaks. Also perhaps the code was edited to be stable under different fuzzers. Note: this is all speculation and generalization; I haven't looked at BLAKE3 commits at all.

Re: BLAKE3 1.0

#15
post #12

> Secure, unlike MD5 and SHA-1. And secure against length extension, unlike SHA-2. Aren't some variants of SHA-2 secure against length extension (like SHA512/256)?

Correct, the truncated versions of SHA2 are secure against length extension.

Re: BLAKE3 1.0

#17

Can someone who knows Rust tell me what "<&[u8; CHUNK_LEN]" is exactly?

Reference (“&”) to a slice (“[]”) of CHUNK_LEN bytes (“u8”, unsigned 8-bit integers).

Re: BLAKE3 1.0

#19
post #17

Can someone who knows Rust tell me what "<&[u8; CHUNK_LEN]" is exactly?

Reference (“&”) to a slice (“[]”) of CHUNK_LEN bytes (“u8”, unsigned 8-bit integers).

Thank you! What is "
  let mut chunks = ArrayVec::::new();
Edit:

I probably should not comment to everyone one-by-one, so thank you all for the answers!

Post reply on HN