From 5975772ed848ce46a4e7a45b15f5950ddf97786c Mon Sep 17 00:00:00 2001 From: Kevin Bushiri <36192217+keevBush@users.noreply.github.com> Date: Thu, 19 Mar 2020 15:50:24 +0200 Subject: [PATCH] cmd/stdiscosrv: Only generate keypair if it doesn't exist (fixes #5809) (#6419) --- cmd/stdiscosrv/main.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cmd/stdiscosrv/main.go b/cmd/stdiscosrv/main.go index 8224b1b96..f87c668dc 100644 --- a/cmd/stdiscosrv/main.go +++ b/cmd/stdiscosrv/main.go @@ -98,14 +98,15 @@ func main() { } cert, err := tls.LoadX509KeyPair(certFile, keyFile) - if err != nil { + if os.IsNotExist(err) { log.Println("Failed to load keypair. Generating one, this might take a while...") cert, err = tlsutil.NewCertificate(certFile, keyFile, "stdiscosrv", 20*365) if err != nil { log.Fatalln("Failed to generate X509 key pair:", err) } + } else if err != nil { + log.Fatalln("Failed to load keypair:", err) } - devID := protocol.NewDeviceID(cert.Certificate[0]) log.Println("Server device ID is", devID)