* Password manager (pawoman): * Commandline first, GUI second * File format (DATA IS STORED IN BIG ENDIAN) * Header: * Magic (PAWOMAN\0, 8 bytes) * Version (uint8_t) * Encryption type (16-byte string, padded by NULLs) * Encryption type specific data length (uint64_t) * Encryption type specific data (varies) * DB-data (encrypted): * Header: * Checksum for DB-data (???) * Changes: * Change length (uint64_t) * Change hash (???) * Change command (uint8_t) * Command data (varies) * Commands (list of changes required to build database): * Don't store elements, store changes and list of references to changes (reference to change by its' length and its' data being hashed?) * Add ability to flatten database (get rid of old changes) * Make it possible to import KeePass exports * Allow to store arbitrary data in entries * Save to file (or URL? (HTTP(S), FTP(S), SFTP)) * If file mismatches (length, checksum), add the changes of the other file to this file * Git browser: * Tree selection * File list * Commit list (clicking on commit pops up window)