Use an event in lock_file_mutex() to test if the client is still
[pwmd.git] / README
blobcdc3ac497adae7927e47539df5d24f3b3442ac76
1 Password Manager Daemon is a server that provides a way for applications to
2 securely store data in a centralized location. The data is stored in an
3 AES256 encrypted XML file and clients connect to manipulate the data. Some
4 of the features include:
6     * Multi-threaded. More than one client may access the data at the same
7       time.
8     * A key cache so clients won't need to enter a key each time a file is
9       opened or saved. The cache is also protected with a mutex to prevent
10       corruption.
11     * Key retrieval via pinentry(1).
12     * Configuration file which supports file specific settings including
13       encryption iterations, cache expiration and encryption key or key file.
14     * Compressed data file support.
15     * Logging to file and/or syslog.
16     * Secure memory usage. PWMD will zero out memory before freeing it and
17       also has the option to lock the entire process in RAM to avoid swapping
18       the data to virtual memory.
20 I needed this because I use a few applications that require the same
21 credentials but hate having to update all those configuration files to reflect
22 any changes in the account. This way, there is a central location for the
23 needed data.
25 Requirements:
27     libpth2      - http://www.gnu.org/software/pth/pth.html
28                    Portable multi-threading library.
30     libassuan    - http://www.gnupg.org
31                    Protocol. Version 1.0.4 or later is required.
33     libgpg-error - http://www.gnupg.org
34                    Error handling.
36     glib2        - http://www.gtk.org
37                    Portability library among other things.
39     libxml2      - http://xmlsoft.org
40                    For XML parsing and data manipulation.
42     libgcrypt    - http://www.gnupg.org
43                    Encryption, decryption and hashing.
45     libz         - http://www.zlib.net
46                    For compressing the data file. Version 1.2.2.1 or later is
47                    required.
49     pinentry     - http://www.gnupg.org/aegypten
50                    Not really required, but recommended. There are various
51                    interfaces for password entry: console/curses, X11/GTK2,
52                    X11/QT. The X11 versions also support console/curses.
54 Debian has packages for all of these. Your distro may have them too.
57 You can test it out by connecting to the socket with the socat utility
58 (http://www.dest-unreach.org/socat/). Start the daemon then run socat:
60     socat GOPEN:$HOME/.pwmd/socket -
62 There is also a library available that makes it easy for other applications
63 (mail, www, etc) to use the server. Read COMMANDS for protocol commands and
64 syntax. Send me patches or any ideas you may have.
66 Ben Kibbey <bjk@luxsci.net>
67 http://bjk.sourceforge.net/pwmd/