diff --git a/server/server.go b/server/server.go index f616826..a814b4c 100644 --- a/server/server.go +++ b/server/server.go @@ -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 {