Skip to content
Snippets Groups Projects
Commit e56dd13e authored by David Stainton's avatar David Stainton
Browse files

Fix TestChannelIDTracking

parent ab865948
No related branches found
No related tags found
6 merge requests!510Release,!419rewrote the health tracker to both consider if there are waiting rounds and...,!371[Channel RSAtoPrivate] Implement Reverse Asymmetric in Client/Broadcast,!354Channels impl,!340Project/channels,!338Xx 4055/channel identity tracking
...@@ -64,27 +64,32 @@ func TestChannelIDTracking(t *testing.T) { ...@@ -64,27 +64,32 @@ func TestChannelIDTracking(t *testing.T) {
comms := new(mockComms) comms := new(mockComms)
username := "Alice" username := "Alice"
/*
udPubKeyBytes := m.user.GetCmix().GetInstance(). udPubKeyBytes := m.user.GetCmix().GetInstance().
GetPartialNdf().Get().UDB.DhPubKey GetPartialNdf().Get().UDB.DhPubKey
*/
udPubKey, udPrivKey, err := ed25519.GenerateKey(stream)
require.NoError(t, err)
myTestClientIDTracker := newclientIDTracker( myTestClientIDTracker := newclientIDTracker(
comms, host, username, comms, host, username,
kv, m.user.GetReceptionIdentity(), kv, m.user.GetReceptionIdentity(),
ed25519.PublicKey(udPubKeyBytes), rngGen) udPubKey, rngGen)
rsaPrivKey, err := myTestClientIDTracker.receptionIdentity.GetRSAPrivateKey() rsaPrivKey, err := myTestClientIDTracker.receptionIdentity.GetRSAPrivateKey()
require.NoError(t, err) require.NoError(t, err)
comms.SetUserRSAPubKey(rsaPrivKey.GetPublic()) comms.SetUserRSAPubKey(rsaPrivKey.GetPublic())
comms.SetUDEd25519PrivateKey(&udPrivKey)
comms.SetUserEd25519PubKey(myTestClientIDTracker.registrationDisk.GetPublicKey()) comms.SetUserEd25519PubKey(myTestClientIDTracker.registrationDisk.GetPublicKey())
comms.SetUsername(username)
//sig, _ := myTestClientIDTracker.registrationDisk.GetLeaseSignature() //sig, _ := myTestClientIDTracker.registrationDisk.GetLeaseSignature()
// XXX bad signature // XXX bad signature
sig := make([]byte, 64) sig := make([]byte, 64)
stream.Read(sig) stream.Read(sig)
comms.SetLeaseSignature(sig)
err = myTestClientIDTracker.register() err = myTestClientIDTracker.register()
require.NoError(t, err) require.NoError(t, err)
} }
...@@ -2,7 +2,6 @@ package ud ...@@ -2,7 +2,6 @@ package ud
import ( import (
"crypto/ed25519" "crypto/ed25519"
"fmt"
"time" "time"
"gitlab.com/xx_network/comms/connect" "gitlab.com/xx_network/comms/connect"
...@@ -18,7 +17,8 @@ type mockComms struct { ...@@ -18,7 +17,8 @@ type mockComms struct {
udHost *connect.Host udHost *connect.Host
userRsaPub *rsa.PublicKey userRsaPub *rsa.PublicKey
userEd25519PubKey []byte userEd25519PubKey []byte
udLeaseEd25519Signature []byte udPrivKey *ed25519.PrivateKey
username string
} }
func (m mockComms) SendRegisterUser(host *connect.Host, message *pb.UDBUserRegistration) (*messages.Ack, error) { func (m mockComms) SendRegisterUser(host *connect.Host, message *pb.UDBUserRegistration) (*messages.Ack, error) {
...@@ -55,6 +55,10 @@ func (m mockComms) GetHost(hostId *id.ID) (*connect.Host, bool) { ...@@ -55,6 +55,10 @@ func (m mockComms) GetHost(hostId *id.ID) (*connect.Host, bool) {
return m.udHost, true return m.udHost, true
} }
func (m *mockComms) SetUDEd25519PrivateKey(key *ed25519.PrivateKey) {
m.udPrivKey = key
}
func (m *mockComms) SetUserRSAPubKey(userRsaPub *rsa.PublicKey) { func (m *mockComms) SetUserRSAPubKey(userRsaPub *rsa.PublicKey) {
m.userRsaPub = userRsaPub m.userRsaPub = userRsaPub
} }
...@@ -63,30 +67,34 @@ func (m *mockComms) SetUserEd25519PubKey(key ed25519.PublicKey) { ...@@ -63,30 +67,34 @@ func (m *mockComms) SetUserEd25519PubKey(key ed25519.PublicKey) {
m.userEd25519PubKey = []byte(key) m.userEd25519PubKey = []byte(key)
} }
func (m *mockComms) SetLeaseSignature(signature []byte) { func (m *mockComms) SetUsername(u string) {
m.udLeaseEd25519Signature = signature m.username = u
} }
func (m mockComms) SendChannelLeaseRequest(host *connect.Host, message *pb.ChannelLeaseRequest) (*pb.ChannelLeaseResponse, error) { func (m mockComms) SendChannelLeaseRequest(host *connect.Host, message *pb.ChannelLeaseRequest) (*pb.ChannelLeaseResponse, error) {
fmt.Printf("message sig: %x\n", message.UserPubKeyRSASignature)
fmt.Printf("rsa pub key: %v\n", m.userRsaPub)
err := channel.VerifyChannelIdentityRequest(message.UserPubKeyRSASignature, err := channel.VerifyChannelIdentityRequest(message.UserPubKeyRSASignature,
message.UserEd25519PubKey, message.UserEd25519PubKey,
time.Now(), time.Now(),
time.Unix(0, message.Timestamp), time.Unix(0, message.Timestamp),
m.userRsaPub) m.userRsaPub)
if err != nil { if err != nil {
panic(err) panic(err)
} }
d, _ := time.ParseDuration("4h30m") d, _ := time.ParseDuration("4h30m")
lease := time.Now().Add(d).UnixNano()
signature := channel.SignChannelLease(m.userEd25519PubKey, m.username,
time.Unix(0, lease), *m.udPrivKey)
if err != nil {
panic(err)
}
response := &pb.ChannelLeaseResponse{ response := &pb.ChannelLeaseResponse{
Lease: time.Now().Add(d).UnixNano(), Lease: lease,
UserEd25519PubKey: m.userEd25519PubKey, UserEd25519PubKey: m.userEd25519PubKey,
UDLeaseEd25519Signature: m.udLeaseEd25519Signature, UDLeaseEd25519Signature: signature,
} }
return response, nil return response, nil
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment