From 4e4eb7071100cbaadf25a95ab5703d5a1120bbc6 Mon Sep 17 00:00:00 2001 From: Benjamin Wenger <ben@elixxir.ioo> Date: Thu, 6 Jan 2022 16:50:21 -0800 Subject: [PATCH] added a ton of logging to garbled messages --- network/message/garbled.go | 13 +++++++++++-- network/message/sendCmixUtils.go | 4 +++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/network/message/garbled.go b/network/message/garbled.go index 537fedc04..d03fcf7cf 100644 --- a/network/message/garbled.go +++ b/network/message/garbled.go @@ -8,10 +8,12 @@ package message import ( + "encoding/base64" "fmt" jww "github.com/spf13/jwalterweatherman" "gitlab.com/elixxir/client/interfaces/message" "gitlab.com/elixxir/client/stoppable" + "gitlab.com/elixxir/crypto/fingerprint" "gitlab.com/elixxir/primitives/format" "gitlab.com/xx_network/primitives/id" "gitlab.com/xx_network/primitives/id/ephemeral" @@ -45,6 +47,7 @@ func (m *Manager) processGarbledMessages(stop *stoppable.Single) { stop.ToStopped() return case <-m.triggerGarbled: + jww.INFO.Printf("[GARBLE] Checking Garbled messages") m.handleGarbledMessages() } } @@ -56,11 +59,16 @@ func (m *Manager) handleGarbledMessages() { e2eKv := m.Session.E2e() var failedMsgs []format.Message //try to decrypt every garbled message, excising those who's counts are too high + i:=0 for grbldMsg, count, timestamp, has := garbledMsgs.Next(); has; grbldMsg, count, timestamp, has = garbledMsgs.Next() { //if it exists, check against all in the list modifiedContents := append([]byte{0}, grbldMsg.GetContents()...) - identity := m.Session.GetUser().GetContact().ID - _, forMe, _ := m.Session.GetEdge().Check(identity, grbldMsg.GetIdentityFP(), modifiedContents) + identity := m.Session.GetUser().ReceptionID + hasID, forMe, _ := m.Session.GetEdge().Check(identity, grbldMsg.GetIdentityFP(), modifiedContents) + jww.INFO.Printf("[GARBLE] Msg %d -- hasID: %t, forMe: %t, identity: %s, " + + "fp: %s, contentsHash: %s", i, hasID, forMe, identity, + base64.StdEncoding.EncodeToString(grbldMsg.GetIdentityFP()), + base64.StdEncoding.EncodeToString(fingerprint.GetMessageHash(modifiedContents))) if forMe { fingerprint := grbldMsg.GetKeyFP() // Check if the key is there, process it if it is @@ -121,6 +129,7 @@ func (m *Manager) handleGarbledMessages() { m.Session.GetGarbledMessages().Add(grbldMsg) m.Switchboard.Speak(raw) } + i++ } // fail the message if any part of the decryption fails, diff --git a/network/message/sendCmixUtils.go b/network/message/sendCmixUtils.go index b39acd437..95c79b0ed 100644 --- a/network/message/sendCmixUtils.go +++ b/network/message/sendCmixUtils.go @@ -8,6 +8,7 @@ package message import ( + "encoding/base64" "github.com/pkg/errors" jww "github.com/spf13/jwalterweatherman" "gitlab.com/elixxir/client/interfaces/message" @@ -159,7 +160,8 @@ func buildSlotMessage(msg format.Message, recipient *id.ID, target *id.ID, msg.SetIdentityFP(ifp) - jww.INFO.Printf("Sending to %s with preimage %v, ifp: %v", recipient, preimage, ifp) + jww.INFO.Printf("Sending to %s with preimage %v, ifp: %v, messageHash: %s", recipient, preimage, + ifp, base64.StdEncoding.EncodeToString(append([]byte{0}, msg.GetContents()...))) // Encrypt the message salt := make([]byte, 32) -- GitLab