Fix LIST to show error flags on root elements.
[pwmd.git] / NEWS
blob23c8b1e401686769ba622cc6d4541f3566624d26
1 PWMD v3.0.14
2 ------------
3 Require GnuTLS >= 3.0.0 when --enable-gnutls is passed to configure.
5 Explicitly set pthread compiler and linker flags for Android.
7 Build fix for systems without getpwnam_r().
9 The "invoking_user" configuration parameter now accepts an ACL list as an
10 argument. This deprecates the "invoking_tls" parameter since a TLS fingerprint
11 hash can be specified in the ACL.
13 Added configuration parameter "invoking_file".
15 Attribute names must now conform to the XML 1.0 specification. This is to
16 prevent parsing errors during the next OPEN. Element names (attribute values)
17 remain the same.
19 The ATTR LIST command can now show attributes for an element it otherwise
20 would not have permission to access provided there is permission for its
21 parent.
23 Fixed the LIST command showing an arbitrary element path after element access
24 error.
27 PWMD v3.0.13
28 ------------
29 Fixed configure.ac to use any required pthread CFLAGS or LIBS.
31 Thread cancellation fixes.
33 Client names specified with "OPTION name=value" may no longer contain
34 whitespace.
36 Added "GETINFO --verbose CLIENTS" to show connected clients and their state.
38 Added the "STATE" status message which is sent to connected clients during a
39 client state change and has the same line format as the "GETINFO --verbose
40 CLIENTS" command. This also adds a new configuration parameter "send_state" to
41 disable sending the client state, send client states to only other clients who
42 are invoking_user's or all connected clients. The default is invoking users.
44 Added configuration parameter "lock_timeout" that behaves as the default for
45 "OPTION lock-timeout". The default is 5 seconds.
47 Added the "KILL" command to terminate another client when the current one is
48 the "invoking_user".
50 Now sends a keepalive status message while waiting for a data file lock to be
51 aquired.
53 Added command line option --kill to terminate a running pwmd instance.
55 The --use-agent command line option can now also disable gpg-agent use when
56 "use_agent" is enabled in a configuration file.
58 A few bug fixes discovered by Coverity.
60 Added configuration parameter "tls_dh_level".
62 Changed the default "tls_cipher_suite" to
63 SECURE256:SECURE192:SECURE128:-VERS-SSL3.0.
66 PWMD v3.0.12
67 ------------
68 When opening a new file then opening another, the first file would be cached
69 when not saved. So remove the cache entry for non-saved file to prevent a
70 possible DoS.
72 Fixed the verbose flag of LIST to not append a "T" flag when no target
73 existed for a root element.
75 Updated Debian packaging info so 'make deb' should now reflect the current
76 version.
79 PWMD v3.0.11
80 ------------
81 Update to work with newest gpg-agent. This adds configuration parameter
82 "gpg_agent_socket" to replace "agent_env_file".
84 Fix doc/magic and the version string.
87 PWMD v3.0.10
88 ------------
89 Fixed SAVE --keygrip and --sign-keygrip when not a new file.
91 Fixed SAVE using the previously opened files signing key when the current file
92 is an new one.
94 Fixed TLS socket hanging during handshake failure.
96 Fixed TLS wait interval during EAGAIN.
98 Added GETINFO USER to return the client username/hash.
100 Fixed MOVE doing an unneeded permission check.
102 Fixed CACHETIMEOUT to apply the new timeout immediately and not wait for the
103 existing timer to expire.
105 Bugfixes. See ChangeLog for details.
109 PWMD v3.0.9
110 -----------
111 Fix SAVE --inquire-keyparam for new files.
113 Fix TLS fingerprint hash case comparison.
115 Check permissions before modifying a "target" attribute.
117 Access is denied for an element that does not contain an "_acl" attribute
118 unless the client is the invoking_user.
121 PWMD v3.0.8
122 -----------
123 Support for ELG keypairs.
125 The "allowed" configuration parameter supports TLS fingerprint hashes by
126 prefixing the hash with a '#' character. This removes the "tls_access"
127 configuration parameter.
129 Added configuration parameter "allowed_file" which should contain one
130 username, group name or hash per line and has the same syntax as the "allowed"
131 parameter.
133 TLS fingerprint hashes are now in SHA256 format and not SHA1 and when
134 specified in a configuration parameter, or "allowed_file", should be
135 prefixed with a '#'.
137 Added per-element access control lists (ACL). Works like the "allowed"
138 configuration parameter but the ACL is stored in the element attribute "_acl".
139 This adds a LIST --verbose flag 'P' to indicate that the current client is not
140 allowed access to the element. This also adds the "invoking_user" and
141 "invoking_tls" configuration parameters. See the documentation for details. 
143 Removed libacl support for data files. It isn't very useful.
145 Fixed a recursion loop in the LIST command. See move test #8 and #9.
147 Disable attaching to the pwmd process. This is Linux specific and has the
148 effect of hiding the pwmd process from 'ps' output.
150 A few other bug fixes. See ChangeLog for details.
153 PWMD v3.0.7
154 -----------
155 More lenient element and attribute names. This reverts the behavior introduced
156 in version 3.0.5. This allows for things like '@' or digits in an element or
157 attribute name making pwmd more useful. I don't remember why I made it so
158 strict in that version so I'll revert it for now until I do remember.
161 PWMD v3.0.6
162 -----------
163 Write a PID file upon startup to detect a stale socket when running another
164 instance.
166 Bind to the local socket before doing cache pushing.
168 Added command line option --force as an alias to --ignore.
170 Fixed a few cppcheck(1) warnings.
172 Fixed a bug that ignored the return value from launch_pinentry().
174 Added configuration parameter "log_keepopen" for use when logging to a file.
177 PWMD v3.0.5
178 -----------
179 More strict element and attribute names. Conform to the XML naming spec.
181 Log any non-fatal XML error. These may occur when loading or parsing
182 an XML file.
184 Fixed a memory leak.
186 Set XML standalone mode; and UTF-8 encoding explicitly (the default).
189 PWMD v3.0.4
190 -----------
191 A few "target" attribute fixes.
193 Updated Debian packaging stuff. Try 'make deb'.
196 PWMD v3.0.3
197 -----------
198 Fixed the PASSWD command requiring a passphrase for a non-PKI data file
199 without a passphrase.
201 Fixed a few memory leaks.
203 The 'OPTION disable-pinentry' now resets the gpg-agent '--pinentry-mode'
204 when needed.
206 Fixed new non-PKI data file cache entry getting cleared during SAVE.
208 The CLEARCACHE and CACHETIMEOUT commands now make use of the
209 "tls_access" configuration parameter in a data file section like the
210 OPEN command does. Also added a "-" flag to the fingerprint which
211 behaves like the "!" flag.
214 PWMD v3.0.2
215 -----------
216 The "allowed" configuration parameter now works in a data file section
217 and is a list of local user or group names allowed to open the data
218 file. The OPEN, CLEARCACHE and CACHETIMEOUT commands make use of
219 this. This also adds a deny flag '-' to a user or group name.
221 Fixed the cache timer to expire deferred cache entries. No longer need
222 to wait for the next OPEN or SAVE command.
224 Make use of the --no-passphrase option for non-PKI data files. This
225 adds the --no-passphrase option to the PASSWD command.
227 Show a backtrace on SIGABRT.
230 PWMD v3.0.1
231 -----------
232 Fix crash when checking the cache status of a new file.
234 Set the default cache_timeout configuration parameter to 600.
236 Set the default keepalive_interval to 60.
238 Fix SAVE not caching new files.
241 PWMD v3.0.0
242 -----------
243 This version contains quite a few changes and enhancements. Most
244 commands and syntax have changed in this release so please read the
245 example configuration file and the html or texinfo documentation in
246 the doc/ directory.
248 You will need to convert your existing pwmd v2.x data file to the new
249 data file format by doing the following:
251         $ pwmd --convert datafile -o newfile
253 then place "newfile" in ~/.pwmd/data. If you built with gpg-agent
254 support by passing --enable-agent to configure, then append
255 --use-agent to the above command line to use the gpg-agent to generate
256 a public and private keypair. No keypair is generated by default; the
257 data file is symmetrically encrypted.
259 Pwmd now supports the use of the gpg-agent for passphrase caching and
260 key management. This means smartcards are also supported. A "stub" of
261 the secret key is stored in the above mentioned key directory, but the
262 secret portion of the key is stored on the smartcard. To convert your
263 existing data while encrypting to an existing public key, pass the
264 --keygrip option with --convert or --import, along with
265 --use-agent. You may also need to pass the --sign-keygrip, too. See
266 the pwmd manual for details.
268 The XML document is now cached in pwmd when the passphrase is also
269 cached. This is needed to prevent requiring a smartcard to be inserted
270 for each OPEN command although it can still be required by setting the
271 CACHETIMEOUT of a data file to 0. Pwmd will operate on a copy of the
272 cached document and update the cached one after a SAVE. It is also
273 much faster than having to decrypt the data file during each OPEN.
274 The cached document is encrypted to prevent memory grepping attacks.
276 Ported to POSIX threads (pthreads).
278 Renamed error codes:
279     PWMD_LIBXML_ERROR -> GPG_ERR_BAD_DATA
280     PWMD_NO_FILE -> GPG_ERR_INV_STATE
281     PWMD_FILE_MODIFIED -> GPG_ERR_CHECKSUM
283 Most commands now have an --inquire option to retrieve remaining
284 non-option arguments via a server inquire. This avoids the libassuan
285 line length limit for longer element paths.
287 Added the PASSWD command to change the passphrase of a secret key or a
288 symmetrically encrypted key (SAVE --no-agent).
290 The IMPORT command can now import siblings.
292 Added the AGENT command to send a command directly to gpg-agent.
294 Added the GETINFO command to retrieve server details. This removes the
295 VERSION and GETPID commands.
297 Removed the CONFIG and KEEPALIVE status messages.
299 Added the NEWFILE status message to determine when the file OPEN'ed is
300 a new one.
302 Added ISCACHED --lock to lock the file mutex. This doesn't require an
303 OPEN'd file. It was added to prevent a race condition with another
304 client accessing the same file when one client needed to determine the
305 cache status before the OPEN.
307 Texinfo documentation and the manual page is generated from the
308 texinfo source.
310 Commands that normally returned GPG_ERR_NO_VALUE now return
311 GPG_ERR_NO_DATA.
313 The --iterations command line, configuration and SAVE options have
314 been renamed to "s2k-count". The PASSWD command can be used to change
315 this value for an existing secret key.
317 The CLEARCACHE command returns an error when the file mutex associated
318 with the data file is locked by another client. Although an error is
319 returned the cached file is flagged for cache removal which will occur
320 when the data file mutex is released.
322 Added LIST --all to retrieve the entire element tree. Flags are
323 appended to each element path when this option is used. See the
324 documentation for details.
326 The checksum is now a CRC32 checksum rather than a stat() of the ctime
327 of the data file.
329 Can now listen for remote connections via TLS (IPv4 and IPv6) as well
330 as the local UNIX domain socket.
332 Added tests. Run them with 'make tests' in the tests/ directory.
334 More portable: *BSD, SunOS/Solaris/OpenSolaris, Android and Linux and
335 32 and 64 bit versions of these as well as little and big endian.
337 Removed the libglib-2.0 dependency.