gen new key and re-register on pull

This commit is contained in:
Matthew R. Kasun
2022-04-25 14:04:36 -04:00
parent 1ae9240d86
commit e3206c5b4c
4 changed files with 22 additions and 20 deletions

View File

@@ -23,7 +23,7 @@ import (
)
// Pull - pulls the latest config from the server, if manual it will overwrite
func Pull(network string, manual bool) (*models.Node, error) {
func Pull(network string, iface bool, register bool) (*models.Node, error) {
cfg, err := config.ReadConfig(network)
if err != nil {
return nil, err
@@ -56,7 +56,7 @@ func Pull(network string, manual bool) (*models.Node, error) {
}
// ensure that the OS never changes
resNode.OS = runtime.GOOS
if manual {
if iface {
// check for interface change
if cfg.Node.Interface != resNode.Interface {
if err = DeleteInterface(cfg.Node.Interface, cfg.Node.PostDown); err != nil {
@@ -72,7 +72,7 @@ func Pull(network string, manual bool) (*models.Node, error) {
} else {
if err = wireguard.SetWGConfig(network, true); err != nil {
if errors.Is(err, os.ErrNotExist) && !ncutils.IsFreeBSD() {
return Pull(network, true)
return Pull(network, true, false)
} else {
return nil, err
}
@@ -83,17 +83,19 @@ func Pull(network string, manual bool) (*models.Node, error) {
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 register {
_, 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()
}
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
}