From 56dc5bd584d993e6b74446da04b4d56aa63de762 Mon Sep 17 00:00:00 2001
From: josh <josh@elixxir.io>
Date: Fri, 7 May 2021 14:27:40 -0700
Subject: [PATCH] Integrate timestamp with register with persmissioning calls

---
 permissioning/register.go      | 13 ++++++++-----
 permissioning/register_test.go |  6 +++---
 2 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/permissioning/register.go b/permissioning/register.go
index 1a64e5479..e33215257 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 52dcb46e9..02dd58b41 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")
 	}
-- 
GitLab