Open dsseng opened 4 years ago
I can integrate https://github.com/lukechampine/blake3 in x/crypto
Hi,
No BLAKE3 support in Go
There is support for BLAKE3 in Go. It's here: https://github.com/lukechampine/blake3 . You can download the library using go get
and use it in your projects.
I can integrate https://github.com/lukechampine/blake3 in x/crypto
I don't think you can, unless the code author(s) sign the CLA and agree to re-license the code (it's MIT, I don't know if it's compatible with Go's BSD licence). In any case it's not as simple as "copy the code in lukechampine/blake3, and paste it in x/crypto".
What you are asking is for a (semi)-officially supported BLAKE3 implementation in x/crypto. This is a fair request, but someone will have to do the work and maintain the code in the future. Is not as simple as dumping another implementation in x/crypto and leaving it there.
Sure, all of this should be allowed by owner of repo, but we can just import and export the module from x/crypto
I'd be happy to transfer my package over to x/crypto
. It could really use an asm implementation, and perhaps being "blessed" by Google will motivate someone to contribute one. However, BLAKE3 is very new -- AFAIK, no one has published a proper cryptanalysis or an attack yet. So we probably want to wait for more scrutiny before adding it.
Oh, hello! I vote for adding it now, but of course it's for the decision on Go developers. I'm really happy that you're interested in improving standard libs too!
https://github.com/zeebo/blake3 was published recently under CC0, with optimized AVX2 and SSE4.1 implementations.
It's been about a year since this was last discussed. Have there been any more thoughts?
Well, I have an update on my previous comment:
It could really use an asm implementation, and perhaps being "blessed" by Google will motivate someone to contribute one.
I've since added (avo-generated) asm for AVX2 and AVX-512 myself, so performance should be at least competitive with zeebo/blake3 and the official Rust implementation (I haven't benchmarked it on a proper desktop machine yet).
any update?
What version of Go are you using (
go version
)?Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (
go env
)?go env
OutputWhat did you do?
I found a new cryptographical hash function named BLAKE3: https://github.com/BLAKE3-team/BLAKE3 It also has Go implementation: https://github.com/lukechampine/blake3
What did you expect to see?
BLAKE3 support in Go
What did you see instead?
No BLAKE3 support in Go