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