changed session header/payload keys to crypto.Keys

This commit is contained in:
херетик
2023-05-07 12:02:39 +01:00
parent f3f053abca
commit 2b6e231fc6
3 changed files with 23 additions and 35 deletions

View File

@@ -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()

View File

@@ -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[:]...))
}

View File

@@ -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
}