diff options
author | Jakob Unterwurzacher | 2018-08-15 23:31:37 +0200 |
---|---|---|
committer | Jakob Unterwurzacher | 2018-08-15 23:31:37 +0200 |
commit | bd054e70ef1c0f9709b5bc216ba148cf088d7edb (patch) | |
tree | 0cef30f59c72082d20fa361567b1cc0ef1cd0413 | |
parent | 7771a33f659420b76b5f49eeda80b3f6d7728425 (diff) |
trezor: show support in version string
Show enable_trezor in the version string if we were compiled
with `-tags enable_trezor`. And hide the `-trezor` flag from
the help output if we were not.
-rw-r--r-- | cli_args.go | 5 | ||||
-rw-r--r-- | internal/readpassword/trezor.go | 2 | ||||
-rw-r--r-- | internal/readpassword/trezor_disabled.go | 4 | ||||
-rw-r--r-- | main.go | 13 |
4 files changed, 19 insertions, 5 deletions
diff --git a/cli_args.go b/cli_args.go index 114a27e..dd00658 100644 --- a/cli_args.go +++ b/cli_args.go @@ -12,6 +12,7 @@ import ( "github.com/rfjakob/gocryptfs/internal/configfile" "github.com/rfjakob/gocryptfs/internal/exitcodes" "github.com/rfjakob/gocryptfs/internal/prefer_openssl" + "github.com/rfjakob/gocryptfs/internal/readpassword" "github.com/rfjakob/gocryptfs/internal/stupidgcm" "github.com/rfjakob/gocryptfs/internal/tlog" ) @@ -152,7 +153,9 @@ func parseCliOpts() (args argContainer) { flagSet.BoolVar(&args.sharedstorage, "sharedstorage", false, "Make concurrent access to a shared CIPHERDIR safer") flagSet.BoolVar(&args.devrandom, "devrandom", false, "Use /dev/random for generating master key") flagSet.BoolVar(&args.fsck, "fsck", false, "Run a filesystem check on CIPHERDIR") - flagSet.BoolVar(&args.trezor, "trezor", false, "Protect the masterkey using a SatoshiLabs Trezor instead of a password") + if readpassword.TrezorSupport { + flagSet.BoolVar(&args.trezor, "trezor", false, "Protect the masterkey using a SatoshiLabs Trezor instead of a password") + } // Mount options with opposites flagSet.BoolVar(&args.dev, "dev", false, "Allow device files") diff --git a/internal/readpassword/trezor.go b/internal/readpassword/trezor.go index 43e2805..a4d32cf 100644 --- a/internal/readpassword/trezor.go +++ b/internal/readpassword/trezor.go @@ -21,6 +21,8 @@ const ( trezorNonce = "" // the "nonce" is optional and has no use in here trezorKeyName = "gocryptfs" trezorKeyDerivationPath = `m/10019'/0'` + // TrezorSupport is true when gocryptfs has been compile with -tags enable_trezor + TrezorSupport = true ) func trezorGetPin(title, description, ok, cancel string) ([]byte, error) { diff --git a/internal/readpassword/trezor_disabled.go b/internal/readpassword/trezor_disabled.go index c512f1b..96a6082 100644 --- a/internal/readpassword/trezor_disabled.go +++ b/internal/readpassword/trezor_disabled.go @@ -12,12 +12,14 @@ const ( // TrezorPayloadLen is the length of the payload data passed to Trezor's // CipherKeyValue function. TrezorPayloadLen = 32 + // TrezorSupport is true when gocryptfs has been compile with -tags enable_trezor + TrezorSupport = false ) // Trezor determinitically derives 32 bytes from the payload and the connected // USB security module. func Trezor(payload []byte) []byte { - tlog.Fatal.Printf("\"-trezor\" is not implemented yet.") + tlog.Fatal.Printf("This binary has been compiled without Trezor support") os.Exit(1) return nil } @@ -129,16 +129,23 @@ func changePassword(args *argContainer) { // printVersion prints a version string like this: // gocryptfs v0.12-36-ge021b9d-dirty; go-fuse a4c968c; 2016-07-03 go1.6.2 func printVersion() { - buildFlags := "" + var tagsSlice []string if stupidgcm.BuiltWithoutOpenssl { - buildFlags = " without_openssl" + tagsSlice = append(tagsSlice, "without_openssl") + } + if readpassword.TrezorSupport { + tagsSlice = append(tagsSlice, "enable_trezor") + } + tags := "" + if tagsSlice != nil { + tags = " " + strings.Join(tagsSlice, " ") } built := fmt.Sprintf("%s %s", BuildDate, runtime.Version()) if raceDetector { built += " -race" } fmt.Printf("%s %s%s; go-fuse %s; %s\n", - tlog.ProgramName, GitVersion, buildFlags, GitVersionFuse, built) + tlog.ProgramName, GitVersion, tags, GitVersionFuse, built) } func main() { |