From 20745d90ad567a32fea31c2a59ec74f72be385f6 Mon Sep 17 00:00:00 2001 From: "Richard T. Carback III" <rick.carback@gmail.com> Date: Tue, 7 Dec 2021 11:21:51 +0000 Subject: [PATCH] Group chat SIDH Fixes --- groupChat/makeGroup_test.go | 22 +++++++++++++++++++-- groupChat/receiveRequest_test.go | 33 +++++++++++++++++++++++++++++++- 2 files changed, 52 insertions(+), 3 deletions(-) diff --git a/groupChat/makeGroup_test.go b/groupChat/makeGroup_test.go index 6c38cae0f..b8a30199a 100644 --- a/groupChat/makeGroup_test.go +++ b/groupChat/makeGroup_test.go @@ -21,6 +21,8 @@ import ( "strconv" "strings" "testing" + util "gitlab.com/elixxir/client/storage/utility" + "github.com/cloudflare/circl/dh/sidh" ) // Tests that Manager.MakeGroup adds a group and returns the expected status. @@ -290,14 +292,30 @@ func addPartners(m *Manager, t *testing.T) ([]*id.ID, group.Membership, uid := id.NewIdFromUInt(uint64(i), id.User, t) dhKey := m.store.E2e().GetGroup().NewInt(int64(i + 42)) + myVariant := sidh.KeyVariantSidhA + prng := rand.New(rand.NewSource(int64(i+42))) + mySIDHPrivKey := util.NewSIDHPrivateKey(myVariant) + mySIDHPubKey := util.NewSIDHPublicKey(myVariant) + mySIDHPrivKey.Generate(prng) + mySIDHPrivKey.GeneratePublicKey(mySIDHPubKey) + + theirVariant := sidh.KeyVariant(sidh.KeyVariantSidhB) + theirSIDHPrivKey := util.NewSIDHPrivateKey(theirVariant) + theirSIDHPubKey := util.NewSIDHPublicKey(theirVariant) + theirSIDHPrivKey.Generate(prng) + theirSIDHPrivKey.GeneratePublicKey(theirSIDHPubKey) + // Add to lists memberIDs[i] = uid members = append(members, group.Member{ID: uid, DhKey: dhKey}) - dkl.Add(dhKey, group.Member{ID: uid, DhKey: dhKey}, m.store.E2e().GetGroup()) + dkl.Add(dhKey, group.Member{ID: uid, DhKey: dhKey}, + m.store.E2e().GetGroup()) // Add partner err := m.store.E2e().AddPartner(uid, dhKey, dhKey, - params.GetDefaultE2ESessionParams(), params.GetDefaultE2ESessionParams()) + theirSIDHPubKey, mySIDHPrivKey, + params.GetDefaultE2ESessionParams(), + params.GetDefaultE2ESessionParams()) if err != nil { t.Errorf("Failed to add partner %d: %+v", i, err) } diff --git a/groupChat/receiveRequest_test.go b/groupChat/receiveRequest_test.go index eda6c9e50..760e7685e 100644 --- a/groupChat/receiveRequest_test.go +++ b/groupChat/receiveRequest_test.go @@ -18,6 +18,8 @@ import ( "strings" "testing" "time" + util "gitlab.com/elixxir/client/storage/utility" + "github.com/cloudflare/circl/dh/sidh" ) // Tests that the correct group is received from the request. @@ -48,10 +50,24 @@ func TestManager_receiveRequest(t *testing.T) { MessageType: message.GroupCreationRequest, } + myVariant := sidh.KeyVariantSidhA + mySIDHPrivKey := util.NewSIDHPrivateKey(myVariant) + mySIDHPubKey := util.NewSIDHPublicKey(myVariant) + mySIDHPrivKey.Generate(prng) + mySIDHPrivKey.GeneratePublicKey(mySIDHPubKey) + + theirVariant := sidh.KeyVariant(sidh.KeyVariantSidhB) + theirSIDHPrivKey := util.NewSIDHPrivateKey(theirVariant) + theirSIDHPubKey := util.NewSIDHPublicKey(theirVariant) + theirSIDHPrivKey.Generate(prng) + theirSIDHPrivKey.GeneratePublicKey(theirSIDHPubKey) + + _ = m.store.E2e().AddPartner( g.Members[0].ID, g.Members[0].DhKey, m.store.E2e().GetGroup().NewInt(2), + theirSIDHPubKey, mySIDHPrivKey, params.GetDefaultE2ESessionParams(), params.GetDefaultE2ESessionParams(), ) @@ -161,11 +177,26 @@ func TestManager_receiveRequest_SendMessageTypeError(t *testing.T) { // Unit test of readRequest. func TestManager_readRequest(t *testing.T) { - m, g := newTestManager(rand.New(rand.NewSource(42)), t) + prng := rand.New(rand.NewSource(42)) + m, g := newTestManager(prng, t) + + myVariant := sidh.KeyVariantSidhA + mySIDHPrivKey := util.NewSIDHPrivateKey(myVariant) + mySIDHPubKey := util.NewSIDHPublicKey(myVariant) + mySIDHPrivKey.Generate(prng) + mySIDHPrivKey.GeneratePublicKey(mySIDHPubKey) + + theirVariant := sidh.KeyVariant(sidh.KeyVariantSidhB) + theirSIDHPrivKey := util.NewSIDHPrivateKey(theirVariant) + theirSIDHPubKey := util.NewSIDHPublicKey(theirVariant) + theirSIDHPrivKey.Generate(prng) + theirSIDHPrivKey.GeneratePublicKey(theirSIDHPubKey) + _ = m.store.E2e().AddPartner( g.Members[0].ID, g.Members[0].DhKey, m.store.E2e().GetGroup().NewInt(2), + theirSIDHPubKey, mySIDHPrivKey, params.GetDefaultE2ESessionParams(), params.GetDefaultE2ESessionParams(), ) -- GitLab