commit b8485253f70058222a564adc152d6a6fb31f5b5b
parent 65ec17b09b6c6e4452a82ea95d685d19f2ca6e96
Author: Sean Enck <sean@ttypty.com>
Date: Fri, 15 Jul 2022 18:07:49 -0400
using options to cleanup method
Diffstat:
6 files changed, 20 insertions(+), 9 deletions(-)
diff --git a/cmd/lb-diff/main.go b/cmd/lb-diff/main.go
@@ -9,7 +9,7 @@ import (
func main() {
args := os.Args
- l, err := internal.NewLockbox("", "", args[len(args)-1])
+ l, err := internal.NewLockbox(internal.LockboxOptions{File: args[len(args)-1]})
if err != nil {
internal.Die("unable to make lockbox model instance", err)
}
diff --git a/cmd/lb-rekey/main.go b/cmd/lb-rekey/main.go
@@ -20,7 +20,7 @@ func main() {
}
for _, file := range found {
fmt.Printf("rekeying: %s\n", file)
- in, err := internal.NewLockbox(*inKey, *inMode, file)
+ in, err := internal.NewLockbox(internal.LockboxOptions{Key: *inKey, KeyMode: *inMode, File: file})
if err != nil {
internal.Die("unable to make input lockbox", err)
}
@@ -28,7 +28,7 @@ func main() {
if err != nil {
internal.Die("failed to process file decryption", err)
}
- out, err := internal.NewLockbox(*outKey, *outMode, file)
+ out, err := internal.NewLockbox(internal.LockboxOptions{Key: *outKey, KeyMode: *outMode, File: file})
if err != nil {
internal.Die("unable to make output lockbox", err)
}
diff --git a/cmd/lb-rw/main.go b/cmd/lb-rw/main.go
@@ -13,7 +13,7 @@ func main() {
file := flag.String("file", "", "file to process")
keyMode := flag.String("keymode", "", "key lookup mode")
flag.Parse()
- l, err := internal.NewLockbox(*key, *keyMode, *file)
+ l, err := internal.NewLockbox(internal.LockboxOptions{Key: *key, KeyMode: *keyMode, File: *file})
if err != nil {
internal.Die("unable to make lockbox model instance", err)
}
diff --git a/cmd/lb-totp/main.go b/cmd/lb-totp/main.go
@@ -83,7 +83,7 @@ func display(token string, clip, once, short bool) error {
if !internal.PathExists(store) {
return internal.NewLockboxError("object does not exist")
}
- l, err := internal.NewLockbox("", "", store)
+ l, err := internal.NewLockbox(internal.LockboxOptions{File: store})
if err != nil {
return err
}
diff --git a/cmd/lb/main.go b/cmd/lb/main.go
@@ -141,7 +141,7 @@ func main() {
if password == "" {
internal.Die("empty password provided", internal.NewLockboxError("password can NOT be empty"))
}
- l, err := internal.NewLockbox("", "", entry)
+ l, err := internal.NewLockbox(internal.LockboxOptions{File: entry})
if err != nil {
internal.Die("unable to make lockbox model instance", err)
}
@@ -205,7 +205,7 @@ func main() {
if !internal.PathExists(entry) {
internal.Die("invalid entry", internal.NewLockboxError("entry not found"))
}
- l, err := internal.NewLockbox("", "", entry)
+ l, err := internal.NewLockbox(internal.LockboxOptions{File: entry})
if err != nil {
internal.Die("unable to make lockbox model instance", err)
}
diff --git a/internal/encrypt.go b/internal/encrypt.go
@@ -29,10 +29,21 @@ type (
secret [keyLength]byte
file string
}
+
+ // LockboxOptions represent options to create a lockbox from.
+ LockboxOptions struct {
+ Key string
+ KeyMode string
+ File string
+ }
)
-// NewLockbox creates a new lockbox for encryption/decryption.
-func NewLockbox(key, keyMode, file string) (Lockbox, error) {
+// NewLockbox creates a new usable lockbox instance.
+func NewLockbox(options LockboxOptions) (Lockbox, error) {
+ return newLockbox(options.Key, options.KeyMode, options.File)
+}
+
+func newLockbox(key, keyMode, file string) (Lockbox, error) {
useKeyMode := keyMode
if useKeyMode == "" {
useKeyMode = os.Getenv("LOCKBOX_KEYMODE")