diff options
Diffstat (limited to 'cryptfs')
| -rw-r--r-- | cryptfs/config_test.go | 71 | ||||
| -rw-r--r-- | cryptfs/config_test/.gitignore | 1 | ||||
| -rw-r--r-- | cryptfs/config_test/PlaintextNames.conf | 14 | ||||
| -rw-r--r-- | cryptfs/config_test/StrangeFeature.conf | 14 | ||||
| -rw-r--r-- | cryptfs/config_test/v1.conf | 11 | ||||
| -rw-r--r-- | cryptfs/config_test/v2.conf | 11 | 
6 files changed, 122 insertions, 0 deletions
| diff --git a/cryptfs/config_test.go b/cryptfs/config_test.go new file mode 100644 index 0000000..2e46a25 --- /dev/null +++ b/cryptfs/config_test.go @@ -0,0 +1,71 @@ +package cryptfs + +import ( +	"fmt" +	"testing" +	"time" +) + +func TestLoadV1(t *testing.T) { +	_, _, err := LoadConfFile("config_test/v1.conf", "test") +	if err == nil { +		t.Errorf("Outdated v1 config file must fail to load but it didn't") +	} else if testing.Verbose() { +		fmt.Print(err) +	} +} + +// Load a known-good config file and verify that it takes at least 100ms +// (brute-force protection) +func TestLoadV2(t *testing.T) { +	t1 := time.Now() + +	_, _, err := LoadConfFile("config_test/v2.conf", "foo") +	if err != nil { +		t.Errorf("Could not load v2 config file: %v", err) +	} + +	elapsed := time.Since(t1) +	if elapsed < 100 *time.Millisecond { +		t.Errorf("scrypt calculation runs too fast: %d ms", elapsed / time.Millisecond) +	} +} + +func TestLoadV2PwdError(t *testing.T) { +	if ! testing.Verbose() { +		Warn.Disable() +	} +	_, _, err := LoadConfFile("config_test/v2.conf", "wrongpassword") +	Warn.Enable() +	if err == nil { +		t.Errorf("Loading with wrong password must fail but it didn't") +	} +} + +func TestLoadV2Feature(t *testing.T) { +	_, _, err := LoadConfFile("config_test/PlaintextNames.conf", "test") +	if err != nil { +		t.Errorf("Could not load v2 PlaintextNames config file: %v", err) +	} +} + +func TestLoadV2StrangeFeature(t *testing.T) { +	_, _, err := LoadConfFile("config_test/StrangeFeature.conf", "test") +	if err == nil { +		t.Errorf("Loading unknown feature must fail but it didn't") +	} else if testing.Verbose() { +		fmt.Print(err) +	} +} + +func TestCreateConfFile(t *testing.T) { +	err := CreateConfFile("config_test/tmp.conf", "test", false) +	if err != nil { +		t.Fatal(err) +	} +	_, _, err = LoadConfFile("config_test/tmp.conf", "test") +	if err != nil { +		t.Fatal(err) +	} + +} diff --git a/cryptfs/config_test/.gitignore b/cryptfs/config_test/.gitignore new file mode 100644 index 0000000..0720169 --- /dev/null +++ b/cryptfs/config_test/.gitignore @@ -0,0 +1 @@ +tmp.conf diff --git a/cryptfs/config_test/PlaintextNames.conf b/cryptfs/config_test/PlaintextNames.conf new file mode 100644 index 0000000..c1ff8cc --- /dev/null +++ b/cryptfs/config_test/PlaintextNames.conf @@ -0,0 +1,14 @@ +{ +	"EncryptedKey": "rG4u0argMq02V5G9Fa+gAaaHtNrj3wn7OZjP44hWOzO4yBFtn+Qn3PW4V6LMuKmGLEhyktCyWOI3K8lj", +	"ScryptObject": { +		"Salt": "bRjq1V63u5ML3FoTWx/GBXUhUVpTunOX3DPxS+yPjg0=", +		"N": 65536, +		"R": 8, +		"P": 1, +		"KeyLen": 32 +	}, +	"Version": 2, +	"FeatureFlags": [ +		"PlaintextNames" +	] +} diff --git a/cryptfs/config_test/StrangeFeature.conf b/cryptfs/config_test/StrangeFeature.conf new file mode 100644 index 0000000..6a97781 --- /dev/null +++ b/cryptfs/config_test/StrangeFeature.conf @@ -0,0 +1,14 @@ +{ +	"EncryptedKey": "rG4u0argMq02V5G9Fa+gAaaHtNrj3wn7OZjP44hWOzO4yBFtn+Qn3PW4V6LMuKmGLEhyktCyWOI3K8lj", +	"ScryptObject": { +		"Salt": "bRjq1V63u5ML3FoTWx/GBXUhUVpTunOX3DPxS+yPjg0=", +		"N": 65536, +		"R": 8, +		"P": 1, +		"KeyLen": 32 +	}, +	"Version": 2, +	"FeatureFlags": [ +		"StrangeFeatureFlag" +	] +} diff --git a/cryptfs/config_test/v1.conf b/cryptfs/config_test/v1.conf new file mode 100644 index 0000000..588a25a --- /dev/null +++ b/cryptfs/config_test/v1.conf @@ -0,0 +1,11 @@ +{ +	"EncryptedKey": "t6YAvFQJvbv46c93bHQ5IZnvNz80DA9cohGoSPL/2M257LuIigow6jbr8b9HhnbDqHTCcz7aKkMDzneF", +	"ScryptObject": { +		"Salt": "yT4yQmmRmVNx2P0tJrUswk5SQzZaL6Z8kUteAoNJkXM=", +		"N": 65536, +		"R": 8, +		"P": 1, +		"KeyLen": 32 +	}, +	"Version": 1 +} diff --git a/cryptfs/config_test/v2.conf b/cryptfs/config_test/v2.conf new file mode 100644 index 0000000..8ef3dcf --- /dev/null +++ b/cryptfs/config_test/v2.conf @@ -0,0 +1,11 @@ +{ +	"EncryptedKey": "RvxJnZWKTBSU21+7xbl08xlZyNyUCkpIqlK8Z51TUrRiBhqqNPxbdk1WXMvmOf/YzZ85Xbyz+DGM+SDf", +	"ScryptObject": { +		"Salt": "2OrFRfdW/5SanbMXM3TMINmfMO6oYU9awG+NZ77V8E8=", +		"N": 65536, +		"R": 8, +		"P": 1, +		"KeyLen": 32 +	}, +	"Version": 2 +} | 
