From 64be5de75f42e415198ff5e77de509680b69e0e1 Mon Sep 17 00:00:00 2001 From: Jakob Unterwurzacher Date: Sun, 19 Dec 2021 14:43:56 +0100 Subject: 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 --- internal/fusefrontend/node_xattr.go | 4 ---- internal/fusefrontend/root_node.go | 4 ++-- 2 files changed, 2 insertions(+), 6 deletions(-) (limited to 'internal/fusefrontend') 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 } -- cgit v1.2.3