PWMD v3.0.7
-----------
More lenient element and attribute names. This reverts the behavior introduced
in version 3.0.5. This allows for things like '@' or digits in an element or
attribute name making pwmd more useful. I don't remember why I made it so
strict in that version so I'll revert it for now until I do remember.


PWMD v3.0.6
-----------
Write a PID file upon startup to detect a stale socket when running another
instance.

Bind to the local socket before doing cache pushing.

Added command line option --force as an alias to --ignore.

Fixed a few cppcheck(1) warnings.

Fixed a bug that ignored the return value from launch_pinentry().

Added configuration parameter "log_keepopen" for use when logging to a file.


PWMD v3.0.5
-----------
More strict element and attribute names. Conform to the XML naming spec.

Log any non-fatal XML error. These may occur when loading or parsing
an XML file.

Fixed a memory leak.

Set XML standalone mode; and UTF-8 encoding explicitly (the default).


PWMD v3.0.4
-----------
A few "target" attribute fixes.

Updated Debian packaging stuff. Try 'make deb'.


PWMD v3.0.3
-----------
Fixed the PASSWD command requiring a passphrase for a non-PKI data file
without a passphrase.

Fixed a few memory leaks.

The 'OPTION disable-pinentry' now resets the gpg-agent '--pinentry-mode'
when needed.

Fixed new non-PKI data file cache entry getting cleared during SAVE.

The CLEARCACHE and CACHETIMEOUT commands now make use of the
"tls_access" configuration parameter in a data file section like the
OPEN command does. Also added a "-" flag to the fingerprint which
behaves like the "!" flag.


PWMD v3.0.2
-----------
The "allowed" configuration parameter now works in a data file section
and is a list of local user or group names allowed to open the data
file. The OPEN, CLEARCACHE and CACHETIMEOUT commands make use of
this. This also adds a deny flag '-' to a user or group name.

Fixed the cache timer to expire deferred cache entries. No longer need
to wait for the next OPEN or SAVE command.

Make use of the --no-passphrase option for non-PKI data files. This
adds the --no-passphrase option to the PASSWD command.

Show a backtrace on SIGABRT.


PWMD v3.0.1
-----------
Fix crash when checking the cache status of a new file.

Set the default cache_timeout configuration parameter to 600.

Set the default keepalive_interval to 60.

Fix SAVE not caching new files.


PWMD v3.0.0
-----------
This version contains quite a few changes and enhancements. Most
commands and syntax have changed in this release so please read the
example configuration file and the html or texinfo documentation in
the doc/ directory.

You will need to convert your existing pwmd v2.x data file to the new
data file format by doing the following:

	$ pwmd --convert datafile -o newfile

then place "newfile" in ~/.pwmd/data. If you built with gpg-agent
support by passing --enable-agent to configure, then append
--use-agent to the above command line to use the gpg-agent to generate
a public and private keypair. No keypair is generated by default; the
data file is symmetrically encrypted.

Pwmd now supports the use of the gpg-agent for passphrase caching and
key management. This means smartcards are also supported. A "stub" of
the secret key is stored in the above mentioned key directory, but the
secret portion of the key is stored on the smartcard. To convert your
existing data while encrypting to an existing public key, pass the
--keygrip option with --convert or --import, along with
--use-agent. You may also need to pass the --sign-keygrip, too. See
the pwmd manual for details.

The XML document is now cached in pwmd when the passphrase is also
cached. This is needed to prevent requiring a smartcard to be inserted
for each OPEN command although it can still be required by setting the
CACHETIMEOUT of a data file to 0. Pwmd will operate on a copy of the
cached document and update the cached one after a SAVE. It is also
much faster than having to decrypt the data file during each OPEN.
The cached document is encrypted to prevent memory grepping attacks.

Ported to POSIX threads (pthreads).

Renamed error codes:
    PWMD_LIBXML_ERROR -> GPG_ERR_BAD_DATA
    PWMD_NO_FILE -> GPG_ERR_INV_STATE
    PWMD_FILE_MODIFIED -> GPG_ERR_CHECKSUM

Most commands now have an --inquire option to retrieve remaining
non-option arguments via a server inquire. This avoids the libassuan
line length limit for longer element paths.

Added the PASSWD command to change the passphrase of a secret key or a
symmetrically encrypted key (SAVE --no-agent).

The IMPORT command can now import siblings.

Added the AGENT command to send a command directly to gpg-agent.

Added the GETINFO command to retrieve server details. This removes the
VERSION and GETPID commands.

Removed the CONFIG and KEEPALIVE status messages.

Added the NEWFILE status message to determine when the file OPEN'ed is
a new one.

Added ISCACHED --lock to lock the file mutex. This doesn't require an
OPEN'd file. It was added to prevent a race condition with another
client accessing the same file when one client needed to determine the
cache status before the OPEN.

Texinfo documentation and the manual page is generated from the
texinfo source.

Commands that normally returned GPG_ERR_NO_VALUE now return
GPG_ERR_NO_DATA.

The --iterations command line, configuration and SAVE options have
been renamed to "s2k-count". The PASSWD command can be used to change
this value for an existing secret key.

The CLEARCACHE command returns an error when the file mutex associated
with the data file is locked by another client. Although an error is
returned the cached file is flagged for cache removal which will occur
when the data file mutex is released.

Added LIST --all to retrieve the entire element tree. Flags are
appended to each element path when this option is used. See the
documentation for details.

The checksum is now a CRC32 checksum rather than a stat() of the ctime
of the data file.

Can now listen for remote connections via TLS (IPv4 and IPv6) as well
as the local UNIX domain socket.

Added tests. Run them with 'make tests' in the tests/ directory.

More portable: *BSD, SunOS/Solaris/OpenSolaris, Android and Linux and
32 and 64 bit versions of these as well as little and big endian.

Removed the libglib-2.0 dependency.
