From 1844bd9e96c05519406654cc2d6b8af736291985 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Fri, 6 Apr 2018 20:29:02 +0200 Subject: [PATCH] Implemented decrypt command (fixes #2) --- src/calanonsync/settings.go | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/src/calanonsync/settings.go b/src/calanonsync/settings.go index 3b64a92..aa8ff8f 100644 --- a/src/calanonsync/settings.go +++ b/src/calanonsync/settings.go @@ -6,7 +6,6 @@ import ( "crypto/rand" "encoding/base64" "encoding/json" - "fmt" "github.com/spf13/cobra" "golang.org/x/crypto/ssh/terminal" "io" @@ -192,8 +191,30 @@ func runSettingsEncryption(cmd *cobra.Command, args []string) { if err != nil { panic(err) } + + log.Println("Settings encrypted") } func runSettingsDecryption(cmd *cobra.Command, args []string) { - fmt.Println("Decrypt") + s := LoadSettings() + + // Rewrite the settings file. + f, err := os.OpenFile(settingsName, os.O_WRONLY|os.O_TRUNC, 0600) + if err != nil { + log.Fatalf("Could not rewrite settings: %s\n", err) + } + defer f.Close() + e := json.NewEncoder(f) + e.SetIndent("", " ") + err = e.Encode(&s) + if err != nil { + panic(err) + } + + err = os.Remove(keyName) + if err != nil { + log.Fatalf("Could not remove key file: %s\n", err) + } + + log.Println("Settings decrypted") }