diff options
| -rw-r--r-- | internal/fusefrontend_reverse/reverse_diriv.go | 25 | ||||
| -rw-r--r-- | internal/fusefrontend_reverse/rpath.go | 7 | ||||
| -rw-r--r-- | internal/fusefrontend_reverse/virtualfile.go | 9 | 
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 | 
