From db61d3f6934452626485ef392dc3109e815db2df Mon Sep 17 00:00:00 2001 From: joshemb <josh@elixxir.io> Date: Fri, 26 Aug 2022 12:01:06 -0700 Subject: [PATCH] Finish refactor of SendE2e --- bindings/connect.go | 10 +++++----- cmd/connect.go | 4 ++-- connect/authenticated.go | 4 ++-- connect/utils_test.go | 6 ++---- fileTransfer/connect/send.go | 4 ++-- fileTransfer/connect/utils_test.go | 8 ++------ fileTransfer/connect/wrapper.go | 4 +--- fileTransfer/e2e/send.go | 4 ++-- fileTransfer/e2e/utils_test.go | 6 ++---- fileTransfer/e2e/wrapper.go | 4 +--- groupChat/sendRequests.go | 4 ++-- restlike/connect/receiver.go | 2 +- restlike/connect/request.go | 5 ++--- 13 files changed, 26 insertions(+), 39 deletions(-) diff --git a/bindings/connect.go b/bindings/connect.go index 5e9e55f8b..927d162aa 100644 --- a/bindings/connect.go +++ b/bindings/connect.go @@ -85,7 +85,7 @@ func (c *Cmix) Connect(e2eId int, recipientContact, e2eParamsJSON []byte) ( // - []byte - the JSON marshalled bytes of the E2ESendReport object, which can // be passed into Cmix.WaitForRoundResult to see if the send succeeded. func (c *Connection) SendE2E(mt int, payload []byte) ([]byte, error) { - rounds, mid, ts, keyResidue, err := c.connection.SendE2E(catalog.MessageType(mt), payload, + sendReport, err := c.connection.SendE2E(catalog.MessageType(mt), payload, c.params.Base) if err != nil { @@ -93,10 +93,10 @@ func (c *Connection) SendE2E(mt int, payload []byte) ([]byte, error) { } sr := E2ESendReport{ - RoundsList: makeRoundsList(rounds...), - MessageID: mid.Marshal(), - Timestamp: ts.UnixNano(), - KeyResidue: keyResidue.Marshal(), + RoundsList: makeRoundsList(sendReport.RoundList...), + MessageID: sendReport.MessageId.Marshal(), + Timestamp: sendReport.SentTime.UnixNano(), + KeyResidue: sendReport.KeyResidue.Marshal(), } return json.Marshal(&sr) diff --git a/cmd/connect.go b/cmd/connect.go index bb1e9ff17..7b31c2cd8 100644 --- a/cmd/connect.go +++ b/cmd/connect.go @@ -486,7 +486,7 @@ func miscConnectionFunctions(user *xxdk.E2e, conn connect.Connection) { conn.GetPartner().PartnerId()) payload := []byte(msgBody) for { - roundIDs, _, _, _, err := conn.SendE2E(catalog.XxMessage, payload, + sendReport, err := conn.SendE2E(catalog.XxMessage, payload, paramsE2E) if err != nil { jww.FATAL.Panicf("[CONN] Failed to send E2E message: %v", err) @@ -494,7 +494,7 @@ func miscConnectionFunctions(user *xxdk.E2e, conn connect.Connection) { // Verify message sends were successful when verifySendFlag is present if viper.GetBool(verifySendFlag) { - if !verifySendSuccess(user, paramsE2E, roundIDs, + if !verifySendSuccess(user, paramsE2E, sendReport.RoundList, conn.GetPartner().PartnerId(), payload) { continue } diff --git a/connect/authenticated.go b/connect/authenticated.go index de3d9e656..b2d63f758 100644 --- a/connect/authenticated.go +++ b/connect/authenticated.go @@ -98,7 +98,7 @@ func connectWithAuthentication(conn Connection, timeStart time.Time, } // Send message to server - rids, _, _, _, err := conn.SendE2E(catalog.ConnectionAuthenticationRequest, + sendReport, err := conn.SendE2E(catalog.ConnectionAuthenticationRequest, payload, clientE2e.GetDefaultParams()) if err != nil { // Close connection on an error @@ -139,7 +139,7 @@ func connectWithAuthentication(conn Connection, timeStart time.Time, // Track the result of the round(s) we sent the // identity authentication message on err = net.GetRoundResults(remainingTime, - roundCb, rids...) + roundCb, sendReport.RoundList...) if err != nil { return nil, errors.Errorf("could not track rounds for successful " + "identity confirmation message delivery") diff --git a/connect/utils_test.go b/connect/utils_test.go index 4414b2e8b..f94541927 100644 --- a/connect/utils_test.go +++ b/connect/utils_test.go @@ -16,7 +16,6 @@ import ( "gitlab.com/elixxir/comms/network" "gitlab.com/elixxir/crypto/contact" "gitlab.com/elixxir/crypto/cyclic" - cryptoE2e "gitlab.com/elixxir/crypto/e2e" "gitlab.com/elixxir/primitives/format" "gitlab.com/xx_network/comms/connect" "gitlab.com/xx_network/crypto/large" @@ -115,8 +114,7 @@ func (m *mockConnection) Close() error { func (m *mockConnection) GetPartner() partner.Manager { return m.partner } func (m *mockConnection) SendE2E( - mt catalog.MessageType, payload []byte, _ e2e.Params) ( - []id.Round, cryptoE2e.MessageID, time.Time, cryptoE2e.KeyResidue, error) { + mt catalog.MessageType, payload []byte, _ e2e.Params) (e2e.SendReport, error) { m.payloadChan <- payload m.listener.Hear(receive.Message{ MessageType: mt, @@ -124,7 +122,7 @@ func (m *mockConnection) SendE2E( Sender: m.partner.myID, RecipientID: m.partner.partnerId, }) - return nil, cryptoE2e.MessageID{}, time.Time{}, cryptoE2e.KeyResidue{}, nil + return e2e.SendReport{}, nil } func (m *mockConnection) RegisterListener( diff --git a/fileTransfer/connect/send.go b/fileTransfer/connect/send.go index 91dcfb675..0f0c0df19 100644 --- a/fileTransfer/connect/send.go +++ b/fileTransfer/connect/send.go @@ -45,7 +45,7 @@ func sendNewFileTransferMessage( params.LastServiceTag = catalog.Silent params.DebugTag = initialMessageDebugTag - _, _, _, _, err := connectionHandler.SendE2E( + _, err := connectionHandler.SendE2E( catalog.NewFileTransfer, transferInfo, params) if err != nil { return errors.Errorf(errNewFtSendE2e, err) @@ -65,7 +65,7 @@ func sendEndFileTransferMessage(cmix ft.Cmix, connectionHandler connection) { params.LastServiceTag = catalog.EndFT params.DebugTag = lastMessageDebugTag - _, _, _, _, err := connectionHandler.SendE2E( + _, err := connectionHandler.SendE2E( catalog.EndFileTransfer, nil, params) if err != nil { jww.ERROR.Printf(errEndFtSendE2e, err) diff --git a/fileTransfer/connect/utils_test.go b/fileTransfer/connect/utils_test.go index af9990b9c..927a70efb 100644 --- a/fileTransfer/connect/utils_test.go +++ b/fileTransfer/connect/utils_test.go @@ -26,7 +26,6 @@ import ( "gitlab.com/elixxir/client/xxdk" "gitlab.com/elixxir/comms/network" "gitlab.com/elixxir/crypto/cyclic" - e2eCrypto "gitlab.com/elixxir/crypto/e2e" "gitlab.com/elixxir/crypto/fastRNG" "gitlab.com/elixxir/ekv" "gitlab.com/elixxir/primitives/format" @@ -38,7 +37,6 @@ import ( "gitlab.com/xx_network/primitives/id" "gitlab.com/xx_network/primitives/id/ephemeral" "gitlab.com/xx_network/primitives/ndf" - "gitlab.com/xx_network/primitives/netTime" "sync" "testing" "time" @@ -268,8 +266,7 @@ func (m *mockConnection) GetPartner() partner.Manager { // SendE2E adds the message to the e2e handler map. func (m *mockConnection) SendE2E(mt catalog.MessageType, payload []byte, - _ e2e.Params) ([]id.Round, e2eCrypto.MessageID, time.Time, - e2eCrypto.KeyResidue, error) { + _ e2e.Params) (e2e.SendReport, error) { m.handler.Lock() defer m.handler.Unlock() @@ -279,8 +276,7 @@ func (m *mockConnection) SendE2E(mt catalog.MessageType, payload []byte, Sender: m.myID, }) - return []id.Round{42}, e2eCrypto.MessageID{}, netTime.Now(), - e2eCrypto.KeyResidue{}, nil + return e2e.SendReport{RoundList: []id.Round{42}}, nil } func (m *mockConnection) RegisterListener(mt catalog.MessageType, diff --git a/fileTransfer/connect/wrapper.go b/fileTransfer/connect/wrapper.go index b0943f5eb..2b0163aa7 100644 --- a/fileTransfer/connect/wrapper.go +++ b/fileTransfer/connect/wrapper.go @@ -13,9 +13,7 @@ import ( "gitlab.com/elixxir/client/e2e/ratchet/partner" "gitlab.com/elixxir/client/e2e/receive" ft "gitlab.com/elixxir/client/fileTransfer" - e2eCrypto "gitlab.com/elixxir/crypto/e2e" ftCrypto "gitlab.com/elixxir/crypto/fileTransfer" - "gitlab.com/xx_network/primitives/id" "time" ) @@ -41,7 +39,7 @@ type Wrapper struct { type connection interface { GetPartner() partner.Manager SendE2E(mt catalog.MessageType, payload []byte, params e2e.Params) ( - []id.Round, e2eCrypto.MessageID, time.Time, e2eCrypto.KeyResidue, error) + e2e.SendReport, error) RegisterListener(messageType catalog.MessageType, newListener receive.Listener) (receive.ListenerID, error) } diff --git a/fileTransfer/e2e/send.go b/fileTransfer/e2e/send.go index 017313dc2..6f19468dc 100644 --- a/fileTransfer/e2e/send.go +++ b/fileTransfer/e2e/send.go @@ -46,7 +46,7 @@ func sendNewFileTransferMessage( params.LastServiceTag = catalog.Silent params.DebugTag = initialMessageDebugTag - _, _, _, _, err := e2eHandler.SendE2E( + _, err := e2eHandler.SendE2E( catalog.NewFileTransfer, recipient, transferInfo, params) if err != nil { return errors.Errorf(errNewFtSendE2e, err) @@ -66,7 +66,7 @@ func sendEndFileTransferMessage(recipient *id.ID, cmix ft.Cmix, e2eHandler e2eHa params.LastServiceTag = catalog.EndFT params.DebugTag = lastMessageDebugTag - _, _, _, _, err := e2eHandler.SendE2E( + _, err := e2eHandler.SendE2E( catalog.EndFileTransfer, recipient, nil, params) if err != nil { jww.ERROR.Printf(errEndFtSendE2e, err) diff --git a/fileTransfer/e2e/utils_test.go b/fileTransfer/e2e/utils_test.go index c2ecdd01a..34265f35e 100644 --- a/fileTransfer/e2e/utils_test.go +++ b/fileTransfer/e2e/utils_test.go @@ -28,7 +28,6 @@ import ( "gitlab.com/elixxir/client/xxdk" "gitlab.com/elixxir/comms/network" "gitlab.com/elixxir/crypto/cyclic" - e "gitlab.com/elixxir/crypto/e2e" "gitlab.com/elixxir/crypto/fastRNG" "gitlab.com/elixxir/ekv" "gitlab.com/elixxir/primitives/format" @@ -40,7 +39,6 @@ import ( "gitlab.com/xx_network/primitives/id" "gitlab.com/xx_network/primitives/id/ephemeral" "gitlab.com/xx_network/primitives/ndf" - "gitlab.com/xx_network/primitives/netTime" "sync" "time" ) @@ -259,7 +257,7 @@ func (m *mockE2e) StartProcesses() (stoppable.Stoppable, error) { panic("impleme // SendE2E adds the message to the e2e handler map. func (m *mockE2e) SendE2E(mt catalog.MessageType, recipient *id.ID, - payload []byte, _ e2e.Params) ([]id.Round, e.MessageID, time.Time, e.KeyResidue, error) { + payload []byte, _ e2e.Params) (e2e.SendReport, error) { m.handler.listeners[mt].Hear(receive.Message{ MessageType: mt, @@ -268,7 +266,7 @@ func (m *mockE2e) SendE2E(mt catalog.MessageType, recipient *id.ID, RecipientID: recipient, }) - return []id.Round{42}, e.MessageID{}, netTime.Now(), e.KeyResidue{}, nil + return e2e.SendReport{RoundList: []id.Round{42}}, nil } func (m *mockE2e) RegisterListener(_ *id.ID, mt catalog.MessageType, diff --git a/fileTransfer/e2e/wrapper.go b/fileTransfer/e2e/wrapper.go index 12b44091b..ffb90b2b4 100644 --- a/fileTransfer/e2e/wrapper.go +++ b/fileTransfer/e2e/wrapper.go @@ -12,7 +12,6 @@ import ( "gitlab.com/elixxir/client/e2e" "gitlab.com/elixxir/client/e2e/receive" ft "gitlab.com/elixxir/client/fileTransfer" - e2eCrypto "gitlab.com/elixxir/crypto/e2e" ftCrypto "gitlab.com/elixxir/crypto/fileTransfer" "gitlab.com/xx_network/primitives/id" "time" @@ -39,8 +38,7 @@ type Wrapper struct { // for easier testing. type e2eHandler interface { SendE2E(mt catalog.MessageType, recipient *id.ID, payload []byte, - params e2e.Params) ([]id.Round, e2eCrypto.MessageID, time.Time, - e2eCrypto.KeyResidue, error) + params e2e.Params) (e2e.SendReport, error) RegisterListener(senderID *id.ID, messageType catalog.MessageType, newListener receive.Listener) receive.ListenerID } diff --git a/groupChat/sendRequests.go b/groupChat/sendRequests.go index 43648928b..ff566063a 100644 --- a/groupChat/sendRequests.go +++ b/groupChat/sendRequests.go @@ -120,13 +120,13 @@ func (m *manager) sendRequest(memberID *id.ID, request []byte) ([]id.Round, erro p.LastServiceTag = catalog.GroupRq p.DebugTag = "group.Request" - rounds, _, _, _, err := m.getE2eHandler().SendE2E( + sendReport, err := m.getE2eHandler().SendE2E( catalog.GroupCreationRequest, memberID, request, p) if err != nil { return nil, errors.Errorf(sendE2eErr, memberID, err) } - return rounds, nil + return sendReport.RoundList, nil } // roundIdMap2List converts the map of round IDs to a list of round IDs. diff --git a/restlike/connect/receiver.go b/restlike/connect/receiver.go index 051a91d3f..be76084b0 100644 --- a/restlike/connect/receiver.go +++ b/restlike/connect/receiver.go @@ -55,7 +55,7 @@ func respond(response *restlike.Message, conn connect.Connection) error { } // TODO: Parameterize params - _, _, _, _, err = conn.SendE2E(catalog.XxMessage, payload, e2e.GetDefaultParams()) + _, err = conn.SendE2E(catalog.XxMessage, payload, e2e.GetDefaultParams()) if err != nil { return errors.Errorf("unable to send restlike response message: %+v", err) } diff --git a/restlike/connect/request.go b/restlike/connect/request.go index 7d0b435c0..0dd35c27f 100644 --- a/restlike/connect/request.go +++ b/restlike/connect/request.go @@ -50,7 +50,7 @@ func (s *Request) Request(method restlike.Method, path restlike.URI, // Transmit the Message // fixme: should this use the key residue? - _, _, _, _, err = s.Net.SendE2E(catalog.XxMessage, msg, e2eParams) + _, err = s.Net.SendE2E(catalog.XxMessage, msg, e2eParams) if err != nil { return nil, err } @@ -85,7 +85,6 @@ func (s *Request) AsyncRequest(method restlike.Method, path restlike.URI, s.Net.RegisterListener(catalog.XxMessage, &response{responseCallback: cb}) // Transmit the Message - // fixme: should this use the key residue? - _, _, _, _, err = s.Net.SendE2E(catalog.XxMessage, msg, e2eParams) + _, err = s.Net.SendE2E(catalog.XxMessage, msg, e2eParams) return err } -- GitLab