- File kpw.d/db.md — part of check-in [218f1d20c2] at 2019-08-15 11:24:16 on branch trunk — FUCK THIS SHIT (user: lexi, size: 600) [annotate] [blame] [check-ins using]
- File kpw/db.md — part of check-in [c29fe4718a] at 2019-10-17 20:03:22 on branch trunk — reorganize dumbass directory structure (user: lexi, size: 600) [annotate] [blame] [check-ins using]
kpw db format
kpw uses a simple binary database format. it consists of a number of values of constant size, followed by a series of encrypted records.
- public key
- password salt
- encrypt(password, private key)
- encrypt(private key, password salt) [for pw verification]
- record *
each record takes the form of
- account name length (1 byte)
- account name
- password length (1 byte)
records are added simply by encrypting them with the public key and appending them to the end of the file. thus, adding a new password does not require the decryption password.