From 718f55018076a6a7e772b6ffec643a3ac98a7b99 Mon Sep 17 00:00:00 2001 From: Sudo-Ivan Date: Thu, 1 Jan 2026 00:59:24 -0600 Subject: [PATCH] feat: add KISS protocol escape functions in new kiss.go interface --- pkg/interfaces/kiss.go | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 pkg/interfaces/kiss.go diff --git a/pkg/interfaces/kiss.go b/pkg/interfaces/kiss.go new file mode 100644 index 0000000..6f6a5bd --- /dev/null +++ b/pkg/interfaces/kiss.go @@ -0,0 +1,25 @@ +// SPDX-License-Identifier: 0BSD +// Copyright (c) 2024-2026 Sudo-Ivan / Quad4.io +package interfaces + +const ( + KISS_FEND = 0xC0 + KISS_FESC = 0xDB + KISS_TFEND = 0xDC + KISS_TFESC = 0xDD +) + +func escapeKISS(data []byte) []byte { + escaped := make([]byte, 0, len(data)*2) + for _, b := range data { + if b == KISS_FEND { + escaped = append(escaped, KISS_FESC, KISS_TFEND) + } else if b == KISS_FESC { + escaped = append(escaped, KISS_FESC, KISS_TFESC) + } else { + escaped = append(escaped, b) + } + } + return escaped +} +