aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-07-19v2api: fsck: use a temporary mountJakob Unterwurzacher
Directly accessing the Nodes does not work properly, as there is no way to attach a newly LOOKUPped Node to the tree. This means Path() does not work. Use an actual mount instead and walk the tree.
2020-07-19v2api: Lookup: use newChild() helperJakob Unterwurzacher
2020-07-19v2api: enable go-fuse warnings on mount & fsckJakob Unterwurzacher
2020-07-18v2api: make fsck compile againJakob Unterwurzacher
Horribly broken, but it compiles. .../tests/fsck$ ./run_fsck.bash Reading password from extpass program "echo", arguments: ["test"] Decrypting master key OpenDir ".": invalid entry "invalid_file_name.3": illegal base64 data at input byte 17 OpenDir ".": invalid entry "invalid_file_name_2": bad message fsck: corrupt entry in dir "": "invalid_file_name.3" fsck: corrupt entry in dir "": "invalid_file_name_2" OpenDir ".": invalid entry "invalid_file_name____1": bad message fsck: corrupt entry in dir "": "invalid_file_name____1" fsck: error stating file ".go-fuse.5577006791947779410/deleted": no such file or directory fsck: error listing xattrs on ".go-fuse.13260572831089785859/deleted": no such file or directory fsck: error opening dir "i10488239 (dir): ": no such file or directory fsck: error reading symlink ".go-fuse.10667007354186551956/deleted": no such file or directory fsck: error listing xattrs on ".go-fuse.11998794077335055257/deleted": no such file or directory [...]
2020-07-18v2api: Node: make Path() publicJakob Unterwurzacher
Helpful for fsck.
2020-07-17v2api: implement ctlsocksrv.InterfaceJakob Unterwurzacher
2020-07-14v2api: implement Getxattr, Setxattr, Removexattr, ListxattrJakob Unterwurzacher
gocryptfs/tests/xattr passes.
2020-07-12v2api: Setattr: fill `out` structureJakob Unterwurzacher
2020-07-12tests: TestMagicNames: add warmup roundsJakob Unterwurzacher
Chasing a bug that seems to have nothing to do with magic names, as it already triggers during warmup: --- FAIL: TestMagicNames (0.00s) matrix_test.go:773: Testing n="warmup1" matrix_test.go:773: Testing n="warmup2" matrix_test.go:820: no such file or directory
2020-07-12v2api: set NullPermissions = trueJakob Unterwurzacher
Don't let go-fuse mess úp 0000 permissions.
2020-07-12v2api: fix MkfifoJakob Unterwurzacher
2020-07-12v2api: properly implement Node.SetattrJakob Unterwurzacher
We used to always open a *File2 and letting the *File2 handle Setattr. This does not work it we cannot open the file! Before: $ go test 2020/07/12 20:14:57 writer: Write/Writev failed, err: 2=no such file or directory. opcode: INTERRUPT 2020/07/12 20:14:57 writer: Write/Writev failed, err: 2=no such file or directory. opcode: INTERRUPT --- FAIL: TestLchown (0.00s) matrix_test.go:634: lchown /tmp/gocryptfs-test-parent-1026/014500839/default-plain/symlink: too many levels of symbolic links touch: setting times of '/tmp/gocryptfs-test-parent-1026/014500839/default-plain/utimesnano_symlink': Too many levels of symbolic links --- FAIL: TestUtimesNanoSymlink (0.00s) matrix_test.go:655: exit status 1 --- FAIL: TestMkfifo (0.00s) matrix_test.go:755: file exists --- FAIL: TestMagicNames (0.00s) matrix_test.go:773: Testing n="gocryptfs.longname.QhUr5d9FHerwEs--muUs6_80cy6JRp89c1otLwp92Cs" matrix_test.go:773: Testing n="gocryptfs.diriv" matrix_test.go:815: open /tmp/gocryptfs-test-parent-1026/014500839/default-plain/linktarget: permission denied --- FAIL: TestChmod (0.00s) matrix_test.go:840: chmod 444 -> 000 failed: permission denied matrix_test.go:840: chmod 444 -> 111 failed: permission denied matrix_test.go:840: chmod 444 -> 123 failed: permission denied matrix_test.go:840: chmod 444 -> 321 failed: permission denied FAIL exit status 1 FAIL github.com/rfjakob/gocryptfs/tests/matrix 0.790s After: $ go test --- FAIL: TestMkfifo (0.00s) matrix_test.go:755: file exists --- FAIL: TestMagicNames (0.00s) matrix_test.go:773: Testing n="gocryptfs.longname.QhUr5d9FHerwEs--muUs6_80cy6JRp89c1otLwp92Cs" matrix_test.go:773: Testing n="gocryptfs.diriv" matrix_test.go:815: open /tmp/gocryptfs-test-parent-1026/501766059/default-plain/linktarget: permission denied --- FAIL: TestChmod (0.00s) matrix_test.go:849: modeHave 0644 != modeWant 0 FAIL exit status 1 FAIL github.com/rfjakob/gocryptfs/tests/matrix 0.787s
2020-07-12v2api: Getattr: use file handle if passedJakob Unterwurzacher
2020-07-12v2api: Getattr: fix file sizeJakob Unterwurzacher
2020-07-12v2api: call InitSerializerJakob Unterwurzacher
If we don't, reads hang with -serialize_reads.
2020-07-12v2api: fix Rename trying to overwrite itselfJakob Unterwurzacher
We used to do this [pid 99182] renameat2(14, "Y_4DAxKvj1QnXmJx2AkrKA", 15, ".", RENAME_NOREPLACE <unfinished ...> which was not the intention.
2020-07-12tests: fix TestCpWarnings comment typoJakob Unterwurzacher
2020-07-12tests: don't crash on empty Flistxattr resultJakob Unterwurzacher
2020-07-12v2api: fix Mkdir crash when using plaintextnamesJakob Unterwurzacher
2020-07-12v2api: fix double-lock in truncateJakob Unterwurzacher
2020-07-12v2api: File2: implement Release, Read, Write, Fsync, Flush, AllocateJakob Unterwurzacher
Fortunately, this just means fixing up the function signatures.
2020-07-11v2api: fix RootNode castJakob Unterwurzacher
2020-07-11v2api: fix TestOpenBackingDirJakob Unterwurzacher
2020-07-11v2api: implement RenameJakob Unterwurzacher
2020-07-11v2api: remove OpenatUserCtx, MknodatUserCtx helpersJakob Unterwurzacher
Instead, use the new toFuseCtx() function introduced in an earlier commit.
2020-07-11v2api: implement SymlinkJakob Unterwurzacher
2020-07-11v2api: implement LinkJakob Unterwurzacher
2020-07-11v2api: implement MknodJakob Unterwurzacher
2020-07-11v2api: implement StatfsJakob Unterwurzacher
2020-07-08v2api: fix crash on umountJakob Unterwurzacher
fs.Mount already called srv.Serve() for us.
2020-07-05v2api: list interfaces to be implementedJakob Unterwurzacher
2020-07-05v2api: implement SetattrJakob Unterwurzacher
2020-07-05v2api: implement OpendirJakob Unterwurzacher
2020-07-04v2api: merge openBackingDir into root_node.goJakob Unterwurzacher
2020-07-04v2api: implement Open()Jakob Unterwurzacher
2020-07-04v2api: add prepareAtSyscall helperJakob Unterwurzacher
2020-07-04v2api: implement ReadlinkJakob Unterwurzacher
2020-06-21v2api: implement UnlinkJakob Unterwurzacher
2020-06-21v2api: implement RmdirJakob Unterwurzacher
2020-06-21v2api: implement MkdirJakob Unterwurzacher
2020-06-21v2api: implement CreateJakob Unterwurzacher
2020-06-21v2api: collect RootNode code in root_node.goJakob Unterwurzacher
2020-06-21v2api: implement GetAttr and ReaddirJakob Unterwurzacher
2020-06-21getdents_c: read from two threadsJakob Unterwurzacher
This was an attempt to make the C code more similar to Go (which also reads from multiple threads). However, I still could not repro the ENOENT problems. https://github.com/rfjakob/gocryptfs/issues/483
2020-06-21v2api: implement Lookup()Jakob Unterwurzacher
Compiles, but untested otherwise. No caching.
2020-06-21inomap: clarify TranslateStat function commentJakob Unterwurzacher
Also, fix the namespaceMap comment.
2020-06-21v2api (go-fuse v2 api): initial noop implementationJakob Unterwurzacher
Compiles and mounts but does nothing useful.
2020-06-06tests: TestBadname: simplify test by using empty filesJakob Unterwurzacher
Simplify the tests by using empty files. Empty files are valid, and we don't check the content anyway. Also adjust comment style a little and add a missing break statement.
2020-06-06badname: stop trying to decrypt at length 22Jakob Unterwurzacher
At least 16 bytes due to AES --> at least 22 characters in base64
2020-06-06Added auto decryption of invalid file namesDerDonut
Changed invalid file decoding and decryption. Function DecryptName now shortens the filename until the filename is decodable and decryptable. Will work with valid **and** invalid Base64URL delimiter (valid delimiter [0-9a-zA-z_\\-]. If the filename is not decryptable at all, it returns the original cipher name with flag suffix Changed cli tests to generate decryptable and undecryptable file names with correct encrypted content. Replacing #474, extends #393