Password Manager Daemon is a daemon that serves data to application via a socket. The data is stored in an encrypted XML file and the client must provide a key when opening and saving a file. I originally wrote this because I hate having to update account credentials for multiple applications that use the same data but it can be used for storing potentially anything. It uses a shared memory cache for storing a key so keys aren’t required for each open or save. Also features a configuration file to set the number of encryption iterations, logging and more.
Read the pwmd manual for available commands and syntax. There is also a tutorial to help you get started.
- Download
- GIT Repository
- Freecode Project Page
- Mailing lists: pwmd-users (archive), pwmd-devel (archive)
All problems solved , except for the allowed users, whatever I do , as soon as I uncomment
the #allowed config option and add some users behind it, pwmd refuses any connection
including from root.
Be sure there are no spaces between the comma separated list of users/groups.
As far as a tutorial, there is one included in the libpwmd package. Version 2.x of pwmd and version 6.x of libpwmd arent’t really worked on anymore, though. You may want to try the development versions by checking out the git repository for each since each include quite a few improvements from the previous stable version.
The development version of pwmd depends on a development version of gpg-agent (gnupg) and so cannot be released as stable until gnupg v2.1 is released. But, it works and is better than pwmd 2.x if you don’t mind the gpg-agent dependency. The qpwmc client depends on libpwmd7 (also in development and requires the unreleased pwmd 3.0) and is much easier to use than the included pwmc client from the libpwmd package.
Upgrading glib to 2.16 helped , but now I get these errors :
[/root]# echo -ne ’isp\tsmtp\thostname\tsomehost.com’ | pwmc –socket /var/run/.pwmd/socket –inquire STORE -S filename
Connected.
Opening data file “filename” …
XFER 36/0 0%
Saving changes …
COMPRESS 228/228 100%
ENCRYPT 1/1 100%
Connection closed.
[/root]# echo -ne ’get isp\tsmtp\thostname’ | pwmc –socket /var/run/.pwmd/socket filename
Connected.
Opening data file “filename” …
DECRYPT 1/1 100%
DECOMPRESS 228/228 100%
CACHE 1
ERR 275 Unknown IPC command
Connection closed.
So basically , I can now store something but retrieving gives an error
Interactive mode does not work at all, either I don’t understand the manual
or the utility does not function
Is there a manual with some more elaborate instructions on how to use this
utility ?
Thanks
Wim Bakker
Hai It does not compile , there seems to be an error :
—————————————————————————————————–
make[1]: Entering directory `/root/pwmd-2.20/src’
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I../assuan/src -DLOCALEDIR=\”/usr/share/locale\” -I/usr/include/libxml2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -g -O2 -MT pwmd-pwmd.o -MD -MP -MF .deps/pwmd-pwmd.Tpo -c -o pwmd-pwmd.o `test -f ‘pwmd.c’ || echo ‘./’`pwmd.c
In file included from pwmd.c:66:
xml.h:65: error: expected declaration specifiers or ‘…’ before ‘goffset’
In file included from pwmd.c:67:
common.h:132: error: expected specifier-qualifier-list before ‘goffset’
common.h:185: error: expected specifier-qualifier-list before ‘goffset’
In file included from pwmd.c:73:
commands.h:27: error: expected declaration specifiers or ‘…’ before ‘goffset’
pwmd.c: In function ‘cleanup_crypto’:
pwmd.c:500: error: ‘struct crypto_s’ has no member named ‘outbuf’
pwmd.c:501: error: ‘struct crypto_s’ has no member named ‘outbuf’
pwmd.c:502: error: ‘struct crypto_s’ has no member named ‘outbuf’
pwmd.c:505: error: ‘struct crypto_s’ has no member named ‘fh’
pwmd.c:506: error: ‘struct crypto_s’ has no member named ‘fh’
pwmd.c:508: error: ‘struct crypto_s’ has no member named ‘gh’
pwmd.c:509: error: ‘struct crypto_s’ has no member named ‘gh’
pwmd.c:511: error: ‘struct crypto_s’ has no member named ‘gh’
pwmd.c: In function ‘export_common’:
pwmd.c:843: error: ‘struct crypto_s’ has no member named ‘insize’
pwmd.c: In function ‘xml_import’:
pwmd.c:989: error: ‘struct crypto_s’ has no member named ‘fh’
pwmd.c:991: error: ‘struct crypto_s’ has no member named ‘fh’
pwmd.c:996: error: ‘struct crypto_s’ has no member named ‘fh’
pwmd.c: In function ‘do_cache_push’:
pwmd.c:1051: error: ‘struct crypto_s’ has no member named ‘fh’
pwmd.c:1053: error: ‘struct crypto_s’ has no member named ‘fh’
pwmd.c:1069: error: ‘struct crypto_s’ has no member named ‘fh’
pwmd.c:1083: error: ‘struct crypto_s’ has no member named ‘fh’
pwmd.c:1084: error: ‘struct crypto_s’ has no member named ‘fh’
pwmd.c:1098: error: too many arguments to function ‘try_xml_decrypt’
pwmd.c: In function ‘init_client_crypto2’:
pwmd.c:1618: error: ‘struct crypto_s’ has no member named ‘fh’
pwmd.c:1620: error: ‘struct crypto_s’ has no member named ‘fh’
pwmd.c:1627: error: ‘struct crypto_s’ has no member named ‘fh’
pwmd.c:1630: error: ‘struct crypto_s’ has no member named ‘fh’
pwmd.c:1638: error: ‘struct crypto_s’ has no member named ‘keysize’
pwmd.c:1644: error: ‘struct crypto_s’ has no member named ‘blocksize’
pwmd.c:1649: error: ‘struct crypto_s’ has no member named ‘gh’
pwmd.c:1650: error: ‘struct crypto_s’ has no member named ‘gh’
pwmd.c:1652: error: ‘struct crypto_s’ has no member named ‘gh’
pwmd.c: In function ‘convert_file’:
pwmd.c:1688: error: ‘struct crypto_s’ has no member named ‘fh’
pwmd.c:1690: error: ‘struct crypto_s’ has no member named ‘fh’
pwmd.c:1699: error: ‘struct crypto_s’ has no member named ‘fh’
pwmd.c:1725: error: ‘struct crypto_s’ has no member named ‘fh’
pwmd.c:1725: error: ‘struct crypto_s’ has no member named ‘fh’
pwmd.c:1725: error: too many arguments to function ‘try_xml_decrypt’
pwmd.c:1730: error: ‘struct crypto_s’ has no member named ‘fh’
pwmd.c:1730: error: ‘struct crypto_s’ has no member named ‘fh’
pwmd.c:1730: error: too many arguments to function ‘convert_xml’
pwmd.c:1737: error: ‘struct crypto_s’ has no member named ‘fh’
pwmd.c:1739: error: ‘struct crypto_s’ has no member named ‘fh’
pwmd.c:1740: error: ‘struct crypto_s’ has no member named ‘fh’
pwmd.c:1740: error: ‘struct crypto_s’ has no member named ‘fh’
pwmd.c:1742: error: ‘struct crypto_s’ has no member named ‘fh’
pwmd.c:1743: error: ‘struct crypto_s’ has no member named ‘fh’
pwmd.c:1743: error: ‘struct crypto_s’ has no member named ‘fh’
make[1]: *** [pwmd-pwmd.o] Error 1
make[1]: Leaving directory `/root/pwmd-2.20/src’
make: *** [install-recursive] Error 1
Be sure your using libglib2 >= 2.14.0 since this version introduced the goffset data type.
I see that pwmd is xml based, can it manage foaf+ssl based credentials?
thx
Never heard of FOAF+SSL until you mentioned it. Seems like something that could be implemented though. The XML portion is only for the data file format. Remote access can be done by using a libpwmd client which can connect to an SSH server (still buggy).