From 52c39596c3f4a24abb568420c89b3948c3bdc2fc Mon Sep 17 00:00:00 2001 From: Felicitas Pojtinger Date: Thu, 2 Dec 2021 23:23:14 +0100 Subject: [PATCH] refactor: Decompose key readers --- cmd/stbak/cmd/archive.go | 19 +++++++++++-------- cmd/stbak/cmd/delete.go | 12 +++--------- cmd/stbak/cmd/move.go | 12 +++--------- cmd/stbak/cmd/recovery_fetch.go | 18 +++--------------- cmd/stbak/cmd/recovery_index.go | 11 +++-------- cmd/stbak/cmd/recovery_query.go | 11 +++-------- cmd/stbak/cmd/restore.go | 12 +++--------- cmd/stbak/cmd/update.go | 12 +++--------- 8 files changed, 32 insertions(+), 75 deletions(-) diff --git a/cmd/stbak/cmd/archive.go b/cmd/stbak/cmd/archive.go index ea8728c..2cff6a9 100644 --- a/cmd/stbak/cmd/archive.go +++ b/cmd/stbak/cmd/archive.go @@ -96,14 +96,9 @@ var archiveCmd = &cobra.Command{ lastIndexedBlock = b } - pubkey := []byte{} - if viper.GetString(encryptionFlag) != encryptionFormatNoneKey { - p, err := ioutil.ReadFile(viper.GetString(recipientFlag)) - if err != nil { - return err - } - - pubkey = p + pubkey, err := readKey(viper.GetString(encryptionFlag), viper.GetString(recipientFlag)) + if err != nil { + return err } hdrs, err := archive( @@ -398,6 +393,14 @@ func checkKeyAccessible(encryptionFormat string, pathToKey string) error { return nil } +func readKey(encryptionFormat string, pathToKey string) ([]byte, error) { + if encryptionFormat == encryptionFormatNoneKey { + return []byte{}, nil + } + + return ioutil.ReadFile(pathToKey) +} + func checkCompressionLevel(compressionLevel string) error { compressionLevelIsKnown := false diff --git a/cmd/stbak/cmd/delete.go b/cmd/stbak/cmd/delete.go index c445469..1997305 100644 --- a/cmd/stbak/cmd/delete.go +++ b/cmd/stbak/cmd/delete.go @@ -4,7 +4,6 @@ import ( "archive/tar" "bufio" "context" - "io/ioutil" "os" "github.com/pojntfx/stfs/pkg/controllers" @@ -43,14 +42,9 @@ var deleteCmd = &cobra.Command{ boil.DebugMode = true } - pubkey := []byte{} - if viper.GetString(encryptionFlag) != encryptionFormatNoneKey { - p, err := ioutil.ReadFile(viper.GetString(recipientFlag)) - if err != nil { - return err - } - - pubkey = p + pubkey, err := readKey(viper.GetString(encryptionFlag), viper.GetString(recipientFlag)) + if err != nil { + return err } return delete( diff --git a/cmd/stbak/cmd/move.go b/cmd/stbak/cmd/move.go index 6e9a0a6..caa4bdd 100644 --- a/cmd/stbak/cmd/move.go +++ b/cmd/stbak/cmd/move.go @@ -3,7 +3,6 @@ package cmd import ( "archive/tar" "context" - "io/ioutil" "strings" "github.com/pojntfx/stfs/pkg/converters" @@ -36,14 +35,9 @@ var moveCmd = &cobra.Command{ boil.DebugMode = true } - pubkey := []byte{} - if viper.GetString(encryptionFlag) != encryptionFormatNoneKey { - p, err := ioutil.ReadFile(viper.GetString(recipientFlag)) - if err != nil { - return err - } - - pubkey = p + pubkey, err := readKey(viper.GetString(encryptionFlag), viper.GetString(recipientFlag)) + if err != nil { + return err } return move( diff --git a/cmd/stbak/cmd/recovery_fetch.go b/cmd/stbak/cmd/recovery_fetch.go index 1da2de5..e32183f 100644 --- a/cmd/stbak/cmd/recovery_fetch.go +++ b/cmd/stbak/cmd/recovery_fetch.go @@ -8,7 +8,6 @@ import ( "context" "encoding/base32" "io" - "io/ioutil" "os" "path/filepath" @@ -41,12 +40,6 @@ var recoveryFetchCmd = &cobra.Command{ return err } - if viper.GetString(encryptionFlag) != encryptionFormatNoneKey { - if _, err := os.Stat(viper.GetString(identityFlag)); err != nil { - return errIdentityNotAccessible - } - } - return checkKeyAccessible(viper.GetString(encryptionFlag), viper.GetString(identityFlag)) }, RunE: func(cmd *cobra.Command, args []string) error { @@ -58,14 +51,9 @@ var recoveryFetchCmd = &cobra.Command{ boil.DebugMode = true } - privkey := []byte{} - if viper.GetString(encryptionFlag) != encryptionFormatNoneKey { - p, err := ioutil.ReadFile(viper.GetString(identityFlag)) - if err != nil { - return err - } - - privkey = p + privkey, err := readKey(viper.GetString(encryptionFlag), viper.GetString(identityFlag)) + if err != nil { + return err } return restoreFromRecordAndBlock( diff --git a/cmd/stbak/cmd/recovery_index.go b/cmd/stbak/cmd/recovery_index.go index b5f1de5..1cc336e 100644 --- a/cmd/stbak/cmd/recovery_index.go +++ b/cmd/stbak/cmd/recovery_index.go @@ -42,14 +42,9 @@ var recoveryIndexCmd = &cobra.Command{ boil.DebugMode = true } - privkey := []byte{} - if viper.GetString(encryptionFlag) != encryptionFormatNoneKey { - p, err := ioutil.ReadFile(viper.GetString(identityFlag)) - if err != nil { - return err - } - - privkey = p + privkey, err := readKey(viper.GetString(encryptionFlag), viper.GetString(identityFlag)) + if err != nil { + return err } return index( diff --git a/cmd/stbak/cmd/recovery_query.go b/cmd/stbak/cmd/recovery_query.go index a35950f..ae29ed6 100644 --- a/cmd/stbak/cmd/recovery_query.go +++ b/cmd/stbak/cmd/recovery_query.go @@ -34,14 +34,9 @@ var recoveryQueryCmd = &cobra.Command{ boil.DebugMode = true } - privkey := []byte{} - if viper.GetString(encryptionFlag) != encryptionFormatNoneKey { - p, err := ioutil.ReadFile(viper.GetString(identityFlag)) - if err != nil { - return err - } - - privkey = p + privkey, err := readKey(viper.GetString(encryptionFlag), viper.GetString(identityFlag)) + if err != nil { + return err } return query( diff --git a/cmd/stbak/cmd/restore.go b/cmd/stbak/cmd/restore.go index 0ab74a1..b0b3197 100644 --- a/cmd/stbak/cmd/restore.go +++ b/cmd/stbak/cmd/restore.go @@ -4,7 +4,6 @@ import ( "archive/tar" "context" "database/sql" - "io/ioutil" "path" "path/filepath" "strings" @@ -47,14 +46,9 @@ var restoreCmd = &cobra.Command{ return err } - privkey := []byte{} - if viper.GetString(encryptionFlag) != encryptionFormatNoneKey { - p, err := ioutil.ReadFile(viper.GetString(identityFlag)) - if err != nil { - return err - } - - privkey = p + privkey, err := readKey(viper.GetString(encryptionFlag), viper.GetString(identityFlag)) + if err != nil { + return err } headersToRestore := []*models.Header{} diff --git a/cmd/stbak/cmd/update.go b/cmd/stbak/cmd/update.go index 65f314d..27ac10a 100644 --- a/cmd/stbak/cmd/update.go +++ b/cmd/stbak/cmd/update.go @@ -6,7 +6,6 @@ import ( "fmt" "io" "io/fs" - "io/ioutil" "os" "path/filepath" "strconv" @@ -56,14 +55,9 @@ var updateCmd = &cobra.Command{ return err } - pubkey := []byte{} - if viper.GetString(encryptionFlag) != encryptionFormatNoneKey { - p, err := ioutil.ReadFile(viper.GetString(recipientFlag)) - if err != nil { - return err - } - - pubkey = p + pubkey, err := readKey(viper.GetString(encryptionFlag), viper.GetString(recipientFlag)) + if err != nil { + return err } hdrs, err := update(