diff options
author | Jakob Unterwurzacher | 2016-06-05 11:33:54 +0200 |
---|---|---|
committer | Jakob Unterwurzacher | 2016-06-05 11:40:13 +0200 |
commit | b97268c94824b8047c8d4f97a68549260e4f6835 (patch) | |
tree | 72aa2b1d79ba3b5f7a52439beb605c8e5aa84422 /internal/configfile | |
parent | a602e798b1a65fdfe5e7f0260a34e17ea7ab0615 (diff) |
configfile: bake the "Creator" gocryptfs version into the file
This field is added for the convenience of users and
may help them to identify which gocryptfs version
they need to mount a filesystem.
The same information is essentially contained in FeatureFlags,
but this is more difficult to decode for humans.
It is completely ignored programmatically (also by older gocryptfs
versions).
Diffstat (limited to 'internal/configfile')
-rw-r--r-- | internal/configfile/config_file.go | 11 | ||||
-rw-r--r-- | internal/configfile/config_test.go | 2 |
2 files changed, 9 insertions, 4 deletions
diff --git a/internal/configfile/config_file.go b/internal/configfile/config_file.go index e54e84e..d91ce3e 100644 --- a/internal/configfile/config_file.go +++ b/internal/configfile/config_file.go @@ -19,8 +19,10 @@ const ( ) type ConfFile struct { - // File the config is saved to. Not exported to JSON. - filename string + // gocryptfs version string + // This only documents the config file for humans who look at it. The actual + // technical info is contained in FeatureFlags. + Creator string // Encrypted AES key, unlocked using a password hashed with scrypt EncryptedKey []byte // Stores parameters for scrypt hashing (key derivation) @@ -32,14 +34,17 @@ type ConfFile struct { // mounting. This mechanism is analogous to the ext4 feature flags that are // stored in the superblock. FeatureFlags []string + // File the config is saved to. Not exported to JSON. + filename string } // CreateConfFile - create a new config with a random key encrypted with // "password" and write it to "filename". // Uses scrypt with cost parameter logN. -func CreateConfFile(filename string, password string, plaintextNames bool, logN int) error { +func CreateConfFile(filename string, password string, plaintextNames bool, logN int, creator string) error { var cf ConfFile cf.filename = filename + cf.Creator = creator cf.Version = contentenc.CurrentVersion // Generate new random master key diff --git a/internal/configfile/config_test.go b/internal/configfile/config_test.go index 5468b80..c83c4bd 100644 --- a/internal/configfile/config_test.go +++ b/internal/configfile/config_test.go @@ -60,7 +60,7 @@ func TestLoadV2StrangeFeature(t *testing.T) { } func TestCreateConfFile(t *testing.T) { - err := CreateConfFile("config_test/tmp.conf", "test", false, 10) + err := CreateConfFile("config_test/tmp.conf", "test", false, 10, "test") if err != nil { t.Fatal(err) } |