aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--internal/fusefrontend_reverse/reverse_diriv.go25
-rw-r--r--internal/fusefrontend_reverse/rpath.go7
-rw-r--r--internal/fusefrontend_reverse/virtualfile.go9
3 files changed, 16 insertions, 25 deletions
diff --git a/internal/fusefrontend_reverse/reverse_diriv.go b/internal/fusefrontend_reverse/reverse_diriv.go
deleted file mode 100644
index 88d0680..0000000
--- a/internal/fusefrontend_reverse/reverse_diriv.go
+++ /dev/null
@@ -1,25 +0,0 @@
-package fusefrontend_reverse
-
-import (
- "crypto/sha256"
-
- "github.com/hanwen/go-fuse/fuse"
- "github.com/hanwen/go-fuse/fuse/nodefs"
-
- "github.com/rfjakob/gocryptfs/internal/nametransform"
-)
-
-// derivePathIV derives an IV from an encrypted path by hashing it
-func derivePathIV(path string) []byte {
- hash := sha256.Sum256([]byte(path))
- return hash[:nametransform.DirIVLen]
-}
-
-func (rfs *reverseFS) newDirIVFile(cRelPath string) (nodefs.File, fuse.Status) {
- cDir := saneDir(cRelPath)
- absDir, err := rfs.abs(rfs.decryptPath(cDir))
- if err != nil {
- return nil, fuse.ToStatus(err)
- }
- return rfs.NewVirtualFile(derivePathIV(cDir), absDir)
-}
diff --git a/internal/fusefrontend_reverse/rpath.go b/internal/fusefrontend_reverse/rpath.go
index 6d418e0..55fb481 100644
--- a/internal/fusefrontend_reverse/rpath.go
+++ b/internal/fusefrontend_reverse/rpath.go
@@ -1,6 +1,7 @@
package fusefrontend_reverse
import (
+ "crypto/sha256"
"encoding/base64"
"path/filepath"
"strings"
@@ -18,6 +19,12 @@ func saneDir(path string) string {
return d
}
+// derivePathIV derives an IV from an encrypted path by hashing it
+func derivePathIV(path string) []byte {
+ hash := sha256.Sum256([]byte(path))
+ return hash[:nametransform.DirIVLen]
+}
+
func (rfs *reverseFS) abs(relPath string, err error) (string, error) {
if err != nil {
return "", err
diff --git a/internal/fusefrontend_reverse/virtualfile.go b/internal/fusefrontend_reverse/virtualfile.go
index 5373b48..351cbdc 100644
--- a/internal/fusefrontend_reverse/virtualfile.go
+++ b/internal/fusefrontend_reverse/virtualfile.go
@@ -8,6 +8,15 @@ import (
"github.com/hanwen/go-fuse/fuse/nodefs"
)
+func (rfs *reverseFS) newDirIVFile(cRelPath string) (nodefs.File, fuse.Status) {
+ cDir := saneDir(cRelPath)
+ absDir, err := rfs.abs(rfs.decryptPath(cDir))
+ if err != nil {
+ return nil, fuse.ToStatus(err)
+ }
+ return rfs.NewVirtualFile(derivePathIV(cDir), absDir)
+}
+
type virtualFile struct {
// Embed nodefs.defaultFile for a ENOSYS implementation of all methods
nodefs.File