Also clear FLAG_ACL_ERROR after target validation.
[pwmd.git] / NEWS
blobaf64633f86aaf433b1456199ad6cfd8f0b79fbe5
1 PWMD v3.0.13
2 ------------
3 Fixed configure.ac to use any required pthread CFLAGS or LIBS.
5 Thread cancellation fixes.
7 Client names specified with "OPTION name=value" may no longer contain
8 whitespace.
10 Added "GETINFO --verbose CLIENTS" to show connected clients and their state.
12 Added the "STATE" status message which is sent to connected clients during a
13 client state change and has the same line format as the "GETINFO --verbose
14 CLIENTS" command. This also adds a new configuration parameter "send_state" to
15 disable sending the client state, send client states to only other clients who
16 are invoking_user's or all connected clients. The default is invoking users.
18 Added configuration parameter "lock_timeout" that behaves as the default for
19 "OPTION lock-timeout". The default is 5 seconds.
21 Added the "KILL" command to terminate another client when the current one is
22 the "invoking_user".
24 Now sends a keepalive status message while waiting for a data file lock to be
25 aquired.
27 Added command line option --kill to terminate a running pwmd instance.
29 The --use-agent command line option can now also disable gpg-agent use when
30 "use_agent" is enabled in a configuration file.
32 A few bug fixes discovered by Coverity.
34 Added configuration parameter "tls_dh_level".
36 Changed the default "tls_cipher_suite" to
37 SECURE256:SECURE192:SECURE128:-VERS-SSL3.0.
40 PWMD v3.0.12
41 ------------
42 When opening a new file then opening another, the first file would be cached
43 when not saved. So remove the cache entry for non-saved file to prevent a
44 possible DoS.
46 Fixed the verbose flag of LIST to not append a "T" flag when no target
47 existed for a root element.
49 Updated Debian packaging info so 'make deb' should now reflect the current
50 version.
53 PWMD v3.0.11
54 ------------
55 Update to work with newest gpg-agent. This adds configuration parameter
56 "gpg_agent_socket" to replace "agent_env_file".
58 Fix doc/magic and the version string.
61 PWMD v3.0.10
62 ------------
63 Fixed SAVE --keygrip and --sign-keygrip when not a new file.
65 Fixed SAVE using the previously opened files signing key when the current file
66 is an new one.
68 Fixed TLS socket hanging during handshake failure.
70 Fixed TLS wait interval during EAGAIN.
72 Added GETINFO USER to return the client username/hash.
74 Fixed MOVE doing an unneeded permission check.
76 Fixed CACHETIMEOUT to apply the new timeout immediately and not wait for the
77 existing timer to expire.
79 Bugfixes. See ChangeLog for details.
83 PWMD v3.0.9
84 -----------
85 Fix SAVE --inquire-keyparam for new files.
87 Fix TLS fingerprint hash case comparison.
89 Check permissions before modifying a "target" attribute.
91 Access is denied for an element that does not contain an "_acl" attribute
92 unless the client is the invoking_user.
95 PWMD v3.0.8
96 -----------
97 Support for ELG keypairs.
99 The "allowed" configuration parameter supports TLS fingerprint hashes by
100 prefixing the hash with a '#' character. This removes the "tls_access"
101 configuration parameter.
103 Added configuration parameter "allowed_file" which should contain one
104 username, group name or hash per line and has the same syntax as the "allowed"
105 parameter.
107 TLS fingerprint hashes are now in SHA256 format and not SHA1 and when
108 specified in a configuration parameter, or "allowed_file", should be
109 prefixed with a '#'.
111 Added per-element access control lists (ACL). Works like the "allowed"
112 configuration parameter but the ACL is stored in the element attribute "_acl".
113 This adds a LIST --verbose flag 'P' to indicate that the current client is not
114 allowed access to the element. This also adds the "invoking_user" and
115 "invoking_tls" configuration parameters. See the documentation for details. 
117 Removed libacl support for data files. It isn't very useful.
119 Fixed a recursion loop in the LIST command. See move test #8 and #9.
121 Disable attaching to the pwmd process. This is Linux specific and has the
122 effect of hiding the pwmd process from 'ps' output.
124 A few other bug fixes. See ChangeLog for details.
127 PWMD v3.0.7
128 -----------
129 More lenient element and attribute names. This reverts the behavior introduced
130 in version 3.0.5. This allows for things like '@' or digits in an element or
131 attribute name making pwmd more useful. I don't remember why I made it so
132 strict in that version so I'll revert it for now until I do remember.
135 PWMD v3.0.6
136 -----------
137 Write a PID file upon startup to detect a stale socket when running another
138 instance.
140 Bind to the local socket before doing cache pushing.
142 Added command line option --force as an alias to --ignore.
144 Fixed a few cppcheck(1) warnings.
146 Fixed a bug that ignored the return value from launch_pinentry().
148 Added configuration parameter "log_keepopen" for use when logging to a file.
151 PWMD v3.0.5
152 -----------
153 More strict element and attribute names. Conform to the XML naming spec.
155 Log any non-fatal XML error. These may occur when loading or parsing
156 an XML file.
158 Fixed a memory leak.
160 Set XML standalone mode; and UTF-8 encoding explicitly (the default).
163 PWMD v3.0.4
164 -----------
165 A few "target" attribute fixes.
167 Updated Debian packaging stuff. Try 'make deb'.
170 PWMD v3.0.3
171 -----------
172 Fixed the PASSWD command requiring a passphrase for a non-PKI data file
173 without a passphrase.
175 Fixed a few memory leaks.
177 The 'OPTION disable-pinentry' now resets the gpg-agent '--pinentry-mode'
178 when needed.
180 Fixed new non-PKI data file cache entry getting cleared during SAVE.
182 The CLEARCACHE and CACHETIMEOUT commands now make use of the
183 "tls_access" configuration parameter in a data file section like the
184 OPEN command does. Also added a "-" flag to the fingerprint which
185 behaves like the "!" flag.
188 PWMD v3.0.2
189 -----------
190 The "allowed" configuration parameter now works in a data file section
191 and is a list of local user or group names allowed to open the data
192 file. The OPEN, CLEARCACHE and CACHETIMEOUT commands make use of
193 this. This also adds a deny flag '-' to a user or group name.
195 Fixed the cache timer to expire deferred cache entries. No longer need
196 to wait for the next OPEN or SAVE command.
198 Make use of the --no-passphrase option for non-PKI data files. This
199 adds the --no-passphrase option to the PASSWD command.
201 Show a backtrace on SIGABRT.
204 PWMD v3.0.1
205 -----------
206 Fix crash when checking the cache status of a new file.
208 Set the default cache_timeout configuration parameter to 600.
210 Set the default keepalive_interval to 60.
212 Fix SAVE not caching new files.
215 PWMD v3.0.0
216 -----------
217 This version contains quite a few changes and enhancements. Most
218 commands and syntax have changed in this release so please read the
219 example configuration file and the html or texinfo documentation in
220 the doc/ directory.
222 You will need to convert your existing pwmd v2.x data file to the new
223 data file format by doing the following:
225         $ pwmd --convert datafile -o newfile
227 then place "newfile" in ~/.pwmd/data. If you built with gpg-agent
228 support by passing --enable-agent to configure, then append
229 --use-agent to the above command line to use the gpg-agent to generate
230 a public and private keypair. No keypair is generated by default; the
231 data file is symmetrically encrypted.
233 Pwmd now supports the use of the gpg-agent for passphrase caching and
234 key management. This means smartcards are also supported. A "stub" of
235 the secret key is stored in the above mentioned key directory, but the
236 secret portion of the key is stored on the smartcard. To convert your
237 existing data while encrypting to an existing public key, pass the
238 --keygrip option with --convert or --import, along with
239 --use-agent. You may also need to pass the --sign-keygrip, too. See
240 the pwmd manual for details.
242 The XML document is now cached in pwmd when the passphrase is also
243 cached. This is needed to prevent requiring a smartcard to be inserted
244 for each OPEN command although it can still be required by setting the
245 CACHETIMEOUT of a data file to 0. Pwmd will operate on a copy of the
246 cached document and update the cached one after a SAVE. It is also
247 much faster than having to decrypt the data file during each OPEN.
248 The cached document is encrypted to prevent memory grepping attacks.
250 Ported to POSIX threads (pthreads).
252 Renamed error codes:
253     PWMD_LIBXML_ERROR -> GPG_ERR_BAD_DATA
254     PWMD_NO_FILE -> GPG_ERR_INV_STATE
255     PWMD_FILE_MODIFIED -> GPG_ERR_CHECKSUM
257 Most commands now have an --inquire option to retrieve remaining
258 non-option arguments via a server inquire. This avoids the libassuan
259 line length limit for longer element paths.
261 Added the PASSWD command to change the passphrase of a secret key or a
262 symmetrically encrypted key (SAVE --no-agent).
264 The IMPORT command can now import siblings.
266 Added the AGENT command to send a command directly to gpg-agent.
268 Added the GETINFO command to retrieve server details. This removes the
269 VERSION and GETPID commands.
271 Removed the CONFIG and KEEPALIVE status messages.
273 Added the NEWFILE status message to determine when the file OPEN'ed is
274 a new one.
276 Added ISCACHED --lock to lock the file mutex. This doesn't require an
277 OPEN'd file. It was added to prevent a race condition with another
278 client accessing the same file when one client needed to determine the
279 cache status before the OPEN.
281 Texinfo documentation and the manual page is generated from the
282 texinfo source.
284 Commands that normally returned GPG_ERR_NO_VALUE now return
285 GPG_ERR_NO_DATA.
287 The --iterations command line, configuration and SAVE options have
288 been renamed to "s2k-count". The PASSWD command can be used to change
289 this value for an existing secret key.
291 The CLEARCACHE command returns an error when the file mutex associated
292 with the data file is locked by another client. Although an error is
293 returned the cached file is flagged for cache removal which will occur
294 when the data file mutex is released.
296 Added LIST --all to retrieve the entire element tree. Flags are
297 appended to each element path when this option is used. See the
298 documentation for details.
300 The checksum is now a CRC32 checksum rather than a stat() of the ctime
301 of the data file.
303 Can now listen for remote connections via TLS (IPv4 and IPv6) as well
304 as the local UNIX domain socket.
306 Added tests. Run them with 'make tests' in the tests/ directory.
308 More portable: *BSD, SunOS/Solaris/OpenSolaris, Android and Linux and
309 32 and 64 bit versions of these as well as little and big endian.
311 Removed the libglib-2.0 dependency.