working codec

This commit is contained in:
Mark Puha 2025-02-09 18:34:36 +01:00
parent 1e532c1e71
commit 068e146538
4 changed files with 13 additions and 32 deletions

View file

@ -69,7 +69,6 @@ func (l *Lua) Parse(data []byte) ([]byte, error) {
result := l.state.ToBytes(-1)
l.state.Pop(1)
// copy(data, result)
return result, nil
}

View file

@ -107,7 +107,7 @@ func genASecurityConfigs(tb testing.TB) (cfgs, endpointCfgs [2]string) {
"private_key", hex.EncodeToString(key1[:]),
"listen_port", "0",
"replace_peers", "true",
"lua_codec", "CQkJZnVuY3Rpb24gZF9nZW4obXNnX3R5cGUsIGRhdGEsIGNvdW50ZXIpCgkJCQlyZXR1cm4gZGF0YQoJCQllbmQKCgkJCWZ1bmN0aW9uIGRfcGFyc2UoZGF0YSkKCQkJCXJldHVybiBkYXRhCgkJCWVuZAo=",
"lua_codec", "CQkJZnVuY3Rpb24gZF9nZW4obXNnX3R5cGUsIGRhdGEsIGNvdW50ZXIpCgkJCQlsb2NhbCBoZWFkZXIgPSAiaGVhZGVyIgoJCQkJcmV0dXJuIGhlYWRlciAuLiBkYXRhCgkJCWVuZAoKCQkJZnVuY3Rpb24gZF9wYXJzZShkYXRhKQoJCQkJbG9jYWwgaGVhZGVyID0gImhlYWRlciIKCQkJCXJldHVybiBzdHJpbmcuc3ViKGRhdGEsICNoZWFkZXIrMSkKCQkJZW5kCg==",
"jc", "5",
"jmin", "500",
"jmax", "1000",
@ -130,7 +130,7 @@ func genASecurityConfigs(tb testing.TB) (cfgs, endpointCfgs [2]string) {
"private_key", hex.EncodeToString(key2[:]),
"listen_port", "0",
"replace_peers", "true",
"lua_codec", "CQkJZnVuY3Rpb24gZF9nZW4obXNnX3R5cGUsIGRhdGEsIGNvdW50ZXIpCgkJCQlyZXR1cm4gZGF0YQoJCQllbmQKCgkJCWZ1bmN0aW9uIGRfcGFyc2UoZGF0YSkKCQkJCXJldHVybiBkYXRhCgkJCWVuZAo=",
"lua_codec", "CQkJZnVuY3Rpb24gZF9nZW4obXNnX3R5cGUsIGRhdGEsIGNvdW50ZXIpCgkJCQlsb2NhbCBoZWFkZXIgPSAiaGVhZGVyIgoJCQkJcmV0dXJuIGhlYWRlciAuLiBkYXRhCgkJCWVuZAoKCQkJZnVuY3Rpb24gZF9wYXJzZShkYXRhKQoJCQkJbG9jYWwgaGVhZGVyID0gImhlYWRlciIKCQkJCXJldHVybiBzdHJpbmcuc3ViKGRhdGEsICNoZWFkZXIrMSkKCQkJZW5kCg==",
"jc", "5",
"jmin", "500",
"jmax", "1000",
@ -194,7 +194,6 @@ func (pair *testPair) Send(
var err error
select {
case msgRecv := <-p0.tun.Inbound:
fmt.Printf("len(%d) msg: %x\nlen(%d) rec: %x\n", len(msg), msg, len(msgRecv), msgRecv)
if !bytes.Equal(msg, msgRecv) {
err = fmt.Errorf("%s did not transit correctly", ping)
}

View file

@ -9,7 +9,6 @@ import (
"bytes"
"encoding/binary"
"errors"
"fmt"
"net"
"sync"
"time"
@ -138,28 +137,22 @@ func (device *Device) RoutineReceiveIncoming(
continue
}
// check size of packet
packet := bufsArrs[i][:size]
fmt.Printf("bufsArrs size: %d\n%.100x\n", size, bufsArrs[i])
fmt.Printf("packet before: %x\n", packet)
if device.awg.luaAdapter != nil {
ptr:= unsafe.Pointer(bufsArrs[i]) // Get pointer to the array
slicePtr:= (*byte)(ptr) // Type conversion to the array type
realPacket, err := device.awg.luaAdapter.Parse(packet)
// Copy data from newSlice to the memory pointed to by slicedPtr
newSliceLen:= len(realPacket)
for j:= 0; j < newSliceLen; j++ {
*(*byte)(unsafe.Pointer(uintptr(unsafe.Pointer(slicePtr)) + uintptr(j))) = realPacket[j]
packetPtr := (*byte)(unsafe.Pointer(bufsArrs[i])) // Get pointer to the array
// Copy data from realPacket to the memory pointed to by bufsArrs[i]
size = len(realPacket)
for j := 0; j < size; j++ {
*(*byte)(unsafe.Pointer(uintptr(unsafe.Pointer(packetPtr)) + uintptr(j))) = realPacket[j]
}
fmt.Printf("packet after: %x\n", packet)
fmt.Printf("bufsArs after size: %d\n%.100x\n", size, bufsArrs[i])
// diff := size - len(packet)
// bufsArrs[i][:len(packet)] = bufsArrs[i][diff:len(packet)]
size = len(packet)
fmt.Println("after size: ", size)
packet = bufsArrs[i][:size]
if err != nil {
device.log.Verbosef("Couldn't parse message; reason: %v", err)
device.log.Verbosef(
"Couldn't parse message; reason: %v",
err,
)
continue
}
}
@ -303,7 +296,6 @@ func (device *Device) RoutineDecryption(id int) {
elem.counter = binary.LittleEndian.Uint64(counter)
// copy counter to nonce
binary.LittleEndian.PutUint64(nonce[0x4:0xc], elem.counter)
fmt.Printf("before decrypt: %x\n", elem.packet)
elem.packet, err = elem.keypair.receive.Open(
content[:0],
nonce[:],
@ -314,7 +306,6 @@ func (device *Device) RoutineDecryption(id int) {
if err != nil {
elem.packet = nil
}
fmt.Printf("decrypt: %x\n", elem.packet)
}
elemsContainer.Unlock()
}
@ -572,13 +563,10 @@ func (peer *Peer) RoutineSequentialReceiver(maxBatchSize int) {
continue
}
fmt.Printf("bufs packet: %x\n", elem.packet)
fmt.Printf("bufs packet: %x\n", elem.buffer[len(elem.packet)+1:MessageTransportOffsetContent+len(elem.packet)])
bufs = append(
bufs,
elem.buffer[:MessageTransportOffsetContent+len(elem.packet)],
)
fmt.Printf("bufs before send: %.100x\n", elem.buffer)
}
peer.rxBytes.Add(rxBytesLen)
@ -592,7 +580,6 @@ func (peer *Peer) RoutineSequentialReceiver(maxBatchSize int) {
peer.timersDataReceived()
}
if len(bufs) > 0 {
fmt.Printf("bufs: %x\n", bufs)
_, err := device.tun.device.Write(bufs, MessageTransportOffsetContent)
if err != nil && !device.isClosed() {
device.log.Errorf("Failed to write packets to TUN device: %v", err)

View file

@ -9,7 +9,6 @@ import (
"bytes"
"encoding/binary"
"errors"
"fmt"
"net"
"os"
"sync"
@ -592,12 +591,10 @@ func (device *Device) RoutineEncryption(id int) {
elem.packet,
nil,
)
fmt.Printf("msg: %x\n", elem.packet)
var err error
if elem.packet, err = device.codecPacket(DefaultMessageTransportType, elem.packet); err != nil {
continue
}
fmt.Printf("msgmsg: %x\n", elem.packet)
}
elemsContainer.Unlock()
}
@ -652,7 +649,6 @@ func (peer *Peer) RoutineSequentialSender(maxBatchSize int) {
peer.timersDataSent()
}
for _, elem := range elemsContainer.elems {
fmt.Printf("send buffer: %.200x\n", elem.buffer)
device.PutMessageBuffer(elem.buffer)
device.PutOutboundElement(elem)
}