merged some things together

This commit is contained in:
херетик
2023-02-17 22:15:09 +00:00
parent d5c7a4a18d
commit 742158c49e
36 changed files with 129 additions and 146 deletions

View File

@@ -5,7 +5,7 @@ import (
"git-indra.lan/indra-labs/indra"
"git-indra.lan/indra-labs/indra/pkg/crypto/nonce"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/magicbytes"
"git-indra.lan/indra-labs/indra/pkg/onion/magicbytes"
log2 "git-indra.lan/indra-labs/indra/pkg/proc/log"
"git-indra.lan/indra-labs/indra/pkg/types"
"git-indra.lan/indra-labs/indra/pkg/util/slice"

View File

@@ -3,7 +3,7 @@ package confirm
import (
"git-indra.lan/indra-labs/indra"
"git-indra.lan/indra-labs/indra/pkg/crypto/nonce"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/magicbytes"
"git-indra.lan/indra-labs/indra/pkg/onion/magicbytes"
log2 "git-indra.lan/indra-labs/indra/pkg/proc/log"
"git-indra.lan/indra-labs/indra/pkg/types"
"git-indra.lan/indra-labs/indra/pkg/util/slice"

View File

@@ -9,8 +9,8 @@ import (
"git-indra.lan/indra-labs/indra/pkg/crypto/key/prv"
"git-indra.lan/indra-labs/indra/pkg/crypto/key/pub"
"git-indra.lan/indra-labs/indra/pkg/crypto/nonce"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/magicbytes"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/reverse"
"git-indra.lan/indra-labs/indra/pkg/onion/magicbytes"
"git-indra.lan/indra-labs/indra/pkg/onion/reverse"
log2 "git-indra.lan/indra-labs/indra/pkg/proc/log"
"git-indra.lan/indra-labs/indra/pkg/types"
"git-indra.lan/indra-labs/indra/pkg/util/slice"

View File

@@ -4,7 +4,7 @@ import (
"time"
"git-indra.lan/indra-labs/indra"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/magicbytes"
"git-indra.lan/indra-labs/indra/pkg/onion/magicbytes"
log2 "git-indra.lan/indra-labs/indra/pkg/proc/log"
"git-indra.lan/indra-labs/indra/pkg/types"
"git-indra.lan/indra-labs/indra/pkg/util/slice"

View File

@@ -3,7 +3,7 @@ package dxresponse
import (
"git-indra.lan/indra-labs/indra"
"git-indra.lan/indra-labs/indra/pkg/crypto/nonce"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/magicbytes"
"git-indra.lan/indra-labs/indra/pkg/onion/magicbytes"
log2 "git-indra.lan/indra-labs/indra/pkg/proc/log"
"git-indra.lan/indra-labs/indra/pkg/types"
"git-indra.lan/indra-labs/indra/pkg/util/slice"

View File

@@ -4,7 +4,7 @@ import (
"git-indra.lan/indra-labs/indra"
"git-indra.lan/indra-labs/indra/pkg/crypto/nonce"
"git-indra.lan/indra-labs/indra/pkg/crypto/sha256"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/magicbytes"
"git-indra.lan/indra-labs/indra/pkg/onion/magicbytes"
log2 "git-indra.lan/indra-labs/indra/pkg/proc/log"
"git-indra.lan/indra-labs/indra/pkg/types"
"git-indra.lan/indra-labs/indra/pkg/util/slice"

View File

@@ -5,7 +5,7 @@ import (
"net/netip"
"git-indra.lan/indra-labs/indra"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/magicbytes"
"git-indra.lan/indra-labs/indra/pkg/onion/magicbytes"
log2 "git-indra.lan/indra-labs/indra/pkg/proc/log"
"git-indra.lan/indra-labs/indra/pkg/types"
"git-indra.lan/indra-labs/indra/pkg/util/slice"

View File

@@ -4,7 +4,7 @@ import (
"git-indra.lan/indra-labs/indra"
"git-indra.lan/indra-labs/indra/pkg/crypto/nonce"
"git-indra.lan/indra-labs/indra/pkg/crypto/sha256"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/magicbytes"
"git-indra.lan/indra-labs/indra/pkg/onion/magicbytes"
log2 "git-indra.lan/indra-labs/indra/pkg/proc/log"
"git-indra.lan/indra-labs/indra/pkg/types"
"git-indra.lan/indra-labs/indra/pkg/util/slice"

View File

@@ -3,7 +3,7 @@ package response
import (
"git-indra.lan/indra-labs/indra"
"git-indra.lan/indra-labs/indra/pkg/crypto/nonce"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/magicbytes"
"git-indra.lan/indra-labs/indra/pkg/onion/magicbytes"
log2 "git-indra.lan/indra-labs/indra/pkg/proc/log"
"git-indra.lan/indra-labs/indra/pkg/types"
"git-indra.lan/indra-labs/indra/pkg/util/slice"

View File

@@ -5,7 +5,7 @@ import (
"net/netip"
"git-indra.lan/indra-labs/indra"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/magicbytes"
"git-indra.lan/indra-labs/indra/pkg/onion/magicbytes"
log2 "git-indra.lan/indra-labs/indra/pkg/proc/log"
"git-indra.lan/indra-labs/indra/pkg/types"
"git-indra.lan/indra-labs/indra/pkg/util/slice"

View File

@@ -5,8 +5,8 @@ import (
"git-indra.lan/indra-labs/indra/pkg/crypto/key/prv"
"git-indra.lan/indra-labs/indra/pkg/crypto/nonce"
"git-indra.lan/indra-labs/indra/pkg/crypto/sha256"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/magicbytes"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/noop"
"git-indra.lan/indra-labs/indra/pkg/onion/magicbytes"
"git-indra.lan/indra-labs/indra/pkg/onion/noop"
log2 "git-indra.lan/indra-labs/indra/pkg/proc/log"
"git-indra.lan/indra-labs/indra/pkg/types"
"git-indra.lan/indra-labs/indra/pkg/util/slice"
@@ -59,7 +59,7 @@ func New(hop byte) (x *Layer) {
if pldPrv, e = prv.GenerateKey(); check(e) {
return
}
return &Layer{
ID: nonce.NewID(),
Hop: hop,

View File

@@ -1,38 +1,31 @@
package onion
package relay
import (
"fmt"
"github.com/davecgh/go-spew/spew"
"git-indra.lan/indra-labs/indra"
"git-indra.lan/indra-labs/indra/pkg/crypto/key/ecdh"
"git-indra.lan/indra-labs/indra/pkg/crypto/key/prv"
"git-indra.lan/indra-labs/indra/pkg/crypto/key/pub"
"git-indra.lan/indra-labs/indra/pkg/crypto/nonce"
"git-indra.lan/indra-labs/indra/pkg/crypto/sha256"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/balance"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/confirm"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/crypt"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/delay"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/dxresponse"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/exit"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/forward"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/getbalance"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/magicbytes"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/response"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/reverse"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/session"
log2 "git-indra.lan/indra-labs/indra/pkg/proc/log"
"git-indra.lan/indra-labs/indra/pkg/onion/balance"
"git-indra.lan/indra-labs/indra/pkg/onion/confirm"
"git-indra.lan/indra-labs/indra/pkg/onion/crypt"
"git-indra.lan/indra-labs/indra/pkg/onion/delay"
"git-indra.lan/indra-labs/indra/pkg/onion/dxresponse"
"git-indra.lan/indra-labs/indra/pkg/onion/exit"
"git-indra.lan/indra-labs/indra/pkg/onion/forward"
"git-indra.lan/indra-labs/indra/pkg/onion/getbalance"
"git-indra.lan/indra-labs/indra/pkg/onion/magicbytes"
"git-indra.lan/indra-labs/indra/pkg/onion/response"
"git-indra.lan/indra-labs/indra/pkg/onion/reverse"
"git-indra.lan/indra-labs/indra/pkg/onion/session"
"git-indra.lan/indra-labs/indra/pkg/types"
"git-indra.lan/indra-labs/indra/pkg/util/slice"
)
var (
log = log2.GetLogger(indra.PathBase)
check = log.E.Chk
)
func Encode(on types.Onion) (b slice.Bytes) {
b = make(slice.Bytes, on.Len())
var sc slice.Cursor

View File

@@ -1,4 +1,4 @@
package onion
package relay
import (
"math/rand"
@@ -12,14 +12,14 @@ import (
"git-indra.lan/indra-labs/indra/pkg/crypto/key/pub"
"git-indra.lan/indra-labs/indra/pkg/crypto/nonce"
"git-indra.lan/indra-labs/indra/pkg/crypto/sha256"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/confirm"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/crypt"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/delay"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/exit"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/forward"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/response"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/reverse"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/session"
"git-indra.lan/indra-labs/indra/pkg/onion/confirm"
"git-indra.lan/indra-labs/indra/pkg/onion/crypt"
"git-indra.lan/indra-labs/indra/pkg/onion/delay"
"git-indra.lan/indra-labs/indra/pkg/onion/exit"
"git-indra.lan/indra-labs/indra/pkg/onion/forward"
"git-indra.lan/indra-labs/indra/pkg/onion/response"
"git-indra.lan/indra-labs/indra/pkg/onion/reverse"
"git-indra.lan/indra-labs/indra/pkg/onion/session"
"git-indra.lan/indra-labs/indra/pkg/types"
"git-indra.lan/indra-labs/indra/pkg/util/slice"
"git-indra.lan/indra-labs/indra/pkg/util/tests"

View File

@@ -3,7 +3,7 @@ package relay
import (
"git-indra.lan/indra-labs/lnd/lnd/lnwire"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/balance"
"git-indra.lan/indra-labs/indra/pkg/onion/balance"
"git-indra.lan/indra-labs/indra/pkg/traffic"
"git-indra.lan/indra-labs/indra/pkg/types"
"git-indra.lan/indra-labs/indra/pkg/util/slice"

View File

@@ -1,7 +1,7 @@
package relay
import (
"git-indra.lan/indra-labs/indra/pkg/onion/layers/confirm"
"git-indra.lan/indra-labs/indra/pkg/onion/confirm"
"git-indra.lan/indra-labs/indra/pkg/types"
"git-indra.lan/indra-labs/indra/pkg/util/slice"
)

View File

@@ -1,9 +1,9 @@
package relay
import (
"git-indra.lan/indra-labs/indra/pkg/onion/layers/crypt"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/magicbytes"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/session"
"git-indra.lan/indra-labs/indra/pkg/onion/crypt"
"git-indra.lan/indra-labs/indra/pkg/onion/magicbytes"
"git-indra.lan/indra-labs/indra/pkg/onion/session"
"git-indra.lan/indra-labs/indra/pkg/types"
"git-indra.lan/indra-labs/indra/pkg/util/slice"
)

View File

@@ -2,15 +2,15 @@ package relay
import (
"time"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/delay"
"git-indra.lan/indra-labs/indra/pkg/onion/delay"
"git-indra.lan/indra-labs/indra/pkg/types"
"git-indra.lan/indra-labs/indra/pkg/util/slice"
)
func (eng *Engine) delay(on *delay.Layer, b slice.Bytes,
c *slice.Cursor, prev types.Onion) {
// this is a message to hold the message in the buffer until a duration
// elapses. The accounting for the remainder of the message adds a
// factor to the effective byte consumption in accordance with the time

View File

@@ -6,10 +6,9 @@ import (
"git-indra.lan/indra-labs/lnd/lnd/lnwire"
"git-indra.lan/indra-labs/indra/pkg/crypto/sha256"
"git-indra.lan/indra-labs/indra/pkg/onion"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/crypt"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/exit"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/response"
"git-indra.lan/indra-labs/indra/pkg/onion/crypt"
"git-indra.lan/indra-labs/indra/pkg/onion/exit"
"git-indra.lan/indra-labs/indra/pkg/onion/response"
"git-indra.lan/indra-labs/indra/pkg/types"
"git-indra.lan/indra-labs/indra/pkg/util/slice"
)
@@ -34,7 +33,7 @@ func (eng *Engine) exit(ex *exit.Layer, b slice.Bytes,
}
// We need to wrap the result in a message crypt.
eng.Lock()
res := onion.Encode(&response.Layer{
res := Encode(&response.Layer{
ID: ex.ID,
Port: ex.Port,
Load: eng.Load,

View File

@@ -2,16 +2,16 @@ package relay
import (
"git-indra.lan/indra-labs/lnd/lnd/lnwire"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/crypt"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/forward"
"git-indra.lan/indra-labs/indra/pkg/onion/crypt"
"git-indra.lan/indra-labs/indra/pkg/onion/forward"
"git-indra.lan/indra-labs/indra/pkg/types"
"git-indra.lan/indra-labs/indra/pkg/util/slice"
)
func (eng *Engine) forward(on *forward.Layer, b slice.Bytes,
c *slice.Cursor, prev types.Onion) {
// forward the whole buffer received onwards. Usually there will be a
// crypt.Layer under this which will be unwrapped by the receiver.
if on.AddrPort.String() == eng.GetLocalNodeAddress().String() {

View File

@@ -3,10 +3,9 @@ package relay
import (
"git-indra.lan/indra-labs/lnd/lnd/lnwire"
"git-indra.lan/indra-labs/indra/pkg/onion"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/balance"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/crypt"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/getbalance"
"git-indra.lan/indra-labs/indra/pkg/onion/balance"
"git-indra.lan/indra-labs/indra/pkg/onion/crypt"
"git-indra.lan/indra-labs/indra/pkg/onion/getbalance"
"git-indra.lan/indra-labs/indra/pkg/traffic"
"git-indra.lan/indra-labs/indra/pkg/types"
"git-indra.lan/indra-labs/indra/pkg/util/slice"
@@ -37,7 +36,7 @@ func (eng *Engine) getBalance(on *getbalance.Layer,
}
header := b[*c:c.Inc(crypt.ReverseHeaderLen)]
rb := FormatReply(header,
onion.Encode(bal), on.Ciphers, on.Nonces)
Encode(bal), on.Ciphers, on.Nonces)
rb = append(rb, slice.NoisePad(714-len(rb))...)
switch on1 := prev.(type) {
case *crypt.Layer:
@@ -63,7 +62,7 @@ func (eng *Engine) getBalance(on *getbalance.Layer,
return false
})
rb = FormatReply(header,
onion.Encode(bal), on.Ciphers, on.Nonces)
Encode(bal), on.Ciphers, on.Nonces)
rb = append(rb, slice.NoisePad(714-len(rb))...)
eng.handleMessage(rb, on)
}

View File

@@ -2,8 +2,8 @@ package relay
import (
"git-indra.lan/indra-labs/lnd/lnd/lnwire"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/response"
"git-indra.lan/indra-labs/indra/pkg/onion/response"
"git-indra.lan/indra-labs/indra/pkg/types"
"git-indra.lan/indra-labs/indra/pkg/util/slice"
)
@@ -11,7 +11,7 @@ import (
// response is a payload from an exit message.
func (eng *Engine) response(on *response.Layer, b slice.Bytes,
cur *slice.Cursor, prev types.Onion) {
pending := eng.PendingResponses.Find(on.ID)
log.T.F("searching for pending ID %x", on.ID)
if pending != nil {

View File

@@ -4,9 +4,8 @@ import (
"git-indra.lan/indra-labs/lnd/lnd/lnwire"
"git-indra.lan/indra-labs/indra/pkg/crypto/ciph"
"git-indra.lan/indra-labs/indra/pkg/onion"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/crypt"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/reverse"
"git-indra.lan/indra-labs/indra/pkg/onion/crypt"
"git-indra.lan/indra-labs/indra/pkg/onion/reverse"
"git-indra.lan/indra-labs/indra/pkg/types"
"git-indra.lan/indra-labs/indra/pkg/util/slice"
)
@@ -17,7 +16,7 @@ func (eng *Engine) reverse(on *reverse.Layer, b slice.Bytes,
var e error
var on2 types.Onion
if on.AddrPort.String() == eng.GetLocalNodeAddress().String() {
if on2, e = onion.Peel(b, c); check(e) {
if on2, e = Peel(b, c); check(e) {
return
}
switch on1 := on2.(type) {

View File

@@ -5,7 +5,7 @@ import (
"github.com/davecgh/go-spew/spew"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/session"
"git-indra.lan/indra-labs/indra/pkg/onion/session"
"git-indra.lan/indra-labs/indra/pkg/traffic"
"git-indra.lan/indra-labs/indra/pkg/types"
"git-indra.lan/indra-labs/indra/pkg/util/slice"

View File

@@ -4,17 +4,16 @@ import (
"fmt"
"reflect"
"git-indra.lan/indra-labs/indra/pkg/onion"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/balance"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/confirm"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/crypt"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/delay"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/exit"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/forward"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/getbalance"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/response"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/reverse"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/session"
"git-indra.lan/indra-labs/indra/pkg/onion/balance"
"git-indra.lan/indra-labs/indra/pkg/onion/confirm"
"git-indra.lan/indra-labs/indra/pkg/onion/crypt"
"git-indra.lan/indra-labs/indra/pkg/onion/delay"
"git-indra.lan/indra-labs/indra/pkg/onion/exit"
"git-indra.lan/indra-labs/indra/pkg/onion/forward"
"git-indra.lan/indra-labs/indra/pkg/onion/getbalance"
"git-indra.lan/indra-labs/indra/pkg/onion/response"
"git-indra.lan/indra-labs/indra/pkg/onion/reverse"
"git-indra.lan/indra-labs/indra/pkg/onion/session"
"git-indra.lan/indra-labs/indra/pkg/traffic"
"git-indra.lan/indra-labs/indra/pkg/types"
"git-indra.lan/indra-labs/indra/pkg/util/slice"
@@ -85,7 +84,7 @@ func (eng *Engine) handleMessage(b slice.Bytes, prev types.Onion) {
var on1 types.Onion
var e error
c := slice.NewCursor()
if on1, e = onion.Peel(b, c); check(e) {
if on1, e = Peel(b, c); check(e) {
return
}
switch on := on1.(type) {

View File

@@ -6,8 +6,7 @@ import (
"git-indra.lan/indra-labs/lnd/lnd/lnwire"
"git-indra.lan/indra-labs/indra/pkg/crypto/nonce"
"git-indra.lan/indra-labs/indra/pkg/onion"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/session"
"git-indra.lan/indra-labs/indra/pkg/onion/session"
"git-indra.lan/indra-labs/indra/pkg/traffic"
"git-indra.lan/indra-labs/indra/pkg/util/cryptorand"
"git-indra.lan/indra-labs/indra/pkg/util/slice"
@@ -79,7 +78,7 @@ func (eng *Engine) BuyNewSessions(amount lnwire.MilliSatoshi,
}
}
// todo: handle payment failures!
o := onion.SendKeys(conf, s, returnSession, nodes[:], eng.KeySet)
o := SendKeys(conf, s, returnSession, nodes[:], eng.KeySet)
res := eng.PostAcctOnion(o)
eng.SendWithOneHook(nodes[0].AddrPort, res, func(id nonce.ID, b slice.Bytes) {
eng.SessionManager.Lock()

View File

@@ -4,14 +4,13 @@ import (
"git-indra.lan/indra-labs/lnd/lnd/lnwire"
"git-indra.lan/indra-labs/indra/pkg/crypto/nonce"
"git-indra.lan/indra-labs/indra/pkg/onion"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/balance"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/confirm"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/crypt"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/exit"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/forward"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/getbalance"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/reverse"
"git-indra.lan/indra-labs/indra/pkg/onion/balance"
"git-indra.lan/indra-labs/indra/pkg/onion/confirm"
"git-indra.lan/indra-labs/indra/pkg/onion/crypt"
"git-indra.lan/indra-labs/indra/pkg/onion/exit"
"git-indra.lan/indra-labs/indra/pkg/onion/forward"
"git-indra.lan/indra-labs/indra/pkg/onion/getbalance"
"git-indra.lan/indra-labs/indra/pkg/onion/reverse"
"git-indra.lan/indra-labs/indra/pkg/traffic"
"git-indra.lan/indra-labs/indra/pkg/util/slice"
)
@@ -28,8 +27,8 @@ type SendData struct {
// PostAcctOnion takes a slice of Skins and calculates their costs and
// the list of sessions inside them and attaches accounting operations to
// apply when the associated confirmation(s) or response hooks are executed.
func (eng *Engine) PostAcctOnion(o onion.Skins) (res SendData) {
res.b = onion.Encode(o.Assemble())
func (eng *Engine) PostAcctOnion(o Skins) (res SendData) {
res.b = Encode(o.Assemble())
// do client accounting
skip := false
for i := range o {

View File

@@ -4,7 +4,6 @@ import (
"time"
"git-indra.lan/indra-labs/indra/pkg/crypto/nonce"
"git-indra.lan/indra-labs/indra/pkg/onion"
"git-indra.lan/indra-labs/indra/pkg/traffic"
"git-indra.lan/indra-labs/indra/pkg/util/slice"
)
@@ -19,7 +18,7 @@ func (eng *Engine) SendExit(port uint16, message slice.Bytes, id nonce.ID,
se := eng.SelectHops(hops, s)
var c traffic.Circuit
copy(c[:], se)
o := onion.SendExit(port, message, id, se[len(se)-1], c, eng.KeySet)
o := SendExit(port, message, id, se[len(se)-1], c, eng.KeySet)
log.D.Ln("sending out exit onion")
res := eng.PostAcctOnion(o)
eng.SendWithOneHook(c[0].AddrPort, res, hook)
@@ -27,19 +26,19 @@ func (eng *Engine) SendExit(port uint16, message slice.Bytes, id nonce.ID,
func (eng *Engine) MakeExit(port uint16, message slice.Bytes, id nonce.ID,
target *traffic.Session) (c traffic.Circuit,
o onion.Skins) {
o Skins) {
hops := []byte{0, 1, 2, 3, 4, 5}
s := make(traffic.Sessions, len(hops))
s[2] = target
se := eng.SelectHops(hops, s)
copy(c[:], se)
o = onion.SendExit(port, message, id, se[len(se)-1], c, eng.KeySet)
o = SendExit(port, message, id, se[len(se)-1], c, eng.KeySet)
return
}
func (eng *Engine) SendExitNew(c traffic.Circuit,
o onion.Skins, hook func(id nonce.ID, b slice.Bytes),
o Skins, hook func(id nonce.ID, b slice.Bytes),
timeout time.Duration) {
log.D.Ln("sending out exit onion")

View File

@@ -2,7 +2,6 @@ package relay
import (
"git-indra.lan/indra-labs/indra/pkg/crypto/nonce"
"git-indra.lan/indra-labs/indra/pkg/onion"
"git-indra.lan/indra-labs/indra/pkg/traffic"
)
@@ -14,7 +13,7 @@ func (eng *Engine) SendGetBalance(target *traffic.Session, hook Callback) {
var c traffic.Circuit
copy(c[:], se)
confID := nonce.NewID()
o := onion.GetBalance(target.ID, confID, se[5], c, eng.KeySet)
o := GetBalance(target.ID, confID, se[5], c, eng.KeySet)
log.D.Ln("sending out getbalance onion")
res := eng.PostAcctOnion(o)
eng.SendWithOneHook(c[0].AddrPort, res, hook)

View File

@@ -7,25 +7,24 @@ import (
"git-indra.lan/indra-labs/lnd/lnd/lnwire"
"git-indra.lan/indra-labs/indra/pkg/crypto/nonce"
"git-indra.lan/indra-labs/indra/pkg/onion"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/balance"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/confirm"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/crypt"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/exit"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/forward"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/getbalance"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/reverse"
"git-indra.lan/indra-labs/indra/pkg/onion/balance"
"git-indra.lan/indra-labs/indra/pkg/onion/confirm"
"git-indra.lan/indra-labs/indra/pkg/onion/crypt"
"git-indra.lan/indra-labs/indra/pkg/onion/exit"
"git-indra.lan/indra-labs/indra/pkg/onion/forward"
"git-indra.lan/indra-labs/indra/pkg/onion/getbalance"
"git-indra.lan/indra-labs/indra/pkg/onion/reverse"
"git-indra.lan/indra-labs/indra/pkg/traffic"
"git-indra.lan/indra-labs/indra/pkg/util/slice"
)
func (eng *Engine) SendOnion(ap *netip.AddrPort, o onion.Skins,
func (eng *Engine) SendOnion(ap *netip.AddrPort, o Skins,
responseHook func(id nonce.ID, b slice.Bytes), timeout time.Duration) {
if timeout == 0 {
timeout = DefaultTimeout
}
b := onion.Encode(o.Assemble())
b := Encode(o.Assemble())
var billable []nonce.ID
var ret nonce.ID
var last nonce.ID

View File

@@ -2,7 +2,6 @@ package relay
import (
"git-indra.lan/indra-labs/indra/pkg/crypto/nonce"
"git-indra.lan/indra-labs/indra/pkg/onion"
"git-indra.lan/indra-labs/indra/pkg/traffic"
)
@@ -13,7 +12,7 @@ func (eng *Engine) SendPing(c traffic.Circuit, hook Callback) {
se := eng.SelectHops(hops, s)
copy(c[:], se)
confID := nonce.NewID()
o := onion.Ping(confID, se[len(se)-1], c, eng.KeySet)
o := Ping(confID, se[len(se)-1], c, eng.KeySet)
res := eng.PostAcctOnion(o)
eng.SendWithOneHook(c[0].AddrPort, res, hook)
}

View File

@@ -1,11 +1,11 @@
package onion
package relay
import (
"git-indra.lan/indra-labs/indra/pkg/crypto/key/prv"
"git-indra.lan/indra-labs/indra/pkg/crypto/key/pub"
"git-indra.lan/indra-labs/indra/pkg/crypto/key/signer"
"git-indra.lan/indra-labs/indra/pkg/crypto/nonce"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/session"
"git-indra.lan/indra-labs/indra/pkg/onion/session"
"git-indra.lan/indra-labs/indra/pkg/traffic"
"git-indra.lan/indra-labs/indra/pkg/util/slice"
)

View File

@@ -1,4 +1,4 @@
package onion
package relay
import (
"net/netip"
@@ -9,17 +9,17 @@ import (
"git-indra.lan/indra-labs/indra/pkg/crypto/key/prv"
"git-indra.lan/indra-labs/indra/pkg/crypto/key/pub"
"git-indra.lan/indra-labs/indra/pkg/crypto/nonce"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/balance"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/confirm"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/crypt"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/delay"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/exit"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/forward"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/getbalance"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/noop"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/response"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/reverse"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/session"
"git-indra.lan/indra-labs/indra/pkg/onion/balance"
"git-indra.lan/indra-labs/indra/pkg/onion/confirm"
"git-indra.lan/indra-labs/indra/pkg/onion/crypt"
"git-indra.lan/indra-labs/indra/pkg/onion/delay"
"git-indra.lan/indra-labs/indra/pkg/onion/exit"
"git-indra.lan/indra-labs/indra/pkg/onion/forward"
"git-indra.lan/indra-labs/indra/pkg/onion/getbalance"
"git-indra.lan/indra-labs/indra/pkg/onion/noop"
"git-indra.lan/indra-labs/indra/pkg/onion/response"
"git-indra.lan/indra-labs/indra/pkg/onion/reverse"
"git-indra.lan/indra-labs/indra/pkg/onion/session"
"git-indra.lan/indra-labs/indra/pkg/traffic"
"git-indra.lan/indra-labs/indra/pkg/types"
"git-indra.lan/indra-labs/indra/pkg/util/slice"
@@ -27,7 +27,7 @@ import (
type Skins []types.Onion
var os = &noop.Layer{}
var nop = &noop.Layer{}
func (o Skins) ForwardCrypt(s *traffic.Session, k *prv.Key,
n nonce.IV) Skins {
@@ -64,7 +64,7 @@ func (o Skins) Confirmation(id nonce.ID, load byte) Skins {
}
func (o Skins) Delay(d time.Duration) Skins {
return append(o, &delay.Layer{Duration: d, Onion: os})
return append(o, &delay.Layer{Duration: d, Onion: nop})
}
func (o Skins) Exit(port uint16, prvs [3]*prv.Key, pubs [3]*pub.Key,
@@ -76,7 +76,7 @@ func (o Skins) Exit(port uint16, prvs [3]*prv.Key, pubs [3]*pub.Key,
Nonces: nonces,
ID: id,
Bytes: payload,
Onion: os,
Onion: nop,
})
}
@@ -96,7 +96,7 @@ func (o Skins) GetBalance(id, confID nonce.ID, prvs [3]*prv.Key,
ConfID: confID,
Ciphers: GenCiphers(prvs, pubs),
Nonces: nonces,
Onion: os,
Onion: nop,
})
}
@@ -109,12 +109,12 @@ func (o Skins) Crypt(toHdr, toPld *pub.Key, from *prv.Key, n nonce.IV,
ToPayloadPub: toPld,
From: from,
Nonce: n,
Onion: os,
Onion: nop,
})
}
func (o Skins) Reverse(ip *netip.AddrPort) Skins {
return append(o, &reverse.Layer{AddrPort: ip, Onion: os})
return append(o, &reverse.Layer{AddrPort: ip, Onion: nop})
}
func (o Skins) Response(id nonce.ID, res slice.Bytes, port uint16) Skins {

View File

@@ -4,7 +4,7 @@ import (
"git-indra.lan/indra-labs/indra/pkg/crypto/ciph"
"git-indra.lan/indra-labs/indra/pkg/crypto/nonce"
"git-indra.lan/indra-labs/indra/pkg/crypto/sha256"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/crypt"
"git-indra.lan/indra-labs/indra/pkg/onion/crypt"
"git-indra.lan/indra-labs/indra/pkg/util/slice"
)

View File

@@ -2,10 +2,10 @@ package traffic
import (
"git-indra.lan/indra-labs/lnd/lnd/lnwire"
"git-indra.lan/indra-labs/indra/pkg/crypto/nonce"
"git-indra.lan/indra-labs/indra/pkg/crypto/sha256"
"git-indra.lan/indra-labs/indra/pkg/onion/layers/session"
"git-indra.lan/indra-labs/indra/pkg/onion/session"
)
type Payment struct {
@@ -20,7 +20,7 @@ type PaymentChan chan *Payment
// Send a payment on the PaymentChan.
func (pc PaymentChan) Send(amount lnwire.MilliSatoshi,
s *session.Layer) (confirmChan chan bool) {
confirmChan = make(chan bool)
pc <- &Payment{
ID: s.ID,
@@ -77,7 +77,7 @@ func (p PendingPayments) FindPreimage(pi sha256.Hash) (pp *Payment) {
func (sm *SessionManager) AddPendingPayment(
np *Payment) {
sm.Lock()
defer sm.Unlock()
log.D.F("%s adding pending payment %s for %v",
@@ -87,21 +87,21 @@ func (sm *SessionManager) AddPendingPayment(
}
func (sm *SessionManager) DeletePendingPayment(
preimage sha256.Hash) {
sm.Lock()
defer sm.Unlock()
sm.PendingPayments = sm.PendingPayments.Delete(preimage)
}
func (sm *SessionManager) FindPendingPayment(
id nonce.ID) (pp *Payment) {
sm.Lock()
defer sm.Unlock()
return sm.PendingPayments.Find(id)
}
func (sm *SessionManager) FindPendingPreimage(
pi sha256.Hash) (pp *Payment) {
log.T.F("searching preimage %x", pi)
sm.Lock()
defer sm.Unlock()