Fix commit b3c9872 leaking gpg-agent connections.
[pwmd.git] / README
blob965090533813c65f80943bb786602388083e6bc9
1 Password Manager Daemon is a server that provides a way for applications to
2 securely store and retrieve data at a centralized location. The data is stored
3 in an XML file and clients connect and send commands to manipulate the data.
5 I needed this because I use a few applications that require the same
6 credentials but hate having to update all those configuration files to reflect
7 any changes. This way, there is a central location for the needed data.
9 Some of the features include:
11     * Multi-threaded. More than one client may access the data at the same
12       time.
13     * Optionally uses the GnuPG Agent for key caching and smartcard support.
14     * Remote network connctions via GnuTLS or SSH via a proxy using libpwmd(3).
15     * Configuration file which supports file specific settings including:
16       cache expiration and encryption key or key file and more.
17     * Logging to file and/or syslog.
18     * Secure memory usage. PWMD will zero out memory before freeing it and
19       also has the option to lock the entire process in RAM to avoid swapping
20       the data to virtual memory.
23 Requirements:
24 -------------
25     C99 compiler - http://www.gnu.org/software/gcc
26                    Has been tested to work. Others should work fine, too.
28     libassuan    - ftp://ftp.gnupg.org/gcrypt/libassuan
29                    Protocol. Version 2.0.2 or later is required.
31     libgpg-error - http://www.gnupg.org
32                    Error handling. Required.
34     gpg-agent    - http://www.gnupg.org
35                    Keypair generation, decryption and caching. Version 2.1.0
36                    or later is required when --no-agent is not specified.
38     pinentry     - http://www.gnupg.org
39                    Required for passphrase retrieval from either gpg-agent or
40                    pwmd itself.
42     libxml2      - http://xmlsoft.org
43                    For XML parsing and data manipulation.
45     libgcrypt    - http://www.gnupg.org
46                    Encryption and hashing. Version 1.5.0 or later is required.
48     libz         - http://www.zlib.net
49                    For data file conversion. Version 1.2.2.1 or later is
50                    required.
52     libgnutls    - http://www.gnu.org/software/gnutls/
53                    For encrypted connections over a TCP network. Optional.
55     libacl       - ftp://acl.bestbits.at
56                    To retain an ACL for a data file. Optional.
59 Installation:
60 -------------
61 ./configure && make install
63 Typing 'pwmd' will start the server and wait for connections to
64 ~/.pwmd/socket. Be sure gpg-agent is running (see manual) when --no-agent is
65 not specfied on the pwmd command line. Passing
66 --allow-preset-passphrase to gpg-agent is recommended and
67 --allow-loopback-pinentry is required if using a keyfile.
70 Connecting:
71 -----------
72 Any program that can connect to a UNIX domain socket will work although using
73 pwmc, a client included with libpwmd, is recommended:
75     echo command | pwmc filename
76 or interactively
77     pwmc filename
79     socat UNIX-CONNECT:$HOME/.pwmd/socket -
81 Please read the pwmd.info manual for protocol commands, syntax and
82 configuration details.
85 GIT Repository
86 --------------
87 There is a public GIT repository available at repo.or.cz. Anonymous checkouts
88 can be done by:
90     git clone git://repo.or.cz/pwmd.git
92 The gitweb interface can be viewed at http://repo.or.cz/w/pwmd.git.
95 Please feel free to send me any patches, bug reports or feature requests.
97 Ben Kibbey <bjk@luxsci.net>
98 XMPP: bjk@jabber.org
99 http://pwmd.sourceforge.net/