diff options
author | Jakob Unterwurzacher | 2021-09-28 17:52:21 +0200 |
---|---|---|
committer | Jakob Unterwurzacher | 2021-09-28 18:09:31 +0200 |
commit | c8996d2664d7d1cbce310db3425cc15c9ad26b08 (patch) | |
tree | 1ac18845d63742412cf57816357bdad47ad8f0d2 | |
parent | db1824a23ac8e47cda714796e55cf6927b0cbecc (diff) |
-info: add contentEncryption
Example:
$ ./gocryptfs -info ./tests/example_filesystems/v2.2-xchacha/
Creator: gocryptfs v2.1-27-gabaa129-dirty.xchacha
FeatureFlags: HKDF XChaCha20Poly1305 DirIV EMENames LongNames Raw64
EncryptedKey: 64B
ScryptObject: Salt=32B N=1024 R=8 P=1 KeyLen=32
contentEncryption: XChaCha20-Poly1305
-rw-r--r-- | info.go | 32 |
1 files changed, 9 insertions, 23 deletions
@@ -1,44 +1,30 @@ package main import ( - "encoding/json" "fmt" - "io/ioutil" "os" "strings" "github.com/rfjakob/gocryptfs/v2/internal/configfile" - "github.com/rfjakob/gocryptfs/v2/internal/contentenc" "github.com/rfjakob/gocryptfs/v2/internal/exitcodes" - "github.com/rfjakob/gocryptfs/v2/internal/tlog" ) // info pretty-prints the contents of the config file at "filename" for human // consumption, stripping out sensitive data. // This is called when you pass the "-info" option. func info(filename string) { - // Read from disk - js, err := ioutil.ReadFile(filename) + cf, err := configfile.Load(filename) if err != nil { - tlog.Fatal.Printf("Reading config file failed: %v", err) + fmt.Printf("Loading config file failed: %v\n", err) os.Exit(exitcodes.LoadConf) } - // Unmarshal - var cf configfile.ConfFile - err = json.Unmarshal(js, &cf) - if err != nil { - tlog.Fatal.Printf("Failed to unmarshal config file") - os.Exit(exitcodes.LoadConf) - } - if cf.Version != contentenc.CurrentVersion { - tlog.Fatal.Printf("Unsupported on-disk format %d", cf.Version) - os.Exit(exitcodes.LoadConf) - } - // Pretty-print - fmt.Printf("Creator: %s\n", cf.Creator) - fmt.Printf("FeatureFlags: %s\n", strings.Join(cf.FeatureFlags, " ")) - fmt.Printf("EncryptedKey: %dB\n", len(cf.EncryptedKey)) s := cf.ScryptObject - fmt.Printf("ScryptObject: Salt=%dB N=%d R=%d P=%d KeyLen=%d\n", + algo, _ := cf.ContentEncryption() + // Pretty-print + fmt.Printf("Creator: %s\n", cf.Creator) + fmt.Printf("FeatureFlags: %s\n", strings.Join(cf.FeatureFlags, " ")) + fmt.Printf("EncryptedKey: %dB\n", len(cf.EncryptedKey)) + fmt.Printf("ScryptObject: Salt=%dB N=%d R=%d P=%d KeyLen=%d\n", len(s.Salt), s.N, s.R, s.P, s.KeyLen) + fmt.Printf("contentEncryption: %s\n", algo.Algo) // lowercase because not in JSON } |