go x/crypto: 添加BLAKE3支持

btqmn9zl  于 4个月前  发布在  Go
关注(0)|答案(8)|浏览(71)

你正在使用的Go版本是什么( go version )?

$ go version
go version go1.13.5 linux/amd64

这个问题在最新版本中是否重现?

是的

你正在使用什么操作系统和处理器架构( go env )?

go env 输出

$ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/sh7dm/.cache/go-build"
GOENV="/home/sh7dm/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/sh7dm/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build981542473=/tmp/go-build -gno-record-gcc-switches"

你做了什么?

我找到了一个名为BLAKE3的新加密哈希函数:
https://github.com/BLAKE3-team/BLAKE3
它还有Go实现:
https://github.com/lukechampine/blake3

你期望看到什么?

Go中的BLAKE3支持

你看到了什么?

Go中没有BLAKE3支持

stszievb

stszievb2#

你好,
Go中没有BLAKE3支持。但是这里有BLAKE3的支持:https://github.com/lukechampine/blake3 。你可以使用go get下载库并将其用于你的项目中。
我可以把https://github.com/lukechampine/blake3集成到x/crypto中。我不认为你可以做到这一点,除非代码作者签署了CLA并同意重新许可代码(它是MIT许可证,我不知道它是否与Go的BSD许可证兼容)。无论如何,这并不像“将代码复制到lukechampine/blake3中,然后粘贴到x/crypto中”那么简单。
你所要求的是在一个(半)官方支持的BLAKE3实现中使用x/crypto。这是一个合理的请求,但将来需要有人去做这项工作并维护代码。这并不像在x/crypto中放入另一个实现并留在那里那么简单。

fzwojiic

fzwojiic3#

当然,所有这些都应该被仓库的所有者允许,但我们可以从x/crypto导入和导出模块。

cnh2zyt3

cnh2zyt34#

我很高兴将我的包转移到x/crypto。它确实需要一个汇编实现,也许被谷歌"祝福"会激励有人贡献一个。然而,BLAKE3非常新——据我所知,还没有人发布过适当的密码分析或攻击。所以我们可能想等待更多的审查再添加它。

7fyelxc5

7fyelxc55#

哦,你好!我现在投票支持添加它,但当然这是关于Go开发者的决定。我很高兴你也对改进标准库感兴趣!

kuuvgm7e

kuuvgm7e6#

https://github.com/zeebo/blake3 最近以CC0发布,并优化了AVX2和SSE4.1的实现。

8dtrkrch

8dtrkrch7#

距离上次讨论已经大约一年了。大家还有什么想法吗?

xfyts7mz

xfyts7mz8#

我之前评论的更新:
它确实需要一个汇编实现,也许被谷歌"祝福"会激励有人贡献一个。
我后来自己为AVX2和AVX-512添加了(由avo生成的)汇编代码,所以性能至少应该与zeebo/blake3和官方Rust实现具有竞争力(我还没有在一台合适的桌面机器上对其进行基准测试)。

相关问题