diff --git a/permissioning/register.go b/permissioning/register.go index 1a64e54798560b270ab0d62267f7b2704a2c8ae1..e332152573c112c5e7cf5f32608f6aa3f2a8c60b 100644 --- a/permissioning/register.go +++ b/permissioning/register.go @@ -14,7 +14,8 @@ import ( "gitlab.com/xx_network/crypto/signature/rsa" ) -func (perm *Permissioning) Register(transmissionPublicKey, receptionPublicKey *rsa.PublicKey, registrationCode string) ([]byte, []byte, error) { +func (perm *Permissioning) Register(transmissionPublicKey, receptionPublicKey *rsa.PublicKey, + registrationCode string) ([]byte, []byte, int64, error) { return register(perm.comms, perm.host, transmissionPublicKey, receptionPublicKey, registrationCode) } @@ -26,7 +27,7 @@ type registrationMessageSender interface { //register registers the user with optional registration code // Returns an error if registration fails. func register(comms registrationMessageSender, host *connect.Host, - transmissionPublicKey, receptionPublicKey *rsa.PublicKey, registrationCode string) ([]byte, []byte, error) { + transmissionPublicKey, receptionPublicKey *rsa.PublicKey, registrationCode string) ([]byte, []byte, int64, error) { response, err := comms. SendRegistrationMessage(host, @@ -37,10 +38,12 @@ func register(comms registrationMessageSender, host *connect.Host, }) if err != nil { err = errors.Wrap(err, "sendRegistrationMessage: Unable to contact Identity Server!") - return nil, nil, err + return nil, nil, 0, err } if response.Error != "" { - return nil, nil, errors.Errorf("sendRegistrationMessage: error handling message: %s", response.Error) + return nil, nil, 0, errors.Errorf("sendRegistrationMessage: error handling message: %s", response.Error) } - return response.ClientSignedByServer.Signature, response.ClientReceptionSignedByServer.Signature, nil + + return response.ClientSignedByServer.Signature, + response.ClientReceptionSignedByServer.Signature, response.Timestamp, nil } diff --git a/permissioning/register_test.go b/permissioning/register_test.go index 52dcb46e948b42fdd54a8f45ca6e2f751bf8a85e..02dd58b41c77ebe7a89f8cead15dc9b144b6c7dc 100644 --- a/permissioning/register_test.go +++ b/permissioning/register_test.go @@ -68,7 +68,7 @@ func TestRegisterWithPermissioning(t *testing.T) { } regCode := "flooble doodle" - sig1, sig2, err := register(&sender, sender.getHost, key.GetPublic(), key.GetPublic(), regCode) + sig1, sig2, _, err := register(&sender, sender.getHost, key.GetPublic(), key.GetPublic(), regCode) if err != nil { t.Error(err) } @@ -105,7 +105,7 @@ func TestRegisterWithPermissioning_ResponseErr(t *testing.T) { var sender MockRegistrationSender sender.succeedGetHost = true sender.errInReply = "failure occurred on permissioning" - _, _, err = register(&sender, nil, key.GetPublic(), key.GetPublic(), "") + _, _, _, err = register(&sender, nil, key.GetPublic(), key.GetPublic(), "") if err == nil { t.Error("no error if registration fails on permissioning") } @@ -122,7 +122,7 @@ func TestRegisterWithPermissioning_ConnectionErr(t *testing.T) { var sender MockRegistrationSender sender.succeedGetHost = true sender.errSendRegistration = errors.New("connection problem") - _, _, err = register(&sender, nil, key.GetPublic(), key.GetPublic(), "") + _, _, _, err = register(&sender, nil, key.GetPublic(), key.GetPublic(), "") if err == nil { t.Error("no error if e.g. context deadline exceeded") }