3 When an ACL for an element is the empty string, treat the element as having a
4 non-existent _acl attribute. Now also tests for valid characters in a UNIX
5 username in an _acl value.
7 Now appends the current git commit hash to the version string to aid in
10 Fixed to allow for larger PID values to be able to properly terminate or start
11 another daemon process.
13 Reworked the tests to use the TAP harness. Run 'make check' rather then 'make
14 tests' to run the tests. See tests/README for details.
16 Disabled TLS1.1 and CBC cipher suites by default.
18 Fixed creating a Debian package with 'make deb'.
20 An "allowed" configuration parameter value may now contain a whitelist of
21 local client command names that are allowed to connect or open a data file.
22 This is Linux specific for now.
24 Added the "--sexp" option to the LIST command to show elements along with
25 their attributes in an s-expression format.
27 Releases are now signed using a new signing key. The fingerprint of the new
28 key is 6078FEB430EFA427499E6E78555B69666326961C and is cross-signed with my
29 new primary key which is cross-signed with my old primary key. I don't believe
30 the old keys to be compromised; it is only to rotate them and update to newer
36 Disable gpg-agent caching of the key for symmetrically encrypted data files.
37 The gpg-agent options to do this were previously mentioned in the pwmd
38 documentation, but we will pass the option to gpgme explicitly to prevent
46 Fixed creating a Debian package from a tarball.
48 Fixed a crash during recursion loop detection.
50 Fixed a crash in the LIST command.
52 Fixed the GENKEY command to work properly when passed --expire due to a typo.
54 Fixed the BULK command to sometimes not work when not used as an --inquire.
56 Fixed the cache potentially returning a stale document.
58 Fixed the OPEN command to update the checksum for a reopened file.
60 Fixed a bug in the STORE command refusing the create an element path even with
66 Add the BULK protocol command to allow sending multiple commands using an
67 (semi) s-expression syntax. This can speed up remote connections quite a bit
68 since less socket IO is needed. This also adds a BULK status message to inform
69 the client of the current bulk command being run which may be needed when a
70 command inquires data from the client.
72 No longer flood a TLS client with assuan protocol comment lines when spinning
75 The _mtime and _ctime element attributes can no longer be modified or removed
78 All known attributes to pwmd are now prefixed with an _:
81 "expire_increment" -> "_age"
83 Added a "_version" attribute to the document root element to hold the current
89 The XFER status message is now sent only once and before the transfer starts
90 leaving it to the client to calculate the amount of data transferred.
92 Added "LS --verbose" to include the filesystem atime, mtime and ctime
93 timestamps of data files.
95 Build, portability and other bug fixes. See ChangeLog for details.
100 The project has moved to GitLab (https://gitlab.com/bjk/pwmd/wikis). Downloads
101 are still available at SourceForge but the issue tracker, git repository and
102 wiki are now hosted at GitLab.
104 Re-added the "tls_use_crl" configuration parameter although it is disabled by
107 DELETE no longer does any confirmation before deleting public and private
110 Portability and undefined behavior bugfixes. See ChangeLog for details.
115 The LS command now sorts filenames.
117 Fixed a long standing memory leak related to a client's thread name.
119 Key expiration is now ignored when OPEN'ing a data file. The next SAVE will
120 fail if using an expired key. See docs for details about what to do.
122 The CACHETIMEOUT command now requires an opened data file and no longer
123 considers an "invoking_user". The syntax has also changed to require only a
126 Added GENKEY --no-expire to allow creating keys that do not expire.
128 GENKEY now requires an opened data file.
130 Bug fixes. See ChangeLog for details.
135 New GENKEY command to generate a new keypair or subkey of an existing key
136 without saving the data file to disk.
138 Removed key generation altogether from the SAVE command. You must generate a
139 new key with the GENKEY command or use an existing key and pass the
140 fingerprint to the --keyid option. The --sign-keyid option is also required
143 The SAVE command now allows only a single signer. Although, multiple
144 recipients may be specified.
146 LISTKEYS no longer requires an open data file.
148 Added configuration parameter "strict_open" to prevent a (non-invoking) client
149 from creating a new data file.
151 New command DELETEKEY to remove the private key associated with the currently
152 opened data file from the keyring.
154 Added copy-on-write for commands that modify the document.
156 The DUMP command no longer does a checksum test.
161 Ported to libgpgme. Data files are now OpenPGP encrypted and signed. A signer
162 is required when using asymmetric encryption and optional if using symmetric
165 New global configuration parameter "gpg_homedir". The default is
166 ~/.pwmd/.gnupg which will spawn a gpg-agent process with this as it's homedir.
167 The secret and public keyrings live here. To use your regular keyring set this
168 to ~/.gnupg. This removes the "gpg_agent_socket" configuration parameter.
170 Added the pwmd-dump(1) utility to dump the contents of a v3.0.x data file. The
171 output file can then be imported by using 'pwmd --import'. pwmd-dump can also
172 update a v3.1 raw XML file to the latest element or attribute changes by
173 passing the --xml option. See the pwmd-dump(1) manual page for details.
175 Removed the notion of "literal" elements. Targets are always followed for
176 elements that have a 'target' attribute. This changes how the ATTR command
177 works. See the pwmd texinfo or html docs for details. Also note the inherited
178 and reserved attributes for elements with a target.
180 The LIST command now always implies the deprecated '--verbose' and
181 '--with-target' switches and adds the '--recurse' switch to replace the also
182 deprecated '--all' switch.
184 Rewrote the LIST command to better handle recursion loops. Still needs some
185 work, though. See KnownBugs.
187 New special attributes 'expire' and 'expire_increment'. See docs for details.
188 This also adds a new STATUS_EXPIRE status message.
190 New command LISTKEYS to show available (secret) keyid's.
192 New command KEYINFO to show encryption and signing keyid's for an opened data
193 file and --learn to create private key stubs for keys stored on a smartcard.
195 New global configuration parameters "encrypt_to" and "always_trust".
197 Added connected timestamp field to 'GETINFO --verbose CLIENTS'.
199 New status messages PASSPHRASE_HINT and PASSPHRASE_INFO when pinentry is
202 New global configuration option "backlog" to set the TCP backlog for TLS
203 connections. The default is 128 (Linux default, too).
205 All clients now are cancelled upon SIGINT and SIGTERM without waiting for them
206 to disconnect themselves.
208 Added OPTION CLIENT-STATE to allow a client to opt-in to receive client STATE
209 status messages. By default, no client state is sent.
211 CACHETIMEOUT now allows access to an invoking user.
213 TLS rehandshake support upon SIGHUP.
215 New configuration option "tls_dh_params_file". This removes "tls_dh_level".
217 Removed configuration option "tcp_wait".
219 OPEN: Always allow an invoking user.
221 CLEARCACHE: Reworked to test the client ACL for each data file.