gen new key and re-register on pull

This commit is contained in:
Matthew R. Kasun 2022-04-25 13:25:21 -04:00
parent d626cf0e9b
commit 1ae9240d86

View file

@ -1,6 +1,8 @@
package functions
import (
"crypto/ed25519"
"crypto/rand"
"encoding/json"
"errors"
"fmt"
@ -12,9 +14,11 @@ import (
"github.com/gravitl/netmaker/logger"
"github.com/gravitl/netmaker/models"
"github.com/gravitl/netmaker/netclient/config"
"github.com/gravitl/netmaker/netclient/daemon"
"github.com/gravitl/netmaker/netclient/local"
"github.com/gravitl/netmaker/netclient/ncutils"
"github.com/gravitl/netmaker/netclient/wireguard"
"github.com/gravitl/netmaker/tls"
//homedir "github.com/mitchellh/go-homedir"
)
@ -78,6 +82,18 @@ func Pull(network string, manual bool) (*models.Node, error) {
if bkupErr != nil {
logger.Log(0, "unable to update backup file")
}
//generate new private key and re-register with server
_, newKey, err := ed25519.GenerateKey(rand.Reader)
if err != nil {
return &resNode, err
}
if err := tls.SaveKey(ncutils.GetNetclientPath(), "/client.key", newKey); err != nil {
return &resNode, err
}
if err = RegisterWithServer(&newKey, cfg); err != nil {
return &resNode, err
}
daemon.Restart()
return &resNode, err
}