tests: add config file and feature flags tests

This commit is contained in:
Jakob Unterwurzacher 2015-11-03 21:06:52 +01:00
parent 3e367b29b0
commit 988e0a047c
6 changed files with 122 additions and 0 deletions

71
cryptfs/config_test.go Normal file
View File

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

1
cryptfs/config_test/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
tmp.conf

View File

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

View File

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

View File

@ -0,0 +1,11 @@
{
"EncryptedKey": "t6YAvFQJvbv46c93bHQ5IZnvNz80DA9cohGoSPL/2M257LuIigow6jbr8b9HhnbDqHTCcz7aKkMDzneF",
"ScryptObject": {
"Salt": "yT4yQmmRmVNx2P0tJrUswk5SQzZaL6Z8kUteAoNJkXM=",
"N": 65536,
"R": 8,
"P": 1,
"KeyLen": 32
},
"Version": 1
}

View File

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