Version 3.0.17.
[pwmd.git] / NEWS
blobfde4d8c0fdbf12d89e96378b264475ee16ea1707
1 PWMD v3.0.17
2 ------------
3 Added advisory locking for data files implemented via flock(2).
5 Re-added data file ACL support. More useful now with advisory locking.
7 Release a data file mutex before data transfer to let other clients do work
8 unless explicitly locked.
10 A few minor bug fixes. See ChangeLog for details.
13 PWMD v3.0.16
14 ------------
15 Allow comments in configuration list files. Comments begin with a semicolon
16 ';' character.
18 Configuration list parameter values may now contain spaces.
20 Fixed cached key corruption for non-gpg-agent data files that would prevent
21 opening the data file if the passphrase was previously cached during a SAVE.
22 Note: pwmd will use gpgme for all crypto operations in the next major version
23 bump and data files will be in OpenPGP format.
25 Added option "SAVE --ask" to require the data file passphrase before saving.
26 Behaves like --reset but doesn't clear the cache entry which may have caused a
27 DoS for other clients if there was a failure.
29 PASSWD now kills the scdaemon if enabled in the configuration ("kill_scd").
31 Fixed the "s2k_count" configuration parameter.
33 More strict protocol command option parsing.
35 Removed "OPTION log_level" since it should not be configurable by a client.
37 The KILL command now works on systems without pthread_cancel().
39 Now uses poll(2) rather than select(2) since poll() allows for more file
40 descriptors.
43 PWMD v3.0.15
44 ------------
45 This verions contains two important security fixes. After installing please
46 change your passphrase for all non-gpg-agent data files with the PASSWD
47 command (or ".passwd" if using pwmc). Please note that after the new data file
48 is written it will be incompatible with previous versions of pwmd.
50 Fixed initializing the passphrase salt with a nonce. This was a mistake
51 introduced in pwmd 3.0.
53 The --cipher-iterations command line and SAVE options are now an alias for
54 --s2k-count. This is do to how the encryption scheme has changed. The count is
55 now the number of times to hash the passphrase before encryption of the XML
56 document. In previous versions the count was  using a small static
57 compile-time count then encrypting the XML with the iteration count. The
58 default S2K iteration count is now 5000000. This change removes the need for
59 the "cipher_progress" configuration parameter and has been removed from the
60 documentation but is still valid for older data files.
62 Fixed potential cache corruption of the data file key.
65 PWMD v3.0.14
66 ------------
67 Require GnuTLS >= 3.0.0 when --enable-gnutls is passed to configure.
69 Explicitly set pthread compiler and linker flags for Android.
71 Build fix for systems without getpwnam_r().
73 The "invoking_user" configuration parameter now accepts an ACL list as an
74 argument. This removes the "invoking_tls" parameter since a TLS fingerprint
75 hash can be specified in the ACL.
77 Added configuration parameter "invoking_file".
79 Attribute names must now conform to the XML 1.0 specification. This is to
80 prevent parsing errors during the next OPEN. Element names (attribute values)
81 remain the same.
83 The ATTR LIST command can now show attributes for an element path it otherwise
84 would not have permission to access provided there is permission for its
85 parent.
87 Fixed the LIST command showing an arbitrary element path after element access
88 error.
90 Added a username field to the "GETINFO --verbose CLIENTS" command.
92 LIST now appends a target flag to an element with an error.
94 LIST command bug fixes.
96 Can now set a "target" attribute value to a restricted but visible element
97 path.
99 Added configuration parameter "strict_kill" to let a client KILL another
100 client when the client to kill is of the same uid or TLS fingerprint. Set to
101 "true" to keep the old behavior.
104 PWMD v3.0.13
105 ------------
106 Fixed configure.ac to use any required pthread CFLAGS or LIBS.
108 Thread cancellation fixes.
110 Client names specified with "OPTION name=value" may no longer contain
111 whitespace.
113 Added "GETINFO --verbose CLIENTS" to show connected clients and their state.
115 Added the "STATE" status message which is sent to connected clients during a
116 client state change and has the same line format as the "GETINFO --verbose
117 CLIENTS" command. This also adds a new configuration parameter "send_state" to
118 disable sending the client state, send client states to only other clients who
119 are invoking_user's or all connected clients. The default is invoking users.
121 Added configuration parameter "lock_timeout" that behaves as the default for
122 "OPTION lock-timeout". The default is 5 seconds.
124 Added the "KILL" command to terminate another client when the current one is
125 the "invoking_user".
127 Now sends a keepalive status message while waiting for a data file lock to be
128 aquired.
130 Added command line option --kill to terminate a running pwmd instance.
132 The --use-agent command line option can now also disable gpg-agent use when
133 "use_agent" is enabled in a configuration file.
135 A few bug fixes discovered by Coverity.
137 Added configuration parameter "tls_dh_level".
139 Changed the default "tls_cipher_suite" to
140 SECURE256:SECURE192:SECURE128:-VERS-SSL3.0.
143 PWMD v3.0.12
144 ------------
145 When opening a new file then opening another, the first file would be cached
146 when not saved. So remove the cache entry for non-saved file to prevent a
147 possible DoS.
149 Fixed the verbose flag of LIST to not append a "T" flag when no target
150 existed for a root element.
152 Updated Debian packaging info so 'make deb' should now reflect the current
153 version.
156 PWMD v3.0.11
157 ------------
158 Update to work with newest gpg-agent. This adds configuration parameter
159 "gpg_agent_socket" to replace "agent_env_file".
161 Fix doc/magic and the version string.
164 PWMD v3.0.10
165 ------------
166 Fixed SAVE --keygrip and --sign-keygrip when not a new file.
168 Fixed SAVE using the previously opened files signing key when the current file
169 is an new one.
171 Fixed TLS socket hanging during handshake failure.
173 Fixed TLS wait interval during EAGAIN.
175 Added GETINFO USER to return the client username/hash.
177 Fixed MOVE doing an unneeded permission check.
179 Fixed CACHETIMEOUT to apply the new timeout immediately and not wait for the
180 existing timer to expire.
182 Bugfixes. See ChangeLog for details.
186 PWMD v3.0.9
187 -----------
188 Fix SAVE --inquire-keyparam for new files.
190 Fix TLS fingerprint hash case comparison.
192 Check permissions before modifying a "target" attribute.
194 Access is denied for an element that does not contain an "_acl" attribute
195 unless the client is the invoking_user.
198 PWMD v3.0.8
199 -----------
200 Support for ELG keypairs.
202 The "allowed" configuration parameter supports TLS fingerprint hashes by
203 prefixing the hash with a '#' character. This removes the "tls_access"
204 configuration parameter.
206 Added configuration parameter "allowed_file" which should contain one
207 username, group name or hash per line and has the same syntax as the "allowed"
208 parameter.
210 TLS fingerprint hashes are now in SHA256 format and not SHA1 and when
211 specified in a configuration parameter, or "allowed_file", should be
212 prefixed with a '#'.
214 Added per-element access control lists (ACL). Works like the "allowed"
215 configuration parameter but the ACL is stored in the element attribute "_acl".
216 This adds a LIST --verbose flag 'P' to indicate that the current client is not
217 allowed access to the element. This also adds the "invoking_user" and
218 "invoking_tls" configuration parameters. See the documentation for details. 
220 Removed libacl support for data files. It isn't very useful.
222 Fixed a recursion loop in the LIST command. See move test #8 and #9.
224 Disable attaching to the pwmd process. This is Linux specific and has the
225 effect of hiding the pwmd process from 'ps' output.
227 A few other bug fixes. See ChangeLog for details.
230 PWMD v3.0.7
231 -----------
232 More lenient element and attribute names. This reverts the behavior introduced
233 in version 3.0.5. This allows for things like '@' or digits in an element or
234 attribute name making pwmd more useful. I don't remember why I made it so
235 strict in that version so I'll revert it for now until I do remember.
238 PWMD v3.0.6
239 -----------
240 Write a PID file upon startup to detect a stale socket when running another
241 instance.
243 Bind to the local socket before doing cache pushing.
245 Added command line option --force as an alias to --ignore.
247 Fixed a few cppcheck(1) warnings.
249 Fixed a bug that ignored the return value from launch_pinentry().
251 Added configuration parameter "log_keepopen" for use when logging to a file.
254 PWMD v3.0.5
255 -----------
256 More strict element and attribute names. Conform to the XML naming spec.
258 Log any non-fatal XML error. These may occur when loading or parsing
259 an XML file.
261 Fixed a memory leak.
263 Set XML standalone mode; and UTF-8 encoding explicitly (the default).
266 PWMD v3.0.4
267 -----------
268 A few "target" attribute fixes.
270 Updated Debian packaging stuff. Try 'make deb'.
273 PWMD v3.0.3
274 -----------
275 Fixed the PASSWD command requiring a passphrase for a non-PKI data file
276 without a passphrase.
278 Fixed a few memory leaks.
280 The 'OPTION disable-pinentry' now resets the gpg-agent '--pinentry-mode'
281 when needed.
283 Fixed new non-PKI data file cache entry getting cleared during SAVE.
285 The CLEARCACHE and CACHETIMEOUT commands now make use of the
286 "tls_access" configuration parameter in a data file section like the
287 OPEN command does. Also added a "-" flag to the fingerprint which
288 behaves like the "!" flag.
291 PWMD v3.0.2
292 -----------
293 The "allowed" configuration parameter now works in a data file section
294 and is a list of local user or group names allowed to open the data
295 file. The OPEN, CLEARCACHE and CACHETIMEOUT commands make use of
296 this. This also adds a deny flag '-' to a user or group name.
298 Fixed the cache timer to expire deferred cache entries. No longer need
299 to wait for the next OPEN or SAVE command.
301 Make use of the --no-passphrase option for non-PKI data files. This
302 adds the --no-passphrase option to the PASSWD command.
304 Show a backtrace on SIGABRT.
307 PWMD v3.0.1
308 -----------
309 Fix crash when checking the cache status of a new file.
311 Set the default cache_timeout configuration parameter to 600.
313 Set the default keepalive_interval to 60.
315 Fix SAVE not caching new files.
318 PWMD v3.0.0
319 -----------
320 This version contains quite a few changes and enhancements. Most
321 commands and syntax have changed in this release so please read the
322 example configuration file and the html or texinfo documentation in
323 the doc/ directory.
325 You will need to convert your existing pwmd v2.x data file to the new
326 data file format by doing the following:
328         $ pwmd --convert datafile -o newfile
330 then place "newfile" in ~/.pwmd/data. If you built with gpg-agent
331 support by passing --enable-agent to configure, then append
332 --use-agent to the above command line to use the gpg-agent to generate
333 a public and private keypair. No keypair is generated by default; the
334 data file is symmetrically encrypted.
336 Pwmd now supports the use of the gpg-agent for passphrase caching and
337 key management. This means smartcards are also supported. A "stub" of
338 the secret key is stored in the above mentioned key directory, but the
339 secret portion of the key is stored on the smartcard. To convert your
340 existing data while encrypting to an existing public key, pass the
341 --keygrip option with --convert or --import, along with
342 --use-agent. You may also need to pass the --sign-keygrip, too. See
343 the pwmd manual for details.
345 The XML document is now cached in pwmd when the passphrase is also
346 cached. This is needed to prevent requiring a smartcard to be inserted
347 for each OPEN command although it can still be required by setting the
348 CACHETIMEOUT of a data file to 0. Pwmd will operate on a copy of the
349 cached document and update the cached one after a SAVE. It is also
350 much faster than having to decrypt the data file during each OPEN.
351 The cached document is encrypted to prevent memory grepping attacks.
353 Ported to POSIX threads (pthreads).
355 Renamed error codes:
356     PWMD_LIBXML_ERROR -> GPG_ERR_BAD_DATA
357     PWMD_NO_FILE -> GPG_ERR_INV_STATE
358     PWMD_FILE_MODIFIED -> GPG_ERR_CHECKSUM
360 Most commands now have an --inquire option to retrieve remaining
361 non-option arguments via a server inquire. This avoids the libassuan
362 line length limit for longer element paths.
364 Added the PASSWD command to change the passphrase of a secret key or a
365 symmetrically encrypted key (SAVE --no-agent).
367 The IMPORT command can now import siblings.
369 Added the AGENT command to send a command directly to gpg-agent.
371 Added the GETINFO command to retrieve server details. This removes the
372 VERSION and GETPID commands.
374 Removed the CONFIG and KEEPALIVE status messages.
376 Added the NEWFILE status message to determine when the file OPEN'ed is
377 a new one.
379 Added ISCACHED --lock to lock the file mutex. This doesn't require an
380 OPEN'd file. It was added to prevent a race condition with another
381 client accessing the same file when one client needed to determine the
382 cache status before the OPEN.
384 Texinfo documentation and the manual page is generated from the
385 texinfo source.
387 Commands that normally returned GPG_ERR_NO_VALUE now return
388 GPG_ERR_NO_DATA.
390 The --iterations command line, configuration and SAVE options have
391 been renamed to "s2k-count". The PASSWD command can be used to change
392 this value for an existing secret key.
394 The CLEARCACHE command returns an error when the file mutex associated
395 with the data file is locked by another client. Although an error is
396 returned the cached file is flagged for cache removal which will occur
397 when the data file mutex is released.
399 Added LIST --all to retrieve the entire element tree. Flags are
400 appended to each element path when this option is used. See the
401 documentation for details.
403 The checksum is now a CRC32 checksum rather than a stat() of the ctime
404 of the data file.
406 Can now listen for remote connections via TLS (IPv4 and IPv6) as well
407 as the local UNIX domain socket.
409 Added tests. Run them with 'make tests' in the tests/ directory.
411 More portable: *BSD, SunOS/Solaris/OpenSolaris, Android and Linux and
412 32 and 64 bit versions of these as well as little and big endian.
414 Removed the libglib-2.0 dependency.