diff --git a/e2e/ratchet/partner/manager_test.go b/e2e/ratchet/partner/manager_test.go index 1e2cc9ce058d4948721ff151fcf3719f6183604a..776f48f707a3a190cb7be490e54245ea6edb5efa 100644 --- a/e2e/ratchet/partner/manager_test.go +++ b/e2e/ratchet/partner/manager_test.go @@ -33,8 +33,8 @@ func Test_newManager(t *testing.T) { m := NewManager(kv, expectedM.myID, expectedM.partner, expectedM.originMyPrivKey, expectedM.originPartnerPubKey, expectedM.originMySIDHPrivKey, - expectedM.originPartnerSIDHPubKey, session.GetDefaultE2ESessionParams(), - session.GetDefaultE2ESessionParams(), + expectedM.originPartnerSIDHPubKey, session.GetDefaultParams(), + session.GetDefaultParams(), expectedM.cyHandler, expectedM.grp, expectedM.rng) // Check if the new relationship matches the expected @@ -113,10 +113,10 @@ func TestManager_NewReceiveSession(t *testing.T) { m.originMyPrivKey, partnerPrivKey, baseKey, m.originMySIDHPrivKey, partnerSIDHPubKey, sid, []byte(""), session.Sent, - session.GetDefaultE2ESessionParams(), m.cyHandler, m.grp, m.rng) + session.GetDefaultParams(), m.cyHandler, m.grp, m.rng) se, exists := m.NewReceiveSession(partnerPubKey, partnerSIDHPubKey, - session.GetDefaultE2ESessionParams(), thisSession) + session.GetDefaultParams(), thisSession) if exists { t.Errorf("NewReceiveSession() incorrect return value."+ "\n\texpected: %v\n\treceived: %v", false, exists) @@ -130,7 +130,7 @@ func TestManager_NewReceiveSession(t *testing.T) { } se, exists = m.NewReceiveSession(partnerPubKey, partnerSIDHPubKey, - session.GetDefaultE2ESessionParams(), thisSession) + session.GetDefaultParams(), thisSession) if !exists { t.Errorf("NewReceiveSession() incorrect return value."+ "\n\texpected: %v\n\treceived: %v", true, exists) @@ -150,7 +150,7 @@ func TestManager_NewSendSession(t *testing.T) { m, _ := newTestManager(t) se := m.NewSendSession(m.originMyPrivKey, m.originMySIDHPrivKey, - session.GetDefaultE2ESessionParams(), m.send.sessions[0]) + session.GetDefaultParams(), m.send.sessions[0]) if !m.partner.Cmp(se.GetPartner()) { t.Errorf("NewSendSession() did not return the correct session."+ "\n\texpected partner: %v\n\treceived partner: %v", @@ -158,7 +158,7 @@ func TestManager_NewSendSession(t *testing.T) { } se, _ = m.NewReceiveSession(m.originPartnerPubKey, m.originPartnerSIDHPubKey, - session.GetDefaultE2ESessionParams(), m.receive.sessions[0]) + session.GetDefaultParams(), m.receive.sessions[0]) if !m.partner.Cmp(se.GetPartner()) { t.Errorf("NewSendSession() did not return the correct session."+ "\n\texpected partner: %v\n\treceived partner: %v", @@ -290,7 +290,7 @@ func TestManager_Confirm(t *testing.T) { m.send.AddSession(m.originMyPrivKey, partnerPrivKey, baseKey, m.originMySIDHPrivKey, partnerSIDHPubKey, sid, - session.Sending, session.GetDefaultE2ESessionParams()) + session.Sending, session.GetDefaultParams()) thisSession := m.send.GetByID(sid) thisSession.TriggerNegotiation() diff --git a/e2e/ratchet/partner/relationship_test.go b/e2e/ratchet/partner/relationship_test.go index d8c1b3c56c84d2686ac9e50f36c8008085bf7491..9100087a8bf5d98ef7b5c75a464959d6d7725a07 100644 --- a/e2e/ratchet/partner/relationship_test.go +++ b/e2e/ratchet/partner/relationship_test.go @@ -26,7 +26,7 @@ import ( // Subtest: unmarshal/marshal with one session in the buff func TestRelationship_MarshalUnmarshal(t *testing.T) { mgr, kv := makeTestRelationshipManager(t) - sb := NewRelationship(kv, session.Send, mgr.myID, mgr.partner, mgr.originMyPrivKey, mgr.originPartnerPubKey, mgr.originMySIDHPrivKey, mgr.originPartnerSIDHPubKey, session.GetDefaultE2ESessionParams(), mockCyHandler{}, mgr.grp, mgr.rng) + sb := NewRelationship(kv, session.Send, mgr.myID, mgr.partner, mgr.originMyPrivKey, mgr.originPartnerPubKey, mgr.originMySIDHPrivKey, mgr.originPartnerSIDHPubKey, session.GetDefaultParams(), mockCyHandler{}, mgr.grp, mgr.rng) // Serialization should include session slice only serialized, err := sb.marshal() @@ -56,7 +56,7 @@ func TestRelationship_MarshalUnmarshal(t *testing.T) { // Shows that Relationship returns an equivalent session buff to the one that was saved func TestLoadRelationship(t *testing.T) { mgr, kv := makeTestRelationshipManager(t) - sb := NewRelationship(kv, session.Send, mgr.myID, mgr.partner, mgr.originMyPrivKey, mgr.originPartnerPubKey, mgr.originMySIDHPrivKey, mgr.originPartnerSIDHPubKey, session.GetDefaultE2ESessionParams(), mockCyHandler{}, mgr.grp, mgr.rng) + sb := NewRelationship(kv, session.Send, mgr.myID, mgr.partner, mgr.originMyPrivKey, mgr.originPartnerPubKey, mgr.originMySIDHPrivKey, mgr.originPartnerSIDHPubKey, session.GetDefaultParams(), mockCyHandler{}, mgr.grp, mgr.rng) err := sb.save() if err != nil { @@ -78,13 +78,13 @@ func TestDeleteRelationship(t *testing.T) { mgr, kv := makeTestRelationshipManager(t) // Generate send relationship - mgr.send = NewRelationship(kv, session.Send, mgr.myID, mgr.partner, mgr.originMyPrivKey, mgr.originPartnerPubKey, mgr.originMySIDHPrivKey, mgr.originPartnerSIDHPubKey, session.GetDefaultE2ESessionParams(), mockCyHandler{}, mgr.grp, mgr.rng) + mgr.send = NewRelationship(kv, session.Send, mgr.myID, mgr.partner, mgr.originMyPrivKey, mgr.originPartnerPubKey, mgr.originMySIDHPrivKey, mgr.originPartnerSIDHPubKey, session.GetDefaultParams(), mockCyHandler{}, mgr.grp, mgr.rng) if err := mgr.send.save(); err != nil { t.Fatal(err) } // Generate receive relationship - mgr.receive = NewRelationship(kv, session.Receive, mgr.myID, mgr.partner, mgr.originMyPrivKey, mgr.originPartnerPubKey, mgr.originMySIDHPrivKey, mgr.originPartnerSIDHPubKey, session.GetDefaultE2ESessionParams(), mockCyHandler{}, mgr.grp, mgr.rng) + mgr.receive = NewRelationship(kv, session.Receive, mgr.myID, mgr.partner, mgr.originMyPrivKey, mgr.originPartnerPubKey, mgr.originMySIDHPrivKey, mgr.originPartnerSIDHPubKey, session.GetDefaultParams(), mockCyHandler{}, mgr.grp, mgr.rng) if err := mgr.receive.save(); err != nil { t.Fatal(err) } @@ -115,7 +115,7 @@ func TestRelationship_deleteRelationshipFingerprint(t *testing.T) { }() mgr, kv := makeTestRelationshipManager(t) - sb := NewRelationship(kv, session.Send, mgr.myID, mgr.partner, mgr.originMyPrivKey, mgr.originPartnerPubKey, mgr.originMySIDHPrivKey, mgr.originPartnerSIDHPubKey, session.GetDefaultE2ESessionParams(), mockCyHandler{}, mgr.grp, mgr.rng) + sb := NewRelationship(kv, session.Send, mgr.myID, mgr.partner, mgr.originMyPrivKey, mgr.originPartnerPubKey, mgr.originMySIDHPrivKey, mgr.originPartnerSIDHPubKey, session.GetDefaultParams(), mockCyHandler{}, mgr.grp, mgr.rng) err := sb.save() if err != nil { @@ -134,7 +134,7 @@ func TestRelationship_deleteRelationshipFingerprint(t *testing.T) { // Shows that Relationship returns a valid session buff func TestNewRelationshipBuff(t *testing.T) { mgr, kv := makeTestRelationshipManager(t) - sb := NewRelationship(kv, session.Send, mgr.myID, mgr.partner, mgr.originMyPrivKey, mgr.originPartnerPubKey, mgr.originMySIDHPrivKey, mgr.originPartnerSIDHPubKey, session.GetDefaultE2ESessionParams(), mockCyHandler{}, mgr.grp, mgr.rng) + sb := NewRelationship(kv, session.Send, mgr.myID, mgr.partner, mgr.originMyPrivKey, mgr.originPartnerPubKey, mgr.originMySIDHPrivKey, mgr.originPartnerSIDHPubKey, session.GetDefaultParams(), mockCyHandler{}, mgr.grp, mgr.rng) if sb.sessionByID == nil || len(sb.sessionByID) != 1 { t.Error("session map should not be nil, and should have one " + @@ -149,7 +149,7 @@ func TestNewRelationshipBuff(t *testing.T) { // Shows that AddSession adds one session to the relationship func TestRelationship_AddSession(t *testing.T) { mgr, kv := makeTestRelationshipManager(t) - sb := NewRelationship(kv, session.Send, mgr.myID, mgr.partner, mgr.originMyPrivKey, mgr.originPartnerPubKey, mgr.originMySIDHPrivKey, mgr.originPartnerSIDHPubKey, session.GetDefaultE2ESessionParams(), mockCyHandler{}, mgr.grp, mgr.rng) + sb := NewRelationship(kv, session.Send, mgr.myID, mgr.partner, mgr.originMyPrivKey, mgr.originPartnerPubKey, mgr.originMySIDHPrivKey, mgr.originPartnerSIDHPubKey, session.GetDefaultParams(), mockCyHandler{}, mgr.grp, mgr.rng) if len(sb.sessions) != 1 { t.Error("starting session slice length should be 1") @@ -197,14 +197,14 @@ func TestRelationship_AddSession(t *testing.T) { myPrivKey, partnerPubKey, baseKey, mySIDHPrivKey, partnerSIDHPubKey, sid, []byte(""), session.Sending, - session.GetDefaultE2ESessionParams(), mockCyHandler{}, grp, frng) + session.GetDefaultParams(), mockCyHandler{}, grp, frng) // Note: AddSession doesn't change the session relationship or set anything else up // to match the session to the session buffer. To work properly, the session // should have been created using the same relationship (which is not the case in // this test.) sb.AddSession(myPrivKey, partnerPubKey, baseKey, mySIDHPrivKey, partnerSIDHPubKey, - sid, session.Sending, session.GetDefaultE2ESessionParams()) + sid, session.Sending, session.GetDefaultParams()) if len(sb.sessions) != 2 { t.Error("ending session slice length should be 2") } @@ -219,7 +219,7 @@ func TestRelationship_AddSession(t *testing.T) { // GetNewest should get the session that was most recently added to the buff func TestRelationship_GetNewest(t *testing.T) { mgr, kv := makeTestRelationshipManager(t) - sb := NewRelationship(kv, session.Send, mgr.myID, mgr.partner, mgr.originMyPrivKey, mgr.originPartnerPubKey, mgr.originMySIDHPrivKey, mgr.originPartnerSIDHPubKey, session.GetDefaultE2ESessionParams(), mockCyHandler{}, mgr.grp, mgr.rng) + sb := NewRelationship(kv, session.Send, mgr.myID, mgr.partner, mgr.originMyPrivKey, mgr.originPartnerPubKey, mgr.originMySIDHPrivKey, mgr.originPartnerSIDHPubKey, session.GetDefaultParams(), mockCyHandler{}, mgr.grp, mgr.rng) // The newest session should be nil upon session buffer creation nilSession := sb.GetNewest() @@ -267,11 +267,11 @@ func TestRelationship_GetNewest(t *testing.T) { myPrivKey, partnerPubKey, baseKey, mySIDHPrivKey, partnerSIDHPubKey, sid, []byte(""), session.Unconfirmed, - session.GetDefaultE2ESessionParams(), mockCyHandler{}, grp, frng) + session.GetDefaultParams(), mockCyHandler{}, grp, frng) sb.AddSession(myPrivKey, partnerPubKey, nil, mySIDHPrivKey, partnerSIDHPubKey, - sid, session.Sending, session.GetDefaultE2ESessionParams()) + sid, session.Sending, session.GetDefaultParams()) if s.GetID() != sb.GetNewest().GetID() { t.Error("session added should have same ID") } @@ -280,10 +280,10 @@ func TestRelationship_GetNewest(t *testing.T) { myPrivKey, partnerPubKey, baseKey, mySIDHPrivKey, partnerSIDHPubKey, sid, []byte(""), session.Unconfirmed, - session.GetDefaultE2ESessionParams(), mockCyHandler{}, grp, frng) + session.GetDefaultParams(), mockCyHandler{}, grp, frng) sb.AddSession(myPrivKey, partnerPubKey, nil, mySIDHPrivKey, partnerSIDHPubKey, - sid, session.Sending, session.GetDefaultE2ESessionParams()) + sid, session.Sending, session.GetDefaultParams()) if session2.GetID() != sb.GetNewest().GetID() { t.Error("session added should have same ID") } @@ -293,7 +293,7 @@ func TestRelationship_GetNewest(t *testing.T) { // Shows that Confirm confirms the specified session in the buff func TestRelationship_Confirm(t *testing.T) { mgr, kv := makeTestRelationshipManager(t) - sb := NewRelationship(kv, session.Send, mgr.myID, mgr.partner, mgr.originMyPrivKey, mgr.originPartnerPubKey, mgr.originMySIDHPrivKey, mgr.originPartnerSIDHPubKey, session.GetDefaultE2ESessionParams(), mockCyHandler{}, mgr.grp, mgr.rng) + sb := NewRelationship(kv, session.Send, mgr.myID, mgr.partner, mgr.originMyPrivKey, mgr.originPartnerPubKey, mgr.originMySIDHPrivKey, mgr.originPartnerSIDHPubKey, session.GetDefaultParams(), mockCyHandler{}, mgr.grp, mgr.rng) grp := cyclic.NewGroup( large.NewIntFromString("E2EE983D031DC1DB6F1A7A67DF0E9A8E5561DB8E8D49413394C049B"+ @@ -331,7 +331,7 @@ func TestRelationship_Confirm(t *testing.T) { sb.AddSession(myPrivKey, partnerPubKey, nil, mySIDHPrivKey, partnerSIDHPubKey, - sid, session.Sending, session.GetDefaultE2ESessionParams()) + sid, session.Sending, session.GetDefaultParams()) sb.sessions[0].SetNegotiationStatus(session.Sent) if sb.sessions[0].IsConfirmed() { @@ -351,7 +351,7 @@ func TestRelationship_Confirm(t *testing.T) { // Shows that the session buff returns an error when the session doesn't exist func TestRelationship_Confirm_Err(t *testing.T) { mgr, kv := makeTestRelationshipManager(t) - sb := NewRelationship(kv, session.Send, mgr.myID, mgr.partner, mgr.originMyPrivKey, mgr.originPartnerPubKey, mgr.originMySIDHPrivKey, mgr.originPartnerSIDHPubKey, session.GetDefaultE2ESessionParams(), mockCyHandler{}, mgr.grp, mgr.rng) + sb := NewRelationship(kv, session.Send, mgr.myID, mgr.partner, mgr.originMyPrivKey, mgr.originPartnerPubKey, mgr.originMySIDHPrivKey, mgr.originPartnerSIDHPubKey, session.GetDefaultParams(), mockCyHandler{}, mgr.grp, mgr.rng) grp := cyclic.NewGroup( large.NewIntFromString("E2EE983D031DC1DB6F1A7A67DF0E9A8E5561DB8E8D49413394C049B"+ @@ -392,7 +392,7 @@ func TestRelationship_Confirm_Err(t *testing.T) { myPrivKey, partnerPubKey, baseKey, mySIDHPrivKey, partnerSIDHPubKey, sid, []byte(""), session.Unconfirmed, - session.GetDefaultE2ESessionParams(), mockCyHandler{}, grp, frng) + session.GetDefaultParams(), mockCyHandler{}, grp, frng) err := sb.Confirm(s.GetID()) if err == nil { @@ -403,7 +403,7 @@ func TestRelationship_Confirm_Err(t *testing.T) { // Shows that a session can get got by ID from the buff func TestRelationship_GetByID(t *testing.T) { mgr, kv := makeTestRelationshipManager(t) - sb := NewRelationship(kv, session.Send, mgr.myID, mgr.partner, mgr.originMyPrivKey, mgr.originPartnerPubKey, mgr.originMySIDHPrivKey, mgr.originPartnerSIDHPubKey, session.GetDefaultE2ESessionParams(), mockCyHandler{}, mgr.grp, mgr.rng) + sb := NewRelationship(kv, session.Send, mgr.myID, mgr.partner, mgr.originMyPrivKey, mgr.originPartnerPubKey, mgr.originMySIDHPrivKey, mgr.originPartnerSIDHPubKey, session.GetDefaultParams(), mockCyHandler{}, mgr.grp, mgr.rng) grp := cyclic.NewGroup( large.NewIntFromString("E2EE983D031DC1DB6F1A7A67DF0E9A8E5561DB8E8D49413394C049B"+ @@ -441,7 +441,7 @@ func TestRelationship_GetByID(t *testing.T) { s := sb.AddSession(myPrivKey, partnerPubKey, nil, mySIDHPrivKey, partnerSIDHPubKey, - sid, session.Sending, session.GetDefaultE2ESessionParams()) + sid, session.Sending, session.GetDefaultParams()) session2 := sb.GetByID(s.GetID()) if !reflect.DeepEqual(s, session2) { t.Error("gotten session should be the same") @@ -452,18 +452,18 @@ func TestRelationship_GetByID(t *testing.T) { // returning sessions that are confirmed and past rekeyThreshold func TestRelationship_GetNewestRekeyableSession(t *testing.T) { mgr, kv := makeTestRelationshipManager(t) - sb := NewRelationship(kv, session.Send, mgr.myID, mgr.partner, mgr.originMyPrivKey, mgr.originPartnerPubKey, mgr.originMySIDHPrivKey, mgr.originPartnerSIDHPubKey, session.GetDefaultE2ESessionParams(), mockCyHandler{}, mgr.grp, mgr.rng) + sb := NewRelationship(kv, session.Send, mgr.myID, mgr.partner, mgr.originMyPrivKey, mgr.originPartnerPubKey, mgr.originMySIDHPrivKey, mgr.originPartnerSIDHPubKey, session.GetDefaultParams(), mockCyHandler{}, mgr.grp, mgr.rng) baseKey := session.GenerateE2ESessionBaseKey(mgr.originMyPrivKey, mgr.originPartnerPubKey, mgr.grp, mgr.originMySIDHPrivKey, mgr.originPartnerSIDHPubKey) sid := session.GetSessionIDFromBaseKey(baseKey) - sb.AddSession(mgr.originMyPrivKey, mgr.originPartnerPubKey, baseKey, mgr.originMySIDHPrivKey, mgr.originPartnerSIDHPubKey, sid, session.Unconfirmed, session.GetDefaultE2ESessionParams()) + sb.AddSession(mgr.originMyPrivKey, mgr.originPartnerPubKey, baseKey, mgr.originMySIDHPrivKey, mgr.originPartnerSIDHPubKey, sid, session.Unconfirmed, session.GetDefaultParams()) // no available rekeyable sessions: nil session2 := sb.getNewestRekeyableSession() if session2 != sb.sessions[1] { t.Error("newest rekeyable session should be the unconfired session") } - _ = sb.AddSession(mgr.originMyPrivKey, mgr.originPartnerPubKey, baseKey, mgr.originMySIDHPrivKey, mgr.originPartnerSIDHPubKey, sid, session.Sending, session.GetDefaultE2ESessionParams()) + _ = sb.AddSession(mgr.originMyPrivKey, mgr.originPartnerPubKey, baseKey, mgr.originMySIDHPrivKey, mgr.originPartnerSIDHPubKey, sid, session.Sending, session.GetDefaultParams()) sb.sessions[0].SetNegotiationStatus(session.Confirmed) session3 := sb.getNewestRekeyableSession() @@ -475,7 +475,7 @@ func TestRelationship_GetNewestRekeyableSession(t *testing.T) { // add another rekeyable session: that session // show the newest session is selected - _ = sb.AddSession(mgr.originMyPrivKey, mgr.originPartnerPubKey, baseKey, mgr.originMySIDHPrivKey, mgr.originPartnerSIDHPubKey, sid, session.Sending, session.GetDefaultE2ESessionParams()) + _ = sb.AddSession(mgr.originMyPrivKey, mgr.originPartnerPubKey, baseKey, mgr.originMySIDHPrivKey, mgr.originPartnerSIDHPubKey, sid, session.Sending, session.GetDefaultParams()) sb.sessions[0].SetNegotiationStatus(session.Confirmed) @@ -501,7 +501,7 @@ func TestRelationship_GetNewestRekeyableSession(t *testing.T) { // Shows that GetSessionForSending follows the hierarchy of sessions correctly func TestRelationship_GetSessionForSending(t *testing.T) { mgr, kv := makeTestRelationshipManager(t) - sb := NewRelationship(kv, session.Send, mgr.myID, mgr.partner, mgr.originMyPrivKey, mgr.originPartnerPubKey, mgr.originMySIDHPrivKey, mgr.originPartnerSIDHPubKey, session.GetDefaultE2ESessionParams(), mockCyHandler{}, mgr.grp, mgr.rng) + sb := NewRelationship(kv, session.Send, mgr.myID, mgr.partner, mgr.originMyPrivKey, mgr.originPartnerPubKey, mgr.originMySIDHPrivKey, mgr.originPartnerSIDHPubKey, session.GetDefaultParams(), mockCyHandler{}, mgr.grp, mgr.rng) sb.sessions = make([]*session.Session, 0) sb.sessionByID = make(map[session.SessionID]*session.Session) @@ -548,7 +548,7 @@ func TestRelationship_GetSessionForSending(t *testing.T) { s, kv := session.CreateTestSession(2000, 1000, 1000, session.Unconfirmed, t) _ = sb.AddSession(myPrivKey, partnerPubKey, nil, mySIDHPrivKey, partnerSIDHPubKey, - sid, session.Sending, session.GetDefaultE2ESessionParams()) + sid, session.Sending, session.GetDefaultParams()) sb.sessions[0] = s sending := sb.getSessionForSending() if sending.GetID() != sb.sessions[0].GetID() { @@ -563,7 +563,7 @@ func TestRelationship_GetSessionForSending(t *testing.T) { s2, _ := session.CreateTestSession(2000, 2000, 1000, session.Unconfirmed, t) _ = sb.AddSession(myPrivKey, partnerPubKey, nil, mySIDHPrivKey, partnerSIDHPubKey, - sid, session.Sending, session.GetDefaultE2ESessionParams()) + sid, session.Sending, session.GetDefaultParams()) sb.sessions[0] = s2 sending = sb.getSessionForSending() if sending.GetID() != sb.sessions[0].GetID() { @@ -580,7 +580,7 @@ func TestRelationship_GetSessionForSending(t *testing.T) { s3, _ := session.CreateTestSession(2000, 600, 1000, session.Confirmed, t) _ = sb.AddSession(myPrivKey, partnerPubKey, nil, mySIDHPrivKey, partnerSIDHPubKey, - sid, session.Sending, session.GetDefaultE2ESessionParams()) + sid, session.Sending, session.GetDefaultParams()) sb.sessions[0] = s3 sending = sb.getSessionForSending() if sending.GetID() != sb.sessions[0].GetID() { @@ -596,7 +596,7 @@ func TestRelationship_GetSessionForSending(t *testing.T) { s4, _ := session.CreateTestSession(2000, 2000, 1000, session.Confirmed, t) _ = sb.AddSession(myPrivKey, partnerPubKey, nil, mySIDHPrivKey, partnerSIDHPubKey, - sid, session.Sending, session.GetDefaultE2ESessionParams()) + sid, session.Sending, session.GetDefaultParams()) sb.sessions[0] = s4 @@ -614,7 +614,7 @@ func TestRelationship_GetSessionForSending(t *testing.T) { // Shows that GetKeyForRekey returns a key if there's an appropriate session for rekeying func TestSessionBuff_GetKeyForRekey(t *testing.T) { mgr, kv := makeTestRelationshipManager(t) - sb := NewRelationship(kv, session.Send, mgr.myID, mgr.partner, mgr.originMyPrivKey, mgr.originPartnerPubKey, mgr.originMySIDHPrivKey, mgr.originPartnerSIDHPubKey, session.GetDefaultE2ESessionParams(), mockCyHandler{}, mgr.grp, mgr.rng) + sb := NewRelationship(kv, session.Send, mgr.myID, mgr.partner, mgr.originMyPrivKey, mgr.originPartnerPubKey, mgr.originMySIDHPrivKey, mgr.originPartnerSIDHPubKey, session.GetDefaultParams(), mockCyHandler{}, mgr.grp, mgr.rng) sb.sessions = make([]*session.Session, 0) sb.sessionByID = make(map[session.SessionID]*session.Session) @@ -664,7 +664,7 @@ func TestSessionBuff_GetKeyForRekey(t *testing.T) { _ = sb.AddSession(myPrivKey, partnerPubKey, nil, mySIDHPrivKey, partnerSIDHPubKey, - sid, session.Sending, session.GetDefaultE2ESessionParams()) + sid, session.Sending, session.GetDefaultParams()) sb.sessions[0].SetNegotiationStatus(session.Confirmed) key, err = sb.getKeyForRekey() if err != nil { @@ -678,7 +678,7 @@ func TestSessionBuff_GetKeyForRekey(t *testing.T) { // Shows that GetKeyForSending returns a key if there's an appropriate session for sending func TestSessionBuff_GetKeyForSending(t *testing.T) { mgr, kv := makeTestRelationshipManager(t) - sb := NewRelationship(kv, session.Send, mgr.myID, mgr.partner, mgr.originMyPrivKey, mgr.originPartnerPubKey, mgr.originMySIDHPrivKey, mgr.originPartnerSIDHPubKey, session.GetDefaultE2ESessionParams(), mockCyHandler{}, mgr.grp, mgr.rng) + sb := NewRelationship(kv, session.Send, mgr.myID, mgr.partner, mgr.originMyPrivKey, mgr.originPartnerPubKey, mgr.originMySIDHPrivKey, mgr.originPartnerSIDHPubKey, session.GetDefaultParams(), mockCyHandler{}, mgr.grp, mgr.rng) sb.sessions = make([]*session.Session, 0) sb.sessionByID = make(map[session.SessionID]*session.Session) @@ -728,7 +728,7 @@ func TestSessionBuff_GetKeyForSending(t *testing.T) { _ = sb.AddSession(myPrivKey, partnerPubKey, nil, mySIDHPrivKey, partnerSIDHPubKey, - sid, session.Sending, session.GetDefaultE2ESessionParams()) + sid, session.Sending, session.GetDefaultParams()) key, err = sb.getKeyForSending() if err != nil { t.Error(err) @@ -744,7 +744,7 @@ func TestSessionBuff_TriggerNegotiation(t *testing.T) { sb := NewRelationship(kv, session.Send, mgr.myID, mgr.partner, mgr.originMyPrivKey, mgr.originPartnerPubKey, mgr.originMySIDHPrivKey, mgr.originPartnerSIDHPubKey, - session.GetDefaultE2ESessionParams(), mockCyHandler{}, + session.GetDefaultParams(), mockCyHandler{}, mgr.grp, mgr.rng) sb.sessions = make([]*session.Session, 0) @@ -772,7 +772,7 @@ func TestSessionBuff_TriggerNegotiation(t *testing.T) { session1 := sb.AddSession(myPrivKey, partnerPubKey, nil, mySIDHPrivKey, partnerSIDHPubKey, - sid, session.Sending, session.GetDefaultE2ESessionParams()) + sid, session.Sending, session.GetDefaultParams()) session1.SetNegotiationStatus(session.Confirmed) // The added session isn't ready for rekey, so it's not returned here negotiations := sb.TriggerNegotiation() @@ -784,7 +784,7 @@ func TestSessionBuff_TriggerNegotiation(t *testing.T) { session2, _ := session.CreateTestSession(0, 4, 0, session.Sending, t) _ = sb.AddSession(myPrivKey, partnerPubKey, nil, mySIDHPrivKey, partnerSIDHPubKey, - sid, session.Sending, session.GetDefaultE2ESessionParams()) + sid, session.Sending, session.GetDefaultParams()) sb.sessions[0] = session2 session2.SetNegotiationStatus(session.Confirmed) negotiations = sb.TriggerNegotiation() @@ -802,10 +802,12 @@ func TestSessionBuff_TriggerNegotiation(t *testing.T) { // Unconfirmed sessions should also be included in the list // as the client should attempt to confirm them + p := session.GetDefaultParams() + p.UnconfirmedRetryRatio = 1 session3 := sb.AddSession(myPrivKey, partnerPubKey, nil, mySIDHPrivKey, partnerSIDHPubKey, - sid, session.Sending, session.GetDefaultE2ESessionParams()) - session3.SetNegotiationStatus(session.Confirmed) + sid, session.Sending, p) + session3.SetNegotiationStatus(session.Unconfirmed) // Set session 2 status back to Confirmed to show that more than one session can be returned session2.SetNegotiationStatus(session.Confirmed) diff --git a/e2e/ratchet/partner/session/params.go b/e2e/ratchet/partner/session/params.go index 033616ac26a8a65dc44435a56c3431dfea51447d..8ccd454947ff281471cd77d79fa15ea826efec9d 100644 --- a/e2e/ratchet/partner/session/params.go +++ b/e2e/ratchet/partner/session/params.go @@ -31,7 +31,7 @@ const ( rekeyRatio float64 = 1 / 10 ) -func GetDefaultE2ESessionParams() Params { +func GetDefaultParams() Params { return Params{ MinKeys: minKeys, MaxKeys: maxKeys, diff --git a/e2e/ratchet/partner/session/session.go b/e2e/ratchet/partner/session/session.go index a86a5e0b07e58b66ea5e47b4f399d2b78b5517b7..a62cf91618ce7706b0838b7ec5c0ff6d816da5a0 100644 --- a/e2e/ratchet/partner/session/session.go +++ b/e2e/ratchet/partner/session/session.go @@ -703,10 +703,10 @@ func MakeSessionPrefix(sid SessionID) string { // todo - doscstring func decideIfResendRekey(genRng *fastRNG.StreamGenerator, ratio float64) bool { stream := genRng.GetStream() - b := make([]byte, 8) + b := make([]byte, 4) stream.Read(b) stream.Close() - randNum := binary.BigEndian.Uint64(b) - max := uint64(float64(math.MaxUint64) * ratio) + randNum := binary.BigEndian.Uint32(b) + max := uint32(float64(math.MaxUint32) * ratio) return randNum < max } diff --git a/e2e/ratchet/partner/session/testUtils.go b/e2e/ratchet/partner/session/testUtils.go index c99169f6c765b2e17b8f9e46ab8ea378cfeb52f9..52c9e8cb8bb5f1a9733e2e1d2175b93d883262c3 100644 --- a/e2e/ratchet/partner/session/testUtils.go +++ b/e2e/ratchet/partner/session/testUtils.go @@ -88,7 +88,7 @@ func makeTestSession() (*Session, *versioned.KV) { partnerPubKey: partnerPubKey, mySIDHPrivKey: mySIDHPrivKey, partnerSIDHPubKey: partnerSIDHPubKey, - e2eParams: GetDefaultE2ESessionParams(), + e2eParams: GetDefaultParams(), sID: sid, kv: kv.Prefix(MakeSessionPrefix(sid)), t: Receive, diff --git a/e2e/ratchet/partner/utils_test.go b/e2e/ratchet/partner/utils_test.go index 184a1b9c46a97bef1a1591a493c8ad30abc7d675..70f056f31d4fe12951b738bd459af051d507f2cc 100644 --- a/e2e/ratchet/partner/utils_test.go +++ b/e2e/ratchet/partner/utils_test.go @@ -79,7 +79,7 @@ func newTestManager(t *testing.T) (*Manager, *versioned.KV) { // Create new relationship m := NewManager(kv, myId, partnerID, myPrivKey, partnerPubKey, mySIDHPrivKey, partnerSIDHPubKey, - session.GetDefaultE2ESessionParams(), session.GetDefaultE2ESessionParams(), + session.GetDefaultParams(), session.GetDefaultParams(), mockCyHandler{}, grp, fastRNG.NewStreamGenerator(1000, 10, csprng.NewSystemRNG)) diff --git a/e2e/ratchet/ratchet_test.go b/e2e/ratchet/ratchet_test.go index 2a36bb994847c2991228ca83889778b46e16cff9..0cea9c65508d8a24380320bdc3955b2a20081dc2 100644 --- a/e2e/ratchet/ratchet_test.go +++ b/e2e/ratchet/ratchet_test.go @@ -88,7 +88,7 @@ func TestStore_AddPartner(t *testing.T) { } partnerID := id.NewIdFromUInt(rand.Uint64(), id.User, t) - p := session.GetDefaultE2ESessionParams() + p := session.GetDefaultParams() partnerPubKey := diffieHellman.GeneratePublicKey(r.defaultDHPrivateKey, r.grp) // NOTE: e2e store doesn't contain a private SIDH key, that's // because they're completely address as part of the @@ -132,7 +132,7 @@ func TestStore_DeletePartner(t *testing.T) { partnerID := id.NewIdFromUInt(rand.Uint64(), id.User, t) partnerPubKey := diffieHellman.GeneratePublicKey(r.defaultDHPrivateKey, r.grp) - p := session.GetDefaultE2ESessionParams() + p := session.GetDefaultParams() // NOTE: e2e store doesn't contain a private SIDH key, that's // because they're completely address as part of the // initiation of the connection. @@ -166,7 +166,7 @@ func TestStore_GetPartner(t *testing.T) { } partnerID := id.NewIdFromUInt(rand.Uint64(), id.User, t) partnerPubKey := diffieHellman.GeneratePublicKey(r.defaultDHPrivateKey, r.grp) - p := session.GetDefaultE2ESessionParams() + p := session.GetDefaultParams() _, pubSIDHKey := genSidhKeys(rng, sidh.KeyVariantSidhA) myPrivSIDHKey, _ := genSidhKeys(rng, sidh.KeyVariantSidhB) expectedManager, err := r.AddPartner(r.defaultID, partnerID, r.defaultDHPrivateKey, diff --git a/e2e/rekey/confirm_test.go b/e2e/rekey/confirm_test.go index aa4c9eade9134c6c5645e6cd80984ba270415205..8da1485ab2447e9d1feee0c2db0d1039049fbe62 100644 --- a/e2e/rekey/confirm_test.go +++ b/e2e/rekey/confirm_test.go @@ -67,8 +67,8 @@ func TestHandleConfirm(t *testing.T) { } // Add bob as a partner - sendParams := session.GetDefaultE2ESessionParams() - receiveParams := session.GetDefaultE2ESessionParams() + sendParams := session.GetDefaultParams() + receiveParams := session.GetDefaultParams() _, err = r.AddPartner(myID, bobID, bobPubKey, alicePrivKey, bobSIDHPubKey, aliceSIDHPrivKey, sendParams, receiveParams, false) if err != nil { t.Errorf("Failed to add partner to ratchet: %+v", err) diff --git a/e2e/rekey/exchange_test.go b/e2e/rekey/exchange_test.go index fbe92114074e46d4253ea8ac8add0d7d421bbf5f..a59e5a0ae3835341f7fa4469a7a296feefe72283 100644 --- a/e2e/rekey/exchange_test.go +++ b/e2e/rekey/exchange_test.go @@ -88,8 +88,8 @@ func TestFullExchange(t *testing.T) { } // Add Alice and Bob as partners - sendParams := session.GetDefaultE2ESessionParams() - receiveParams := session.GetDefaultE2ESessionParams() + sendParams := session.GetDefaultParams() + receiveParams := session.GetDefaultParams() _, err = r.AddPartner(myID, bobID, bobPubKey, alicePrivKey, bobSIDHPubKey, aliceSIDHPrivKey, sendParams, receiveParams, false) if err != nil { t.Errorf("Failed to add partner to ratchet: %+v", err) diff --git a/e2e/rekey/rekey.go b/e2e/rekey/rekey.go index 9892d0047b126bc908dcfbec91f68031080f9b7d..b25764b6100a0e865053fc75fef6c30ec84cf395 100644 --- a/e2e/rekey/rekey.go +++ b/e2e/rekey/rekey.go @@ -64,7 +64,7 @@ func trigger(instance *commsNetwork.Instance, grp *cyclic.Group, sendE2E E2eSend //create the session, pass a nil private key to generate a new one negotiatingSession = manager.NewSendSession(nil, nil, - session.GetDefaultE2ESessionParams(), inputSession) + session.GetDefaultParams(), inputSession) //move the state of the triggering session forward inputSession.SetNegotiationStatus(session.NewSessionCreated) diff --git a/e2e/rekey/trigger.go b/e2e/rekey/trigger.go index 34ff601a8cc1e90d6b948934d369c384ee2945f2..8d37e0e2f8f4f7b2764a91b4b1e0c0adf46ff7ce 100644 --- a/e2e/rekey/trigger.go +++ b/e2e/rekey/trigger.go @@ -88,7 +88,7 @@ func handleTrigger(ratchet *ratchet.Ratchet, sender E2eSender, //create the new session sess, duplicate := partner.NewReceiveSession(PartnerPublicKey, - PartnerSIDHPublicKey, session.GetDefaultE2ESessionParams(), + PartnerSIDHPublicKey, session.GetDefaultParams(), oldSession) // new session being nil means the session was a duplicate. This is possible // in edge cases where the partner crashes during operation. The session diff --git a/e2e/rekey/trigger_test.go b/e2e/rekey/trigger_test.go index 22f8fad7a6a37af54a1ba0becbc9d0aaacb15034..2b2f197c8a7befb9a38f86f0841c43b20305cd84 100644 --- a/e2e/rekey/trigger_test.go +++ b/e2e/rekey/trigger_test.go @@ -81,8 +81,8 @@ func TestHandleTrigger(t *testing.T) { } // Add bob as a partner - sendParams := session2.GetDefaultE2ESessionParams() - receiveParams := session2.GetDefaultE2ESessionParams() + sendParams := session2.GetDefaultParams() + receiveParams := session2.GetDefaultParams() _, err = r.AddPartner(myID, bobID, bobPubKey, alicePrivKey, bobSIDHPubKey, aliceSIDHPrivKey, sendParams, receiveParams, false) if err != nil { t.Errorf("Failed to add partner to ratchet: %+v", err)