Filippo Valsorda
750a45fe5e
sha3: add MarshalBinary, AppendBinary, and UnmarshalBinary
...
Fixes golang/go#24617
Change-Id: I1d9d529950aa8a5953435e8d3412cda44b075d55
Reviewed-on: https://go-review.googlesource.com/c/crypto/+/616635
Reviewed-by: Roland Shoemaker <roland@golang.org >
Auto-Submit: Filippo Valsorda <filippo@golang.org >
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com >
Reviewed-by: Daniel McCarney <daniel@binaryparadox.net >
Reviewed-by: Michael Pratt <mpratt@google.com >
2024-10-22 19:51:02 +00:00
Filippo Valsorda
a6a393ffd6
all: bump go.mod version and drop compatibility shims
...
Also, remove the legacy import annotations.
Fixes golang/go#68147
Change-Id: Ibfcc9322f27224c0ba92ea42cd56912a7d8783fd
Reviewed-on: https://go-review.googlesource.com/c/crypto/+/594256
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com >
Auto-Submit: Filippo Valsorda <filippo@golang.org >
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com >
Reviewed-by: Roland Shoemaker <roland@golang.org >
2024-06-26 15:12:35 +00:00
Mauri de Souza Meneguzzo
67b13616a5
sha3: reenable s390x assembly
...
Fixes golang/go#64897
Change-Id: I0c8c52d73a7d2df0f44fee36d407a87213f59bff
Reviewed-on: https://go-review.googlesource.com/c/crypto/+/554435
TryBot-Result: Gopher Robot <gobot@golang.org >
Reviewed-by: Cherry Mui <cherryyz@google.com >
Reviewed-by: Filippo Valsorda <filippo@golang.org >
Reviewed-by: Roland Shoemaker <roland@golang.org >
Auto-Submit: Filippo Valsorda <filippo@golang.org >
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com >
2024-05-07 22:33:54 +00:00
Filippo Valsorda
59b5a86796
sha3: disable s390x assembly
...
It was integrated in such a way that it made devirtualization
impossible, leading to allocations on every platform.
It can be reintroduced according to AssemblyPolicy and TargetSpecific.
Updates #64897
Change-Id: I3a4edc91185c2928b2c9b80655a2bc8daa6b44e3
Reviewed-on: https://go-review.googlesource.com/c/crypto/+/544816
Reviewed-by: Roland Shoemaker <roland@golang.org >
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com >
Reviewed-by: Mauri de Souza Meneguzzo <mauri870@gmail.com >
Auto-Submit: Filippo Valsorda <filippo@golang.org >
Reviewed-by: Cherry Mui <cherryyz@google.com >
2024-05-07 22:03:33 +00:00
Péter Szilágyi
ff983b9c42
sha3: add support for Keccak-512
...
Keccak uses a different domain separation byte as the NIST-
standardized SHA-3 hashing function. A previous commit to
this package added support for Keccak-256, but did not do
so for Keccak-512. The reasoning was to support use cases
like Ethereum, however Ethereum also uses Keccak-512 for
the Ethash PoW, so this second method is also needed.
Prev CL: https://go-review.googlesource.com/c/crypto/+/106462
Fixes golang/go#29533
Change-Id: I9d92b1f121657f631c157e5e309771db1cd91c82
Reviewed-on: https://go-review.googlesource.com/c/125795
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org >
2019-01-03 21:31:33 +00:00
Leon Klingele
4ec37c66ab
sha3: add NewLegacyKeccak256
...
Keccak uses a different domain separation byte as the NIST-
standardized SHA-3 hashing function.
Fixes golang/go#19709
Change-Id: I1b45afce9b7719241b24bbdc9b67718d73b457d3
GitHub-Last-Rev: 4f2a701c5ff0c6ee36c931794ea76bed9a98835e
GitHub-Pull-Request: golang/crypto#41
Reviewed-on: https://go-review.googlesource.com/106462
Run-TryBot: Filippo Valsorda <filippo@golang.org >
TryBot-Result: Gobot Gobot <gobot@golang.org >
Reviewed-by: Filippo Valsorda <filippo@golang.org >
2018-05-05 02:55:34 +00:00
Michael Munday
dccd99e89d
sha3: add optimized implementation for s390x
...
Message-security-assist extension 6 adds support for the SHA-3 and
SHAKE algorithms. This CL allows the sha3 package to use these new
features.
name old speed new speed delta
PermutationFunction 328MB/s ± 0% 385MB/s ± 0% +17.28% (p=0.000 n=9+10)
Sha3_512_MTU 108MB/s ± 0% 2011MB/s ± 0% +1768.56% (p=0.000 n=10+10)
Sha3_384_MTU 149MB/s ± 0% 2437MB/s ± 0% +1534.22% (p=0.000 n=10+10)
Sha3_256_MTU 185MB/s ± 0% 2739MB/s ± 0% +1379.93% (p=0.000 n=10+10)
Sha3_224_MTU 195MB/s ± 0% 2782MB/s ± 0% +1326.05% (p=0.000 n=10+10)
Shake128_MTU 225MB/s ± 0% 4436MB/s ± 0% +1873.18% (p=0.000 n=9+9)
Shake256_MTU 209MB/s ± 0% 4521MB/s ± 0% +2059.86% (p=0.000 n=8+10)
Shake256_16x 188MB/s ± 0% 1366MB/s ± 0% +624.70% (p=0.000 n=9+10)
Shake256_1MiB 212MB/s ± 0% 5861MB/s ± 0% +2666.67% (p=0.000 n=10+10)
Sha3_512_1MiB 116MB/s ± 0% 4328MB/s ± 0% +3628.33% (p=0.000 n=10+10)
Change-Id: I8ebc503ca2b9eda2ebb361dffdbfe79dd97e1975
Reviewed-on: https://go-review.googlesource.com/59391
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org >
2018-04-26 18:01:11 +00:00
Adam Langley
82442e0e95
go.crypto/sha3: use the go1.4 tag to register the hash functions.
...
Prior to Go 1.4, crypto didn't have the consts defined for SHA-3.
LGTM=bradfitz
R=bradfitz
CC=golang-codereviews
https://golang.org/cl/133540043
2014-09-03 16:08:25 -07:00
David Leon Gil
1b32d8b50a
go.crypto/sha3: update to sync with draft FIPS-202
...
1. API:
This exposes a minimal API: the SHA-3 functions implement hash.Hash. The
SHAKE functions implement a new "ShakeHash" interface that implements
io.Reader, io.Writer, and Reset().
(The previous Barrier() function has been removed.)
(Alternative proposal: Don't implement io.Reader, but instead provide a
"Digest(d []byte) error" function that performs a hash.Hash style copy.
Somewhat more minimal, but very easy to use incorrectly.)
2. Tests
Added the complete set of ShortMsgKATs from
https://github.com/gvanas/KeccakCodePackage
3. Correctness
In sync with draft FIPS-202.
4. Documentation
A summary of the security properties of the SHA-3 and SHAKE functions is
provided in doc.go; some concrete recommendations as well.
Fixes 8563.
R=golang-codereviews, agl
CC=golang-codereviews
https://golang.org/cl/130950043
2014-09-03 12:04:00 -07:00