password protected secret keeper
git clone git://
Log | Files | Refs | README | LICENSE

DateCommit messageAuthorFiles+-
2020-06-10 07:32Fix typo in safe(1)Willy Goiffon1+1-1
2020-06-02 11:44Update READMEWilly Goiffon1+11-4
2020-06-02 11:41Rename MANDIR to MANPREFIXWilly Goiffon3+25-24
2020-05-29 16:57Remove empty lines from manpagesWilly Goiffon3+1-28
2020-05-28 20:47Clean up READMEWilly Goiffon1+26-93
2020-05-28 18:39Update man pages descriptionsWilly Goiffon2+2-2
2020-05-28 17:28Add manpage to describe the file store formatWilly Goiffon3+91-0
2020-05-28 17:28Close display blocks in manpagesWilly Goiffon2+25-22
2019-12-22 08:48Support building on OpenBSDWilly Goiffon2+5-2
2019-09-16 05:39Add -k flag to ask external program for passTudor Roman2+19-12
2019-08-23 11:57Fix return status of servekey() to be an errorWilly Goiffon1+1-1
2019-08-23 11:50agent: Only watch POLLOUT when key is loadedWilly Goiffon1+13-11
2019-08-23 12:10Use strlcpy() and fix uninitialized variablesWilly Goiffon2+49-3
2019-07-02 08:45Put mk/make config in the same fileWilly Goiffon3+26-35
2019-07-01 09:13Fix copyright dateWilly Goiffon1+1-1
2019-06-28 15:28Update manpage/README to reflect -r/-p changeWilly Goiffon2+3-5
2019-06-28 12:02Allow decrypting secrets when -r is specifiedWilly Goiffon1+13-11
2019-06-28 11:51Add new flag to change password promptWilly Goiffon2+25-15
2019-06-27 15:12Check return status for readpass()Willy Goiffon1+6-2
2019-06-27 13:45Deny coredumps to protect sensitive dataWilly Goiffon2+14-0
2019-06-27 13:20Prompt password from an external program when there is no ttyWilly Goiffon2+69-7
2019-06-26 12:32Remove test on errno from logicWilly Goiffon1+7-4
2019-06-26 12:31Fix issues with uninitialized valuesz3bra1+4-4
2019-06-25 12:45Add verbose mode and logs to safe-agentWilly Goiffon2+53-21
2019-06-25 12:36Fail early when pushing key if socket is not setWilly Goiffon1+7-6
2019-06-25 07:06Reword / Rearrange manpages and READMEWilly Goiffon3+21-14
2019-06-24 16:10Lock/Unlock sensitive memory chunksWilly Goiffon2+33-10
2019-06-24 16:06Remove duplicate deriv() callWilly Goiffon1+0-2
2019-06-24 14:46Prevent segfault if socket path is unsetWilly Goiffon1+5-1
2019-06-24 14:40Fix makefile for OpenBSDWilly Goiffon1+4-1
2019-06-24 13:54Simplify readkey() error handlingWilly Goiffon1+8-11
2019-06-24 13:08Add SAFE_DIR environment variable to set safe locationWilly Goiffon2+10-8
2019-06-24 12:55Fallback to password prompt if agent failsWilly Goiffon1+5-12
2019-06-24 12:48Ask for password twice when creating master entryWilly Goiffon1+10-0
2019-06-24 12:35Update examples in manpage / READMEWilly Goiffon3+15-7
2019-06-24 10:33Print child PID when forking agentWilly Goiffon1+30-7
2019-06-24 10:32Interpret empty agent response has "No key in memory"Willy Goiffon1+26-8
2019-06-24 10:09poll() clients in agent to prevent blockingWilly Goiffon1+18-9
2019-06-24 10:05Remove executable bit from socketWilly Goiffon1+1-1
2019-06-24 06:59Detach safe-agent from controlling terminal by defaultWilly Goiffon2+12-3
2019-06-12 11:35Update READMEWilly Goiffon1+12-6
2019-06-12 11:32Add manpage for safe-agent(1)Willy Goiffon3+63-0
2019-06-12 11:30Update safe(1) manpage with latest changesWilly Goiffon1+19-14
2019-06-12 11:29Fix spacing in makefileWilly Goiffon1+8-8
2019-06-07 10:43Update manpage to remove agent partWilly Goiffon1+19-15
2019-06-07 10:34Make agent a standalone programWilly Goiffon4+265-64
2019-06-06 17:28Fork agent in manpage exampleWilly Goiffon1+1-1
2019-06-06 17:27Add missing flag to usage()Willy Goiffon1+1-1
2019-06-06 17:25Update manpageWilly Goiffon1+64-7
2019-06-06 17:24Make socket readable by user onlyWilly Goiffon1+1-0
2019-06-06 16:33Only load socket path from environmentWilly Goiffon1+3-4
2019-06-06 16:30Load key from wherever possible before proceedingWilly Goiffon1+31-25
2019-06-06 16:27Send salt from agentWilly Goiffon1+8-1
2019-06-05 16:13Force checking master password regardless of operationWilly Goiffon1+14-14
2019-06-05 16:10Write master salt outside writepass()Willy Goiffon1+1-1
2019-06-05 14:37Update README to reflec recent changesWilly Goiffon1+60-21
2019-06-05 09:50Add master password check before writesecret()Willy Goiffon1+33-1
2019-06-05 08:31Write master password to safe if it doesn't existsWilly Goiffon1+48-4
2019-06-04 15:02Remove unneeded commentWilly Goiffon1+0-5
2019-06-04 14:59Remove crypto state and header from safe structWilly Goiffon1+11-9
2019-06-04 14:50Remove wrapping levels for encryption/decryptionWilly Goiffon1+39-60
2019-06-04 14:45Initialize eof to 0 in xread()Willy Goiffon1+1-1
2019-06-04 13:02Remove readsalt()Willy Goiffon1+0-20
2019-06-04 12:55Merge store_secret() and show_secret() into fdcrypt()Willy Goiffon1+49-82
2019-06-04 12:52Remove secret_exists()Willy Goiffon1+0-19
2019-06-04 12:51Rename secret_enc/decrypt to xenc/decryptWilly Goiffon1+2-2
2019-06-04 12:51Make tag and uint8_t in secret_encrypt()Willy Goiffon1+1-1
2019-06-03 16:13Make show_secret() use secret's salt in master pass absenceWilly Goiffon1+3-0
2019-06-03 16:01Set default umask to 077 to limit socket read/write accessWilly Goiffon1+1-0
2019-06-03 15:55Retrieve key from agent if socket path is providedWilly Goiffon1+8-3
2019-06-03 15:54Rename getkey() to readkey()Willy Goiffon1+1-1
2019-06-03 15:50Add missing libsodium initialisation (WTF?)Willy Goiffon1+3-0
2019-06-03 15:47Read/Generate salt from a dedicated functionWilly Goiffon1+22-11
2019-06-03 15:42Open /dev/null in write-onlyWilly Goiffon1+1-1
2019-06-03 15:38Remove err() call in favor of return in getkey()Willy Goiffon1+2-3
2019-06-03 14:28Change agent() function to print socket path + PIDWilly Goiffon1+25-16
2019-06-03 14:06Rename master password file nameWilly Goiffon1+7-7
2019-06-03 13:32Read key/salt and deriv key right from main()Willy Goiffon1+49-43
2019-06-03 10:27Refuse to store a secret that already existsWilly Goiffon1+1-1
2019-06-03 10:24Remove 'open' from error messagesWilly Goiffon1+3-3
2019-06-03 10:23Generate key within show/store functions rather than main()Willy Goiffon1+37-25
2019-06-03 09:37Reuse salt of special entry '.lock' if presentWilly Goiffon1+29-1
2019-06-01 11:07Move genkey() call in main()Willy Goiffon1+23-41
2019-05-31 16:02Update genkey to write master password to safeWilly Goiffon1+27-12
2019-05-31 15:27Rewrite encrypt/decrypt to handle memory buffersWilly Goiffon1+68-54
2019-05-31 09:41Have xread() check EOF, and use that for stream enc/decryptionWilly Goiffon1+23-21
2019-05-29 12:24Rename xencrypt/xdecrypt + internal variablesWilly Goiffon1+25-27
2019-05-27 15:54Merge some functions calls and return statements togetherWilly Goiffon1+4-7
2019-05-27 09:20Fix strncat() usage to prevent overflowWilly Goiffon1+1-1
2019-05-24 16:22Update README to match current usagez3bra1+5-6
2019-05-24 16:18Move agent functionnality in safe.cz3bra4+96-207
2019-05-24 15:37Put back the key generation bit in safe.cz3bra1+47-3
2019-05-23 16:32Add BSD compatible makefilez3bra1+36-0
2019-05-23 16:20Retrieve the key from safe-agent over unix socketsz3bra1+31-45
2019-05-23 16:09Add an agent to provide the secret key over unix socketsz3bra2+173-5
2019-05-23 10:22Update README to reflect current designz3bra1+14-20
2019-05-23 10:11Remove unneeded functions/headersz3bra1+0-25
2019-05-23 10:10Recursively create subdirectoriesz3bra1+37-0
2019-05-23 09:50Store salt in the encrypted secret filez3bra1+10-6
2019-05-23 09:39Make key[] a local variablez3bra1+10-9
2019-05-23 09:25Simplify secret storage and fix decryptionz3bra1+67-115
2019-05-22 07:43Add function to list secretsz3bra1+17-3
2019-05-22 07:36Store/Restore secret list from .meta filez3bra1+50-11
2019-05-22 07:34Make usage() the first declared functionz3bra1+7-7
2019-05-21 21:56Read passphrase interactively and derivate a key from itz3bra4+296-26
2019-04-25 12:06Replace openssl with libsodiumz3bra2+11-35
2019-03-08 22:57Initialize aflag and add master password option for encryptionz3bra2+57-15
2019-03-08 10:26Rename storepass/showpass functionsz3bra1+4-4
2019-03-08 07:59Implement store/show secrets in plaintextz3bra1+160-2
2019-02-27 16:41Add goals to the READMEz3bra1+41-1
2019-02-20 12:04Initial commitz3bra6+167-0