mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-05 00:43:58 +08:00
added encryption/decryption strategy
This commit is contained in:
@@ -2,6 +2,8 @@ package functions
|
||||
|
||||
import (
|
||||
"context"
|
||||
"crypto/rand"
|
||||
"crypto/rsa"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
@@ -30,22 +32,29 @@ func JoinNetwork(cfg config.ClientConfig, privateKey string) error {
|
||||
}
|
||||
|
||||
var err error
|
||||
if cfg.Node.IsServer != "yes" {
|
||||
if local.HasNetwork(cfg.Network) {
|
||||
err := errors.New("ALREADY_INSTALLED. Netclient appears to already be installed for " + cfg.Network + ". To re-install, please remove by executing 'sudo netclient leave -n " + cfg.Network + "'. Then re-run the install command.")
|
||||
return err
|
||||
}
|
||||
|
||||
err = config.Write(&cfg, cfg.Network)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if cfg.Node.Password == "" {
|
||||
cfg.Node.Password = ncutils.GenPass()
|
||||
}
|
||||
auth.StoreSecret(cfg.Node.Password, cfg.Node.Network)
|
||||
if local.HasNetwork(cfg.Network) {
|
||||
err := errors.New("ALREADY_INSTALLED. Netclient appears to already be installed for " + cfg.Network + ". To re-install, please remove by executing 'sudo netclient leave -n " + cfg.Network + "'. Then re-run the install command.")
|
||||
return err
|
||||
}
|
||||
|
||||
err = config.Write(&cfg, cfg.Network)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if cfg.Node.Password == "" {
|
||||
cfg.Node.Password = ncutils.GenPass()
|
||||
}
|
||||
var rsaPrivKey, errGen = rsa.GenerateKey(rand.Reader, ncutils.KEY_SIZE)
|
||||
if errGen != nil {
|
||||
return errGen
|
||||
}
|
||||
auth.StoreSecret(cfg.Node.Password, cfg.Node.Network)
|
||||
var keyData, errKeyData = json.Marshal(&rsaPrivKey)
|
||||
if errKeyData != nil {
|
||||
return errKeyData
|
||||
}
|
||||
auth.StoreTrafficKey(string(keyData), cfg.Node.Network)
|
||||
|
||||
if cfg.Node.LocalRange != "" && cfg.Node.LocalAddress == "" {
|
||||
log.Println("local vpn, getting local address from range: " + cfg.Node.LocalRange)
|
||||
cfg.Node.LocalAddress = getLocalIP(cfg.Node)
|
||||
@@ -122,6 +131,10 @@ func JoinNetwork(cfg config.ClientConfig, privateKey string) error {
|
||||
Endpoint: cfg.Node.Endpoint,
|
||||
SaveConfig: cfg.Node.SaveConfig,
|
||||
UDPHolePunch: cfg.Node.UDPHolePunch,
|
||||
TrafficKeys: models.TrafficKeys{
|
||||
Mine: rsaPrivKey.PublicKey,
|
||||
Server: rsa.PublicKey{},
|
||||
},
|
||||
}
|
||||
|
||||
ncutils.Log("joining " + cfg.Network + " at " + cfg.Server.GRPCAddress)
|
||||
|
Reference in New Issue
Block a user