diff options
author | Jakob Unterwurzacher | 2018-06-25 21:55:20 +0200 |
---|---|---|
committer | Jakob Unterwurzacher | 2018-07-01 20:56:22 +0200 |
commit | 8e5ca7299a3292cae64418aaf875819c2cca01f5 (patch) | |
tree | ecaf407e80e2acd2faa34ccfca859d7732f4eaed | |
parent | 4bf02f476034f6a30a378769cda323e0ce5ae59f (diff) |
trezor: exit with usage error if used together with -extpass
Using an external program for the Trezor PIN is not supported
at the moment.
-rw-r--r-- | cli_args.go | 4 | ||||
-rw-r--r-- | tests/trezor/trezor_test.go | 11 |
2 files changed, 15 insertions, 0 deletions
diff --git a/cli_args.go b/cli_args.go index 7e8deeb..69e8bdf 100644 --- a/cli_args.go +++ b/cli_args.go @@ -221,6 +221,10 @@ func parseCliOpts() (args argContainer) { tlog.Fatal.Printf("The options -extpass and -masterkey cannot be used at the same time") os.Exit(exitcodes.Usage) } + if args.extpass != "" && args.trezor { + tlog.Fatal.Printf("The options -extpass and -trezor cannot be used at the same time") + os.Exit(exitcodes.Usage) + } return args } diff --git a/tests/trezor/trezor_test.go b/tests/trezor/trezor_test.go index ba468d9..65f1f15 100644 --- a/tests/trezor/trezor_test.go +++ b/tests/trezor/trezor_test.go @@ -9,6 +9,7 @@ import ( "testing" "github.com/rfjakob/gocryptfs/internal/configfile" + "github.com/rfjakob/gocryptfs/internal/exitcodes" "github.com/rfjakob/gocryptfs/tests/test_helpers" ) @@ -42,3 +43,13 @@ func TestInitTrezor(t *testing.T) { t.Error("Trezor flag should be set but is not") } } + +// Test using -trezor together with -extpass. Should fail with code 1 (usage error). +func TestTrezorExtpass(t *testing.T) { + cmd := exec.Command(test_helpers.GocryptfsBinary, "-init", "-trezor", "-extpass", "foo", "/tmp") + err := cmd.Run() + exitCode := test_helpers.ExtractCmdExitCode(err) + if exitCode != exitcodes.Usage { + t.Errorf("wrong exit code: want %d, have %d", exitcodes.Usage, exitCode) + } +} |