Skip to content

Commit ebf9ed3

Browse files
committed
fix
1 parent 4c037d1 commit ebf9ed3

File tree

1 file changed

+24
-14
lines changed

1 file changed

+24
-14
lines changed

nodebuilder/node/auth.go

+24-14
Original file line numberDiff line numberDiff line change
@@ -11,25 +11,35 @@ import (
1111

1212
var SecretName = keystore.KeyName("jwt-secret.jwt")
1313

14-
// secret returns the node's JWT secret if it exists, or generates
15-
// and saves a new one if it does not.
16-
func secret(ks keystore.Keystore) (jwt.Signer, error) {
17-
// if key already exists, use it
18-
if pk, ok := existing(ks); ok {
19-
return jwt.NewSignerHS(jwt.HS256, pk)
14+
// jwtSignerAndVerifier returns the node's JWT signer and verifier for a saved key,
15+
// or generates and saves a new one if it does not.
16+
func jwtSignerAndVerifier(ks keystore.Keystore) (jwt.Signer, jwt.Verifier, error) {
17+
key, ok := existing(ks)
18+
if !ok {
19+
// otherwise, generate and save new priv key
20+
sk, err := io.ReadAll(io.LimitReader(rand.Reader, 32))
21+
if err != nil {
22+
return nil, nil, err
23+
}
24+
25+
// save key
26+
err = ks.Put(SecretName, keystore.PrivKey{Body: sk})
27+
if err != nil {
28+
return nil, nil, err
29+
}
30+
key = sk
2031
}
21-
// otherwise, generate and save new priv key
22-
sk, err := io.ReadAll(io.LimitReader(rand.Reader, 32))
32+
33+
signer, err := jwt.NewSignerHS(jwt.HS256, key)
2334
if err != nil {
24-
return nil, err
35+
return nil, nil, err
2536
}
26-
// save key
27-
err = ks.Put(SecretName, keystore.PrivKey{Body: sk})
37+
38+
verifier, err := jwt.NewVerifierHS(jwt.HS256, key)
2839
if err != nil {
29-
return nil, err
40+
return nil, nil, err
3041
}
31-
32-
return jwt.NewSignerHS(jwt.HS256, sk)
42+
return signer, verifier, nil
3343
}
3444

3545
func existing(ks keystore.Keystore) ([]byte, bool) {

0 commit comments

Comments
 (0)