From 5d891225dee484441fdfd9909ede51b9c5634062 Mon Sep 17 00:00:00 2001 From: Owen Date: Sun, 28 Sep 2025 11:28:31 -0700 Subject: [PATCH] Fix generateAndSaveKeyTo --- key | 1 + wgnetstack/wgnetstack.go | 12 +++++++----- 2 files changed, 8 insertions(+), 5 deletions(-) create mode 100644 key diff --git a/key b/key new file mode 100644 index 0000000..62c22b9 --- /dev/null +++ b/key @@ -0,0 +1 @@ +oBvcoMJZXGzTZ4X+aNSCCQIjroREFBeRCs+a328xWGA= \ No newline at end of file diff --git a/wgnetstack/wgnetstack.go b/wgnetstack/wgnetstack.go index 6684c40..08d740e 100644 --- a/wgnetstack/wgnetstack.go +++ b/wgnetstack/wgnetstack.go @@ -187,6 +187,13 @@ func NewWireGuardService(interfaceName string, mtu int, generateAndSaveKeyTo str // Load or generate private key if generateAndSaveKeyTo != "" { if _, err := os.Stat(generateAndSaveKeyTo); os.IsNotExist(err) { + // File doesn't exist, save the generated key + err = os.WriteFile(generateAndSaveKeyTo, []byte(key.String()), 0600) + if err != nil { + return nil, fmt.Errorf("failed to save private key: %v", err) + } + } else { + // File exists, read the existing key keyData, err := os.ReadFile(generateAndSaveKeyTo) if err != nil { return nil, fmt.Errorf("failed to read private key: %v", err) @@ -195,11 +202,6 @@ func NewWireGuardService(interfaceName string, mtu int, generateAndSaveKeyTo str if err != nil { return nil, fmt.Errorf("failed to parse private key: %v", err) } - } else { - err = os.WriteFile(generateAndSaveKeyTo, []byte(key.String()), 0600) - if err != nil { - return nil, fmt.Errorf("failed to save private key: %v", err) - } } }