diff options
| -rw-r--r-- | internal/configfile/config_test.go | 4 | ||||
| -rw-r--r-- | internal/contentenc/content_api.go | 5 | ||||
| -rw-r--r-- | internal/contentenc/content_test.go | 19 | ||||
| -rw-r--r-- | internal/fusefrontend/fs.go | 4 | ||||
| -rw-r--r-- | internal/nametransform/names_test.go | 14 | ||||
| -rw-r--r-- | openssl_benchmark/openssl_test.go | 24 | ||||
| -rwxr-xr-x | test.bash | 5 | 
7 files changed, 43 insertions, 32 deletions
| diff --git a/internal/configfile/config_test.go b/internal/configfile/config_test.go index 6606d22..5468b80 100644 --- a/internal/configfile/config_test.go +++ b/internal/configfile/config_test.go @@ -4,6 +4,8 @@ import (  	"fmt"  	"testing"  	"time" + +	"github.com/rfjakob/gocryptfs/internal/toggledlog"  )  func TestLoadV1(t *testing.T) { @@ -33,7 +35,7 @@ func TestLoadV2(t *testing.T) {  func TestLoadV2PwdError(t *testing.T) {  	if !testing.Verbose() { -		Warn.Enabled = false +		toggledlog.Warn.Enabled = false  	}  	_, _, err := LoadConfFile("config_test/v2.conf", "wrongpassword")  	if err == nil { diff --git a/internal/contentenc/content_api.go b/internal/contentenc/content_api.go index 1700d35..4c6aa00 100644 --- a/internal/contentenc/content_api.go +++ b/internal/contentenc/content_api.go @@ -2,6 +2,11 @@ package contentenc  import "github.com/rfjakob/gocryptfs/internal/cryptocore" +const ( +	// Default plaintext block size +	DefaultBS = 4096 +) +  type ContentEnc struct {  	// Cryptographic primitives  	cryptoCore *cryptocore.CryptoCore diff --git a/internal/contentenc/content_test.go b/internal/contentenc/content_test.go index 70ad58d..2272aa3 100644 --- a/internal/contentenc/content_test.go +++ b/internal/contentenc/content_test.go @@ -2,6 +2,8 @@ package contentenc  import (  	"testing" + +	"github.com/rfjakob/gocryptfs/internal/cryptocore"  )  type testRange struct { @@ -20,8 +22,9 @@ func TestSplitRange(t *testing.T) {  		testRange{0, 65536},  		testRange{6654, 8945}) -	key := make([]byte, KEY_LEN) -	f := NewCryptFS(key, true, false, true) +	key := make([]byte, cryptocore.KeyLen) +	cc := cryptocore.New(key, false, true) +	f := New(cc, DefaultBS)  	for _, r := range ranges {  		parts := f.ExplodePlainRange(r.offset, r.length) @@ -31,7 +34,7 @@ func TestSplitRange(t *testing.T) {  				t.Errorf("Duplicate block number %d", p.BlockNo)  			}  			lastBlockNo = p.BlockNo -			if p.Length > DEFAULT_PLAINBS || p.Skip >= DEFAULT_PLAINBS { +			if p.Length > DefaultBS || p.Skip >= DefaultBS {  				t.Errorf("Test fail: n=%d, length=%d, offset=%d\n", p.BlockNo, p.Length, p.Skip)  			}  		} @@ -47,8 +50,9 @@ func TestCiphertextRange(t *testing.T) {  		testRange{65444, 54},  		testRange{6654, 8945}) -	key := make([]byte, KEY_LEN) -	f := NewCryptFS(key, true, false, true) +	key := make([]byte, cryptocore.KeyLen) +	cc := cryptocore.New(key, false, true) +	f := New(cc, DefaultBS)  	for _, r := range ranges { @@ -69,8 +73,9 @@ func TestCiphertextRange(t *testing.T) {  }  func TestBlockNo(t *testing.T) { -	key := make([]byte, KEY_LEN) -	f := NewCryptFS(key, true, false, true) +	key := make([]byte, cryptocore.KeyLen) +	cc := cryptocore.New(key, false, true) +	f := New(cc, DefaultBS)  	b := f.CipherOffToBlockNo(788)  	if b != 0 { diff --git a/internal/fusefrontend/fs.go b/internal/fusefrontend/fs.go index 0331215..a2deee5 100644 --- a/internal/fusefrontend/fs.go +++ b/internal/fusefrontend/fs.go @@ -21,8 +21,6 @@ import (  	"github.com/rfjakob/gocryptfs/internal/configfile"  ) -const plainBS = 4096 -  type FS struct {  	pathfs.FileSystem      // loopbackFileSystem, see go-fuse/fuse/pathfs/loopback.go  	args              Args // Stores configuration arguments @@ -40,7 +38,7 @@ type FS struct {  func NewFS(args Args) *FS {  	cryptoCore := cryptocore.New(args.Masterkey, args.OpenSSL, args.GCMIV128) -	contentEnc := contentenc.New(cryptoCore, plainBS) +	contentEnc := contentenc.New(cryptoCore, contentenc.DefaultBS)  	nameTransform := nametransform.New(cryptoCore, args.EMENames)  	return &FS{ diff --git a/internal/nametransform/names_test.go b/internal/nametransform/names_test.go index 4a901be..fdb9f05 100644 --- a/internal/nametransform/names_test.go +++ b/internal/nametransform/names_test.go @@ -3,6 +3,8 @@ package nametransform  import (  	"bytes"  	"testing" + +	"github.com/rfjakob/gocryptfs/internal/cryptocore"  )  func TestEncryptPathNoIV(t *testing.T) { @@ -11,8 +13,9 @@ func TestEncryptPathNoIV(t *testing.T) {  	s = append(s, "foo12312312312312312313123123123")  	s = append(s, "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890") -	key := make([]byte, KEY_LEN) -	fs := NewCryptFS(key, true, false, true) +	key := make([]byte, cryptocore.KeyLen) +	cc := cryptocore.New(key, false, true) +	fs := New(cc, true)  	for _, n := range s {  		c := fs.EncryptPathNoIV(n) @@ -32,19 +35,16 @@ func TestPad16(t *testing.T) {  	s = append(s, []byte("12345678901234567"))  	s = append(s, []byte("12345678901234567abcdefg")) -	key := make([]byte, KEY_LEN) -	fs := NewCryptFS(key, true, false, true) -  	for i := range s {  		orig := s[i] -		padded := fs.pad16(orig) +		padded := pad16(orig)  		if len(padded) <= len(orig) {  			t.Errorf("Padded length not bigger than orig: %d", len(padded))  		}  		if len(padded)%16 != 0 {  			t.Errorf("Length is not aligend: %d", len(padded))  		} -		unpadded, err := fs.unPad16(padded) +		unpadded, err := unPad16(padded)  		if err != nil {  			t.Error("unPad16 returned error:", err)  		} diff --git a/openssl_benchmark/openssl_test.go b/openssl_benchmark/openssl_test.go index 35abca7..1530f9b 100644 --- a/openssl_benchmark/openssl_test.go +++ b/openssl_benchmark/openssl_test.go @@ -12,15 +12,17 @@ import (  	"crypto/aes"  	"crypto/cipher"  	"fmt" -	"github.com/rfjakob/gocryptfs/cryptfs" -	"github.com/spacemonkeygo/openssl"  	"os"  	"testing" + +	"github.com/spacemonkeygo/openssl" + +	"github.com/rfjakob/gocryptfs/internal/cryptocore"  )  func TestMain(m *testing.M) { -	fmt.Printf("Benchmarking AES-GCM-%d with 4kB block size\n", cryptfs.KEY_LEN*8) +	fmt.Printf("Benchmarking AES-GCM-%d with 4kB block size\n", cryptocore.KeyLen*8)  	r := m.Run()  	os.Exit(r) @@ -30,7 +32,7 @@ func BenchmarkGoEnc4K(b *testing.B) {  	buf := make([]byte, 1024*4)  	b.SetBytes(int64(len(buf))) -	var key [cryptfs.KEY_LEN]byte +	var key [cryptocore.KeyLen]byte  	var nonce [12]byte  	aes, _ := aes.NewCipher(key[:])  	aesgcm, _ := cipher.NewGCM(aes) @@ -47,7 +49,7 @@ func BenchmarkGoDec4K(b *testing.B) {  	buf := make([]byte, 1024*4)  	b.SetBytes(int64(len(buf))) -	var key [cryptfs.KEY_LEN]byte +	var key [cryptocore.KeyLen]byte  	var nonce [12]byte  	aes, _ := aes.NewCipher(key[:])  	aesgcm, _ := cipher.NewGCM(aes) @@ -67,7 +69,7 @@ func BenchmarkOpensslEnc4K(b *testing.B) {  	buf := make([]byte, 1024*4)  	b.SetBytes(int64(len(buf))) -	var key [cryptfs.KEY_LEN]byte +	var key [cryptocore.KeyLen]byte  	var nonce [12]byte  	// This would be fileID + blockNo @@ -79,7 +81,7 @@ func BenchmarkOpensslEnc4K(b *testing.B) {  	b.ResetTimer()  	for i := 0; i < b.N; i++ {  		ciphertext.Reset() -		ectx, err := openssl.NewGCMEncryptionCipherCtx(cryptfs.KEY_LEN*8, nil, key[:], nonce[:]) +		ectx, err := openssl.NewGCMEncryptionCipherCtx(cryptocore.KeyLen*8, nil, key[:], nonce[:])  		if err != nil {  			b.FailNow()  		} @@ -112,7 +114,7 @@ func BenchmarkOpensslDec4K(b *testing.B) {  	tag := buf[4096:]  	buf = buf[0:4096] -	var key [cryptfs.KEY_LEN]byte +	var key [cryptocore.KeyLen]byte  	var nonce [12]byte  	var plaintext bytes.Buffer @@ -121,7 +123,7 @@ func BenchmarkOpensslDec4K(b *testing.B) {  	b.ResetTimer()  	for i := 0; i < b.N; i++ {  		plaintext.Reset() -		dctx, err := openssl.NewGCMDecryptionCipherCtx(cryptfs.KEY_LEN*8, nil, key[:], nonce[:]) +		dctx, err := openssl.NewGCMDecryptionCipherCtx(cryptocore.KeyLen*8, nil, key[:], nonce[:])  		if err != nil {  			b.FailNow()  		} @@ -144,12 +146,12 @@ func BenchmarkOpensslDec4K(b *testing.B) {  func makeOpensslCiphertext() []byte {  	buf := make([]byte, 1024*4) -	var key [cryptfs.KEY_LEN]byte +	var key [cryptocore.KeyLen]byte  	var nonce [12]byte  	var ciphertext bytes.Buffer  	var part []byte -	ectx, _ := openssl.NewGCMEncryptionCipherCtx(cryptfs.KEY_LEN*8, nil, key[:], nonce[:]) +	ectx, _ := openssl.NewGCMEncryptionCipherCtx(cryptocore.KeyLen*8, nil, key[:], nonce[:])  	part, _ = ectx.EncryptUpdate(buf)  	ciphertext.Write(part)  	part, _ = ectx.EncryptFinal() @@ -4,7 +4,6 @@ set -eu  cd "$(dirname "$0")" -#go test ./cryptfs $* -  source build.bash -go test ./integration_tests $* + +go test ./... | 
