From c568044c2cf8136ff0df61513d046c8fea632b47 Mon Sep 17 00:00:00 2001 From: Sarah Jamie Lewis Date: Fri, 23 Apr 2021 13:41:52 -0700 Subject: [PATCH] Encode signatures thorugh the eventbus for NewMessageFromGroup --- peer/cwtch_peer.go | 2 +- storage/v1/profile_store.go | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/peer/cwtch_peer.go b/peer/cwtch_peer.go index cc2325c..b686a9f 100644 --- a/peer/cwtch_peer.go +++ b/peer/cwtch_peer.go @@ -704,7 +704,7 @@ func (cp *cwtchPeer) eventHandler() { ok, groupID, message, seen := cp.Profile.AttemptDecryption(ciphertext, signature) cp.mutex.Unlock() if ok && !seen { - cp.eventBus.Publish(event.NewEvent(event.NewMessageFromGroup, map[event.Field]string{event.TimestampReceived: message.Received.Format(time.RFC3339Nano), event.TimestampSent: message.Timestamp.Format(time.RFC3339Nano), event.Data: message.Message, event.GroupID: groupID, event.Signature: string(message.Signature), event.PreviousSignature: string(message.PreviousMessageSig), event.RemotePeer: message.PeerID})) + cp.eventBus.Publish(event.NewEvent(event.NewMessageFromGroup, map[event.Field]string{event.TimestampReceived: message.Received.Format(time.RFC3339Nano), event.TimestampSent: message.Timestamp.Format(time.RFC3339Nano), event.Data: message.Message, event.GroupID: groupID, event.Signature: base64.StdEncoding.EncodeToString(message.Signature), event.PreviousSignature:base64.StdEncoding.EncodeToString(message.PreviousMessageSig), event.RemotePeer: message.PeerID})) } case event.NewMessageFromPeer: //event.TimestampReceived, event.RemotePeer, event.Data diff --git a/storage/v1/profile_store.go b/storage/v1/profile_store.go index 2e271c6..5b73183 100644 --- a/storage/v1/profile_store.go +++ b/storage/v1/profile_store.go @@ -3,6 +3,7 @@ package v1 import ( "cwtch.im/cwtch/event" "cwtch.im/cwtch/model" + "encoding/base64" "encoding/json" "git.openprivacy.ca/openprivacy/log" "io/ioutil" @@ -402,7 +403,9 @@ func (ps *ProfileStoreV1) eventHandler() { groupid := ev.Data[event.GroupID] received, _ := time.Parse(time.RFC3339Nano, ev.Data[event.TimestampReceived]) sent, _ := time.Parse(time.RFC3339Nano, ev.Data[event.TimestampSent]) - message := model.Message{Received: received, Timestamp: sent, Message: ev.Data[event.Data], PeerID: ev.Data[event.RemotePeer], Signature: []byte(ev.Data[event.Signature]), PreviousMessageSig: []byte(ev.Data[event.PreviousSignature]), Acknowledged: true} + sig,_ := base64.StdEncoding.DecodeString(ev.Data[event.Signature]) + prevsig,_ := base64.StdEncoding.DecodeString(ev.Data[event.PreviousSignature]) + message := model.Message{Received: received, Timestamp: sent, Message: ev.Data[event.Data], PeerID: ev.Data[event.RemotePeer], Signature: sig, PreviousMessageSig: prevsig, Acknowledged: true} ss, exists := ps.streamStores[groupid] if exists { ss.Write(message)