Skip to content
Snippets Groups Projects
Commit 2fc6e57b authored by Josh Brooks's avatar Josh Brooks
Browse files

Fix fact & manager tests in ud/

parent e3e4d279
No related branches found
No related tags found
4 merge requests!510Release,!207WIP: Client Restructure,!203Symmetric broadcast,!199Xx 3866/user discovery
...@@ -2,13 +2,9 @@ package ud ...@@ -2,13 +2,9 @@ package ud
import ( import (
jww "github.com/spf13/jwalterweatherman" jww "github.com/spf13/jwalterweatherman"
"gitlab.com/elixxir/client/storage"
"gitlab.com/elixxir/comms/client"
pb "gitlab.com/elixxir/comms/mixmessages" pb "gitlab.com/elixxir/comms/mixmessages"
"gitlab.com/elixxir/primitives/fact" "gitlab.com/elixxir/primitives/fact"
"gitlab.com/xx_network/comms/connect" "gitlab.com/xx_network/comms/connect"
"gitlab.com/xx_network/crypto/csprng"
"gitlab.com/xx_network/crypto/signature/rsa"
"gitlab.com/xx_network/primitives/id" "gitlab.com/xx_network/primitives/id"
"os" "os"
"testing" "testing"
...@@ -31,28 +27,8 @@ func (rFC *testAFC) SendRegisterFact(*connect.Host, *pb.FactRegisterRequest) ( ...@@ -31,28 +27,8 @@ func (rFC *testAFC) SendRegisterFact(*connect.Host, *pb.FactRegisterRequest) (
// Test that the addFact function completes successfully // Test that the addFact function completes successfully
func TestAddFact(t *testing.T) { func TestAddFact(t *testing.T) {
isReg := uint32(1)
// Create a new Private Key to use for signing the Fact m := newTestManager(t)
rng := csprng.NewSystemRNG()
cpk, err := rsa.GenerateKey(rng, 2048)
if err != nil {
t.Fatal(err)
}
comms, err := client.NewClientComms(nil, nil, nil, nil)
if err != nil {
t.Errorf("Failed to start client comms: %+v", err)
}
// Create our Manager object
m := Manager{
comms: comms,
net: newTestNetworkManager(t),
privKey: cpk,
registered: &isReg,
storage: storage.InitTestingSession(t),
}
// Create our test fact // Create our test fact
USCountryCode := "US" USCountryCode := "US"
...@@ -68,7 +44,7 @@ func TestAddFact(t *testing.T) { ...@@ -68,7 +44,7 @@ func TestAddFact(t *testing.T) {
tAFC := testAFC{} tAFC := testAFC{}
uid := &id.ID{} uid := &id.ID{}
// Run addFact and see if it returns without an error! // Run addFact and see if it returns without an error!
_, err = m.addFact(f, uid, &tAFC) _, err := m.addFact(f, uid, &tAFC)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
......
package ud package ud
import ( import (
"gitlab.com/elixxir/client/event"
"gitlab.com/elixxir/client/storage" "gitlab.com/elixxir/client/storage"
"gitlab.com/elixxir/comms/client" "gitlab.com/elixxir/client/storage/versioned"
store "gitlab.com/elixxir/client/ud/store"
pb "gitlab.com/elixxir/comms/mixmessages" pb "gitlab.com/elixxir/comms/mixmessages"
"gitlab.com/elixxir/crypto/fastRNG"
"gitlab.com/elixxir/ekv"
"gitlab.com/elixxir/primitives/fact" "gitlab.com/elixxir/primitives/fact"
"gitlab.com/xx_network/comms/connect" "gitlab.com/xx_network/comms/connect"
"gitlab.com/xx_network/comms/messages" "gitlab.com/xx_network/comms/messages"
"gitlab.com/xx_network/crypto/csprng"
"reflect" "reflect"
"testing" "testing"
) )
...@@ -22,19 +27,24 @@ func (t *testComm) SendConfirmFact(_ *connect.Host, message *pb.FactConfirmReque ...@@ -22,19 +27,24 @@ func (t *testComm) SendConfirmFact(_ *connect.Host, message *pb.FactConfirmReque
// Happy path. // Happy path.
func TestManager_confirmFact(t *testing.T) { func TestManager_confirmFact(t *testing.T) {
isReg := uint32(1) storageSess := storage.InitTestingSession(t)
comms, err := client.NewClientComms(nil, nil, nil, nil) kv := versioned.NewKV(ekv.Memstore{})
udStore, err := store.NewOrLoadStore(kv)
if err != nil { if err != nil {
t.Errorf("Failed to start client comms: %+v", err) t.Fatalf("Failed to initialize store %v", err)
} }
// Set up manager // Create our Manager object
m := &Manager{ m := &Manager{
comms: comms, services: newTestNetworkManager(t),
net: newTestNetworkManager(t), e2e: mockE2e{},
registered: &isReg, events: event.NewEventManager(),
storage: storage.InitTestingSession(t), user: storageSess,
comms: &mockComms{},
store: udStore,
kv: kv,
rng: fastRNG.NewStreamGenerator(1, 1, csprng.NewSystemRNG),
} }
c := &testComm{} c := &testComm{}
...@@ -45,7 +55,7 @@ func TestManager_confirmFact(t *testing.T) { ...@@ -45,7 +55,7 @@ func TestManager_confirmFact(t *testing.T) {
} }
// Set up store for expected state // Set up store for expected state
err = m.storage.GetUd().StoreUnconfirmedFact(expectedRequest.ConfirmationID, fact.Fact{}) err = m.store.StoreUnconfirmedFact(expectedRequest.ConfirmationID, fact.Fact{})
if err != nil { if err != nil {
t.Fatalf("StoreUnconfirmedFact error: %v", err) t.Fatalf("StoreUnconfirmedFact error: %v", err)
} }
......
...@@ -8,9 +8,6 @@ ...@@ -8,9 +8,6 @@
package ud package ud
import ( import (
"gitlab.com/elixxir/comms/client"
"gitlab.com/xx_network/crypto/csprng"
"gitlab.com/xx_network/crypto/signature/rsa"
"testing" "testing"
) )
...@@ -53,30 +50,10 @@ EnretBzQkeKeBwoB2u6NTiOmUjk= ...@@ -53,30 +50,10 @@ EnretBzQkeKeBwoB2u6NTiOmUjk=
var testContact = `<xxc(2)LF2ccT+sdqh0AIKlFFeDOJdnxzbQQYhGStgxhOXmijIDkAZiB9kZo+Dl3bRSbBi5pXZ82rOu2IQXz9+5sspChvoccZqgC/dXGhlesmiNy/EbKxWtptTF4tcNyQxtnmCXg1p/HwKey4G2XDekTw86lq6Lpmj72jozvRWlQisqvWz/5deiPaeFGKDKC0OrrDFnIib7WnKqdYt4XyTKdmObnmbvdCbliZq0zBl7J40qKy5FypYXGlZjStIm0R1qtD4XHMZMsrMJEGxdM55zJdSzknXbR8MNahUrGMyUOTivXLHzojYLht0gFQifKMVWhrDjUoVQV43KOLPmdBwY/2Kc5KvVloDeuDXYY0i7tD63gNIp9JA3gJQUJymDdwqbS13riT1DMHHkdTzKEyGdHS+v2l7AVSlJBiTKuyM00FBNuXhhIcFR7ONFCf8cRPOPPBx3Q6iHNsvsca3KPNhwOJBgaQvHSkjIMsudiR954QbwG9rbi2vxVobIgWYMl5j6vlBS/9rfbE/uLdTEQZfNsLKDCIVCCI4I1bYZxZrDLPrfXTrN6W0sCLE7a/kRBQAAAgA7+LwJqiv9O1ogLnS4TYkSEg==xxc>` var testContact = `<xxc(2)LF2ccT+sdqh0AIKlFFeDOJdnxzbQQYhGStgxhOXmijIDkAZiB9kZo+Dl3bRSbBi5pXZ82rOu2IQXz9+5sspChvoccZqgC/dXGhlesmiNy/EbKxWtptTF4tcNyQxtnmCXg1p/HwKey4G2XDekTw86lq6Lpmj72jozvRWlQisqvWz/5deiPaeFGKDKC0OrrDFnIib7WnKqdYt4XyTKdmObnmbvdCbliZq0zBl7J40qKy5FypYXGlZjStIm0R1qtD4XHMZMsrMJEGxdM55zJdSzknXbR8MNahUrGMyUOTivXLHzojYLht0gFQifKMVWhrDjUoVQV43KOLPmdBwY/2Kc5KvVloDeuDXYY0i7tD63gNIp9JA3gJQUJymDdwqbS13riT1DMHHkdTzKEyGdHS+v2l7AVSlJBiTKuyM00FBNuXhhIcFR7ONFCf8cRPOPPBx3Q6iHNsvsca3KPNhwOJBgaQvHSkjIMsudiR954QbwG9rbi2vxVobIgWYMl5j6vlBS/9rfbE/uLdTEQZfNsLKDCIVCCI4I1bYZxZrDLPrfXTrN6W0sCLE7a/kRBQAAAgA7+LwJqiv9O1ogLnS4TYkSEg==xxc>`
func TestManager_SetAlternativeUserDiscovery(t *testing.T) { func TestManager_SetAlternativeUserDiscovery(t *testing.T) {
isReg := uint32(1) m := newTestManager(t)
// Create a new Private Key to use for signing the Fact
rng := csprng.NewSystemRNG()
cpk, err := rsa.GenerateKey(rng, 2048)
if err != nil {
t.Fatal(err)
}
comms, err := client.NewClientComms(nil, nil, nil, nil)
if err != nil {
t.Errorf("Failed to start client comms: %+v", err)
}
// Create our Manager object
m := Manager{
comms: comms,
net: newTestNetworkManager(t),
privKey: cpk,
registered: &isReg,
}
altAddr := "0.0.0.0:11420" altAddr := "0.0.0.0:11420"
err = m.SetAlternativeUserDiscovery([]byte(testCert), []byte(altAddr), []byte(testContact)) err := m.SetAlternativeUserDiscovery([]byte(testCert), []byte(altAddr), []byte(testContact))
if err != nil { if err != nil {
t.Fatalf("Unexpected error in SetAlternativeUserDiscovery: %v", err) t.Fatalf("Unexpected error in SetAlternativeUserDiscovery: %v", err)
} }
......
...@@ -2,16 +2,12 @@ package ud ...@@ -2,16 +2,12 @@ package ud
import ( import (
"bytes" "bytes"
"gitlab.com/elixxir/client/storage"
"gitlab.com/elixxir/comms/client"
pb "gitlab.com/elixxir/comms/mixmessages" pb "gitlab.com/elixxir/comms/mixmessages"
"gitlab.com/elixxir/crypto/factID" "gitlab.com/elixxir/crypto/factID"
"gitlab.com/elixxir/crypto/fastRNG"
"gitlab.com/elixxir/crypto/hash" "gitlab.com/elixxir/crypto/hash"
"gitlab.com/elixxir/primitives/fact" "gitlab.com/elixxir/primitives/fact"
"gitlab.com/xx_network/comms/connect" "gitlab.com/xx_network/comms/connect"
"gitlab.com/xx_network/comms/messages" "gitlab.com/xx_network/comms/messages"
"gitlab.com/xx_network/crypto/csprng"
"gitlab.com/xx_network/crypto/signature/rsa" "gitlab.com/xx_network/crypto/signature/rsa"
"reflect" "reflect"
"testing" "testing"
...@@ -28,34 +24,25 @@ func (t *testRegisterComm) SendRegisterUser(_ *connect.Host, msg *pb.UDBUserRegi ...@@ -28,34 +24,25 @@ func (t *testRegisterComm) SendRegisterUser(_ *connect.Host, msg *pb.UDBUserRegi
// Happy path. // Happy path.
func TestManager_register(t *testing.T) { func TestManager_register(t *testing.T) {
isReg := uint32(0) m := newTestManager(t)
comms, err := client.NewClientComms(nil, nil, nil, nil) udHost, err := m.getOrAddUdHost()
if err != nil { if err != nil {
t.Errorf("Failed to start client comms: %+v", err) t.Fatalf("Failed to get/add ud host: %+v", err)
}
// Set up manager
m := &Manager{
comms: comms,
net: newTestNetworkManager(t),
rng: fastRNG.NewStreamGenerator(12, 3, csprng.NewSystemRNG),
storage: storage.InitTestingSession(t),
registered: &isReg,
} }
c := &testRegisterComm{} c := &testRegisterComm{}
err = m.register("testUser", c) err = m.register("testUser", c, udHost)
if err != nil { if err != nil {
t.Errorf("register() returned an error: %+v", err) t.Errorf("register() returned an error: %+v", err)
} }
// Check if the UDBUserRegistration contents are correct // Check if the UDBUserRegistration contents are correct
m.isCorrect("testUser", c.msg, t) isCorrect("testUser", c.msg, m, t)
// Verify the signed identity data // Verify the signed identity data
pubKey := m.storage.User().GetCryptographicIdentity().GetTransmissionRSA().GetPublic() pubKey := m.user.PortableUserInfo().ReceptionRSA.GetPublic()
err = rsa.Verify(pubKey, hash.CMixHash, c.msg.IdentityRegistration.Digest(), err = rsa.Verify(pubKey, hash.CMixHash, c.msg.IdentityRegistration.Digest(),
c.msg.IdentitySignature, nil) c.msg.IdentitySignature, nil)
if err != nil { if err != nil {
...@@ -73,18 +60,19 @@ func TestManager_register(t *testing.T) { ...@@ -73,18 +60,19 @@ func TestManager_register(t *testing.T) {
// isCorrect checks if the UDBUserRegistration has all the expected fields minus // isCorrect checks if the UDBUserRegistration has all the expected fields minus
// any signatures. // any signatures.
func (m *Manager) isCorrect(username string, msg *pb.UDBUserRegistration, t *testing.T) { func isCorrect(username string, msg *pb.UDBUserRegistration, m *Manager, t *testing.T) {
user := m.storage.User() userInfo := m.user.PortableUserInfo()
cryptoUser := m.storage.User().GetCryptographicIdentity()
if !bytes.Equal(user.GetTransmissionRegistrationValidationSignature(), msg.PermissioningSignature) { if !bytes.Equal(m.user.GetReceptionRegistrationValidationSignature(), msg.PermissioningSignature) {
t.Errorf("PermissioningSignature incorrect.\n\texpected: %v\n\treceived: %v", t.Errorf("PermissioningSignature incorrect.\n\texpected: %v\n\treceived: %v",
user.GetTransmissionRegistrationValidationSignature(), msg.PermissioningSignature) m.user.GetReceptionRegistrationValidationSignature(), msg.PermissioningSignature)
} }
if string(rsa.CreatePublicKeyPem(cryptoUser.GetTransmissionRSA().GetPublic())) != msg.RSAPublicPem { if string(rsa.CreatePublicKeyPem(userInfo.TransmissionRSA.GetPublic())) !=
msg.RSAPublicPem {
t.Errorf("RSAPublicPem incorrect.\n\texpected: %v\n\treceived: %v", t.Errorf("RSAPublicPem incorrect.\n\texpected: %v\n\treceived: %v",
string(rsa.CreatePublicKeyPem(cryptoUser.GetTransmissionRSA().GetPublic())), msg.RSAPublicPem) string(rsa.CreatePublicKeyPem(userInfo.TransmissionRSA.GetPublic())),
msg.RSAPublicPem)
} }
if username != msg.IdentityRegistration.Username { if username != msg.IdentityRegistration.Username {
...@@ -92,19 +80,19 @@ func (m *Manager) isCorrect(username string, msg *pb.UDBUserRegistration, t *tes ...@@ -92,19 +80,19 @@ func (m *Manager) isCorrect(username string, msg *pb.UDBUserRegistration, t *tes
username, msg.IdentityRegistration.Username) username, msg.IdentityRegistration.Username)
} }
if !bytes.Equal(m.storage.E2e().GetDHPublicKey().Bytes(), msg.IdentityRegistration.DhPubKey) { if !bytes.Equal(userInfo.E2eDhPublicKey.Bytes(), msg.IdentityRegistration.DhPubKey) {
t.Errorf("IdentityRegistration DhPubKey incorrect.\n\texpected: %#v\n\treceived: %#v", t.Errorf("IdentityRegistration DhPubKey incorrect.\n\texpected: %#v\n\treceived: %#v",
m.storage.E2e().GetDHPublicKey().Bytes(), msg.IdentityRegistration.DhPubKey) userInfo.E2eDhPublicKey.Bytes(), msg.IdentityRegistration.DhPubKey)
} }
if !bytes.Equal(cryptoUser.GetTransmissionSalt(), msg.IdentityRegistration.Salt) { if !bytes.Equal(userInfo.TransmissionSalt, msg.IdentityRegistration.Salt) {
t.Errorf("IdentityRegistration Salt incorrect.\n\texpected: %#v\n\treceived: %#v", t.Errorf("IdentityRegistration Salt incorrect.\n\texpected: %#v\n\treceived: %#v",
cryptoUser.GetTransmissionSalt(), msg.IdentityRegistration.Salt) userInfo.TransmissionSalt, msg.IdentityRegistration.Salt)
} }
if !bytes.Equal(cryptoUser.GetTransmissionID().Marshal(), msg.Frs.UID) { if !bytes.Equal(userInfo.TransmissionID.Marshal(), msg.Frs.UID) {
t.Errorf("Frs UID incorrect.\n\texpected: %v\n\treceived: %v", t.Errorf("Frs UID incorrect.\n\texpected: %v\n\treceived: %v",
cryptoUser.GetTransmissionID().Marshal(), msg.Frs.UID) userInfo.TransmissionID.Marshal(), msg.Frs.UID)
} }
if !reflect.DeepEqual(&pb.Fact{Fact: username}, msg.Frs.Fact) { if !reflect.DeepEqual(&pb.Fact{Fact: username}, msg.Frs.Fact) {
......
...@@ -15,17 +15,37 @@ ...@@ -15,17 +15,37 @@
package ud package ud
import ( import (
"github.com/cloudflare/circl/dh/sidh"
"gitlab.com/elixxir/client/catalog"
"gitlab.com/elixxir/client/cmix"
"gitlab.com/elixxir/client/cmix/identity"
cmixMsg "gitlab.com/elixxir/client/cmix/message"
"gitlab.com/elixxir/client/cmix/rounds"
"gitlab.com/elixxir/client/e2e"
"gitlab.com/elixxir/client/e2e/ratchet/partner"
"gitlab.com/elixxir/client/e2e/ratchet/partner/session"
"gitlab.com/elixxir/client/e2e/receive"
"gitlab.com/elixxir/client/event"
"gitlab.com/elixxir/client/storage/user"
"gitlab.com/elixxir/client/storage/versioned"
store "gitlab.com/elixxir/client/ud/store"
pb "gitlab.com/elixxir/comms/mixmessages"
"gitlab.com/elixxir/comms/testkeys"
"gitlab.com/elixxir/crypto/cyclic"
e2eCrypto "gitlab.com/elixxir/crypto/e2e"
"gitlab.com/elixxir/crypto/fastRNG"
"gitlab.com/elixxir/ekv"
"gitlab.com/xx_network/comms/messages"
"gitlab.com/xx_network/crypto/csprng"
"gitlab.com/xx_network/crypto/large"
"gitlab.com/xx_network/crypto/signature/rsa"
"gitlab.com/xx_network/primitives/utils"
"testing" "testing"
"time" "time"
"gitlab.com/elixxir/client/cmix/gateway" "gitlab.com/elixxir/client/cmix/gateway"
"gitlab.com/elixxir/client/event"
"gitlab.com/elixxir/client/interfaces"
"gitlab.com/elixxir/client/interfaces/message"
"gitlab.com/elixxir/client/interfaces/params"
"gitlab.com/elixxir/client/stoppable" "gitlab.com/elixxir/client/stoppable"
"gitlab.com/elixxir/comms/network" "gitlab.com/elixxir/comms/network"
"gitlab.com/elixxir/crypto/e2e"
"gitlab.com/elixxir/primitives/format" "gitlab.com/elixxir/primitives/format"
"gitlab.com/xx_network/comms/connect" "gitlab.com/xx_network/comms/connect"
"gitlab.com/xx_network/primitives/id" "gitlab.com/xx_network/primitives/id"
...@@ -33,7 +53,60 @@ import ( ...@@ -33,7 +53,60 @@ import (
"gitlab.com/xx_network/primitives/ndf" "gitlab.com/xx_network/primitives/ndf"
) )
func newTestNetworkManager(t *testing.T) interfaces.NetworkManager { func newTestManager(t *testing.T) *Manager {
keyData, err := utils.ReadFile(testkeys.GetNodeKeyPath())
if err != nil {
t.Fatalf("Could not load private key: %v", err)
}
key, err := rsa.LoadPrivateKeyFromPem(keyData)
if err != nil {
t.Fatalf("Could not load public key")
}
kv := versioned.NewKV(ekv.Memstore{})
udStore, err := store.NewOrLoadStore(kv)
if err != nil {
t.Fatalf("Failed to initialize store %v", err)
}
// Create our Manager object
m := &Manager{
services: newTestNetworkManager(t),
e2e: mockE2e{},
events: event.NewEventManager(),
user: mockUser{testing: t, key: key},
store: udStore,
comms: &mockComms{},
kv: kv,
rng: fastRNG.NewStreamGenerator(1, 1, csprng.NewSystemRNG),
}
netDef := m.services.GetInstance().GetPartialNdf().Get()
// Unmarshal UD ID from the NDF
udID, err := id.Unmarshal(netDef.UDB.ID)
if err != nil {
t.Fatalf("failed to "+
"unmarshal UD ID from NDF: %+v", err)
}
params := connect.GetDefaultHostParams()
params.AuthEnabled = false
params.SendTimeout = 20 * time.Second
// Add a new host and return it if it does not already exist
_, err = m.comms.AddHost(udID, netDef.UDB.Address,
[]byte(netDef.UDB.Cert), params)
if err != nil {
t.Fatalf("User Discovery host " +
"object could not be constructed.")
}
return m
}
func newTestNetworkManager(t *testing.T) cmix.Client {
instanceComms := &connect.ProtoComms{ instanceComms := &connect.ProtoComms{
Manager: connect.NewManagerTesting(t), Manager: connect.NewManagerTesting(t),
} }
...@@ -49,52 +122,369 @@ func newTestNetworkManager(t *testing.T) interfaces.NetworkManager { ...@@ -49,52 +122,369 @@ func newTestNetworkManager(t *testing.T) interfaces.NetworkManager {
} }
} }
func getGroup() *cyclic.Group {
return cyclic.NewGroup(
large.NewIntFromString("E2EE983D031DC1DB6F1A7A67DF0E9A8E5561DB8E8D4941"+
"3394C049B7A8ACCEDC298708F121951D9CF920EC5D146727AA4AE535B0922C688"+
"B55B3DD2AEDF6C01C94764DAB937935AA83BE36E67760713AB44A6337C20E7861"+
"575E745D31F8B9E9AD8412118C62A3E2E29DF46B0864D0C951C394A5CBBDC6ADC"+
"718DD2A3E041023DBB5AB23EBB4742DE9C1687B5B34FA48C3521632C4A530E8FF"+
"B1BC51DADDF453B0B2717C2BC6669ED76B4BDD5C9FF558E88F26E5785302BEDBC"+
"A23EAC5ACE92096EE8A60642FB61E8F3D24990B8CB12EE448EEF78E184C7242DD"+
"161C7738F32BF29A841698978825B4111B4BC3E1E198455095958333D776D8B2B"+
"EEED3A1A1A221A6E37E664A64B83981C46FFDDC1A45E3D5211AAF8BFBC072768C"+
"4F50D7D7803D2D4F278DE8014A47323631D7E064DE81C0C6BFA43EF0E6998860F"+
"1390B5D3FEACAF1696015CB79C3F9C2D93D961120CD0E5F12CBB687EAB045241F"+
"96789C38E89D796138E6319BE62E35D87B1048CA28BE389B575E994DCA7554715"+
"84A09EC723742DC35873847AEF49F66E43873", 16),
large.NewIntFromString("2", 16))
}
type mockUser struct {
testing *testing.T
key *rsa.PrivateKey
}
func (m mockUser) PortableUserInfo() user.Info {
return user.Info{
TransmissionID: id.NewIdFromString("test", id.User, m.testing),
TransmissionSalt: []byte("test"),
TransmissionRSA: m.key,
ReceptionID: id.NewIdFromString("test", id.User, m.testing),
ReceptionSalt: []byte("test"),
ReceptionRSA: m.key,
Precanned: false,
RegistrationTimestamp: 0,
E2eDhPrivateKey: getGroup().NewInt(5),
E2eDhPublicKey: getGroup().NewInt(6),
}
}
func (m mockUser) GetReceptionRegistrationValidationSignature() []byte {
return []byte("test")
}
// testNetworkManager is a test implementation of NetworkManager interface. // testNetworkManager is a test implementation of NetworkManager interface.
type testNetworkManager struct { type testNetworkManager struct {
instance *network.Instance instance *network.Instance
} }
func (tnm *testNetworkManager) SendE2E(message.Send, params.E2E, *stoppable.Single) ([]id.Round, e2e.MessageID, time.Time, error) { func (tnm *testNetworkManager) GetInstance() *network.Instance {
return nil, e2e.MessageID{}, time.Time{}, nil return tnm.instance
} }
func (tnm *testNetworkManager) SendUnsafe(message.Send, params.Unsafe) ([]id.Round, error) { func (tnm *testNetworkManager) GetVerboseRounds() string {
return nil, nil //TODO implement me
panic("implement me")
} }
func (tnm *testNetworkManager) GetVerboseRounds() string { func (tnm *testNetworkManager) Follow(report cmix.ClientErrorReport) (stoppable.Stoppable, error) {
return "" //TODO implement me
panic("implement me")
}
func (tnm *testNetworkManager) GetMaxMessageLength() int {
//TODO implement me
panic("implement me")
}
func (tnm *testNetworkManager) Send(recipient *id.ID, fingerprint format.Fingerprint, service cmixMsg.Service, payload, mac []byte, cmixParams cmix.CMIXParams) (id.Round, ephemeral.Id, error) {
//TODO implement me
panic("implement me")
}
func (tnm *testNetworkManager) SendMany(messages []cmix.TargetedCmixMessage, p cmix.CMIXParams) (id.Round, []ephemeral.Id, error) {
//TODO implement me
panic("implement me")
}
func (tnm *testNetworkManager) AddIdentity(id *id.ID, validUntil time.Time, persistent bool) {
//TODO implement me
panic("implement me")
}
func (tnm *testNetworkManager) RemoveIdentity(id *id.ID) {
//TODO implement me
panic("implement me")
}
func (tnm *testNetworkManager) GetIdentity(get *id.ID) (identity.TrackedID, error) {
//TODO implement me
panic("implement me")
}
func (tnm *testNetworkManager) AddFingerprint(identity *id.ID, fingerprint format.Fingerprint, mp cmixMsg.Processor) error {
//TODO implement me
panic("implement me")
}
func (tnm *testNetworkManager) DeleteFingerprint(identity *id.ID, fingerprint format.Fingerprint) {
//TODO implement me
panic("implement me")
}
func (tnm *testNetworkManager) DeleteClientFingerprints(identity *id.ID) {
//TODO implement me
panic("implement me")
}
func (tnm *testNetworkManager) AddService(clientID *id.ID, newService cmixMsg.Service, response cmixMsg.Processor) {
//TODO implement me
panic("implement me")
}
func (tnm *testNetworkManager) DeleteService(clientID *id.ID, toDelete cmixMsg.Service, processor cmixMsg.Processor) {
//TODO implement me
panic("implement me")
}
func (tnm *testNetworkManager) DeleteClientService(clientID *id.ID) {
//TODO implement me
panic("implement me")
}
func (tnm *testNetworkManager) TrackServices(tracker cmixMsg.ServicesTracker) {
//TODO implement me
panic("implement me")
}
func (tnm *testNetworkManager) CheckInProgressMessages() {
//TODO implement me
panic("implement me")
}
func (tnm *testNetworkManager) IsHealthy() bool {
//TODO implement me
panic("implement me")
}
func (tnm *testNetworkManager) WasHealthy() bool {
//TODO implement me
panic("implement me")
}
func (tnm *testNetworkManager) AddHealthCallback(f func(bool)) uint64 {
//TODO implement me
panic("implement me")
}
func (tnm *testNetworkManager) RemoveHealthCallback(u uint64) {
//TODO implement me
panic("implement me")
}
func (tnm *testNetworkManager) HasNode(nid *id.ID) bool {
//TODO implement me
panic("implement me")
}
func (tnm *testNetworkManager) NumRegisteredNodes() int {
//TODO implement me
panic("implement me")
}
func (tnm *testNetworkManager) TriggerNodeRegistration(nid *id.ID) {
//TODO implement me
panic("implement me")
}
func (tnm *testNetworkManager) GetRoundResults(timeout time.Duration, roundCallback cmix.RoundEventCallback, roundList ...id.Round) error {
//TODO implement me
panic("implement me")
}
func (tnm *testNetworkManager) LookupHistoricalRound(rid id.Round, callback rounds.RoundResultCallback) error {
//TODO implement me
panic("implement me")
}
func (tnm *testNetworkManager) SendToAny(sendFunc func(host *connect.Host) (interface{}, error), stop *stoppable.Single) (interface{}, error) {
//TODO implement me
panic("implement me")
}
func (tnm *testNetworkManager) SendToPreferred(targets []*id.ID, sendFunc gateway.SendToPreferredFunc, stop *stoppable.Single, timeout time.Duration) (interface{}, error) {
//TODO implement me
panic("implement me")
}
func (tnm *testNetworkManager) SetGatewayFilter(f gateway.Filter) {
//TODO implement me
panic("implement me")
}
func (tnm *testNetworkManager) GetHostParams() connect.HostParams {
//TODO implement me
panic("implement me")
}
func (tnm *testNetworkManager) GetAddressSpace() uint8 {
//TODO implement me
panic("implement me")
}
func (tnm *testNetworkManager) RegisterAddressSpaceNotification(tag string) (chan uint8, error) {
//TODO implement me
panic("implement me")
}
func (tnm *testNetworkManager) UnregisterAddressSpaceNotification(tag string) {
//TODO implement me
panic("implement me")
}
type mockUserStore struct{}
func (m mockUserStore) PortableUserInfo() user.Info {
//TODO implement me
panic("implement me")
}
func (m mockUserStore) GetUsername() (string, error) {
//TODO implement me
panic("implement me")
}
func (m mockUserStore) GetReceptionRegistrationValidationSignature() []byte {
//TODO implement me
panic("implement me")
}
type mockComms struct {
udHost *connect.Host
}
func (m mockComms) SendRegisterUser(host *connect.Host, message *pb.UDBUserRegistration) (*messages.Ack, error) {
//TODO implement me
panic("implement me")
}
func (m mockComms) SendRegisterFact(host *connect.Host, message *pb.FactRegisterRequest) (*pb.FactRegisterResponse, error) {
//TODO implement me
panic("implement me")
}
func (m mockComms) SendConfirmFact(host *connect.Host, message *pb.FactConfirmRequest) (*messages.Ack, error) {
//TODO implement me
panic("implement me")
}
func (m mockComms) SendRemoveFact(host *connect.Host, message *pb.FactRemovalRequest) (*messages.Ack, error) {
//TODO implement me
panic("implement me")
}
func (m mockComms) SendRemoveUser(host *connect.Host, message *pb.FactRemovalRequest) (*messages.Ack, error) {
//TODO implement me
panic("implement me")
}
func (m *mockComms) AddHost(hid *id.ID, address string, cert []byte, params connect.HostParams) (host *connect.Host, err error) {
h, err := connect.NewHost(hid, address, cert, params)
if err != nil {
return nil, err
} }
func (tnm *testNetworkManager) SendCMIX(format.Message, *id.ID, params.CMIX) (id.Round, ephemeral.Id, error) { m.udHost = h
return 0, ephemeral.Id{}, nil return h, nil
} }
func (tnm *testNetworkManager) SendManyCMIX([]message.TargetedCmixMessage, params.CMIX) (id.Round, []ephemeral.Id, error) { func (m mockComms) GetHost(hostId *id.ID) (*connect.Host, bool) {
return 0, nil, nil return m.udHost, true
} }
type dummyEventMgr struct{} type mockE2e struct{}
func (m mockE2e) SendE2E(mt catalog.MessageType, recipient *id.ID, payload []byte, params e2e.Params) ([]id.Round, e2eCrypto.MessageID, time.Time, error) {
//TODO implement me
panic("implement me")
}
func (m mockE2e) RegisterListener(senderID *id.ID, messageType catalog.MessageType, newListener receive.Listener) receive.ListenerID {
//TODO implement me
panic("implement me")
}
func (d *dummyEventMgr) Report(int, string, string, string) {} func (m mockE2e) RegisterFunc(name string, senderID *id.ID, messageType catalog.MessageType, newListener receive.ListenerFunc) receive.ListenerID {
func (tnm *testNetworkManager) GetEventManager() event.Reporter { //TODO implement me
return &dummyEventMgr{} panic("implement me")
} }
func (tnm *testNetworkManager) GetInstance() *network.Instance { return tnm.instance } func (m mockE2e) SendUnsafe(mt catalog.MessageType, recipient *id.ID, payload []byte, params e2e.Params) ([]id.Round, time.Time, error) {
func (tnm *testNetworkManager) GetHealthTracker() interfaces.HealthTracker { return nil } //TODO implement me
func (tnm *testNetworkManager) Follow(interfaces.ClientErrorReport) (stoppable.Stoppable, error) { panic("implement me")
return nil, nil
} }
func (tnm *testNetworkManager) CheckGarbledMessages() {}
func (tnm *testNetworkManager) InProgressRegistrations() int { return 0 } func (m mockE2e) StartProcesses() (stoppable.Stoppable, error) {
func (tnm *testNetworkManager) GetSender() *gateway.Sender { return nil } //TODO implement me
func (tnm *testNetworkManager) GetAddressSize() uint8 { return 0 } panic("implement me")
func (tnm *testNetworkManager) RegisterAddressSizeNotification(string) (chan uint8, error) { }
return nil, nil
func (m mockE2e) RegisterChannel(name string, senderID *id.ID, messageType catalog.MessageType, newListener chan receive.Message) receive.ListenerID {
//TODO implement me
panic("implement me")
}
func (m mockE2e) Unregister(listenerID receive.ListenerID) {
//TODO implement me
panic("implement me")
}
func (m mockE2e) AddPartner(partnerID *id.ID, partnerPubKey, myPrivKey *cyclic.Int, partnerSIDHPubKey *sidh.PublicKey, mySIDHPrivKey *sidh.PrivateKey, sendParams, receiveParams session.Params) (partner.Manager, error) {
//TODO implement me
panic("implement me")
}
func (m mockE2e) GetPartner(partnerID *id.ID) (partner.Manager, error) {
//TODO implement me
panic("implement me")
}
func (m mockE2e) DeletePartner(partnerId *id.ID) error {
//TODO implement me
panic("implement me")
}
func (m mockE2e) GetAllPartnerIDs() []*id.ID {
//TODO implement me
panic("implement me")
}
func (m mockE2e) AddService(tag string, processor cmixMsg.Processor) error {
//TODO implement me
panic("implement me")
}
func (m mockE2e) RemoveService(tag string) error {
//TODO implement me
panic("implement me")
}
func (m mockE2e) EnableUnsafeReception() {
//TODO implement me
panic("implement me")
}
func (m mockE2e) GetGroup() *cyclic.Group {
//TODO implement me
panic("implement me")
}
func (m mockE2e) GetHistoricalDHPubkey() *cyclic.Int {
//TODO implement me
panic("implement me")
}
func (m mockE2e) GetHistoricalDHPrivkey() *cyclic.Int {
//TODO implement me
panic("implement me")
}
func (m mockE2e) GetReceptionID() *id.ID {
//TODO implement me
panic("implement me")
} }
func (tnm *testNetworkManager) UnregisterAddressSizeNotification(string) {}
func (tnm *testNetworkManager) SetPoolFilter(gateway.Filter) {}
func getNDF() *ndf.NetworkDefinition { func getNDF() *ndf.NetworkDefinition {
return &ndf.NetworkDefinition{ return &ndf.NetworkDefinition{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment