Skip to content

Commit c27651f

Browse files
committed
update node registrar client to accept private key instead of seed
1 parent 2887e01 commit c27651f

File tree

6 files changed

+54
-54
lines changed

6 files changed

+54
-54
lines changed

node-registrar/client/account_test.go

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package client
22

33
import (
4+
"encoding/base64"
45
"net/http"
56
"net/http/httptest"
67
"net/url"
@@ -14,9 +15,9 @@ func TestCreateAccount(t *testing.T) {
1415
var count int
1516
require := require.New(t)
1617

17-
_, seed, publicKeyBase64, err := aliceKeys()
18+
publicKey, privateKey, err := aliceKeys()
1819
require.NoError(err)
19-
account.PublicKey = publicKeyBase64
20+
account.PublicKey = base64.StdEncoding.EncodeToString(publicKey)
2021

2122
testServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
2223
statusCode, body := serverHandler(r, request, count, require)
@@ -31,7 +32,7 @@ func TestCreateAccount(t *testing.T) {
3132
require.NoError(err)
3233

3334
request = newClientWithNoAccount
34-
c, err := NewRegistrarClient(baseURL, seed)
35+
c, err := NewRegistrarClient(baseURL, privateKey)
3536
require.NoError(err)
3637

3738
t.Run("test create account created successfully", func(t *testing.T) {
@@ -47,9 +48,9 @@ func TestUpdateAccount(t *testing.T) {
4748
var count int
4849
require := require.New(t)
4950

50-
pk, seed, publicKeyBase64, err := aliceKeys()
51+
publicKey, privateKey, err := aliceKeys()
5152
require.NoError(err)
52-
account.PublicKey = publicKeyBase64
53+
account.PublicKey = base64.StdEncoding.EncodeToString(publicKey)
5354

5455
testServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
5556
statusCode, body := serverHandler(r, request, count, require)
@@ -67,11 +68,11 @@ func TestUpdateAccount(t *testing.T) {
6768
t.Run("test update account updated successfully", func(t *testing.T) {
6869
count = 0
6970
request = newClientWithAccountNoNode
70-
c, err := NewRegistrarClient(baseURL, seed)
71+
c, err := NewRegistrarClient(baseURL, privateKey)
7172

7273
require.NoError(err)
7374
require.Equal(c.twinID, account.TwinID)
74-
require.Equal([]byte(c.keyPair.publicKey), pk)
75+
require.Equal(c.keyPair.publicKey, publicKey)
7576

7677
request = updateAccountWithStatusOK
7778
relays := []string{"relay1"}
@@ -81,10 +82,10 @@ func TestUpdateAccount(t *testing.T) {
8182

8283
t.Run("test update account account not found", func(t *testing.T) {
8384
request = newClientWithNoAccount
84-
c, err := NewRegistrarClient(baseURL, seed)
85+
c, err := NewRegistrarClient(baseURL, privateKey)
8586

8687
require.NoError(err)
87-
require.Equal([]byte(c.keyPair.publicKey), pk)
88+
require.Equal(c.keyPair.publicKey, publicKey)
8889

8990
request = updateAccountWithNoAccount
9091
relays := []string{"relay1"}
@@ -98,9 +99,9 @@ func TestGetAccount(t *testing.T) {
9899
var count int
99100
require := require.New(t)
100101

101-
pk, seed, publicKeyBase64, err := aliceKeys()
102+
publicKey, privateKey, err := aliceKeys()
102103
require.NoError(err)
103-
account.PublicKey = publicKeyBase64
104+
account.PublicKey = base64.StdEncoding.EncodeToString(publicKey)
104105

105106
testServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
106107
statusCode, body := serverHandler(r, request, count, require)
@@ -116,10 +117,10 @@ func TestGetAccount(t *testing.T) {
116117

117118
count = 0
118119
request = newClientWithAccountNoNode
119-
c, err := NewRegistrarClient(baseURL, seed)
120+
c, err := NewRegistrarClient(baseURL, privateKey)
120121
require.NoError(err)
121-
require.Equal(c.twinID, account.TwinID)
122-
require.Equal([]byte(c.keyPair.publicKey), pk)
122+
require.Equal(account.TwinID, c.twinID)
123+
require.Equal(publicKey, c.keyPair.publicKey)
123124

124125
t.Run("test get account with id account not found", func(t *testing.T) {
125126
request = getAccountWithIDStatusNotFount

node-registrar/client/client.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,9 @@ type RegistrarClient struct {
2020
baseURL string
2121
}
2222

23-
func NewRegistrarClient(baseURL string, sk []byte) (cli RegistrarClient, err error) {
23+
func NewRegistrarClient(baseURL string, privateKey ed25519.PrivateKey) (cli RegistrarClient, err error) {
2424
client := http.DefaultClient
2525

26-
privateKey := ed25519.NewKeyFromSeed(sk)
2726
publicKey, ok := privateKey.Public().(ed25519.PublicKey)
2827
if !ok {
2928
return cli, errors.Wrap(err, "failed to get public key of provided private key")

node-registrar/client/client_test.go

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package client
22

33
import (
4+
"encoding/base64"
45
"net/http"
56
"net/http/httptest"
67
"net/url"
@@ -14,9 +15,9 @@ func TestNewRegistrarClient(t *testing.T) {
1415
var count int
1516
require := require.New(t)
1617

17-
pk, seed, publicKeyBase64, err := aliceKeys()
18+
publicKey, privateKey, err := aliceKeys()
1819
require.NoError(err)
19-
account.PublicKey = publicKeyBase64
20+
account.PublicKey = base64.StdEncoding.EncodeToString(publicKey)
2021

2122
testServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
2223
statusCode, body := serverHandler(r, request, count, require)
@@ -33,29 +34,29 @@ func TestNewRegistrarClient(t *testing.T) {
3334
t.Run("test new registrar client with no account", func(t *testing.T) {
3435
count = 0
3536
request = newClientWithNoAccount
36-
c, err := NewRegistrarClient(baseURL, seed)
37+
c, err := NewRegistrarClient(baseURL, privateKey)
3738
require.NoError(err)
3839
require.Equal(uint64(0), c.twinID)
3940
require.Equal(uint64(0), c.nodeID)
40-
require.Equal([]byte(c.keyPair.publicKey), pk)
41+
require.Equal(publicKey, c.keyPair.publicKey)
4142
})
4243

4344
t.Run("test new registrar client with account and no node", func(t *testing.T) {
4445
count = 0
4546
request = newClientWithAccountNoNode
46-
c, err := NewRegistrarClient(baseURL, seed)
47+
c, err := NewRegistrarClient(baseURL, privateKey)
4748
require.NoError(err)
4849
require.Equal(account.TwinID, c.twinID)
4950
require.Equal(uint64(0), c.nodeID)
50-
require.Equal(pk, []byte(c.keyPair.publicKey))
51+
require.Equal(publicKey, c.keyPair.publicKey)
5152
})
5253
t.Run("test new registrar client with account and node", func(t *testing.T) {
5354
count = 0
5455
request = newClientWithAccountAndNode
55-
c, err := NewRegistrarClient(baseURL, seed)
56+
c, err := NewRegistrarClient(baseURL, privateKey)
5657
require.NoError(err)
5758
require.Equal(account.TwinID, c.twinID)
5859
require.Equal(nodeID, c.nodeID)
59-
require.Equal(pk, []byte(c.keyPair.publicKey))
60+
require.Equal(publicKey, c.keyPair.publicKey)
6061
})
6162
}

node-registrar/client/farm_test.go

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package client
22

33
import (
4+
"encoding/base64"
45
"net/http"
56
"net/http/httptest"
67
"net/url"
@@ -14,9 +15,9 @@ func TestCreateFarm(t *testing.T) {
1415
var count int
1516
require := require.New(t)
1617

17-
_, seed, publicKeyBase64, err := aliceKeys()
18+
publicKey, privateKey, err := aliceKeys()
1819
require.NoError(err)
19-
account.PublicKey = publicKeyBase64
20+
account.PublicKey = base64.StdEncoding.EncodeToString(publicKey)
2021

2122
testServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
2223
statusCode, body := serverHandler(r, request, count, require)
@@ -31,7 +32,7 @@ func TestCreateFarm(t *testing.T) {
3132
require.NoError(err)
3233

3334
request = newClientWithAccountNoNode
34-
c, err := NewRegistrarClient(baseURL, seed)
35+
c, err := NewRegistrarClient(baseURL, privateKey)
3536
require.NoError(err)
3637

3738
t.Run("test create farm with status conflict", func(t *testing.T) {
@@ -53,9 +54,9 @@ func TestUpdateFarm(t *testing.T) {
5354
var count int
5455
require := require.New(t)
5556

56-
_, seed, publicKeyBase64, err := aliceKeys()
57+
publicKey, privateKey, err := aliceKeys()
5758
require.NoError(err)
58-
account.PublicKey = publicKeyBase64
59+
account.PublicKey = base64.StdEncoding.EncodeToString(publicKey)
5960

6061
testServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
6162
statusCode, body := serverHandler(r, request, count, require)
@@ -71,7 +72,7 @@ func TestUpdateFarm(t *testing.T) {
7172

7273
t.Run("test update farm with status unauthorzed", func(t *testing.T) {
7374
request = newClientWithNoAccount
74-
c, err := NewRegistrarClient(baseURL, seed)
75+
c, err := NewRegistrarClient(baseURL, privateKey)
7576
require.NoError(err)
7677

7778
request = updateFarmWithStatusUnauthorized
@@ -82,7 +83,7 @@ func TestUpdateFarm(t *testing.T) {
8283
t.Run("test update farm with status ok", func(t *testing.T) {
8384
count = 0
8485
request = newClientWithAccountNoNode
85-
c, err := NewRegistrarClient(baseURL, seed)
86+
c, err := NewRegistrarClient(baseURL, privateKey)
8687
require.NoError(err)
8788

8889
request = updateFarmWithStatusOK
@@ -96,9 +97,9 @@ func TestGetFarm(t *testing.T) {
9697
var count int
9798
require := require.New(t)
9899

99-
_, seed, publicKeyBase64, err := aliceKeys()
100+
publicKey, privateKey, err := aliceKeys()
100101
require.NoError(err)
101-
account.PublicKey = publicKeyBase64
102+
account.PublicKey = base64.StdEncoding.EncodeToString(publicKey)
102103

103104
testServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
104105
statusCode, body := serverHandler(r, request, count, require)
@@ -114,7 +115,7 @@ func TestGetFarm(t *testing.T) {
114115

115116
count = 0
116117
request = newClientWithAccountNoNode
117-
c, err := NewRegistrarClient(baseURL, seed)
118+
c, err := NewRegistrarClient(baseURL, privateKey)
118119
require.NoError(err)
119120

120121
t.Run("test get farm with status not found", func(t *testing.T) {

node-registrar/client/node_test.go

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package client
22

33
import (
4+
"encoding/base64"
45
"net/http"
56
"net/http/httptest"
67
"net/url"
@@ -15,9 +16,9 @@ func TestRegistarNode(t *testing.T) {
1516
var count int
1617
require := require.New(t)
1718

18-
_, seed, publicKeyBase64, err := aliceKeys()
19+
publicKey, privateKey, err := aliceKeys()
1920
require.NoError(err)
20-
account.PublicKey = publicKeyBase64
21+
account.PublicKey = base64.StdEncoding.EncodeToString(publicKey)
2122

2223
testServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
2324
statusCode, body := serverHandler(r, request, count, require)
@@ -33,7 +34,7 @@ func TestRegistarNode(t *testing.T) {
3334

3435
t.Run("test registar node no account", func(t *testing.T) {
3536
request = newClientWithNoAccount
36-
c, err := NewRegistrarClient(baseURL, seed)
37+
c, err := NewRegistrarClient(baseURL, privateKey)
3738
require.NoError(err)
3839

3940
request = registerNodeWithNoAccount
@@ -44,7 +45,7 @@ func TestRegistarNode(t *testing.T) {
4445
t.Run("test registar node, node already exist", func(t *testing.T) {
4546
count = 0
4647
request = newClientWithAccountAndNode
47-
c, err := NewRegistrarClient(baseURL, seed)
48+
c, err := NewRegistrarClient(baseURL, privateKey)
4849
require.NoError(err)
4950

5051
count = 0
@@ -56,7 +57,7 @@ func TestRegistarNode(t *testing.T) {
5657
t.Run("test registar node, created successfully", func(t *testing.T) {
5758
count = 0
5859
request = newClientWithAccountNoNode
59-
c, err := NewRegistrarClient(baseURL, seed)
60+
c, err := NewRegistrarClient(baseURL, privateKey)
6061
require.NoError(err)
6162

6263
count = 0
@@ -72,9 +73,9 @@ func TestUpdateNode(t *testing.T) {
7273
var count int
7374
require := require.New(t)
7475

75-
_, seed, publicKeyBase64, err := aliceKeys()
76+
publicKey, privateKey, err := aliceKeys()
7677
require.NoError(err)
77-
account.PublicKey = publicKeyBase64
78+
account.PublicKey = base64.StdEncoding.EncodeToString(publicKey)
7879

7980
testServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
8081
statusCode, body := serverHandler(r, request, count, require)
@@ -89,7 +90,7 @@ func TestUpdateNode(t *testing.T) {
8990
require.NoError(err)
9091

9192
request = newClientWithAccountAndNode
92-
c, err := NewRegistrarClient(baseURL, seed)
93+
c, err := NewRegistrarClient(baseURL, privateKey)
9394
require.NoError(err)
9495

9596
t.Run("test update node with status ok", func(t *testing.T) {
@@ -116,9 +117,9 @@ func TestGetNode(t *testing.T) {
116117
var count int
117118
require := require.New(t)
118119

119-
_, seed, publicKeyBase64, err := aliceKeys()
120+
publicKey, privateKey, err := aliceKeys()
120121
require.NoError(err)
121-
account.PublicKey = publicKeyBase64
122+
account.PublicKey = base64.StdEncoding.EncodeToString(publicKey)
122123

123124
testServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
124125
statusCode, body := serverHandler(r, request, count, require)
@@ -133,7 +134,7 @@ func TestGetNode(t *testing.T) {
133134
require.NoError(err)
134135

135136
request = newClientWithAccountAndNode
136-
c, err := NewRegistrarClient(baseURL, seed)
137+
c, err := NewRegistrarClient(baseURL, privateKey)
137138
require.NoError(err)
138139

139140
t.Run("test get node status not found", func(t *testing.T) {

node-registrar/client/utils_test.go

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package client
22

33
import (
44
"crypto/ed25519"
5-
"encoding/base64"
65
"encoding/hex"
76
"encoding/json"
87
"fmt"
@@ -238,19 +237,17 @@ func serverHandler(r *http.Request, request, count int, require *require.Asserti
238237
return http.StatusNotAcceptable, nil
239238
}
240239

241-
func aliceKeys() (pk, seed []byte, pkBase64 string, err error) {
242-
seed, err = hex.DecodeString(aliceSeed)
240+
func aliceKeys() (publicKey ed25519.PublicKey, privateKey ed25519.PrivateKey, err error) {
241+
seed, err := hex.DecodeString(aliceSeed)
243242
if err != nil {
244243
return
245244
}
246245

247-
privateKey := ed25519.NewKeyFromSeed(seed)
248-
pk, ok := privateKey.Public().(ed25519.PublicKey)
246+
privateKey = ed25519.NewKeyFromSeed(seed)
247+
publicKey, ok := privateKey.Public().(ed25519.PublicKey)
249248
if !ok {
250-
return pk, seed, pkBase64, fmt.Errorf("failed to get public key of provided private key")
249+
return publicKey, privateKey, fmt.Errorf("failed to get public key of provided private key")
251250
}
252251

253-
pkBase64 = base64.StdEncoding.EncodeToString(pk)
254-
255-
return pk, seed, pkBase64, nil
252+
return
256253
}

0 commit comments

Comments
 (0)