diff options
| author | Jakob Unterwurzacher | 2021-12-19 14:43:56 +0100 | 
|---|---|---|
| committer | Jakob Unterwurzacher | 2021-12-19 14:43:56 +0100 | 
| commit | 64be5de75f42e415198ff5e77de509680b69e0e1 (patch) | |
| tree | 8897db6d0de0a4c11921bba72de621e30f0ce501 /internal/fusefrontend | |
| parent | eb42e541828336e9b19e1bc5e087a419835b0c85 (diff) | |
fusefrontend: allow slashes in xattr names
xattr names have fewer restrictions than file names,
relax the validation.
Fixes https://github.com/rfjakob/gocryptfs/issues/627
Diffstat (limited to 'internal/fusefrontend')
| -rw-r--r-- | internal/fusefrontend/node_xattr.go | 4 | ||||
| -rw-r--r-- | internal/fusefrontend/root_node.go | 4 | 
2 files changed, 2 insertions, 6 deletions
| diff --git a/internal/fusefrontend/node_xattr.go b/internal/fusefrontend/node_xattr.go index 09ee5ef..44bc502 100644 --- a/internal/fusefrontend/node_xattr.go +++ b/internal/fusefrontend/node_xattr.go @@ -15,10 +15,6 @@ import (  // -1 as uint32  const minus1 = ^uint32(0) -// xattr names are encrypted like file names, but with a fixed IV. -// Padded with "_xx" for length 16. -var xattrNameIV = []byte("xattr_name_iv_xx") -  // We store encrypted xattrs under this prefix plus the base64-encoded  // encrypted original name.  var xattrStorePrefix = "user.gocryptfs." diff --git a/internal/fusefrontend/root_node.go b/internal/fusefrontend/root_node.go index 7221be6..39cdef7 100644 --- a/internal/fusefrontend/root_node.go +++ b/internal/fusefrontend/root_node.go @@ -268,7 +268,7 @@ func (rn *RootNode) decryptXattrValue(cData []byte) (data []byte, err error) {  // encryptXattrName transforms "user.foo" to "user.gocryptfs.a5sAd4XAa47f5as6dAf"  func (rn *RootNode) encryptXattrName(attr string) (string, error) {  	// xattr names are encrypted like file names, but with a fixed IV. -	cAttr, err := rn.nameTransform.EncryptName(attr, xattrNameIV) +	cAttr, err := rn.nameTransform.EncryptXattrName(attr)  	if err != nil {  		return "", err  	} @@ -282,7 +282,7 @@ func (rn *RootNode) decryptXattrName(cAttr string) (attr string, err error) {  	}  	// Strip "user.gocryptfs." prefix  	cAttr = cAttr[len(xattrStorePrefix):] -	attr, err = rn.nameTransform.DecryptName(cAttr, xattrNameIV) +	attr, err = rn.nameTransform.DecryptXattrName(cAttr)  	if err != nil {  		return "", err  	} | 
