Fix HELP output of texinfo tables.
[pwmd.git] / NEWS
blob93c76566a60272608aff5ed39dfe6345f476b6cc
1 PWMD v3.0.16
2 ------------
3 Allow comments in configuration list files. Comments begin with a semicolon
4 ';' character.
6 GnuTLS no longer supports application memory management functions so remove
7 references to those deprecated functions.
9 Fixed cached key corruption for non-gpg-agent data files. It would be better
10 to use gpg-agent version data files since who knows what other bugs are
11 lurking. The next major pwmd version (master branch) will use gpgme for
12 OpenPGP compliant data files and will not do any crypto operations on its own.
14 Added option SAVE --ask to require the data file passphrase before saving.
15 Behaves like --reset but doesn't clear the cache entry.
17 PASSWD now kills the scdaemon if enabled in the configuration ("kill_scd").
19 Fixed the "s2k_count" configuration parameter.
22 PWMD v3.0.15
23 ------------
24 This verions contains two important security fixes. After installing please
25 change your passphrase for all non-gpg-agent data files with the PASSWD
26 command (or ".passwd" if using pwmc). Please note that after the new data file
27 is written it will be incompatible with previous versions of pwmd.
29 Fixed initializing the passphrase salt with a nonce. This was a mistake
30 introduced in pwmd 3.0.
32 The --cipher-iterations command line and SAVE options are now an alias for
33 --s2k-count. This is do to how the encryption scheme has changed. The count is
34 now the number of times to hash the passphrase before encryption of the XML
35 document. In previous versions the count was  using a small static
36 compile-time count then encrypting the XML with the iteration count. The
37 default S2K iteration count is now 5000000. This change removes the need for
38 the "cipher_progress" configuration parameter and has been removed from the
39 documentation but is still valid for older data files.
41 Fixed potential cache corruption of the data file key.
44 PWMD v3.0.14
45 ------------
46 Require GnuTLS >= 3.0.0 when --enable-gnutls is passed to configure.
48 Explicitly set pthread compiler and linker flags for Android.
50 Build fix for systems without getpwnam_r().
52 The "invoking_user" configuration parameter now accepts an ACL list as an
53 argument. This removes the "invoking_tls" parameter since a TLS fingerprint
54 hash can be specified in the ACL.
56 Added configuration parameter "invoking_file".
58 Attribute names must now conform to the XML 1.0 specification. This is to
59 prevent parsing errors during the next OPEN. Element names (attribute values)
60 remain the same.
62 The ATTR LIST command can now show attributes for an element path it otherwise
63 would not have permission to access provided there is permission for its
64 parent.
66 Fixed the LIST command showing an arbitrary element path after element access
67 error.
69 Added a username field to the "GETINFO --verbose CLIENTS" command.
71 LIST now appends a target flag to an element with an error.
73 LIST command bug fixes.
75 Can now set a "target" attribute value to a restricted but visible element
76 path.
78 Added configuration parameter "strict_kill" to let a client KILL another
79 client when the client to kill is of the same uid or TLS fingerprint. Set to
80 "true" to keep the old behavior.
83 PWMD v3.0.13
84 ------------
85 Fixed configure.ac to use any required pthread CFLAGS or LIBS.
87 Thread cancellation fixes.
89 Client names specified with "OPTION name=value" may no longer contain
90 whitespace.
92 Added "GETINFO --verbose CLIENTS" to show connected clients and their state.
94 Added the "STATE" status message which is sent to connected clients during a
95 client state change and has the same line format as the "GETINFO --verbose
96 CLIENTS" command. This also adds a new configuration parameter "send_state" to
97 disable sending the client state, send client states to only other clients who
98 are invoking_user's or all connected clients. The default is invoking users.
100 Added configuration parameter "lock_timeout" that behaves as the default for
101 "OPTION lock-timeout". The default is 5 seconds.
103 Added the "KILL" command to terminate another client when the current one is
104 the "invoking_user".
106 Now sends a keepalive status message while waiting for a data file lock to be
107 aquired.
109 Added command line option --kill to terminate a running pwmd instance.
111 The --use-agent command line option can now also disable gpg-agent use when
112 "use_agent" is enabled in a configuration file.
114 A few bug fixes discovered by Coverity.
116 Added configuration parameter "tls_dh_level".
118 Changed the default "tls_cipher_suite" to
119 SECURE256:SECURE192:SECURE128:-VERS-SSL3.0.
122 PWMD v3.0.12
123 ------------
124 When opening a new file then opening another, the first file would be cached
125 when not saved. So remove the cache entry for non-saved file to prevent a
126 possible DoS.
128 Fixed the verbose flag of LIST to not append a "T" flag when no target
129 existed for a root element.
131 Updated Debian packaging info so 'make deb' should now reflect the current
132 version.
135 PWMD v3.0.11
136 ------------
137 Update to work with newest gpg-agent. This adds configuration parameter
138 "gpg_agent_socket" to replace "agent_env_file".
140 Fix doc/magic and the version string.
143 PWMD v3.0.10
144 ------------
145 Fixed SAVE --keygrip and --sign-keygrip when not a new file.
147 Fixed SAVE using the previously opened files signing key when the current file
148 is an new one.
150 Fixed TLS socket hanging during handshake failure.
152 Fixed TLS wait interval during EAGAIN.
154 Added GETINFO USER to return the client username/hash.
156 Fixed MOVE doing an unneeded permission check.
158 Fixed CACHETIMEOUT to apply the new timeout immediately and not wait for the
159 existing timer to expire.
161 Bugfixes. See ChangeLog for details.
165 PWMD v3.0.9
166 -----------
167 Fix SAVE --inquire-keyparam for new files.
169 Fix TLS fingerprint hash case comparison.
171 Check permissions before modifying a "target" attribute.
173 Access is denied for an element that does not contain an "_acl" attribute
174 unless the client is the invoking_user.
177 PWMD v3.0.8
178 -----------
179 Support for ELG keypairs.
181 The "allowed" configuration parameter supports TLS fingerprint hashes by
182 prefixing the hash with a '#' character. This removes the "tls_access"
183 configuration parameter.
185 Added configuration parameter "allowed_file" which should contain one
186 username, group name or hash per line and has the same syntax as the "allowed"
187 parameter.
189 TLS fingerprint hashes are now in SHA256 format and not SHA1 and when
190 specified in a configuration parameter, or "allowed_file", should be
191 prefixed with a '#'.
193 Added per-element access control lists (ACL). Works like the "allowed"
194 configuration parameter but the ACL is stored in the element attribute "_acl".
195 This adds a LIST --verbose flag 'P' to indicate that the current client is not
196 allowed access to the element. This also adds the "invoking_user" and
197 "invoking_tls" configuration parameters. See the documentation for details. 
199 Removed libacl support for data files. It isn't very useful.
201 Fixed a recursion loop in the LIST command. See move test #8 and #9.
203 Disable attaching to the pwmd process. This is Linux specific and has the
204 effect of hiding the pwmd process from 'ps' output.
206 A few other bug fixes. See ChangeLog for details.
209 PWMD v3.0.7
210 -----------
211 More lenient element and attribute names. This reverts the behavior introduced
212 in version 3.0.5. This allows for things like '@' or digits in an element or
213 attribute name making pwmd more useful. I don't remember why I made it so
214 strict in that version so I'll revert it for now until I do remember.
217 PWMD v3.0.6
218 -----------
219 Write a PID file upon startup to detect a stale socket when running another
220 instance.
222 Bind to the local socket before doing cache pushing.
224 Added command line option --force as an alias to --ignore.
226 Fixed a few cppcheck(1) warnings.
228 Fixed a bug that ignored the return value from launch_pinentry().
230 Added configuration parameter "log_keepopen" for use when logging to a file.
233 PWMD v3.0.5
234 -----------
235 More strict element and attribute names. Conform to the XML naming spec.
237 Log any non-fatal XML error. These may occur when loading or parsing
238 an XML file.
240 Fixed a memory leak.
242 Set XML standalone mode; and UTF-8 encoding explicitly (the default).
245 PWMD v3.0.4
246 -----------
247 A few "target" attribute fixes.
249 Updated Debian packaging stuff. Try 'make deb'.
252 PWMD v3.0.3
253 -----------
254 Fixed the PASSWD command requiring a passphrase for a non-PKI data file
255 without a passphrase.
257 Fixed a few memory leaks.
259 The 'OPTION disable-pinentry' now resets the gpg-agent '--pinentry-mode'
260 when needed.
262 Fixed new non-PKI data file cache entry getting cleared during SAVE.
264 The CLEARCACHE and CACHETIMEOUT commands now make use of the
265 "tls_access" configuration parameter in a data file section like the
266 OPEN command does. Also added a "-" flag to the fingerprint which
267 behaves like the "!" flag.
270 PWMD v3.0.2
271 -----------
272 The "allowed" configuration parameter now works in a data file section
273 and is a list of local user or group names allowed to open the data
274 file. The OPEN, CLEARCACHE and CACHETIMEOUT commands make use of
275 this. This also adds a deny flag '-' to a user or group name.
277 Fixed the cache timer to expire deferred cache entries. No longer need
278 to wait for the next OPEN or SAVE command.
280 Make use of the --no-passphrase option for non-PKI data files. This
281 adds the --no-passphrase option to the PASSWD command.
283 Show a backtrace on SIGABRT.
286 PWMD v3.0.1
287 -----------
288 Fix crash when checking the cache status of a new file.
290 Set the default cache_timeout configuration parameter to 600.
292 Set the default keepalive_interval to 60.
294 Fix SAVE not caching new files.
297 PWMD v3.0.0
298 -----------
299 This version contains quite a few changes and enhancements. Most
300 commands and syntax have changed in this release so please read the
301 example configuration file and the html or texinfo documentation in
302 the doc/ directory.
304 You will need to convert your existing pwmd v2.x data file to the new
305 data file format by doing the following:
307         $ pwmd --convert datafile -o newfile
309 then place "newfile" in ~/.pwmd/data. If you built with gpg-agent
310 support by passing --enable-agent to configure, then append
311 --use-agent to the above command line to use the gpg-agent to generate
312 a public and private keypair. No keypair is generated by default; the
313 data file is symmetrically encrypted.
315 Pwmd now supports the use of the gpg-agent for passphrase caching and
316 key management. This means smartcards are also supported. A "stub" of
317 the secret key is stored in the above mentioned key directory, but the
318 secret portion of the key is stored on the smartcard. To convert your
319 existing data while encrypting to an existing public key, pass the
320 --keygrip option with --convert or --import, along with
321 --use-agent. You may also need to pass the --sign-keygrip, too. See
322 the pwmd manual for details.
324 The XML document is now cached in pwmd when the passphrase is also
325 cached. This is needed to prevent requiring a smartcard to be inserted
326 for each OPEN command although it can still be required by setting the
327 CACHETIMEOUT of a data file to 0. Pwmd will operate on a copy of the
328 cached document and update the cached one after a SAVE. It is also
329 much faster than having to decrypt the data file during each OPEN.
330 The cached document is encrypted to prevent memory grepping attacks.
332 Ported to POSIX threads (pthreads).
334 Renamed error codes:
335     PWMD_LIBXML_ERROR -> GPG_ERR_BAD_DATA
336     PWMD_NO_FILE -> GPG_ERR_INV_STATE
337     PWMD_FILE_MODIFIED -> GPG_ERR_CHECKSUM
339 Most commands now have an --inquire option to retrieve remaining
340 non-option arguments via a server inquire. This avoids the libassuan
341 line length limit for longer element paths.
343 Added the PASSWD command to change the passphrase of a secret key or a
344 symmetrically encrypted key (SAVE --no-agent).
346 The IMPORT command can now import siblings.
348 Added the AGENT command to send a command directly to gpg-agent.
350 Added the GETINFO command to retrieve server details. This removes the
351 VERSION and GETPID commands.
353 Removed the CONFIG and KEEPALIVE status messages.
355 Added the NEWFILE status message to determine when the file OPEN'ed is
356 a new one.
358 Added ISCACHED --lock to lock the file mutex. This doesn't require an
359 OPEN'd file. It was added to prevent a race condition with another
360 client accessing the same file when one client needed to determine the
361 cache status before the OPEN.
363 Texinfo documentation and the manual page is generated from the
364 texinfo source.
366 Commands that normally returned GPG_ERR_NO_VALUE now return
367 GPG_ERR_NO_DATA.
369 The --iterations command line, configuration and SAVE options have
370 been renamed to "s2k-count". The PASSWD command can be used to change
371 this value for an existing secret key.
373 The CLEARCACHE command returns an error when the file mutex associated
374 with the data file is locked by another client. Although an error is
375 returned the cached file is flagged for cache removal which will occur
376 when the data file mutex is released.
378 Added LIST --all to retrieve the entire element tree. Flags are
379 appended to each element path when this option is used. See the
380 documentation for details.
382 The checksum is now a CRC32 checksum rather than a stat() of the ctime
383 of the data file.
385 Can now listen for remote connections via TLS (IPv4 and IPv6) as well
386 as the local UNIX domain socket.
388 Added tests. Run them with 'make tests' in the tests/ directory.
390 More portable: *BSD, SunOS/Solaris/OpenSolaris, Android and Linux and
391 32 and 64 bit versions of these as well as little and big endian.
393 Removed the libglib-2.0 dependency.