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
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.
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 --use-agent is specified.
39 pinentry - http://www.gnupg.org
40 Required for passphrase retrieval from either gpg-agent or
43 libxml2 - http://xmlsoft.org
44 Required for XML parsing and data manipulation.
46 libgcrypt - http://www.gnupg.org
47 Encryption and hashing. Version 1.5.0 or later is required.
49 libz - http://www.zlib.net
50 For data file conversion. Version 1.2.2.1 or later is
53 libgnutls - http://www.gnu.org/software/gnutls/
54 For encrypted connections over a TCP network. Optional.
56 libacl - ftp://acl.bestbits.at
57 To retain an ACL for a data file. Optional.
62 ./configure && make install
64 Typing 'pwmd' will start the server and wait for connections to
65 ~/.pwmd/socket. Be sure gpg-agent is running (see manual) when
66 --use-agent is specfied on the pwmd command line (--enable-agent must
67 be passed to configure at compile-time to enable gpg-agent
68 support). Passing --allow-preset-passphrase to gpg-agent is
69 recommended and gpg-agent option --allow-loopback-pinentry is required
75 Any program that can connect to a UNIX domain socket will work although using
76 pwmc, a client included with libpwmd, is recommended:
78 echo command | pwmc filename
82 socat UNIX-CONNECT:$HOME/.pwmd/socket -
84 A more user-friendly client QPwmc is also available. It has a Qt GUI and is
85 much easier to use. See http://qpwmc.sourceforge.net/ for details.
87 Please read the pwmd.info manual for protocol commands, syntax and
88 configuration details.
93 There is a public GIT repository available at repo.or.cz. Anonymous checkouts
96 git clone git://repo.or.cz/pwmd.git
98 The gitweb interface can be viewed at http://repo.or.cz/w/pwmd.git.
101 Please feel free to send me any patches, bug reports or feature requests.
103 Ben Kibbey <bjk@luxsci.net>
105 http://pwmd.sourceforge.net/