commit 6720064918f0cd5726206f8618b4802556fdfe8e
parent ac41059386c45eef2a93e0e22832e7580625c867
Author: Sean Enck <sean@ttypty.com>
Date: Sun, 21 Aug 2022 09:47:09 -0400
rewrite is now it's own command
Diffstat:
5 files changed, 48 insertions(+), 39 deletions(-)
diff --git a/Makefile b/Makefile
@@ -1,7 +1,7 @@
VERSION := development
DESTDIR :=
BUILD := bin/
-TARGETS := $(BUILD)lb $(BUILD)lb-rw $(BUILD)lb-rekey $(BUILD)lb-gitdiff $(BUILD)lb-totp
+TARGETS := $(BUILD)lb $(BUILD)lb-rekey $(BUILD)lb-gitdiff $(BUILD)lb-totp
LIBEXEC := $(DESTDIR)libexec/lockbox/
MAIN := $(DESTDIR)bin/lb
TESTDIR := $(sort $(dir $(wildcard internal/**/*_test.go)))
diff --git a/cmd/lb-rw/main.go b/cmd/lb-rw/main.go
@@ -1,37 +0,0 @@
-// perform a read/write against a specific lockbox object.
-package main
-
-import (
- "errors"
- "flag"
- "fmt"
-
- "github.com/enckse/lockbox/internal/encrypt"
- "github.com/enckse/lockbox/internal/misc"
-)
-
-func main() {
- mode := flag.String("mode", "", "decrypt/encrypt")
- key := flag.String("key", "", "security key")
- file := flag.String("file", "", "file to process")
- keyMode := flag.String("keymode", "", "key lookup mode")
- flag.Parse()
- l, err := encrypt.NewLockbox(encrypt.LockboxOptions{Key: *key, KeyMode: *keyMode, File: *file})
- if err != nil {
- misc.Die("unable to make lockbox model instance", err)
- }
- switch *mode {
- case "encrypt":
- if err := l.Encrypt(nil); err != nil {
- misc.Die("failed to encrypt", err)
- }
- case "decrypt":
- results, err := l.Decrypt()
- if err != nil {
- misc.Die("failed to decrypt", err)
- }
- fmt.Println(string(results))
- default:
- misc.Die("invalid mode", errors.New("bad mode"))
- }
-}
diff --git a/cmd/lb/main.go b/cmd/lb/main.go
@@ -163,6 +163,10 @@ func main() {
if err := subcommands.ClearClipboardCallback(); err != nil {
misc.Die("failed to handle clipboard clear", err)
}
+ case "rw":
+ if err := subcommands.ReadWrite(args[2:]); err != nil {
+ misc.Die("read/write failed", err)
+ }
default:
lib := inputs.EnvOrDefault(inputs.LibExecEnv, libExec)
if err := subcommands.LibExecCallback(subcommands.LibExecOptions{Directory: lib, Command: command, Args: args[2:]}); err != nil {
diff --git a/internal/subcommands/readwrite.go b/internal/subcommands/readwrite.go
@@ -0,0 +1,42 @@
+// Package subcommands perform a read/write against a specific lockbox object.
+package subcommands
+
+import (
+ "errors"
+ "flag"
+ "fmt"
+
+ "github.com/enckse/lockbox/internal/encrypt"
+)
+
+// ReadWrite performs singular read/write encryption operations.
+func ReadWrite(args []string) error {
+ flags := flag.NewFlagSet("readwrite", flag.ExitOnError)
+ mode := flags.String("mode", "", "decrypt/encrypt")
+ key := flags.String("key", "", "security key")
+ file := flags.String("file", "", "file to process")
+ keyMode := flags.String("keymode", "", "key lookup mode")
+ if err := flags.Parse(args); err != nil {
+ return err
+ }
+
+ l, err := encrypt.NewLockbox(encrypt.LockboxOptions{Key: *key, KeyMode: *keyMode, File: *file})
+ if err != nil {
+ return err
+ }
+ switch *mode {
+ case "encrypt":
+ if err := l.Encrypt(nil); err != nil {
+ return err
+ }
+ case "decrypt":
+ results, err := l.Decrypt()
+ if err != nil {
+ return err
+ }
+ fmt.Println(string(results))
+ default:
+ return errors.New("invalid read/write modeE")
+ }
+ return nil
+}
diff --git a/tests/run.sh b/tests/run.sh
@@ -52,7 +52,7 @@ _run() {
echo
LOCKBOX_KEY="invalid" "$BIN/lb" show keys/one2
"$BIN/lb-rekey" -outkey "test" -outmode "plaintext"
- "$BIN/lb-rw" -file bin/lb/keys/one2.lb -key "test" -keymode "plaintext" -mode "decrypt"
+ "$BIN/lb" rw -file bin/lb/keys/one2.lb -key "test" -keymode "plaintext" -mode "decrypt"
}
_hook > $HOOK