Update NEWS.
[pwmd.git] / NEWS
blob2b8a0bb9b486d25f332c66e2b5e05139fc775d1b
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").
20 PWMD v3.0.15
21 ------------
22 This verions contains two important security fixes. After installing please
23 change your passphrase for all non-gpg-agent data files with the PASSWD
24 command (or ".passwd" if using pwmc). Please note that after the new data file
25 is written it will be incompatible with previous versions of pwmd.
27 Fixed initializing the passphrase salt with a nonce. This was a mistake
28 introduced in pwmd 3.0.
30 The --cipher-iterations command line and SAVE options are now an alias for
31 --s2k-count. This is do to how the encryption scheme has changed. The count is
32 now the number of times to hash the passphrase before encryption of the XML
33 document. In previous versions the count was  using a small static
34 compile-time count then encrypting the XML with the iteration count. The
35 default S2K iteration count is now 5000000. This change removes the need for
36 the "cipher_progress" configuration parameter and has been removed from the
37 documentation but is still valid for older data files.
39 Fixed potential cache corruption of the data file key.
42 PWMD v3.0.14
43 ------------
44 Require GnuTLS >= 3.0.0 when --enable-gnutls is passed to configure.
46 Explicitly set pthread compiler and linker flags for Android.
48 Build fix for systems without getpwnam_r().
50 The "invoking_user" configuration parameter now accepts an ACL list as an
51 argument. This removes the "invoking_tls" parameter since a TLS fingerprint
52 hash can be specified in the ACL.
54 Added configuration parameter "invoking_file".
56 Attribute names must now conform to the XML 1.0 specification. This is to
57 prevent parsing errors during the next OPEN. Element names (attribute values)
58 remain the same.
60 The ATTR LIST command can now show attributes for an element path it otherwise
61 would not have permission to access provided there is permission for its
62 parent.
64 Fixed the LIST command showing an arbitrary element path after element access
65 error.
67 Added a username field to the "GETINFO --verbose CLIENTS" command.
69 LIST now appends a target flag to an element with an error.
71 LIST command bug fixes.
73 Can now set a "target" attribute value to a restricted but visible element
74 path.
76 Added configuration parameter "strict_kill" to let a client KILL another
77 client when the client to kill is of the same uid or TLS fingerprint. Set to
78 "true" to keep the old behavior.
81 PWMD v3.0.13
82 ------------
83 Fixed configure.ac to use any required pthread CFLAGS or LIBS.
85 Thread cancellation fixes.
87 Client names specified with "OPTION name=value" may no longer contain
88 whitespace.
90 Added "GETINFO --verbose CLIENTS" to show connected clients and their state.
92 Added the "STATE" status message which is sent to connected clients during a
93 client state change and has the same line format as the "GETINFO --verbose
94 CLIENTS" command. This also adds a new configuration parameter "send_state" to
95 disable sending the client state, send client states to only other clients who
96 are invoking_user's or all connected clients. The default is invoking users.
98 Added configuration parameter "lock_timeout" that behaves as the default for
99 "OPTION lock-timeout". The default is 5 seconds.
101 Added the "KILL" command to terminate another client when the current one is
102 the "invoking_user".
104 Now sends a keepalive status message while waiting for a data file lock to be
105 aquired.
107 Added command line option --kill to terminate a running pwmd instance.
109 The --use-agent command line option can now also disable gpg-agent use when
110 "use_agent" is enabled in a configuration file.
112 A few bug fixes discovered by Coverity.
114 Added configuration parameter "tls_dh_level".
116 Changed the default "tls_cipher_suite" to
117 SECURE256:SECURE192:SECURE128:-VERS-SSL3.0.
120 PWMD v3.0.12
121 ------------
122 When opening a new file then opening another, the first file would be cached
123 when not saved. So remove the cache entry for non-saved file to prevent a
124 possible DoS.
126 Fixed the verbose flag of LIST to not append a "T" flag when no target
127 existed for a root element.
129 Updated Debian packaging info so 'make deb' should now reflect the current
130 version.
133 PWMD v3.0.11
134 ------------
135 Update to work with newest gpg-agent. This adds configuration parameter
136 "gpg_agent_socket" to replace "agent_env_file".
138 Fix doc/magic and the version string.
141 PWMD v3.0.10
142 ------------
143 Fixed SAVE --keygrip and --sign-keygrip when not a new file.
145 Fixed SAVE using the previously opened files signing key when the current file
146 is an new one.
148 Fixed TLS socket hanging during handshake failure.
150 Fixed TLS wait interval during EAGAIN.
152 Added GETINFO USER to return the client username/hash.
154 Fixed MOVE doing an unneeded permission check.
156 Fixed CACHETIMEOUT to apply the new timeout immediately and not wait for the
157 existing timer to expire.
159 Bugfixes. See ChangeLog for details.
163 PWMD v3.0.9
164 -----------
165 Fix SAVE --inquire-keyparam for new files.
167 Fix TLS fingerprint hash case comparison.
169 Check permissions before modifying a "target" attribute.
171 Access is denied for an element that does not contain an "_acl" attribute
172 unless the client is the invoking_user.
175 PWMD v3.0.8
176 -----------
177 Support for ELG keypairs.
179 The "allowed" configuration parameter supports TLS fingerprint hashes by
180 prefixing the hash with a '#' character. This removes the "tls_access"
181 configuration parameter.
183 Added configuration parameter "allowed_file" which should contain one
184 username, group name or hash per line and has the same syntax as the "allowed"
185 parameter.
187 TLS fingerprint hashes are now in SHA256 format and not SHA1 and when
188 specified in a configuration parameter, or "allowed_file", should be
189 prefixed with a '#'.
191 Added per-element access control lists (ACL). Works like the "allowed"
192 configuration parameter but the ACL is stored in the element attribute "_acl".
193 This adds a LIST --verbose flag 'P' to indicate that the current client is not
194 allowed access to the element. This also adds the "invoking_user" and
195 "invoking_tls" configuration parameters. See the documentation for details. 
197 Removed libacl support for data files. It isn't very useful.
199 Fixed a recursion loop in the LIST command. See move test #8 and #9.
201 Disable attaching to the pwmd process. This is Linux specific and has the
202 effect of hiding the pwmd process from 'ps' output.
204 A few other bug fixes. See ChangeLog for details.
207 PWMD v3.0.7
208 -----------
209 More lenient element and attribute names. This reverts the behavior introduced
210 in version 3.0.5. This allows for things like '@' or digits in an element or
211 attribute name making pwmd more useful. I don't remember why I made it so
212 strict in that version so I'll revert it for now until I do remember.
215 PWMD v3.0.6
216 -----------
217 Write a PID file upon startup to detect a stale socket when running another
218 instance.
220 Bind to the local socket before doing cache pushing.
222 Added command line option --force as an alias to --ignore.
224 Fixed a few cppcheck(1) warnings.
226 Fixed a bug that ignored the return value from launch_pinentry().
228 Added configuration parameter "log_keepopen" for use when logging to a file.
231 PWMD v3.0.5
232 -----------
233 More strict element and attribute names. Conform to the XML naming spec.
235 Log any non-fatal XML error. These may occur when loading or parsing
236 an XML file.
238 Fixed a memory leak.
240 Set XML standalone mode; and UTF-8 encoding explicitly (the default).
243 PWMD v3.0.4
244 -----------
245 A few "target" attribute fixes.
247 Updated Debian packaging stuff. Try 'make deb'.
250 PWMD v3.0.3
251 -----------
252 Fixed the PASSWD command requiring a passphrase for a non-PKI data file
253 without a passphrase.
255 Fixed a few memory leaks.
257 The 'OPTION disable-pinentry' now resets the gpg-agent '--pinentry-mode'
258 when needed.
260 Fixed new non-PKI data file cache entry getting cleared during SAVE.
262 The CLEARCACHE and CACHETIMEOUT commands now make use of the
263 "tls_access" configuration parameter in a data file section like the
264 OPEN command does. Also added a "-" flag to the fingerprint which
265 behaves like the "!" flag.
268 PWMD v3.0.2
269 -----------
270 The "allowed" configuration parameter now works in a data file section
271 and is a list of local user or group names allowed to open the data
272 file. The OPEN, CLEARCACHE and CACHETIMEOUT commands make use of
273 this. This also adds a deny flag '-' to a user or group name.
275 Fixed the cache timer to expire deferred cache entries. No longer need
276 to wait for the next OPEN or SAVE command.
278 Make use of the --no-passphrase option for non-PKI data files. This
279 adds the --no-passphrase option to the PASSWD command.
281 Show a backtrace on SIGABRT.
284 PWMD v3.0.1
285 -----------
286 Fix crash when checking the cache status of a new file.
288 Set the default cache_timeout configuration parameter to 600.
290 Set the default keepalive_interval to 60.
292 Fix SAVE not caching new files.
295 PWMD v3.0.0
296 -----------
297 This version contains quite a few changes and enhancements. Most
298 commands and syntax have changed in this release so please read the
299 example configuration file and the html or texinfo documentation in
300 the doc/ directory.
302 You will need to convert your existing pwmd v2.x data file to the new
303 data file format by doing the following:
305         $ pwmd --convert datafile -o newfile
307 then place "newfile" in ~/.pwmd/data. If you built with gpg-agent
308 support by passing --enable-agent to configure, then append
309 --use-agent to the above command line to use the gpg-agent to generate
310 a public and private keypair. No keypair is generated by default; the
311 data file is symmetrically encrypted.
313 Pwmd now supports the use of the gpg-agent for passphrase caching and
314 key management. This means smartcards are also supported. A "stub" of
315 the secret key is stored in the above mentioned key directory, but the
316 secret portion of the key is stored on the smartcard. To convert your
317 existing data while encrypting to an existing public key, pass the
318 --keygrip option with --convert or --import, along with
319 --use-agent. You may also need to pass the --sign-keygrip, too. See
320 the pwmd manual for details.
322 The XML document is now cached in pwmd when the passphrase is also
323 cached. This is needed to prevent requiring a smartcard to be inserted
324 for each OPEN command although it can still be required by setting the
325 CACHETIMEOUT of a data file to 0. Pwmd will operate on a copy of the
326 cached document and update the cached one after a SAVE. It is also
327 much faster than having to decrypt the data file during each OPEN.
328 The cached document is encrypted to prevent memory grepping attacks.
330 Ported to POSIX threads (pthreads).
332 Renamed error codes:
333     PWMD_LIBXML_ERROR -> GPG_ERR_BAD_DATA
334     PWMD_NO_FILE -> GPG_ERR_INV_STATE
335     PWMD_FILE_MODIFIED -> GPG_ERR_CHECKSUM
337 Most commands now have an --inquire option to retrieve remaining
338 non-option arguments via a server inquire. This avoids the libassuan
339 line length limit for longer element paths.
341 Added the PASSWD command to change the passphrase of a secret key or a
342 symmetrically encrypted key (SAVE --no-agent).
344 The IMPORT command can now import siblings.
346 Added the AGENT command to send a command directly to gpg-agent.
348 Added the GETINFO command to retrieve server details. This removes the
349 VERSION and GETPID commands.
351 Removed the CONFIG and KEEPALIVE status messages.
353 Added the NEWFILE status message to determine when the file OPEN'ed is
354 a new one.
356 Added ISCACHED --lock to lock the file mutex. This doesn't require an
357 OPEN'd file. It was added to prevent a race condition with another
358 client accessing the same file when one client needed to determine the
359 cache status before the OPEN.
361 Texinfo documentation and the manual page is generated from the
362 texinfo source.
364 Commands that normally returned GPG_ERR_NO_VALUE now return
365 GPG_ERR_NO_DATA.
367 The --iterations command line, configuration and SAVE options have
368 been renamed to "s2k-count". The PASSWD command can be used to change
369 this value for an existing secret key.
371 The CLEARCACHE command returns an error when the file mutex associated
372 with the data file is locked by another client. Although an error is
373 returned the cached file is flagged for cache removal which will occur
374 when the data file mutex is released.
376 Added LIST --all to retrieve the entire element tree. Flags are
377 appended to each element path when this option is used. See the
378 documentation for details.
380 The checksum is now a CRC32 checksum rather than a stat() of the ctime
381 of the data file.
383 Can now listen for remote connections via TLS (IPv4 and IPv6) as well
384 as the local UNIX domain socket.
386 Added tests. Run them with 'make tests' in the tests/ directory.
388 More portable: *BSD, SunOS/Solaris/OpenSolaris, Android and Linux and
389 32 and 64 bit versions of these as well as little and big endian.
391 Removed the libglib-2.0 dependency.