def write(self, path, data, offset, fh):
if self.readonly:
raise FuseOSError(errno.EROFS)
# special check for special files
if os.path.basename(path).startswith('.'):
if common.windows:
f = open(path, 'r+b', buffering=0)
f.seek(offset)
return f.write(data)
else:
with self.rwlock:
os.lseek(fh, offset, 0)
return os.write(fh, data)
before = offset % 16
iv = self.path_to_iv(path) + (offset >> 4)
out_data = self.crypto.aes_ctr(0x34, iv, (b'\0' * before) + data)[before:]
if common.windows:
with open(path, 'r+b', buffering=0) as f:
f.seek(offset - before)
written = f.write(out_data)
else:
with self.rwlock:
os.lseek(fh, offset, 0)
written = os.write(fh, out_data)
return written
评论列表
文章目录