changed session header/payload keys to crypto.Keys
This commit is contained in:
@@ -64,6 +64,7 @@ func TestEngine_Dispatcher(t *testing.T) {
|
||||
}
|
||||
log.D.S("node", nod)
|
||||
nodes = append(nodes, nod)
|
||||
|
||||
}
|
||||
time.Sleep(time.Second * 2)
|
||||
cancel()
|
||||
|
||||
@@ -21,7 +21,7 @@ const (
|
||||
type Session struct {
|
||||
ID nonce.ID // only used by a client
|
||||
Hop byte // only used by a client
|
||||
Header, Payload *crypto.Prv
|
||||
Header, Payload *crypto.Keys
|
||||
Onion
|
||||
}
|
||||
|
||||
@@ -34,18 +34,15 @@ func (x *Session) GetOnion() interface{} { return x }
|
||||
|
||||
func NewSessionKeys(hop byte) (x *Session) {
|
||||
var e error
|
||||
var hdrPrv, pldPrv *crypto.Prv
|
||||
if hdrPrv, e = crypto.GeneratePrvKey(); fails(e) {
|
||||
return
|
||||
}
|
||||
if pldPrv, e = crypto.GeneratePrvKey(); fails(e) {
|
||||
var hdr, pld *crypto.Keys
|
||||
if hdr, pld, e = crypto.Generate2Keys(); fails(e) {
|
||||
return
|
||||
}
|
||||
return &Session{
|
||||
ID: nonce.NewID(),
|
||||
Hop: hop,
|
||||
Header: hdrPrv,
|
||||
Payload: pldPrv,
|
||||
Header: hdr,
|
||||
Payload: pld,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,8 +52,8 @@ func (x *Session) Encode(s *splice.Splice) (e error) {
|
||||
)
|
||||
return x.Onion.Encode(s.Magic(SessionMagic).
|
||||
ID(x.ID).
|
||||
Prvkey(x.Header).
|
||||
Prvkey(x.Payload),
|
||||
Prvkey(x.Header.Prv).
|
||||
Prvkey(x.Payload.Prv),
|
||||
)
|
||||
}
|
||||
|
||||
@@ -65,10 +62,13 @@ func (x *Session) Decode(s *splice.Splice) (e error) {
|
||||
SessionMagic); fails(e) {
|
||||
return
|
||||
}
|
||||
var h, p crypto.Prv
|
||||
hdr, pld := &h, &p
|
||||
s.
|
||||
ReadID(&x.ID).
|
||||
ReadPrvkey(&x.Header).
|
||||
ReadPrvkey(&x.Payload)
|
||||
ReadPrvkey(&hdr).
|
||||
ReadPrvkey(&pld)
|
||||
x.Header, x.Payload = crypto.MakeKeys(hdr), crypto.MakeKeys(pld)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -92,7 +92,7 @@ func (x *Session) Handle(s *splice.Splice, p Onion, ng Ngin) (e error) {
|
||||
}
|
||||
|
||||
func (x *Session) PreimageHash() sha256.Hash {
|
||||
h, p := x.Header.ToBytes(), x.Payload.ToBytes()
|
||||
h, p := x.Header.Prv.ToBytes(), x.Payload.Prv.ToBytes()
|
||||
return sha256.Single(append(h[:], p[:]...))
|
||||
}
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ type Data struct {
|
||||
ID nonce.ID
|
||||
Node *node.Node
|
||||
Remaining lnwire.MilliSatoshi
|
||||
Header, Payload crypto.Keys
|
||||
Header, Payload *crypto.Keys
|
||||
Preimage sha256.Hash
|
||||
Hop byte
|
||||
}
|
||||
@@ -62,37 +62,24 @@ func NewSessionData(
|
||||
id nonce.ID,
|
||||
node *node.Node,
|
||||
rem lnwire.MilliSatoshi,
|
||||
hdrPrv *crypto.Prv,
|
||||
pldPrv *crypto.Prv,
|
||||
hdr, pld *crypto.Keys,
|
||||
hop byte,
|
||||
) (s *Data) {
|
||||
|
||||
var e error
|
||||
if hdrPrv == nil || pldPrv == nil {
|
||||
if hdrPrv, e = crypto.GeneratePrvKey(); fails(e) {
|
||||
}
|
||||
if pldPrv, e = crypto.GeneratePrvKey(); fails(e) {
|
||||
if hdr == nil || pld == nil {
|
||||
if hdr, pld, e = crypto.Generate2Keys(); fails(e) {
|
||||
}
|
||||
}
|
||||
hdrPub := crypto.DerivePub(hdrPrv)
|
||||
pldPub := crypto.DerivePub(pldPrv)
|
||||
h, p := hdrPrv.ToBytes(), pldPrv.ToBytes()
|
||||
h, p := hdr.Prv.ToBytes(), pld.Prv.ToBytes()
|
||||
s = &Data{
|
||||
ID: id,
|
||||
Node: node,
|
||||
Remaining: rem,
|
||||
Header: crypto.Keys{
|
||||
Pub: hdrPub,
|
||||
Bytes: hdrPub.ToBytes(),
|
||||
Prv: hdrPrv,
|
||||
},
|
||||
Payload: crypto.Keys{
|
||||
Pub: pldPub,
|
||||
Bytes: pldPub.ToBytes(),
|
||||
Prv: pldPrv,
|
||||
},
|
||||
Preimage: sha256.Single(append(h[:], p[:]...)),
|
||||
Hop: hop,
|
||||
Header: hdr,
|
||||
Payload: pld,
|
||||
Preimage: sha256.Single(append(h[:], p[:]...)),
|
||||
Hop: hop,
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user