Lumimaja - PasswordSafe with Argon2 KDF, data encrypted with AEAD chacha20poly1305, proper error checking for corrupted or truncated databases. Unlike PasswordSafe V3 format, individial records are not written with new random IV (TwoFish CBC mode), but all the records are written in one go (simplified code a lot). To build release version: rm -rf build && mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Release .. && make -j4 To build debug version: rm -rf build && mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Debug .. && make -j4 To change compiler: cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ .. To use clang-analyzer, also do "scan-build --use-cc=clang --use-c++=clang++ make -j4" instead of "make -j4" (example for Fedora 29). Check if release binary is hardened as expected: hardening-check build/lumimaja Yubikey support (ykpers) is autodetected, "cmake -D NO_YUBI=1" to disable it. For new databases, Argon2_d version 1.3 is used. For backwards compatibility lumimaja supports reading version 1.0 databases with Argon2_d/Argon2_i types. Remember to change Argon2 parameters at Manage → Options → Security → Argon2 memory usage / passes after you have initially added the passwords to your database. Lumimaja? My Finnish translation for "Snowden". Source code is licensed under Artistic License 2.0, see file LICENSE.