tests: add config file and feature flags tests
This commit is contained in:
parent
3e367b29b0
commit
988e0a047c
71
cryptfs/config_test.go
Normal file
71
cryptfs/config_test.go
Normal 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
1
cryptfs/config_test/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
tmp.conf
|
14
cryptfs/config_test/PlaintextNames.conf
Normal file
14
cryptfs/config_test/PlaintextNames.conf
Normal 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"
|
||||
]
|
||||
}
|
14
cryptfs/config_test/StrangeFeature.conf
Normal file
14
cryptfs/config_test/StrangeFeature.conf
Normal 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"
|
||||
]
|
||||
}
|
11
cryptfs/config_test/v1.conf
Normal file
11
cryptfs/config_test/v1.conf
Normal file
@ -0,0 +1,11 @@
|
||||
{
|
||||
"EncryptedKey": "t6YAvFQJvbv46c93bHQ5IZnvNz80DA9cohGoSPL/2M257LuIigow6jbr8b9HhnbDqHTCcz7aKkMDzneF",
|
||||
"ScryptObject": {
|
||||
"Salt": "yT4yQmmRmVNx2P0tJrUswk5SQzZaL6Z8kUteAoNJkXM=",
|
||||
"N": 65536,
|
||||
"R": 8,
|
||||
"P": 1,
|
||||
"KeyLen": 32
|
||||
},
|
||||
"Version": 1
|
||||
}
|
11
cryptfs/config_test/v2.conf
Normal file
11
cryptfs/config_test/v2.conf
Normal 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
|
||||
}
|
Loading…
Reference in New Issue
Block a user