Fix public/private key encoding

This commit is contained in:
Neil Alexander 2018-05-26 10:31:25 +01:00
parent c5782ca00a
commit 98051d9207
No known key found for this signature in database
GPG key ID: A02A2019A2BB0944

View file

@ -4,6 +4,7 @@ import "io/ioutil"
import "log" import "log"
import "regexp" import "regexp"
import "net" import "net"
import "encoding/hex"
import "yggdrasil/config" import "yggdrasil/config"
// The Core object represents the Yggdrasil node. You should create a Core // The Core object represents the Yggdrasil node. You should create a Core
@ -72,12 +73,33 @@ func (c *Core) Start(nc *config.NodeConfig, log *log.Logger) error {
c.log = log c.log = log
c.log.Println("Starting up...") c.log.Println("Starting up...")
udp := udpInterface{} var boxPub boxPubKey
if err := udp.init(c, nc.Listen); err != nil { var boxPriv boxPrivKey
c.log.Println("Failed to start UDP interface") var sigPub sigPubKey
var sigPriv sigPrivKey
boxPubHex, err := hex.DecodeString(nc.EncryptionPublicKey)
if err != nil {
return err return err
} }
c.udp = &udp boxPrivHex, err := hex.DecodeString(nc.EncryptionPrivateKey)
if err != nil {
return err
}
sigPubHex, err := hex.DecodeString(nc.SigningPublicKey)
if err != nil {
return err
}
sigPrivHex, err := hex.DecodeString(nc.SigningPrivateKey)
if err != nil {
return err
}
copy(boxPub[:], boxPubHex)
copy(boxPriv[:], boxPrivHex)
copy(sigPub[:], sigPubHex)
copy(sigPriv[:], sigPrivHex)
c.init(&boxPub, &boxPriv, &sigPub, &sigPriv)
c.admin.init(c, nc.AdminListen)
tcp := tcpInterface{} tcp := tcpInterface{}
if err := tcp.init(c, nc.Listen); err != nil { if err := tcp.init(c, nc.Listen); err != nil {
@ -86,17 +108,12 @@ func (c *Core) Start(nc *config.NodeConfig, log *log.Logger) error {
} }
c.tcp = &tcp c.tcp = &tcp
var boxPub boxPubKey udp := udpInterface{}
var boxPriv boxPrivKey if err := udp.init(c, nc.Listen); err != nil {
var sigPub sigPubKey c.log.Println("Failed to start UDP interface")
var sigPriv sigPrivKey return err
copy(boxPub[:], nc.EncryptionPublicKey) }
copy(boxPriv[:], nc.EncryptionPrivateKey) c.udp = &udp
copy(sigPub[:], nc.SigningPublicKey)
copy(sigPriv[:], nc.SigningPrivateKey)
c.init(&boxPub, &boxPriv, &sigPub, &sigPriv)
c.admin.init(c, nc.AdminListen)
if err := c.router.start(); err != nil { if err := c.router.start(); err != nil {
c.log.Println("Failed to start router") c.log.Println("Failed to start router")