Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
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.