mirror of
https://github.com/psviderski/uncloud.git
synced 2026-08-26 19:13:34 +00:00
implement uncloudd daemon that starts a WireGuard network without peer probing
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
package network
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"golang.zx2c4.com/wireguard/wgctrl/wgtypes"
|
||||
"time"
|
||||
"uncloud/internal/secret"
|
||||
)
|
||||
|
||||
const (
|
||||
WireGuardInterfaceName = "uncloud"
|
||||
WireGuardPort = 51820
|
||||
// WireGuardKeepaliveInterval is sensible interval that works with a wide variety of firewalls is 25 seconds.
|
||||
WireGuardKeepaliveInterval = 25 * time.Second
|
||||
)
|
||||
|
||||
// NewMachineKeys generates a new WireGuard private and public key pair.
|
||||
func NewMachineKeys() (privKey, pubKey secret.Secret, err error) {
|
||||
wgPrivKey, err := wgtypes.GeneratePrivateKey()
|
||||
if err != nil {
|
||||
return nil, nil, fmt.Errorf("generate WireGuard private key: %w", err)
|
||||
}
|
||||
privKey = wgPrivKey[:]
|
||||
wgPubKey := wgPrivKey.PublicKey()
|
||||
pubKey = wgPubKey[:]
|
||||
return
|
||||
}
|
||||
Reference in New Issue
Block a user