Add more tests.
[pwmd.git] / README
blob878c3cdab54e99d69f413c7993ba61dea58cece6
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.
4 Some of the features include:
6     * Multi-threaded. More than one client may access the data at the same
7       time.
8     * Uses the GnuPG Agent for key caching and smartcard support.
9     * Local Unix Domain Socket connections which can safely be accessed
10       remotely over an SSH channel when using libpwmd(3).
11     * Configuration file which supports file specific settings including:
12       cache expiration and encryption key or key file and more.
13     * Logging to file and/or syslog.
14     * Secure memory usage. PWMD will zero out memory before freeing it and
15       also has the option to lock the entire process in RAM to avoid swapping
16       the data to virtual memory.
18 I needed this because I use a few applications that require the same
19 credentials but hate having to update all those configuration files to reflect
20 any changes. This way, there is a central location for the needed data.
22 Requirements:
23 -------------
24     C99 compiler - http://www.gnu.org/software/gcc
25                    Has been tested to work. Others should work fine, too.
27     libassuan    - ftp://ftp.gnupg.org/gcrypt/libassuan
28                    Protocol. Version 2.0.2 or later is required.
30     libgpg-error - http://www.gnupg.org
31                    Error handling.
33     gpg-agent    - http://www.gnupg.org
34                    Keypair generation, decryption and caching. Version 2.1.0
35                    or later is required.
37     glib2        - http://www.gtk.org
38                    Portability library among other things. Version 2.16.0 or
39                    later is required.
41     libxml2      - http://xmlsoft.org
42                    For XML parsing and data manipulation.
44     libgcrypt    - http://www.gnupg.org
45                    Encryption and hashing. Version 1.5.0 or later is required.
47     libz         - http://www.zlib.net
48                    For data file conversion. Version 1.2.2.1 or later is
49                    required.
51     libgnutls    - http://www.gnu.org/software/gnutls/
52                    For encrypted connections over a TCP network.
54     libacl       - ftp://acl.bestbits.at
55                    To retain an ACL for a data file. Optional.
58 Installation:
59 -------------
60 ./configure && make install
62 If the build succeeded run 'pwmd'. This will start the server and wait for
63 connections to ~/.pwmd/socket. Be sure gpg-agent is running. Passing
64 --allow-preset-passphrase to gpg-agent is recommended and
65 --allow-loopback-pinentry is required if using a keyfile.
68 Connecting:
69 -----------
70 Any program that can connect to a UNIX domain socket will work although using
71 pwmc, a client included with libpwmd is recommended:
73     echo command | pwmc filename
74     socat UNIX-CONNECT:$HOME/.pwmd/socket -
76 Libpwmd is a library making it easy for applications to use pwmd. There is
77 also a command line pwmd client "pwmc" included. You can find it at the pwmd
78 homepage.  There are also some patches already written (some could use
79 improvement) for a few apps too.
81 Read the pwmd.info documentation for protocol commands and syntax. 
84 GIT Repository
85 --------------
86 There is a public GIT repository available at repo.or.cz. Anonymous checkouts
87 can be done by:
89     git clone git://repo.or.cz/pwmd.git
91 The gitweb interface can be viewed at http://repo.or.cz/w/pwmd.git.
94 Please feel free to send me any patches, bug reports or feature requests.
96 Ben Kibbey <bjk@luxsci.net>
97 XMPP: bjk@jabber.org
98 http://pwmd.sourceforge.net/