Bunker -- An encrypted data store for Python ******************************************** .. contents:: Basic Design ============ ``bunker`` is based on the excessive use of ``tarfile`` and AES encryption. ``bunker`` stores its data in bunker-files which are tar archives containing both some meta data (currently unencrypted, is on the TODO list) and encrypted files containing the actual data. Basic API ========= The main class used for accessing data stored in the bunker file is the class ``bunker.bunker.Bunker``. It can be used to create new bunkers and open existing bunkers. Both is done using the classmethod ``bunker.bunker.Bunker.open(path)``. One can then add new components (like a `Key Value Store`_) using the method ``add_component`` that will return an open component of a given type. Using the method ``get_component`` one can open an existing component. The components bring various methods to modify the data, changes are written to the bunker by using either the method ``component.write_back`` or ``component.close`` the latter will also bring the component in a state where it cannot be used anymore (and delete all sensitive data). ``bunker.bunker.Bunker`` can also be used as a context. All open components will be closed automatically when the context is left, ensuring that no sensitive data is left on the disk/in memory. Supported Data Stores ===================== Key Value Stores ---------------- One can store data in key value stores. Those are based on ``ljson.slapdash`` tables and work with several data types.