From bc7793360f8dd272a21591614f3095b0b5b9cdde Mon Sep 17 00:00:00 2001 From: Felicitas Pojtinger Date: Thu, 9 Dec 2021 17:48:57 +0100 Subject: [PATCH] refactor: Use simpler error messages --- cmd/stbak/cmd/archive.go | 2 +- cmd/stbak/cmd/update.go | 2 +- internal/compression/compress.go | 4 ++-- internal/encryption/decrypt.go | 4 ++-- internal/records/stfs.go | 7 ------ internal/signature/sign.go | 4 ++-- internal/signature/verify.go | 8 +++---- pkg/config/error.go | 41 +++++++++++++++++--------------- pkg/operations/delete.go | 2 +- pkg/operations/move.go | 2 +- pkg/recovery/index.go | 4 ++-- pkg/utility/keygen.go | 6 ++--- 12 files changed, 41 insertions(+), 45 deletions(-) diff --git a/cmd/stbak/cmd/archive.go b/cmd/stbak/cmd/archive.go index 735f6f0..71da39c 100644 --- a/cmd/stbak/cmd/archive.go +++ b/cmd/stbak/cmd/archive.go @@ -135,7 +135,7 @@ var archiveCmd = &cobra.Command{ } if len(hdrs) <= i-1 { - return config.ErrMissingTarHeader + return config.ErrTarHeaderMissing } *hdr = *hdrs[i-1] diff --git a/cmd/stbak/cmd/update.go b/cmd/stbak/cmd/update.go index f7e01a4..b6d55e9 100644 --- a/cmd/stbak/cmd/update.go +++ b/cmd/stbak/cmd/update.go @@ -118,7 +118,7 @@ var updateCmd = &cobra.Command{ } if len(hdrs) <= i-1 { - return config.ErrMissingTarHeader + return config.ErrTarHeaderMissing } *hdr = *hdrs[i-1] diff --git a/internal/compression/compress.go b/internal/compression/compress.go index dac673f..2c77f9a 100644 --- a/internal/compression/compress.go +++ b/internal/compression/compress.go @@ -51,7 +51,7 @@ func Compress( } if !isRegular { - return nil, config.ErrCompressionFormatOnlyRegularSupport // "device or resource busy" + return nil, config.ErrCompressionFormatRegularOnly // "device or resource busy" } l := pgzip.DefaultCompression @@ -131,7 +131,7 @@ func Compress( return zz, nil case config.CompressionFormatBrotliKey: if !isRegular { - return nil, config.ErrCompressionFormatOnlyRegularSupport // "cannot allocate memory" + return nil, config.ErrCompressionFormatRegularOnly // "cannot allocate memory" } l := brotli.DefaultCompression diff --git a/internal/encryption/decrypt.go b/internal/encryption/decrypt.go index 7ba2065..fcc6517 100644 --- a/internal/encryption/decrypt.go +++ b/internal/encryption/decrypt.go @@ -60,12 +60,12 @@ func DecryptHeader( } if hdr.PAXRecords == nil { - return config.ErrEmbeddedHeaderMissing + return config.ErrTarHeaderEmbeddedMissing } encryptedEmbeddedHeader, ok := hdr.PAXRecords[records.STFSRecordEmbeddedHeader] if !ok { - return config.ErrEmbeddedHeaderMissing + return config.ErrTarHeaderEmbeddedMissing } embeddedHeader, err := DecryptString(encryptedEmbeddedHeader, encryptionFormat, identity) diff --git a/internal/records/stfs.go b/internal/records/stfs.go index aab6b99..a539d31 100644 --- a/internal/records/stfs.go +++ b/internal/records/stfs.go @@ -1,7 +1,5 @@ package records -import "errors" - const ( STFSPrefix = "STFS." @@ -25,8 +23,3 @@ const ( STFSRecordEmbeddedHeader = STFSPrefix + "EmbeddedHeader" ) - -var ( - ErrUnsupportedVersion = errors.New("unsupported STFS version") - ErrUnsupportedAction = errors.New("unsupported STFS action") -) diff --git a/internal/signature/sign.go b/internal/signature/sign.go index d9ebfc9..6aa2e65 100644 --- a/internal/signature/sign.go +++ b/internal/signature/sign.go @@ -23,7 +23,7 @@ func Sign( switch signatureFormat { case config.SignatureFormatMinisignKey: if !isRegular { - return nil, nil, config.ErrSignatureFormatOnlyRegularSupport + return nil, nil, config.ErrSignatureFormatRegularOnly } identity, ok := identity.(minisign.PrivateKey) @@ -126,7 +126,7 @@ func SignString( switch signatureFormat { case config.SignatureFormatMinisignKey: if !isRegular { - return "", config.ErrSignatureFormatOnlyRegularSupport + return "", config.ErrSignatureFormatRegularOnly } identity, ok := identity.(minisign.PrivateKey) diff --git a/internal/signature/verify.go b/internal/signature/verify.go index 47d83f7..02adde6 100644 --- a/internal/signature/verify.go +++ b/internal/signature/verify.go @@ -24,7 +24,7 @@ func Verify( switch signatureFormat { case config.SignatureFormatMinisignKey: if !isRegular { - return nil, nil, config.ErrSignatureFormatOnlyRegularSupport + return nil, nil, config.ErrSignatureFormatRegularOnly } recipient, ok := recipient.(minisign.PublicKey) @@ -99,12 +99,12 @@ func VerifyHeader( } if hdr.PAXRecords == nil { - return config.ErrEmbeddedHeaderMissing + return config.ErrTarHeaderEmbeddedMissing } embeddedHeader, ok := hdr.PAXRecords[records.STFSRecordEmbeddedHeader] if !ok { - return config.ErrEmbeddedHeaderMissing + return config.ErrTarHeaderEmbeddedMissing } signature, ok := hdr.PAXRecords[records.STFSRecordSignature] @@ -136,7 +136,7 @@ func VerifyString( switch signatureFormat { case config.SignatureFormatMinisignKey: if !isRegular { - return config.ErrSignatureFormatOnlyRegularSupport + return config.ErrSignatureFormatRegularOnly } recipient, ok := recipient.(minisign.PublicKey) diff --git a/pkg/config/error.go b/pkg/config/error.go index c2d7fb2..b7a9510 100644 --- a/pkg/config/error.go +++ b/pkg/config/error.go @@ -3,30 +3,33 @@ package config import "errors" var ( - ErrEncryptionFormatUnknown = errors.New("unknown encryption format") - ErrEncryptionFormatUnsupported = errors.New("unsupported encryption format") + ErrEncryptionFormatUnknown = errors.New("encryption format unknown") + ErrSignatureFormatUnknown = errors.New("signature format unknown") + ErrCompressionFormatUnknown = errors.New("compression format unknown") + + ErrEncryptionFormatUnsupported = errors.New("encryption format unsupported") + ErrSignatureFormatUnsupported = errors.New("signature format unsupported") + ErrCompressionFormatUnsupported = errors.New("compression format unsupported") + + ErrSignatureFormatRegularOnly = errors.New("signature format only supports regular files, not tape drives") + ErrSignatureInvalid = errors.New("signature invalid") + ErrSignatureMissing = errors.New("signature missing") + + ErrCompressionFormatRegularOnly = errors.New("compression format only supports regular files, not tape drives") + ErrCompressionFormatRequiresLargerRecordSize = errors.New("compression format requires larger record size") + ErrCompressionLevelUnsupported = errors.New("compression level unsupported") + ErrCompressionLevelUnknown = errors.New("compression level unknown") ErrIdentityUnparsable = errors.New("identity could not be parsed") ErrRecipientUnparsable = errors.New("recipient could not be parsed") - ErrEmbeddedHeaderMissing = errors.New("embedded header is missing") + ErrKeygenFormatUnsupported = errors.New("key generation for format unsupported") - ErrSignatureFormatUnknown = errors.New("unknown signature format") - ErrSignatureFormatUnsupported = errors.New("unsupported signature format") - ErrSignatureFormatOnlyRegularSupport = errors.New("this signature format only supports regular files, not i.e. tape drives") - ErrSignatureInvalid = errors.New("signature is invalid") - ErrSignatureMissing = errors.New("signature is missing") + ErrTarHeaderMissing = errors.New("tar header missing") + ErrTarHeaderEmbeddedMissing = errors.New("embedded tar header missing") - ErrKeygenForFormatUnsupported = errors.New("can not generate keys for this format") + ErrTapeDrivesUnsupported = errors.New("system unsupported for tape drives") - ErrCompressionFormatUnknown = errors.New("unknown compression format") - ErrCompressionFormatUnsupported = errors.New("unsupported compression format") - ErrCompressionFormatOnlyRegularSupport = errors.New("this compression format only supports regular files, not i.e. tape drives") - ErrCompressionFormatRequiresLargerRecordSize = errors.New("this compression format requires a larger record size") - ErrCompressionLevelUnsupported = errors.New("compression level is unsupported") - ErrCompressionLevelUnknown = errors.New("unknown compression level") - - ErrMissingTarHeader = errors.New("tar header is missing") - - ErrDrivesUnsupported = errors.New("this system does not support tape drives") + ErrSTFSVersionUnsupported = errors.New("STFS version unsupported") + ErrSTFSActionUnsupported = errors.New("STFS action unsupported") ) diff --git a/pkg/operations/delete.go b/pkg/operations/delete.go index c03beae..8fcb609 100644 --- a/pkg/operations/delete.go +++ b/pkg/operations/delete.go @@ -112,7 +112,7 @@ func Delete( } if len(hdrs) <= i-1 { - return config.ErrMissingTarHeader + return config.ErrTarHeaderMissing } *hdr = *hdrs[i-1] diff --git a/pkg/operations/move.go b/pkg/operations/move.go index 8224cf3..a5eea16 100644 --- a/pkg/operations/move.go +++ b/pkg/operations/move.go @@ -116,7 +116,7 @@ func Move( } if len(hdrs) <= i-1 { - return config.ErrMissingTarHeader + return config.ErrTarHeaderMissing } *hdr = *hdrs[i-1] diff --git a/pkg/recovery/index.go b/pkg/recovery/index.go index 3ea5ddc..e82eaa4 100644 --- a/pkg/recovery/index.go +++ b/pkg/recovery/index.go @@ -360,10 +360,10 @@ func indexHeader( } default: - return records.ErrUnsupportedAction + return config.ErrSTFSActionUnsupported } default: - return records.ErrUnsupportedVersion + return config.ErrSTFSVersionUnsupported } return nil diff --git a/pkg/utility/keygen.go b/pkg/utility/keygen.go index 210833f..2467c03 100644 --- a/pkg/utility/keygen.go +++ b/pkg/utility/keygen.go @@ -34,7 +34,7 @@ func Keygen( privkey = priv pubkey = pub } else { - return []byte{}, []byte{}, config.ErrKeygenForFormatUnsupported + return []byte{}, []byte{}, config.ErrKeygenFormatUnsupported } return privkey, pubkey, nil @@ -106,7 +106,7 @@ func generateEncryptionKey( return priv, pub, nil default: - return []byte{}, []byte{}, config.ErrKeygenForFormatUnsupported + return []byte{}, []byte{}, config.ErrKeygenFormatUnsupported } } @@ -130,6 +130,6 @@ func generateSignatureKey( case config.SignatureFormatPGPKey: return generateEncryptionKey(signatureFormat, password) default: - return []byte{}, []byte{}, config.ErrKeygenForFormatUnsupported + return []byte{}, []byte{}, config.ErrKeygenFormatUnsupported } }