Fix a few 'gcc -fanalyzer' warnings.
[pwmd.git] / NEWS
blobff5480e8970b98a613f8577e4becc2ca11988319
1 pwmd v3.3.7
2 -----------
3 Add the STATUS_MODIFIED status message to inform all clients that further
4 modifications will fail with a checksum error. This is sent after a SAVE
5 command succeeds.
7 A few build fixes and m4 macro updates.
9 Allow an underscore in the local username regex.
11 No longer require an opened data file during DELETKEY. Being an invoking_user
12 should be enough to use this command.
15 PWMD v3.3.6
16 -----------
17 A few potential multi-threading data race and deadlock fixes.
19 Portability fix.
21 A couple other bugfixes.
24 PWMD v3.3.5
25 -----------
26 Fixed security issue with the IMPORT command. It would previously allow
27 overwriting an element without permission of the current client.
29 A couple build and portability fixes.
32 PWMD v3.3.4
33 -----------
34 A COPY command bugfix.
37 PWMD v3.3.3
38 -----------
39 Fix the valid username regex to allow a username beginning with caps.
41 Add ./configure option --with-invoking-user with the default being "nobody".
44 PWMD v3.3.2
45 -----------
46 LIST command performance tweak.
48 Now inherits the _acl attribute of the parent element when creating a new
49 element. Use the new --no-inherit-acl option of the STORE command to prevent
50 it.
53 PWMD v3.3.1
54 -----------
55 Added configuration parameters tls_ca_file, tls_crl_file, tls_server_cert and
56 tls_server_key. The defaults are the same as previous versions.
58 Fixed "LIST --sexp" truncating attribute values containing a space.
60 A few build and other fixes. See ChangeLog for details.
63 PWMD v3.3.0
64 -----------
65 When an ACL for an element is the empty string, treat the element as having a
66 non-existent _acl attribute. Now also tests for valid characters in a UNIX
67 username in an _acl value.
69 Now appends the current git commit hash to the version string to aid in
70 development.
72 Fixed to allow for larger PID values to be able to properly terminate or start
73 another daemon process.
75 Reworked the tests to use the TAP harness. Run 'make check' rather then 'make
76 tests' to run the tests. See tests/README for details.
78 Disabled TLS1.1 and CBC cipher suites by default.
80 Fixed creating a Debian package with 'make deb'.
82 An "allowed" configuration parameter value may now contain a whitelist of
83 local client command names that are allowed to connect or open a data file.
84 This is Linux specific for now.
86 Added the "--sexp" option to the LIST command to show elements along with
87 their attributes in an s-expression format.
89 Releases are now signed using a new signing key. The fingerprint of the new
90 key is 6078FEB430EFA427499E6E78555B69666326961C and is cross-signed with my
91 new primary key which is cross-signed with my old primary key. I don't believe
92 the old keys to be compromised; it is only to rotate them and update to newer
93 standards.
96 PWMD v3.2.2
97 -----------
98 Disable gpg-agent caching of the key for symmetrically encrypted data files.
99 The gpg-agent options to do this were previously mentioned in the pwmd
100 documentation, but we will pass the option to gpgme explicitly to prevent
101 misuse.
103 Portability fix.
106 PWMD v3.2.1
107 -----------
108 Fixed creating a Debian package from a tarball.
110 Fixed a crash during recursion loop detection.
112 Fixed a crash in the LIST command.
114 Fixed the GENKEY command to work properly when passed --expire due to a typo.
116 Fixed the BULK command to sometimes not work when not used as an --inquire.
118 Fixed the cache potentially returning a stale document.
120 Fixed the OPEN command to update the checksum for a reopened file.
122 Fixed a bug in the STORE command refusing the create an element path even with
123 proper access rights.
126 PWMD v3.2
127 ---------
128 Add the BULK protocol command to allow sending multiple commands using an
129 (semi) s-expression syntax. This can speed up remote connections quite a bit
130 since less socket IO is needed. This also adds a BULK status message to inform
131 the client of the current bulk command being run which may be needed when a
132 command inquires data from the client.
134 No longer flood a TLS client with assuan protocol comment lines when spinning
135 in a read.
137 The _mtime and _ctime element attributes can no longer be modified or removed
138 by a client.
140 All known attributes to pwmd are now prefixed with an _:
141     "target" -> "_target"
142     "expire" -> "_expire"
143     "expire_increment" -> "_age"
145 Added a "_version" attribute to the document root element to hold the current
146 version of pwmd.
149 PWMD v3.1.1
150 -----------
151 The XFER status message is now sent only once and before the transfer starts
152 leaving it to the client to calculate the amount of data transferred.
154 Added "LS --verbose" to include the filesystem atime, mtime and ctime
155 timestamps of data files.
157 Build, portability and other bug fixes. See ChangeLog for details.
160 PWMD v3.1
161 ---------
162 The project has moved to GitLab (https://gitlab.com/bjk/pwmd/wikis). Downloads
163 are still available at SourceForge but the issue tracker, git repository and
164 wiki are now hosted at GitLab.
166 Re-added the "tls_use_crl" configuration parameter although it is disabled by
167 default.
169 DELETE no longer does any confirmation before deleting public and private
170 keys.
172 Portability and undefined behavior bugfixes. See ChangeLog for details.
175 PWMD v3.1-beta3
176 ---------------
177 The LS command now sorts filenames.
179 Fixed a long standing memory leak related to a client's thread name.
181 Key expiration is now ignored when OPEN'ing a data file. The next SAVE will
182 fail if using an expired key. See docs for details about what to do.
184 The CACHETIMEOUT command now requires an opened data file and no longer
185 considers an "invoking_user". The syntax has also changed to require only a
186 timeout parameter.
188 Added GENKEY --no-expire to allow creating keys that do not expire.
190 GENKEY now requires an opened data file.
192 Bug fixes. See ChangeLog for details.
195 PWMD v3.1-beta2
196 ---------------
197 New GENKEY command to generate a new keypair or subkey of an existing key
198 without saving the data file to disk.
200 Removed key generation altogether from the SAVE command. You must generate a
201 new key with the GENKEY command or use an existing key and pass the
202 fingerprint to the --keyid option.  The --sign-keyid option is also required
203 for new data files.
205 The SAVE command now allows only a single signer. Although, multiple
206 recipients may be specified.
208 LISTKEYS no longer requires an open data file.
210 Added configuration parameter "strict_open" to prevent a (non-invoking) client
211 from creating a new data file.
213 New command DELETEKEY to remove the private key associated with the currently
214 opened data file from the keyring.
216 Added copy-on-write for commands that modify the document.
218 The DUMP command no longer does a checksum test.
221 PWMD v3.1-beta1
222 ---------------
223 Ported to libgpgme. Data files are now OpenPGP encrypted and signed. A signer
224 is required when using asymmetric encryption and optional if using symmetric
225 encryption.
227 New global configuration parameter "gpg_homedir". The default is
228 ~/.pwmd/.gnupg which will spawn a gpg-agent process with this as it's homedir.
229 The secret and public keyrings live here. To use your regular keyring set this
230 to ~/.gnupg. This removes the "gpg_agent_socket" configuration parameter.
232 Added the pwmd-dump(1) utility to dump the contents of a v3.0.x data file. The
233 output file can then be imported by using 'pwmd --import'. pwmd-dump can also
234 update a v3.1 raw XML file to the latest element or attribute changes by
235 passing the --xml option. See the pwmd-dump(1) manual page for details.
237 Removed the notion of "literal" elements. Targets are always followed for
238 elements that have a 'target' attribute. This changes how the ATTR command
239 works. See the pwmd texinfo or html docs for details. Also note the inherited
240 and reserved attributes for elements with a target.
242 The LIST command now always implies the deprecated '--verbose' and
243 '--with-target' switches and adds the '--recurse' switch to replace the also
244 deprecated '--all' switch.
246 Rewrote the LIST command to better handle recursion loops. Still needs some
247 work, though. See KnownBugs.
249 New special attributes 'expire' and 'expire_increment'. See docs for details.
250 This also adds a new STATUS_EXPIRE status message.
252 New command LISTKEYS to show available (secret) keyid's.
254 New command KEYINFO to show encryption and signing keyid's for an opened data
255 file and --learn to create private key stubs for keys stored on a smartcard.
257 New global configuration parameters "encrypt_to" and "always_trust".
259 Added connected timestamp field to 'GETINFO --verbose CLIENTS'.
261 New status messages PASSPHRASE_HINT and PASSPHRASE_INFO when pinentry is
262 disabled.
264 New global configuration option "backlog" to set the TCP backlog for TLS
265 connections. The default is 128 (Linux default, too).
267 All clients now are cancelled upon SIGINT and SIGTERM without waiting for them
268 to disconnect themselves.
270 Added OPTION CLIENT-STATE to allow a client to opt-in to receive client STATE
271 status messages. By default, no client state is sent.
273 CACHETIMEOUT now allows access to an invoking user.
275 TLS rehandshake support upon SIGHUP.
277 New configuration option "tls_dh_params_file". This removes "tls_dh_level".
279 Removed configuration option "tcp_wait".
281 OPEN: Always allow an invoking user.
283 CLEARCACHE: Reworked to test the client ACL for each data file.