From 7c0e1bfbcf2dcbc7ca6abf2b1a05820ff818e256 Mon Sep 17 00:00:00 2001 From: inportb Date: Sat, 1 Oct 2022 07:37:14 -0400 Subject: [PATCH] EncFS array paths --- htdocs/tplfs.mjs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/htdocs/tplfs.mjs b/htdocs/tplfs.mjs index 962721f..9348deb 100644 --- a/htdocs/tplfs.mjs +++ b/htdocs/tplfs.mjs @@ -279,11 +279,13 @@ EncFS.fromPassword = async function(fs, password) { return String.fromCharCode.apply(null, new Uint8Array(res)); } async function path_encrypt(data) { - return (await Promise.all(data.split('/').map(x => path_component_encrypt(x)))).join('/'); + if((data) && (data.constructor === Array)) return await Promise.all(data.map(x => path_component_encrypt(x))); + else return (await Promise.all(data.split('/').map(x => path_component_encrypt(x)))).join('/'); } async function path_decrypt(data) { - if(data.startsWith('/')) return '/' + await path_decrypt(data.replace(/^\/+/g, '')); - return (await Promise.all(data.split('/').map(x => path_component_decrypt(x)))).join('/'); + if((data) && (data.constructor === Array)) return await Promise.all(data.map(x => path_component_decrypt(x))); + else if(data.startsWith('/')) return '/' + await path_decrypt(data.replace(/^\/+/g, '')); + else return (await Promise.all(data.split('/').map(x => path_component_decrypt(x)))).join('/'); } return new EncFS((await fs.mkdir('ZZZE ' + uint8array_to_b64(new Uint8Array(await digest('SHA-1', password))))).chroot(), data_encrypt, data_decrypt, path_encrypt, path_decrypt); };