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