AES&SHA-based crypto-synchronizer for cloud/remote file storage, with cryptographic and transport modules being separate applications
Naamari works with 4 locations. 1st: local dir with original files. 2nd: dir containing folder structure and names of files placed into the storage (but not content). 3rd & 4th - storages: local (another local dir) and remote (say, a cloud). In storages, there are no folders, files have pseudo-random names and encrypted content ("flattening").
The main module, "Naamari", is offline cryptographic one, with full access to all locations but 4th. This module moves files between original and encrypted forms, between "open" folder and local storage. Operations which don't affect remote storage are performed here entirely; any action changing remote storage is only assigned.
To each encrypted file in local storage Naamari adds tiny file-descriptor, describing local and remote versions as well as assigned action, which is performed by transport module - "Naamari-lautta", basically a wrapper for a generic cloud client. It reads descriptors and calls that client: in principle, any with API advanced enough to do 3 jobs: upload, download, remove. To operate, the transport module needs access to local and remote storages only, thus it may run on another computer with a copy of local storage.
As long as the file is referenced in 2nd dir, you can delete local version to spare disk space, then get back remote one, which becomes local, or vice versa.
WARNING: (Obviously), by now it hasn't been examined by any security experts. Play with caution & please, please read the manual.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the page “GNU Free Documentation License”.
The copyright and license notices on this page only apply to the text on this page. Any software or copyright-licenses or other similar notices described in this text has its own copyright notice and license, which can usually be found in the distribution or license text itself.