From 0abbfd37ec38ca3050f52bb1f88c29f60e50bba1 Mon Sep 17 00:00:00 2001 From: Sudhi Herle Date: Fri, 8 Nov 2019 10:49:13 -0800 Subject: [PATCH] Teach dec to run in test-only mode --- crypt.go | 25 ++++++++++++++++++++++--- version | 2 +- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/crypt.go b/crypt.go index 50199ac..e90f8a4 100644 --- a/crypt.go +++ b/crypt.go @@ -186,6 +186,18 @@ func encrypt(args []string) { } } +type nullWriter struct{} + +func (w *nullWriter) Write(p []byte) (int, error) { + return len(p), nil +} + +func (w *nullWriter) Close() error { + return nil +} + +var _ io.WriteCloser = &nullWriter{} + // sigtool decrypt a.key [file] [-o output] func decrypt(args []string) { fs := flag.NewFlagSet("decrypt", flag.ExitOnError) @@ -196,12 +208,13 @@ func decrypt(args []string) { var envpw string var outfile string var pubkey string - var nopw bool + var nopw, test bool fs.StringVarP(&outfile, "outfile", "o", "", "Write the output to file `F`") fs.BoolVarP(&nopw, "no-password", "", false, "Don't ask for passphrase to decrypt the private key") fs.StringVarP(&envpw, "env-password", "", "", "Use passphrase from environment variable `E`") fs.StringVarP(&pubkey, "verify-sender", "v", "", "Verify that the sender matches public key in `F`") + fs.BoolVarP(&test, "test", "t", false, "Test the encrypted file against the given key without writing to output") err := fs.Parse(args) if err != nil { @@ -257,8 +270,10 @@ func decrypt(args []string) { infd = inf } } - - if len(outfile) > 0 && outfile != "-" { + + if test { + outfd = &nullWriter{} + } else if len(outfile) > 0 && outfile != "-" { if inf != nil { ost, err := os.Stat(outfile) if err != nil { @@ -293,6 +308,10 @@ func decrypt(args []string) { if err != nil { die("%s", err) } + + if test { + warn("Enc file OK") + } } func encryptUsage(fs *flag.FlagSet) { diff --git a/version b/version index 8f0916f..4b9fcbe 100644 --- a/version +++ b/version @@ -1 +1 @@ -0.5.0 +0.5.1