diff options
Diffstat (limited to 'internal')
| -rw-r--r-- | internal/fusefrontend/fs_dir.go | 4 | ||||
| -rw-r--r-- | internal/nametransform/names.go | 7 | 
2 files changed, 8 insertions, 3 deletions
| diff --git a/internal/fusefrontend/fs_dir.go b/internal/fusefrontend/fs_dir.go index 9547ce6..4657b95 100644 --- a/internal/fusefrontend/fs_dir.go +++ b/internal/fusefrontend/fs_dir.go @@ -265,7 +265,7 @@ func (fs *FS) OpenDir(dirName string, context *fuse.Context) ([]fuse.DirEntry, f  		if isLong == nametransform.LongNameContent {  			cNameLong, err := nametransform.ReadLongName(filepath.Join(cDirAbsPath, cName))  			if err != nil { -				tlog.Warn.Printf("Skipping file %q in dir %q: Could not read .name: %v", +				tlog.Warn.Printf("Skipping entry %q in dir %q: Could not read .name: %v",  					cName, cDirName, err)  				errorCount++  				continue @@ -278,7 +278,7 @@ func (fs *FS) OpenDir(dirName string, context *fuse.Context) ([]fuse.DirEntry, f  		name, err := fs.nameTransform.DecryptName(cName, cachedIV)  		if err != nil { -			tlog.Warn.Printf("Skipping invalid name %q in dir %q: %s", +			tlog.Warn.Printf("Skipping entry %q in dir %q: %s",  				cName, cDirName, err)  			errorCount++  			continue diff --git a/internal/nametransform/names.go b/internal/nametransform/names.go index 4930488..89ce0db 100644 --- a/internal/nametransform/names.go +++ b/internal/nametransform/names.go @@ -10,6 +10,7 @@ import (  	"github.com/rfjakob/eme"  	"github.com/rfjakob/gocryptfs/internal/cryptocore" +	"github.com/rfjakob/gocryptfs/internal/tlog"  )  type NameTransform struct { @@ -42,7 +43,11 @@ func (n *NameTransform) DecryptName(cipherName string, iv []byte) (string, error  	bin = eme.Transform(n.cryptoCore.BlockCipher, iv, bin, eme.DirectionDecrypt)  	bin, err = unPad16(bin)  	if err != nil { -		return "", err +		tlog.Debug.Printf("pad16 error detail: %v", err) +		// unPad16 returns detailed errors including the position of the +		// incorrect bytes. Kill the padding oracle by lumping everything into +		// a generic error. +		return "", fmt.Errorf("Invalid padding")  	}  	plain := string(bin)  	return plain, err | 
