-
-
Notifications
You must be signed in to change notification settings - Fork 16
Data storage
Data is stored in a file format file called "wfs", short for WristkeyFS, modelled after the KeyspaceFS file structure. It consists of a JSON object that contains items in an array with a key called "otpauth" for 2FA codes.
{
"otpauth": [
"otpauth://totp/Google%20LLC%2E:me%400x4f.in?secret=ASDFGHJKL&issuer=Google&algorithm=SHA1&digits=6&period=30&counter=0&label=Personal",
"otpauth://hotp/GitHub%20Inc%2E:me%400x4f.in?secret=QWERTYUIOP&issuer=GitHub&algorithm=SHA1&digits=6&counter=10&label=Personal"
]
}
This JSON is escaped, base64'd and encrypted locally with your device MasterKey, which in turn uses AES. It is also transmitted in an encrypted base64 form (but with a separate X25519 keypair).
Wristkey's 2FA codes simply store data in an otpauth://
URL, as displayed in the QR codes you scan. This reduces complexity and makes exports and management easier. To learn more about this protocol visit the official Google Authenticator spec docs.
Wristkey is looking for funding. Click here to donate.
I wrote this app in college so that I could log into GitLab and back up my projects from the on-campus computer labs (and to flex my UI skills a bit).
Please don't judge too harshly. 😇