trezor: exit with usage error if used together with -extpass

Using an external program for the Trezor PIN is not supported
at the moment.
This commit is contained in:
Jakob Unterwurzacher 2018-06-25 21:55:20 +02:00
parent 4bf02f4760
commit 8e5ca7299a
2 changed files with 15 additions and 0 deletions

View File

@ -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
}

View File

@ -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)
}
}