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