From dcc2fb8bdc38a05aeca974c0a35c1695717a15f4 Mon Sep 17 00:00:00 2001 From: Bernd Schoolmann Date: Fri, 22 Dec 2023 15:29:58 +0100 Subject: [PATCH] Add debug logging --- .gitignore | 1 - browserbiometrics/communication.go | 2 +- browserbiometrics/logging/debuglogger.go | 32 ++++++++++++++++++++++++ browserbiometrics/logging/nooplogger.go | 2 +- browserbiometrics/main.go | 4 +++ browserbiometrics/protocol.go | 2 ++ 6 files changed, 40 insertions(+), 3 deletions(-) create mode 100644 browserbiometrics/logging/debuglogger.go diff --git a/.gitignore b/.gitignore index 26bab9a..034f749 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,2 @@ .vscode -*debug* goldwarden* \ No newline at end of file diff --git a/browserbiometrics/communication.go b/browserbiometrics/communication.go index 534cc6d..89d95b4 100644 --- a/browserbiometrics/communication.go +++ b/browserbiometrics/communication.go @@ -52,7 +52,7 @@ func readMessageLength(msg []byte) int { func send(msg SendMessage) { byteMsg := dataToBytes(msg) - logging.Debugf("Sending message: " + string(byteMsg)) + logging.Debugf("[SENSITIVE] Sending message: " + string(byteMsg)) writeMessageLength(byteMsg) var msgBuf bytes.Buffer diff --git a/browserbiometrics/logging/debuglogger.go b/browserbiometrics/logging/debuglogger.go new file mode 100644 index 0000000..9b6966c --- /dev/null +++ b/browserbiometrics/logging/debuglogger.go @@ -0,0 +1,32 @@ +//go:build !nooplogging + +package logging + +import ( + "fmt" + "os" + "time" +) + +func writeLog(level string, format string, args ...interface{}) { + file, _ := os.OpenFile("/tmp/DELETE_ME.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) + // log with date and time + file.WriteString("[" + level + "] ") + file.WriteString(time.Now().Format("2006-01-02 15:04:05") + " ") + file.WriteString(fmt.Sprintf(format, args...)) + file.WriteString("\n") + file.Close() +} + +func Debugf(format string, args ...interface{}) { + writeLog("DEBUG", format, args...) +} + +func Errorf(format string, args ...interface{}) { + writeLog("ERROR", format, args...) +} + +func Panicf(format string, args ...interface{}) { + writeLog("PANIC", format, args...) + panic("") +} diff --git a/browserbiometrics/logging/nooplogger.go b/browserbiometrics/logging/nooplogger.go index a769ab2..7a5bdd7 100644 --- a/browserbiometrics/logging/nooplogger.go +++ b/browserbiometrics/logging/nooplogger.go @@ -1,4 +1,4 @@ -//go:build !logging +//go:build nooplogging package logging diff --git a/browserbiometrics/main.go b/browserbiometrics/main.go index d3b7bab..be3617e 100644 --- a/browserbiometrics/main.go +++ b/browserbiometrics/main.go @@ -5,6 +5,8 @@ import ( "os" "path/filepath" "strings" + + "github.com/quexten/goldwarden/browserbiometrics/logging" ) const appID = "com.quexten.bw-bio-handler" @@ -25,7 +27,9 @@ func Main() { return } + logging.Debugf("Starting browserbiometrics") transportKey = generateTransportKey() + logging.Debugf("Generated transport key") setupCommunication() readLoop() diff --git a/browserbiometrics/protocol.go b/browserbiometrics/protocol.go index 050b16e..ecf97b0 100644 --- a/browserbiometrics/protocol.go +++ b/browserbiometrics/protocol.go @@ -18,11 +18,13 @@ func readLoop() { lengthBytes := make([]byte, 4) lengthNum := int(0) + logging.Debugf("Sending connected message") send(SendMessage{ Command: "connected", AppID: appID, }) + logging.Debugf("Starting read loop") for b, err := s.Read(lengthBytes); b > 0 && err == nil; b, err = s.Read(lengthBytes) { lengthNum = readMessageLength(lengthBytes)