only generate private key if keyfile is missing, not on other errors: possible corrupt and loss

This commit is contained in:
Dan Ballard 2018-04-30 10:01:08 -07:00
parent a1f0ee7b9f
commit 4b27e95c26
1 changed files with 9 additions and 5 deletions

View File

@ -1,7 +1,6 @@
package server
import (
//"crypto/rsa"
"git.mascherari.press/cwtch/server/fetch"
"git.mascherari.press/cwtch/server/listen"
"git.mascherari.press/cwtch/server/send"
@ -11,6 +10,7 @@ import (
"github.com/s-rah/go-ricochet/utils"
"log"
"os"
"io/ioutil"
)
@ -19,19 +19,23 @@ type Server struct {
func (s *Server) Run(privateKeyFile string) {
cwtchserver := new(application.RicochetApplication)
pk, err := utils.LoadPrivateKeyFromFile(privateKeyFile)
if err != nil {
if _, err := os.Stat(privateKeyFile); os.IsNotExist(err) {
log.Printf("no private key found!")
log.Printf("generating new private key...")
var pk_err error = nil
pk, pk_err = utils.GeneratePrivateKey()
pk, pk_err := utils.GeneratePrivateKey()
if pk_err != nil {
log.Fatalf("error generating new private key: %v", err)
}
ioutil.WriteFile(privateKeyFile, []byte(utils.PrivateKeyToString(pk)), 0400)
}
pk, err := utils.LoadPrivateKeyFromFile(privateKeyFile)
if err != nil {
log.Fatalf("error reading private key file: %v", err)
}
l, err := application.SetupOnion("127.0.0.1:9051", "tcp4", "", pk, 9878)
if err != nil {