Skip to content

Commit 5c0a1eb

Browse files
committed
chore(deps): replace golang.org/x/crypto/sha3 with go-keccak, upgrade x/crypto
Replace all usage of golang.org/x/crypto/sha3.NewLegacyKeccak256() with github.com/filecoin-project/go-keccak, which vendors the assembly-optimised Keccak permutation from x/crypto@v0.43.0. Starting with x/crypto v0.44.0, the upstream package removed its amd64 assembly in favor of Go's standard library crypto/sha3, which does not provide an assembly fast path for legacy Keccak functions. With the keccak dependency decoupled, upgrade golang.org/x/crypto to v0.47.0. Ref: filecoin-project/go-f3#1055 Ref: #13443 Ref: ethereum/go-ethereum#33323
1 parent 6a08ac4 commit 5c0a1eb

10 files changed

Lines changed: 55 additions & 55 deletions

File tree

chain/types/ethtypes/eth_1559_transactions_test.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,15 @@ import (
77
"fmt"
88
"testing"
99

10-
"github.com/stretchr/testify/require"
11-
"golang.org/x/crypto/sha3"
12-
1310
"github.com/filecoin-project/go-address"
1411
gocrypto "github.com/filecoin-project/go-crypto"
12+
"github.com/filecoin-project/go-keccak"
1513
actorstypes "github.com/filecoin-project/go-state-types/actors"
1614
builtintypes "github.com/filecoin-project/go-state-types/builtin"
1715
"github.com/filecoin-project/go-state-types/builtin/v10/evm"
1816
init10 "github.com/filecoin-project/go-state-types/builtin/v10/init"
1917
crypto1 "github.com/filecoin-project/go-state-types/crypto"
18+
"github.com/stretchr/testify/require"
2019

2120
"github.com/filecoin-project/lotus/chain/actors"
2221
"github.com/filecoin-project/lotus/lib/sigs"
@@ -163,7 +162,7 @@ func TestEcRecover(t *testing.T) {
163162
sig = append(sig, v)
164163
require.Equal(t, 65, len(sig))
165164

166-
sha := sha3.NewLegacyKeccak256()
165+
sha := keccak.NewLegacyKeccak256()
167166
sha.Write(msg)
168167
h := sha.Sum(nil)
169168

chain/types/ethtypes/eth_transactions.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ import (
88
mathbig "math/big"
99

1010
cbg "github.com/whyrusleeping/cbor-gen"
11-
"golang.org/x/crypto/sha3"
1211

1312
"github.com/filecoin-project/go-address"
1413
gocrypto "github.com/filecoin-project/go-crypto"
14+
"github.com/filecoin-project/go-keccak"
1515
"github.com/filecoin-project/go-state-types/abi"
1616
"github.com/filecoin-project/go-state-types/big"
1717
builtintypes "github.com/filecoin-project/go-state-types/builtin"
@@ -561,7 +561,7 @@ func sender(tx EthTransaction) (address.Address, error) {
561561
return address.Undef, fmt.Errorf("failed to get rlp unsigned msg: %w", err)
562562
}
563563

564-
hasher := sha3.NewLegacyKeccak256()
564+
hasher := keccak.NewLegacyKeccak256()
565565
hasher.Write(msg)
566566
hash := hasher.Sum(nil)
567567

chain/types/ethtypes/eth_types.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ import (
1111
"strconv"
1212
"strings"
1313

14+
"github.com/filecoin-project/go-keccak"
1415
"github.com/ipfs/go-cid"
1516
"github.com/multiformats/go-multihash"
1617
mh "github.com/multiformats/go-multihash"
1718
"github.com/multiformats/go-varint"
18-
"golang.org/x/crypto/sha3"
1919
"golang.org/x/xerrors"
2020

2121
"github.com/filecoin-project/go-address"
@@ -425,7 +425,7 @@ func EthAddressFromPubKey(pubk []byte) ([]byte, error) {
425425
pubk = pubk[1:]
426426

427427
// Calculate the Ethereum address based on the keccak hash of the pubkey.
428-
hasher := sha3.NewLegacyKeccak256()
428+
hasher := keccak.NewLegacyKeccak256()
429429
hasher.Write(pubk)
430430
ethAddr := hasher.Sum(nil)[12:]
431431
return ethAddr, nil
@@ -643,7 +643,7 @@ func ParseEthHash(s string) (EthHash, error) {
643643
}
644644

645645
func EthHashFromTxBytes(b []byte) EthHash {
646-
hasher := sha3.NewLegacyKeccak256()
646+
hasher := keccak.NewLegacyKeccak256()
647647
hasher.Write(b)
648648
hash := hasher.Sum(nil)
649649

@@ -653,7 +653,7 @@ func EthHashFromTxBytes(b []byte) EthHash {
653653
}
654654

655655
func EthBloomSet(f EthBytes, data []byte) {
656-
hasher := sha3.NewLegacyKeccak256()
656+
hasher := keccak.NewLegacyKeccak256()
657657
hasher.Write(data)
658658
hash := hasher.Sum(nil)
659659

@@ -908,7 +908,7 @@ type EthSubscriptionResponse struct {
908908
}
909909

910910
func GetContractEthAddressFromCode(sender EthAddress, salt [32]byte, initcode []byte) (EthAddress, error) {
911-
hasher := sha3.NewLegacyKeccak256()
911+
hasher := keccak.NewLegacyKeccak256()
912912
hasher.Write(initcode)
913913
inithash := hasher.Sum(nil)
914914

go.mod

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ require (
4949
github.com/filecoin-project/go-fil-commcid v0.3.1
5050
github.com/filecoin-project/go-hamt-ipld/v3 v3.4.1
5151
github.com/filecoin-project/go-jsonrpc v0.9.0
52+
github.com/filecoin-project/go-keccak v0.1.0
5253
github.com/filecoin-project/go-padreader v0.0.1
5354
github.com/filecoin-project/go-paramfetch v0.0.4
5455
github.com/filecoin-project/go-state-types v0.18.0-dev // dependency-check-ignore: unknown
@@ -155,14 +156,14 @@ require (
155156
go.uber.org/fx v1.24.0
156157
go.uber.org/multierr v1.11.0
157158
go.uber.org/zap v1.27.0
158-
golang.org/x/crypto v0.45.0
159-
golang.org/x/mod v0.29.0
160-
golang.org/x/net v0.47.0 // indirect
161-
golang.org/x/sync v0.18.0
162-
golang.org/x/sys v0.38.0
163-
golang.org/x/term v0.37.0
159+
golang.org/x/crypto v0.47.0
160+
golang.org/x/mod v0.31.0
161+
golang.org/x/net v0.48.0 // indirect
162+
golang.org/x/sync v0.19.0
163+
golang.org/x/sys v0.40.0
164+
golang.org/x/term v0.39.0
164165
golang.org/x/time v0.14.0
165-
golang.org/x/tools v0.38.0
166+
golang.org/x/tools v0.40.0
166167
golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da
167168
gotest.tools v2.2.0+incompatible
168169
)
@@ -325,7 +326,7 @@ require (
325326
go.uber.org/mock v0.5.2 // indirect
326327
go4.org v0.0.0-20230225012048-214862532bf5 // indirect
327328
golang.org/x/exp v0.0.0-20251023183803-a4bb9ffd2546 // indirect
328-
golang.org/x/text v0.31.0 // indirect
329+
golang.org/x/text v0.33.0 // indirect
329330
gonum.org/v1/gonum v0.16.0 // indirect
330331
google.golang.org/genproto/googleapis/rpc v0.0.0-20250825161204-c5933d9347a5 // indirect
331332
google.golang.org/grpc v1.75.0 // indirect
@@ -359,5 +360,5 @@ require (
359360
github.com/zondax/golem v0.27.0 // indirect
360361
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
361362
go.yaml.in/yaml/v2 v2.4.3 // indirect
362-
golang.org/x/telemetry v0.0.0-20251008203120-078029d740a8 // indirect
363+
golang.org/x/telemetry v0.0.0-20251203150158-8fff8a5912fc // indirect
363364
)

go.sum

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,8 @@ github.com/filecoin-project/go-hamt-ipld/v3 v3.4.1 h1:wl+ZHruCcE9LvwU7blpwWn35XO
266266
github.com/filecoin-project/go-hamt-ipld/v3 v3.4.1/go.mod h1:AqjryNfkxffpnqsa5mwnJHlazhVqF6W2nilu+VYKIq8=
267267
github.com/filecoin-project/go-jsonrpc v0.9.0 h1:G47qEF52w7GholpI21vPSTVBFvsrip6geIoqNiqyZtQ=
268268
github.com/filecoin-project/go-jsonrpc v0.9.0/go.mod h1:OG7kVBVh/AbDFHIwx7Kw0l9ARmKOS6gGOr0LbdBpbLc=
269+
github.com/filecoin-project/go-keccak v0.1.0 h1:SWoaAVbqKgB9iXBceIjmgMskr8DlJTAJ8vWK/bQUXRg=
270+
github.com/filecoin-project/go-keccak v0.1.0/go.mod h1:X3vAWrEOJSO5GnJfzRFZzv8QC/2IacwECuIj11cnE4Y=
269271
github.com/filecoin-project/go-padreader v0.0.1 h1:8h2tVy5HpoNbr2gBRr+WD6zV6VD6XHig+ynSGJg8ZOs=
270272
github.com/filecoin-project/go-padreader v0.0.1/go.mod h1:VYVPJqwpsfmtoHnAmPx6MUwmrK6HIcDqZJiuZhtmfLQ=
271273
github.com/filecoin-project/go-paramfetch v0.0.4 h1:H+Me8EL8T5+79z/KHYQQcT8NVOzYVqXIi7nhb48tdm8=
@@ -1368,8 +1370,8 @@ golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE
13681370
golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio=
13691371
golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw=
13701372
golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg=
1371-
golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q=
1372-
golang.org/x/crypto v0.45.0/go.mod h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4=
1373+
golang.org/x/crypto v0.47.0 h1:V6e3FRj+n4dbpw86FJ8Fv7XVOql7TEwpHapKoMJ/GO8=
1374+
golang.org/x/crypto v0.47.0/go.mod h1:ff3Y9VzzKbwSSEzWqJsJVBnWmRwRSHt/6Op5n9bQc4A=
13731375
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
13741376
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
13751377
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -1405,8 +1407,8 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
14051407
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
14061408
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
14071409
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
1408-
golang.org/x/mod v0.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA=
1409-
golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w=
1410+
golang.org/x/mod v0.31.0 h1:HaW9xtz0+kOcWKwli0ZXy79Ix+UW/vOfmWI5QVd2tgI=
1411+
golang.org/x/mod v0.31.0/go.mod h1:43JraMp9cGx1Rx3AqioxrbrhNsLl2l/iNAvuBkrezpg=
14101412
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
14111413
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
14121414
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -1460,8 +1462,8 @@ golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns=
14601462
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
14611463
golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI=
14621464
golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY=
1463-
golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY=
1464-
golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU=
1465+
golang.org/x/net v0.48.0 h1:zyQRTTrjc33Lhh0fBgT/H3oZq9WuvRR5gPC70xpDiQU=
1466+
golang.org/x/net v0.48.0/go.mod h1:+ndRgGjkh8FGtu1w1FGbEC31if4VrNVMuKTgcAAnQRY=
14651467
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
14661468
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
14671469
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -1483,8 +1485,8 @@ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJ
14831485
golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
14841486
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
14851487
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
1486-
golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I=
1487-
golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
1488+
golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4=
1489+
golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
14881490
golang.org/x/sys v0.0.0-20180202135801-37707fdb30a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
14891491
golang.org/x/sys v0.0.0-20180810173357-98c5dad5d1a0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
14901492
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -1565,10 +1567,10 @@ golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
15651567
golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
15661568
golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
15671569
golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
1568-
golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc=
1569-
golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
1570-
golang.org/x/telemetry v0.0.0-20251008203120-078029d740a8 h1:LvzTn0GQhWuvKH/kVRS3R3bVAsdQWI7hvfLHGgh9+lU=
1571-
golang.org/x/telemetry v0.0.0-20251008203120-078029d740a8/go.mod h1:Pi4ztBfryZoJEkyFTI5/Ocsu2jXyDr6iSdgJiYE/uwE=
1570+
golang.org/x/sys v0.40.0 h1:DBZZqJ2Rkml6QMQsZywtnjnnGvHza6BTfYFWY9kjEWQ=
1571+
golang.org/x/sys v0.40.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
1572+
golang.org/x/telemetry v0.0.0-20251203150158-8fff8a5912fc h1:bH6xUXay0AIFMElXG2rQ4uiE+7ncwtiOdPfYK1NK2XA=
1573+
golang.org/x/telemetry v0.0.0-20251203150158-8fff8a5912fc/go.mod h1:hKdjCMrbv9skySur+Nek8Hd0uJ0GuxJIoIX2payrIdQ=
15721574
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
15731575
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
15741576
golang.org/x/term v0.0.0-20201210144234-2321bbc49cbf/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
@@ -1580,8 +1582,8 @@ golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=
15801582
golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o=
15811583
golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU=
15821584
golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY=
1583-
golang.org/x/term v0.37.0 h1:8EGAD0qCmHYZg6J17DvsMy9/wJ7/D/4pV/wfnld5lTU=
1584-
golang.org/x/term v0.37.0/go.mod h1:5pB4lxRNYYVZuTLmy8oR2BH8dflOR+IbTYFD8fi3254=
1585+
golang.org/x/term v0.39.0 h1:RclSuaJf32jOqZz74CkPA9qFuVTX7vhLlpfj/IGWlqY=
1586+
golang.org/x/term v0.39.0/go.mod h1:yxzUCTP/U+FzoxfdKmLaA0RV1WgE0VY7hXBwKtY/4ww=
15851587
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
15861588
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
15871589
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -1595,8 +1597,8 @@ golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
15951597
golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
15961598
golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
15971599
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
1598-
golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM=
1599-
golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM=
1600+
golang.org/x/text v0.33.0 h1:B3njUFyqtHDUI5jMn1YIr5B0IE2U0qck04r6d4KPAxE=
1601+
golang.org/x/text v0.33.0/go.mod h1:LuMebE6+rBincTi9+xWTY8TztLzKHc/9C1uBCG27+q8=
16001602
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
16011603
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
16021604
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
@@ -1654,8 +1656,8 @@ golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4f
16541656
golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
16551657
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
16561658
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
1657-
golang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ=
1658-
golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs=
1659+
golang.org/x/tools v0.40.0 h1:yLkxfA+Qnul4cs9QA3KnlFu0lVmd8JJfoq+E41uSutA=
1660+
golang.org/x/tools v0.40.0/go.mod h1:Ik/tzLRlbscWpqqMRjyWYDisX8bG13FrdXp3o4Sr9lc=
16591661
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
16601662
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
16611663
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=

itests/eth_deploy_test.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,11 @@ import (
1010
"testing"
1111
"time"
1212

13-
"github.com/stretchr/testify/require"
14-
"golang.org/x/crypto/sha3"
15-
13+
"github.com/filecoin-project/go-keccak"
1614
"github.com/filecoin-project/go-state-types/big"
1715
"github.com/filecoin-project/go-state-types/manifest"
1816
gstStore "github.com/filecoin-project/go-state-types/store"
17+
"github.com/stretchr/testify/require"
1918

2019
"github.com/filecoin-project/lotus/api"
2120
"github.com/filecoin-project/lotus/blockstore"
@@ -273,7 +272,7 @@ func TestDeployment(t *testing.T) {
273272
byteCodeHashChain, err := evmSt.GetBytecodeHash()
274273
require.NoError(t, err)
275274

276-
hasher := sha3.NewLegacyKeccak256()
275+
hasher := keccak.NewLegacyKeccak256()
277276
hasher.Write(byteCode.RawData())
278277
byteCodeHash := hasher.Sum(nil)
279278
require.Equal(t, byteCodeHashChain[:], byteCodeHash)

itests/fevm_address_test.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,12 @@ import (
66
"os"
77
"testing"
88

9-
"github.com/stretchr/testify/require"
10-
"golang.org/x/crypto/sha3"
11-
129
"github.com/filecoin-project/go-address"
10+
"github.com/filecoin-project/go-keccak"
1311
"github.com/filecoin-project/go-state-types/abi"
1412
"github.com/filecoin-project/go-state-types/big"
1513
builtintypes "github.com/filecoin-project/go-state-types/builtin"
14+
"github.com/stretchr/testify/require"
1615

1716
"github.com/filecoin-project/lotus/chain/actors"
1817
"github.com/filecoin-project/lotus/chain/actors/builtin"
@@ -24,7 +23,7 @@ import (
2423
func effectiveEthAddressForCreate(t *testing.T, sender address.Address) ethtypes.EthAddress {
2524
switch sender.Protocol() {
2625
case address.SECP256K1, address.BLS:
27-
hasher := sha3.NewLegacyKeccak256()
26+
hasher := keccak.NewLegacyKeccak256()
2827
hasher.Write(sender.Bytes())
2928
addr, err := ethtypes.CastEthAddress(hasher.Sum(nil)[12:])
3029
require.NoError(t, err)

itests/kit/evm.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ import (
1616
"github.com/multiformats/go-varint"
1717
"github.com/stretchr/testify/require"
1818
cbg "github.com/whyrusleeping/cbor-gen"
19-
"golang.org/x/crypto/sha3"
2019
"golang.org/x/xerrors"
2120

2221
"github.com/filecoin-project/go-address"
2322
amt4 "github.com/filecoin-project/go-amt-ipld/v4"
23+
"github.com/filecoin-project/go-keccak"
2424
"github.com/filecoin-project/go-state-types/abi"
2525
"github.com/filecoin-project/go-state-types/big"
2626
builtintypes "github.com/filecoin-project/go-state-types/builtin"
@@ -286,7 +286,7 @@ func (e *EVM) ComputeContractAddress(deployer ethtypes.EthAddress, nonce uint64)
286286
})
287287
require.NoError(e.t, err)
288288

289-
hasher := sha3.NewLegacyKeccak256()
289+
hasher := keccak.NewLegacyKeccak256()
290290
hasher.Write(encoded)
291291
return *(*ethtypes.EthAddress)(hasher.Sum(nil)[12:])
292292
}
@@ -353,7 +353,7 @@ func (e *EVM) WaitTransaction(ctx context.Context, hash ethtypes.EthHash) (*etht
353353

354354
// CalcFuncSignature returns the first 4 bytes of the hash of the function name and types
355355
func CalcFuncSignature(funcName string) []byte {
356-
hasher := sha3.NewLegacyKeccak256()
356+
hasher := keccak.NewLegacyKeccak256()
357357
hasher.Write([]byte(funcName))
358358
hash := hasher.Sum(nil)
359359
return hash[:4]

itests/kit/solidity.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
package kit
22

33
import (
4-
"golang.org/x/crypto/sha3"
4+
"github.com/filecoin-project/go-keccak"
55

66
"github.com/filecoin-project/lotus/chain/types/ethtypes"
77
)
88

99
func EthTopicHash(sig string) ethtypes.EthHash {
10-
hasher := sha3.NewLegacyKeccak256()
10+
hasher := keccak.NewLegacyKeccak256()
1111
hasher.Write([]byte(sig))
1212
var hash ethtypes.EthHash
1313
copy(hash[:], hasher.Sum(nil))
1414
return hash
1515
}
1616

1717
func EthFunctionHash(sig string) []byte {
18-
hasher := sha3.NewLegacyKeccak256()
18+
hasher := keccak.NewLegacyKeccak256()
1919
hasher.Write([]byte(sig))
2020
return hasher.Sum(nil)[:4]
2121
}

lib/sigs/delegated/init.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package delegated
33
import (
44
"fmt"
55

6-
"golang.org/x/crypto/sha3"
6+
"github.com/filecoin-project/go-keccak"
77

88
"github.com/filecoin-project/go-address"
99
gocrypto "github.com/filecoin-project/go-crypto"
@@ -28,7 +28,7 @@ func (delegatedSigner) ToPublic(pk []byte) ([]byte, error) {
2828
}
2929

3030
func (s delegatedSigner) Sign(pk []byte, msg []byte) ([]byte, error) {
31-
hasher := sha3.NewLegacyKeccak256()
31+
hasher := keccak.NewLegacyKeccak256()
3232
hasher.Write(msg)
3333
hashSum := hasher.Sum(nil)
3434
sig, err := gocrypto.Sign(pk, hashSum)
@@ -40,7 +40,7 @@ func (s delegatedSigner) Sign(pk []byte, msg []byte) ([]byte, error) {
4040
}
4141

4242
func (delegatedSigner) Verify(sig []byte, a address.Address, msg []byte) error {
43-
hasher := sha3.NewLegacyKeccak256()
43+
hasher := keccak.NewLegacyKeccak256()
4444
hasher.Write(msg)
4545
hash := hasher.Sum(nil)
4646

0 commit comments

Comments
 (0)