nametransform: drop unused noiv functions
As DirIV is now mandatory there is no user for the noiv functions.
This commit is contained in:
parent
b17f0465c7
commit
e970b1fdb5
@ -3,32 +3,8 @@ package nametransform
|
||||
import (
|
||||
"bytes"
|
||||
"testing"
|
||||
|
||||
"github.com/rfjakob/gocryptfs/internal/cryptocore"
|
||||
)
|
||||
|
||||
func TestEncryptPathNoIV(t *testing.T) {
|
||||
var s []string
|
||||
s = append(s, "foo")
|
||||
s = append(s, "foo12312312312312312313123123123")
|
||||
s = append(s, "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890")
|
||||
|
||||
key := make([]byte, cryptocore.KeyLen)
|
||||
cc := cryptocore.New(key, true, true)
|
||||
fs := New(cc, true, false)
|
||||
|
||||
for _, n := range s {
|
||||
c := fs.EncryptPathNoIV(n)
|
||||
d, err := fs.DecryptPathNoIV(c)
|
||||
if err != nil {
|
||||
t.Errorf("Got error from DecryptPathNoIV: %s", err)
|
||||
}
|
||||
if d != n {
|
||||
t.Errorf("Content mismatch, n != d: n=%s c=%s d=%s", n, c, d)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestPad16(t *testing.T) {
|
||||
var s [][]byte
|
||||
s = append(s, []byte("foo"))
|
||||
|
@ -1,63 +0,0 @@
|
||||
package nametransform
|
||||
|
||||
import (
|
||||
"strings"
|
||||
)
|
||||
|
||||
const (
|
||||
OpEncrypt = iota
|
||||
OpDecrypt
|
||||
)
|
||||
|
||||
// DecryptPathNoIV - decrypt path using CBC without any IV.
|
||||
// This function is deprecated by the the more secure DirIV variant and only retained
|
||||
// for compatability with old filesystems.
|
||||
func (be *NameTransform) DecryptPathNoIV(cipherPath string) (plainPath string, err error) {
|
||||
plainPath, err = be.translatePathNoIV(cipherPath, OpDecrypt)
|
||||
return plainPath, err
|
||||
}
|
||||
|
||||
// EncryptPathNoIV - decrypt path using CBC without any IV.
|
||||
// This function is deprecated by the the more secure DirIV variant and only retained
|
||||
// for compatability with old filesystems.
|
||||
func (be *NameTransform) EncryptPathNoIV(plainPath string) (cipherPath string) {
|
||||
cipherPath, _ = be.translatePathNoIV(plainPath, OpEncrypt)
|
||||
return cipherPath
|
||||
}
|
||||
|
||||
// translatePathZeroIV - encrypt or decrypt path using CBC with an all-zero IV.
|
||||
// Just splits the string on "/" and hands the parts to encryptName() / decryptName()
|
||||
func (be *NameTransform) translatePathNoIV(path string, op int) (string, error) {
|
||||
var err error
|
||||
|
||||
// Empty string means root directory
|
||||
if path == "" {
|
||||
return path, err
|
||||
}
|
||||
|
||||
zeroIV := make([]byte, dirIVLen)
|
||||
|
||||
// Run operation on each path component
|
||||
var translatedParts []string
|
||||
parts := strings.Split(path, "/")
|
||||
for _, part := range parts {
|
||||
if part == "" {
|
||||
// This happens on "/foo/bar/" on the front and on the end.
|
||||
// Don't panic.
|
||||
translatedParts = append(translatedParts, "")
|
||||
continue
|
||||
}
|
||||
var newPart string
|
||||
if op == OpEncrypt {
|
||||
newPart = be.EncryptName(part, zeroIV)
|
||||
} else {
|
||||
newPart, err = be.DecryptName(part, zeroIV)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
}
|
||||
translatedParts = append(translatedParts, newPart)
|
||||
}
|
||||
|
||||
return strings.Join(translatedParts, "/"), err
|
||||
}
|
Loading…
Reference in New Issue
Block a user