diff options
author | Jakob Unterwurzacher | 2015-09-06 10:38:43 +0200 |
---|---|---|
committer | Jakob Unterwurzacher | 2015-09-06 10:42:34 +0200 |
commit | 58d1e24b7c4eb69376dd0ec230c42ea9aeb70f2d (patch) | |
tree | ac99fc15a5ab2f34fc85ac13188ffa6e4dc11815 /cryptfs/cryptfs.go | |
parent | ad3a1a88994bbf54e95295d70f7424b67894da3e (diff) |
Add OpenSSL support for file content encryption/decryption
This brings streaming read performance from 30MB/s to 81MB/s
(similar improvement for writes)
Diffstat (limited to 'cryptfs/cryptfs.go')
-rw-r--r-- | cryptfs/cryptfs.go | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/cryptfs/cryptfs.go b/cryptfs/cryptfs.go index 9ec511a..40a9024 100644 --- a/cryptfs/cryptfs.go +++ b/cryptfs/cryptfs.go @@ -20,21 +20,26 @@ type CryptFS struct { cipherBS uint64 } -func NewCryptFS(key [16]byte) *CryptFS { +func NewCryptFS(key [16]byte, useOpenssl bool) *CryptFS { b, err := aes.NewCipher(key[:]) if err != nil { panic(err) } - g, err := cipher.NewGCM(b) - if err != nil { - panic(err) + var gcm cipher.AEAD + if useOpenssl { + gcm = opensslGCM{key} + } else { + gcm, err = cipher.NewGCM(b) + if err != nil { + panic(err) + } } return &CryptFS{ blockCipher: b, - gcm: g, + gcm: gcm, plainBS: DEFAULT_PLAINBS, cipherBS: DEFAULT_PLAINBS + NONCE_LEN + AUTH_TAG_LEN, } |