Skip to content

Commit b62f49f

Browse files
authored
Merge pull request #55 from lightningnetwork/btcec-v2
build: update to btcec/v2 and btcd/btcutil
2 parents 522b799 + bb84a1c commit b62f49f

File tree

13 files changed

+141
-78
lines changed

13 files changed

+141
-78
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ cache:
77
- $GOPATH/src/github.com/golang
88

99
go:
10-
- "1.13.x"
10+
- "1.17.x"
1111

1212
sudo: required
1313

bench_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import (
44
"bytes"
55
"testing"
66

7-
"github.com/btcsuite/btcd/btcec"
7+
"github.com/btcsuite/btcd/btcec/v2"
88
)
99

1010
var (
@@ -21,8 +21,8 @@ func BenchmarkPathPacketConstruction(b *testing.B) {
2121
route PaymentPath
2222
)
2323

24-
for i := 0; i < NumMaxHops; i++ {
25-
privKey, err := btcec.NewPrivateKey(btcec.S256())
24+
for i := 0; i < 20; i++ {
25+
privKey, err := btcec.NewPrivateKey()
2626
if err != nil {
2727
b.Fatalf("unable to generate key: %v", privKey)
2828
}
@@ -44,7 +44,7 @@ func BenchmarkPathPacketConstruction(b *testing.B) {
4444
}
4545
}
4646

47-
d, _ := btcec.PrivKeyFromBytes(btcec.S256(), bytes.Repeat([]byte{'A'}, 32))
47+
d, _ := btcec.PrivKeyFromBytes(bytes.Repeat([]byte{'A'}, 32))
4848

4949
b.ReportAllocs()
5050

cmd/main.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import (
1010
"os"
1111
"strings"
1212

13-
"github.com/btcsuite/btcd/btcec"
13+
"github.com/btcsuite/btcd/btcec/v2"
1414
"github.com/btcsuite/btcd/chaincfg"
1515
sphinx "github.com/lightningnetwork/lightning-onion"
1616
)
@@ -44,15 +44,15 @@ func parseOnionSpec(spec OnionSpec) (*sphinx.PaymentPath, *btcec.PrivateKey, err
4444
binSessionKey = bytes.Repeat([]byte{'A'}, 32)
4545
}
4646

47-
sessionKey, _ := btcec.PrivKeyFromBytes(btcec.S256(), binSessionKey)
47+
sessionKey, _ := btcec.PrivKeyFromBytes(binSessionKey)
4848

4949
for i, hop := range spec.Hops {
5050
binKey, err := hex.DecodeString(hop.PublicKey)
5151
if err != nil || len(binKey) != 33 {
5252
log.Fatalf("%s is not a valid hex pubkey %s", hop.PublicKey, err)
5353
}
5454

55-
pubkey, err := btcec.ParsePubKey(binKey, btcec.S256())
55+
pubkey, err := btcec.ParsePubKey(binKey)
5656
if err != nil {
5757
log.Fatalf("%s is not a valid hex pubkey %s", hop.PublicKey, err)
5858
}
@@ -132,7 +132,7 @@ func main() {
132132
log.Fatalf("Error decoding message: %s", err)
133133
}
134134

135-
privkey, _ := btcec.PrivKeyFromBytes(btcec.S256(), binKey)
135+
privkey, _ := btcec.PrivKeyFromBytes(binKey)
136136
privKeyECDH := &sphinx.PrivKeyECDH{PrivKey: privkey}
137137
replayLog := sphinx.NewMemoryReplayLog()
138138
s := sphinx.NewRouter(

crypto.go

Lines changed: 34 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ import (
88
"fmt"
99

1010
"github.com/aead/chacha20"
11-
"github.com/btcsuite/btcd/btcec"
11+
"github.com/btcsuite/btcd/btcec/v2"
12+
secp "github.com/decred/dcrd/dcrec/secp256k1/v4"
1213
)
1314

1415
const (
@@ -65,10 +66,16 @@ func (p *PrivKeyECDH) PubKey() *btcec.PublicKey {
6566
//
6667
// NOTE: This is part of the SingleKeyECDH interface.
6768
func (p *PrivKeyECDH) ECDH(pub *btcec.PublicKey) ([32]byte, error) {
68-
s := &btcec.PublicKey{}
69-
s.X, s.Y = btcec.S256().ScalarMult(pub.X, pub.Y, p.PrivKey.D.Bytes())
69+
var pubJ btcec.JacobianPoint
70+
pub.AsJacobian(&pubJ)
7071

71-
return sha256.Sum256(s.SerializeCompressed()), nil
72+
var ecdhPoint btcec.JacobianPoint
73+
btcec.ScalarMultNonConst(&p.PrivKey.Key, &pubJ, &ecdhPoint)
74+
75+
ecdhPoint.ToAffine()
76+
ecdhPubKey := btcec.NewPublicKey(&ecdhPoint.X, &ecdhPoint.Y)
77+
78+
return sha256.Sum256(ecdhPubKey.SerializeCompressed()), nil
7279
}
7380

7481
// DecryptedError contains the decrypted error message and its sender.
@@ -153,29 +160,43 @@ func generateCipherStream(key [keyLen]byte, numBytes uint) []byte {
153160
// sharedSecret for this hop. The blinding factor is computed as the
154161
// sha-256(pubkey || sharedSecret).
155162
func computeBlindingFactor(hopPubKey *btcec.PublicKey,
156-
hopSharedSecret []byte) Hash256 {
163+
hopSharedSecret []byte) btcec.ModNScalar {
157164

158165
sha := sha256.New()
159166
sha.Write(hopPubKey.SerializeCompressed())
160167
sha.Write(hopSharedSecret)
161168

162169
var hash Hash256
163170
copy(hash[:], sha.Sum(nil))
164-
return hash
171+
172+
var blindingBytes btcec.ModNScalar
173+
blindingBytes.SetByteSlice(hash[:])
174+
175+
return blindingBytes
165176
}
166177

167178
// blindGroupElement blinds the group element P by performing scalar
168179
// multiplication of the group element by blindingFactor: blindingFactor * P.
169-
func blindGroupElement(hopPubKey *btcec.PublicKey, blindingFactor []byte) *btcec.PublicKey {
170-
newX, newY := btcec.S256().ScalarMult(hopPubKey.X, hopPubKey.Y, blindingFactor[:])
171-
return &btcec.PublicKey{btcec.S256(), newX, newY}
180+
func blindGroupElement(hopPubKey *btcec.PublicKey, blindingFactor btcec.ModNScalar) *btcec.PublicKey {
181+
var hopPubKeyJ btcec.JacobianPoint
182+
hopPubKey.AsJacobian(&hopPubKeyJ)
183+
184+
var blindedPoint btcec.JacobianPoint
185+
btcec.ScalarMultNonConst(
186+
&blindingFactor, &hopPubKeyJ, &blindedPoint,
187+
)
188+
blindedPoint.ToAffine()
189+
190+
return btcec.NewPublicKey(&blindedPoint.X, &blindedPoint.Y)
172191
}
173192

174193
// blindBaseElement blinds the groups's generator G by performing scalar base
175194
// multiplication using the blindingFactor: blindingFactor * G.
176-
func blindBaseElement(blindingFactor []byte) *btcec.PublicKey {
177-
newX, newY := btcec.S256().ScalarBaseMult(blindingFactor)
178-
return &btcec.PublicKey{btcec.S256(), newX, newY}
195+
func blindBaseElement(blindingFactor btcec.ModNScalar) *btcec.PublicKey {
196+
// TODO(roasbeef): remove after btcec version bump to add alias for
197+
// this method
198+
priv := secp.NewPrivateKey(&blindingFactor)
199+
return priv.PubKey()
179200
}
180201

181202
// sharedSecretGenerator is an interface that abstracts away exactly *how* the
@@ -193,7 +214,7 @@ func (r *Router) generateSharedSecret(dhKey *btcec.PublicKey) (Hash256, error) {
193214
var sharedSecret Hash256
194215

195216
// Ensure that the public key is on our curve.
196-
if !btcec.S256().IsOnCurve(dhKey.X, dhKey.Y) {
217+
if !dhKey.IsOnCurve() {
197218
return sharedSecret, ErrInvalidOnionKey
198219
}
199220

go.mod

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@ module github.com/lightningnetwork/lightning-onion
22

33
require (
44
github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da
5-
github.com/btcsuite/btcd v0.0.0-20190629003639-c26ffa870fd8
5+
github.com/btcsuite/btcd v0.22.0-beta.0.20220207191057-4dc4ff7963b4
6+
github.com/btcsuite/btcd/btcec/v2 v2.1.0
7+
github.com/btcsuite/btcd/btcutil v1.1.0
68
github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f
7-
github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d
89
github.com/davecgh/go-spew v1.1.1
9-
golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67
10-
golang.org/x/sys v0.0.0-20190209173611-3b5209105503 // indirect
10+
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1
11+
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9
1112
)
1213

1314
go 1.13

go.sum

Lines changed: 61 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,93 @@
11
github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da h1:KjTM2ks9d14ZYCvmHS9iAKVt9AyzRSqNU1qabPih5BY=
22
github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da/go.mod h1:eHEWzANqSiWQsof+nXEI9bUVUyV6F53Fp89EuCh2EAA=
3-
github.com/aead/siphash v1.0.1 h1:FwHfE/T45KPKYuuSAKyyvE+oPWcaQ+CUmFW0bPlM+kg=
43
github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII=
5-
github.com/btcsuite/btcd v0.0.0-20190629003639-c26ffa870fd8 h1:mOg8/RgDSHTQ1R0IR+LMDuW4TDShPv+JzYHuR4GLoNA=
6-
github.com/btcsuite/btcd v0.0.0-20190629003639-c26ffa870fd8/go.mod h1:3J08xEfcugPacsc34/LKRU2yO7YmuT8yt28J8k2+rrI=
4+
github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ=
5+
github.com/btcsuite/btcd v0.22.0-beta.0.20220111032746-97732e52810c/go.mod h1:tjmYdS6MLJ5/s0Fj4DbLgSbDHbEqLJrtnHecBFkdz5M=
6+
github.com/btcsuite/btcd v0.22.0-beta.0.20220207191057-4dc4ff7963b4 h1:CEGr/598C/0LZQUoioaT6sdGGcJgu4+ck0PDeJ/QkKs=
7+
github.com/btcsuite/btcd v0.22.0-beta.0.20220207191057-4dc4ff7963b4/go.mod h1:7alexyj/lHlOtr2PJK7L/+HDJZpcGDn/pAU98r7DY08=
8+
github.com/btcsuite/btcd/btcec/v2 v2.1.0 h1:Whmbo9yShKKG+WrUfYGFfgj77vYBiwhwBSJnM66TMKI=
9+
github.com/btcsuite/btcd/btcec/v2 v2.1.0/go.mod h1:2VzYrv4Gm4apmbVVsSq5bqf1Ec8v56E48Vt0Y/umPgA=
10+
github.com/btcsuite/btcd/btcutil v1.0.0/go.mod h1:Uoxwv0pqYWhD//tfTiipkxNfdhG9UrLwaeswfjfdF0A=
11+
github.com/btcsuite/btcd/btcutil v1.1.0 h1:MO4klnGY+EWJdoWF12Wkuf4AWDBPMpZNeN/jRLrklUU=
12+
github.com/btcsuite/btcd/btcutil v1.1.0/go.mod h1:5OapHB7A2hBBWLm48mmw4MOHNJCcUBTwmWH/0Jn8VHE=
713
github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f h1:bAs4lUbRJpnnkd9VhRV3jjAVU7DJVjMaK+IsvSeZvFo=
814
github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA=
9-
github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d h1:yJzD/yFppdVCf6ApMkVy8cUxV0XrxdP9rVf6D87/Mng=
1015
github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg=
11-
github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd h1:R/opQEbFEy9JGkIguV40SvRY1uliPX8ifOvi6ICsFCw=
1216
github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg=
1317
github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY=
18+
github.com/btcsuite/goleveldb v1.0.0/go.mod h1:QiK9vBlgftBg6rWQIj6wFzbPfRjiykIEhBH4obrXJ/I=
1419
github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc=
15-
github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792 h1:R8vQdOQdZ9Y3SkEwmHoWBmX1DNXhXZqlTpq6s4tyJGc=
20+
github.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc=
1621
github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY=
1722
github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs=
1823
github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
1924
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
2025
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
26+
github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc=
27+
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 h1:YLtO71vCjJRCBcrPMtQ9nqBsqpA1m5sE92cU+pd5Mcc=
28+
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs=
29+
github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218=
2130
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
31+
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
2232
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
33+
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
34+
github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
35+
github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
36+
github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
37+
github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
38+
github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
39+
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
40+
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
41+
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
2342
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
2443
github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
44+
github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
2545
github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ=
2646
github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4=
47+
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
2748
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
2849
github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
50+
github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
51+
github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY=
52+
github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
2953
github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
54+
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
55+
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
3056
golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
31-
golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67 h1:ng3VDlRp5/DHpSWl02R4rM9I+8M2rhmsuLwAMmkLQWE=
32-
golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
57+
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
58+
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI=
59+
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
60+
golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
3361
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
62+
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
63+
golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
64+
golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
3465
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
3566
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
36-
golang.org/x/sys v0.0.0-20190209173611-3b5209105503 h1:5SvYFrOM3W8Mexn9/oA44Ji7vhXAZQ9hiP+1Q/DMrWg=
37-
golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
67+
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
68+
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
69+
golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
70+
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
71+
golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
72+
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
73+
golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
74+
golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed h1:J22ig1FUekjjkmZUM7pTKixYm8DvrYsvrBZdunYeIuQ=
75+
golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3876
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
77+
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
78+
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
79+
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
80+
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
81+
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
82+
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
83+
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
84+
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
85+
google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
86+
google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
87+
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
3988
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
4089
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
4190
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
4291
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
92+
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
93+
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=

hornet.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package sphinx
22

33
import (
4-
"github.com/btcsuite/btcd/btcec"
4+
"github.com/btcsuite/btcd/btcec/v2"
55
"golang.org/x/crypto/ripemd160"
66
)
77

obfuscation.go

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

6-
"github.com/btcsuite/btcd/btcec"
6+
"github.com/btcsuite/btcd/btcec/v2"
77
)
88

99
// OnionErrorEncrypter is a struct that's used to implement onion error
@@ -62,7 +62,7 @@ func (c *Circuit) Decode(r io.Reader) error {
6262
return err
6363
}
6464

65-
c.SessionKey, _ = btcec.PrivKeyFromBytes(btcec.S256(), sessionKeyData)
65+
c.SessionKey, _ = btcec.PrivKeyFromBytes(sessionKeyData)
6666
var pathLength [1]byte
6767
if _, err := r.Read(pathLength[:]); err != nil {
6868
return err
@@ -75,7 +75,7 @@ func (c *Circuit) Decode(r io.Reader) error {
7575
return err
7676
}
7777

78-
pubKey, err := btcec.ParsePubKey(pubKeyData[:], btcec.S256())
78+
pubKey, err := btcec.ParsePubKey(pubKeyData[:])
7979
if err != nil {
8080
return err
8181
}

obfuscation_test.go

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
"reflect"
88
"testing"
99

10-
"github.com/btcsuite/btcd/btcec"
10+
"github.com/btcsuite/btcd/btcec/v2"
1111
)
1212

1313
// TestOnionFailure checks the ability of sender of payment to decode the
@@ -16,14 +16,13 @@ func TestOnionFailure(t *testing.T) {
1616
// Create numHops random sphinx paymentPath.
1717
paymentPath := make([]*btcec.PublicKey, 5)
1818
for i := 0; i < len(paymentPath); i++ {
19-
privKey, err := btcec.NewPrivateKey(btcec.S256())
19+
privKey, err := btcec.NewPrivateKey()
2020
if err != nil {
2121
t.Fatalf("unable to generate random key for sphinx node: %v", err)
2222
}
2323
paymentPath[i] = privKey.PubKey()
2424
}
25-
sessionKey, _ := btcec.PrivKeyFromBytes(btcec.S256(),
26-
bytes.Repeat([]byte{'A'}, 32))
25+
sessionKey, _ := btcec.PrivKeyFromBytes(bytes.Repeat([]byte{'A'}, 32))
2726

2827
// Reduce the error path on one node, in order to check that we are
2928
// able to receive the error not only from last hop.
@@ -152,7 +151,7 @@ func getSpecPubKeys() ([]*btcec.PublicKey, error) {
152151
return nil, err
153152
}
154153

155-
key, err := btcec.ParsePubKey(bKey, btcec.S256())
154+
key, err := btcec.ParsePubKey(bKey)
156155
if err != nil {
157156
return nil, err
158157
}
@@ -168,7 +167,7 @@ func getSpecSessionKey() (*btcec.PrivateKey, error) {
168167
return nil, err
169168
}
170169

171-
privKey, _ := btcec.PrivKeyFromBytes(btcec.S256(), bKey)
170+
privKey, _ := btcec.PrivKeyFromBytes(bKey)
172171
return privKey, nil
173172
}
174173

@@ -202,7 +201,6 @@ func TestOnionFailureSpecVector(t *testing.T) {
202201
t.Fatalf("Unexpected error while generating secrets: %v", err)
203202
}
204203
for i, test := range onionErrorData {
205-
206204
// Decode the shared secret and check that it matchs with
207205
// specification.
208206
expectedSharedSecret, err := hex.DecodeString(test.sharedSecret)

packetfiller.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import (
44
"crypto/rand"
55

66
"github.com/aead/chacha20"
7-
"github.com/btcsuite/btcd/btcec"
7+
"github.com/btcsuite/btcd/btcec/v2"
88
)
99

1010
// PacketFiller is a function type to be specified by the caller to provide a

0 commit comments

Comments
 (0)