@@ -22,19 +22,28 @@ func main() {
2222
2323 assocData := bytes .Repeat ([]byte {'B' }, 32 )
2424
25+ tempDir , err := ioutil .TempDir ("" , "onion-test" )
26+ defer os .Remove (tempDir )
27+ if err != nil {
28+ panic (err )
29+ }
30+
2531 if len (args ) == 1 {
2632 fmt .Printf ("Usage: %s (generate|decode) <private-keys>\n " , args [0 ])
2733 } else if args [1 ] == "generate" {
28- var privKeys []* btcec.PrivateKey
2934 var route []* btcec.PublicKey
3035 for i , hexKey := range args [2 :] {
3136 binKey , err := hex .DecodeString (hexKey )
32- if err != nil || len (binKey ) != 32 {
33- log .Fatalf ("%s is not a valid hex privkey %s" , hexKey , err )
37+ if err != nil || len (binKey ) != 33 {
38+ log .Fatalf ("%s is not a valid hex pubkey %s" , hexKey , err )
3439 }
35- privkey , pubkey := btcec .PrivKeyFromBytes (btcec .S256 (), binKey )
40+
41+ pubkey , err := btcec .ParsePubKey (binKey , btcec .S256 ())
42+ if err != nil {
43+ panic (err )
44+ }
45+
3646 route = append (route , pubkey )
37- privKeys = append (privKeys , privkey )
3847 fmt .Fprintf (os .Stderr , "Node %d pubkey %x\n " , i , pubkey .SerializeCompressed ())
3948 }
4049
@@ -44,7 +53,7 @@ func main() {
4453 for i := 0 ; i < len (route ); i ++ {
4554 hopsData = append (hopsData , sphinx.HopData {
4655 Realm : 0x00 ,
47- ForwardAmount : uint32 (i ),
56+ ForwardAmount : uint64 (i ),
4857 OutgoingCltv : uint32 (i ),
4958 })
5059 copy (hopsData [i ].NextAddress [:], bytes .Repeat ([]byte {byte (i )}, 8 ))
@@ -76,21 +85,21 @@ func main() {
7685 }
7786
7887 privkey , _ := btcec .PrivKeyFromBytes (btcec .S256 (), binKey )
79- s := sphinx .NewRouter (privkey , & chaincfg .TestNet3Params , nil )
88+ s := sphinx .NewRouter (tempDir , privkey , & chaincfg .TestNet3Params , nil )
8089
8190 var packet sphinx.OnionPacket
8291 err = packet .Decode (bytes .NewBuffer (binMsg ))
8392
8493 if err != nil {
8594 log .Fatalf ("Error parsing message: %v" , err )
8695 }
87- p , err := s .ProcessOnionPacket (& packet , assocData )
96+ p , err := s .ProcessOnionPacket (& packet , assocData , 10 )
8897 if err != nil {
8998 log .Fatalf ("Failed to decode message: %s" , err )
9099 }
91100
92101 w := bytes .NewBuffer ([]byte {})
93- err = p .Packet .Encode (w )
102+ err = p .NextPacket .Encode (w )
94103
95104 if err != nil {
96105 log .Fatalf ("Error serializing message: %v" , err )
0 commit comments