Updated NEWS.
[pwmd.git] / NEWS
blob5d63fcb2677d64594581749e44a233319fffee23
1 PWMD v0.12
2 ----------
3 Added gettext support. Translations welcome.
5 Strip the first '!' of a newly created element. If there's a following one
6 it's an error. This is to avoid syntax errors and confusion with other
7 commands and element paths.
9 Only show the number of iterations so far when showing the PROGRESS status
10 message. The client can get the percentage by calculating the
11 "iteration_progress" with GETCONFIG.
13 Fixed a huge memory leak with (de)compression.
15 The cache status message format has changed to only show the used and
16 available slots and without any text strings to make it easier for clients to
17 parse.
19 SIGUSR1 is caught in the child process. This allows for reloading of the
20 configuration file.
22 Fixed pushing files and xml import with compression.
24 Added --enable-mem-debug to use the standard memory allocators. Valgrind seems
25 to work better this way.
27 Fixed a few memory leaks.
29 Fixed creating invalid XML elements. Elements must not begin with punctuation
30 or digit and not contain any whitespace.
33 PWMD v0.11
34 ----------
35 Added the GETCONFIG command. This will return a value for a configuration
36 parameter for the opened file or the default value if no file has been opened.
37 The "key" and "key_file" parameters are ignored.
39 Rewrote how element handling is done. No longer uses an xmlTextReader but
40 accesses the xmlDocPtr nodes directly.
42 The STORE command will no longer overwrite the element tree of the last
43 element in the specified element path. Instead it will set the content as
44 usual and keep the child nodes. This affects how GET handles empty elements.
45 GET will return EPWMD_EMPTY instead of EPWMD_TRAILING_ELEMENT. The STORE
46 command can also store content in a root element (account) and remove content
47 or store an empty element by not specifying any content after the last TAB in
48 the element path.
50 Each element in an element path can now be prefixed with the literal '!'
51 character. This allows for following targets of elements other than the root
52 element.
54 The LIST command will now shows all reachable elements including target
55 elements for the specified element path. It also prefixes each element with
56 the literal '!' when needed.
58 Added support for compressing data files before encryption. This adds the
59 "compression_level" configuration parameter. The default is 6 and setting to 0
60 will disable.
62 A couple of bug fixes.
65 PWMD v0.10
66 ----------
67 Fixed libgpg-error descriptions. The errors that pwmd uses for bad syntax and
68 invalid keys etc. used to return an error code that used
69 GPG_ERR_SOURCE_DEFAULT as the source. GPG_ERR_SOURCE_USER_1 is what pwmd uses
70 now. This breaks compatibility with clients that make use of the error codes
71 (i.e., libpwmd). Be sure to update.
73 Non-option arguments on the command line are files to cache upon startup. This
74 acts like the 'cache_push' configuration parameter.
76 The location of the default configuration file is now ~/.pwmd/config and the
77 default data directory is ~/.pwmd/data, and the default log file ~/.pwmd/log.
78 This fixes clients opening these non-data filenames.
80 Fixed default configuration values when an rcfile doesn't have one.
82 The configuration parameters 'key' and 'key_file' now check to make sure the
83 key is valid before adding it to the cache like 'cache_push' does.
85 Clear the file cache and free the memlist on SIGABRT when debugging is not
86 enabled.
88 Added command line option -b to fork pwmd to the background.
90 Added configuration parameter "iteration_progress". pwmd will send the client
91 a status message showing the percent of iterations that are complete while
92 encrypting or decrypting a data file. The default is 0 which disables sending
93 status messages.
95 Sending SIGUSR1 to pwmd will reload the configuration file.
97 New protocol command REALPATH. This will resolve any "target" attribute for
98 all elements in the specified element path and return the result.
100 Some portability (FreeBSD and maybe others) fixes.
102 SIGTERM and SIGABRT are now properly caught in a child process.
104 Bugfixes.
107 PWMD v0.9
108 ---------
109 Now uses the assuan protocol. This requires libassuan and libgpg-error.
111 Clear the shared memory on exit.
113 The CACHE sub-commands ISCACHED, CLEARCACHE and CACHETIMEOUT have been made
114 into their own commands removing the CACHE command itself.
116 The RESETCACHE command and the cache_reset_timeout configuration parameter
117 have been removed. The cached files timeout is reset to it's configured value
118 (or set value with CACHETIMEOUT) after each OPEN or SAVE command.
120 The OPEN command can open another file using the same connection. Beware
121 though that if the OPEN of the new file fails, no file will be open at all.
123 When OPEN'ing a new file with a specified key, cache both the filename and
124 key. Before you had to SAVE to cache the key.
126 All commands will check if the file has been modified before continueing. Not
127 the cache commands though.
129 Don't unlink() a socket filename that wasn't created by pwmd.
131 Fixed allocating more slots than needed.
133 The commands GET, STORE, DELETE and ATTR make use of the "target" attribute
134 unless the element path argument is prefixed with a '!'. The LIST command
135 will support "target" in the next release, hopefully.
137 Accounts names can no longer begin with a '!' character to avoid problems with
138 the "target" attribute.
140 Removed EPWMD_ROOT_TEXT_ELEMENT. The STORE command will return
141 EPWMD_COMMAND_SYNTAX instead.
143 Added command line option -D and configuration parameter
144 "disable_list_and_dump". When specified or enabled, the LIST and DUMP protocol
145 commands will return EPWMD_EMPTY_ELEMENT.
148 PWMD v0.8
149 ---------
150 Use AM_XML2_PATH() for finding libxml2.
152 Split pwmd and libpwmd into their own projects. Both can be found at
153 http://bjk.sourceforge.net/pwmd/.
156 PWMD v0.7
157 ---------
158 cache_push and working directory bugfix.
160 Added two new configuration options "key" and "key_file". Works with
161 cache_push too.
163 Added a boolean "cache_reset_timeout" configuration option to reset the timer
164 for a cached key when the OPEN or SAVE commands are used.
166 Added two new protocol commands CACHE RESET which clears only the key for the
167 specified file and CACHE RESETALL which clears the key for all files.
169 The "name" and "target" attributes are now case-sensitive.
171 The value of an element path that contains a "target" attribute can be
172 obtained by prefixing the account element with a '!'.
175 PWMD v0.6
176 ---------
177 Fix for the LIST command. When an element path was specified and the document
178 had following elements in the tree the following elements would be shown.
180 Added the CACHE TIMEOUT command to specify the lifetime of a cached file in
181 seconds. This adds a new configuration file setting "cache_timeout".
183 Added per-file settings in the configuration file. A file section is declared
184 by placing the filename in braces. Only the "iterations" and "cache_timeout"
185 settings are used in a file section.
187 No longer chdir() to the data directory.
190 PWMD v0.5
191 ---------
192 If a file size is 0 then CACHE ISCACHED will return EPWMD_FILE_NOT_FOUND.
194 Write a structure to the data file which specifies the iterations and IV. This
195 lets you open a file that had a different iteration setting than the current
196 setting. Breaks file compatibility with previous versions for hopefully the
197 last time.
199 cache_push with an invalid password bugfix.
201 Added command line option -I to import an XML file and write the encrypted
202 data to stdout.
205 PWMD v0.4
206 ---------
207 Use AES-256-CBC to store the data file. This breaks file compatibility with
208 older versions. Sorry.
210 The ATTR protocol command has a new GET sub-command to get an attribute value
211 for an element path.
213 The LIST protocol command can now take an element path.
215 The DUMP command will format it's output.
217 Use MAP_ANONYMOUS|MAP_SHARED mmap() flags on Linux 2.4+. This won't create a
218 file in /dev/shm. #define MMAP_ANONYMOUS_SHARED in config.h if your OS
219 supports this.
221 Fixed closing file descriptors.
223 Fixed some memory leaks.
225 The contents of all memory allocated by Glib, libXML and libgcrypt is cleared
226 before free()ing.
228 Added an "iterations" configuration parameter. This specifies the amount of
229 times to encrypt the data to prevent dictionary attacks. Idea borrowed from
230 aespipe.
233 PWMD v0.3
234 ---------
235 The SETATTR protocol command has been renamed to ATTR. This new command
236 includes three new sub-commands: SET, DELETE and LIST, to SET or update an
237 attribute, DELETE to delete an attribute and LIST to list attributes of an
238 element path. Read PROTOCOL for details.
240 Added the TARGET attribute. If an element has this attribute set, it's value
241 is another element path. It's recursive too so the destination element path
242 can be an element with a TARGET attribute. Be careful of loops though.
244 Added the DUMP protocol command. It shows the in-memory document. Useful for
245 cleaning up empty elements that aren't shown with any command.
247 The "name" attribute can be used in any element but cannot be removed for the
248 root "account" element.
250 More strict element name validation for new elements.
252 Code reorganization. Protocol commands have been put in src/commands.c.
254 The LIST command won't show element values anymore unless DEBUG was defined at
255 compile time. You must use the GET command to get a value.
257 The OPEN and SAVE protocol commands no longer expect a base64 encoded key.
258 Plain text is where it's at.
260 The STORE command wont base64 encode the value. We'll leave it up to the
261 client. But it's still recommended to avoid parsing errors.
263 All of the command line options have been moved into a configuration file. By
264 default pwmd will look for it in ~/.pwmdrc. You can use -f to specify an
265 alternate file. If the file doesn't exist, then some defaults will be used.
266 There is one new config option though; "cache_push" will take a list of
267 filenames as an argument. This will prompt for passwords upon startup and add
268 the file to the cache. It's a (temporary?) fix for background processes that
269 don't have an attached tty (see libpwmd/KnownBugs). Just make sure the file
270 the other process needs is added to the cache.
273 PWMD v0.2
274 ---------
275 There is a library included in the archive to make interfacing the pwmd alot
276 easier. See libpwmd/README for more information.
278 A (temporary) fix for 100% CPU usage after a client connects.
280 GnuPG is no longer used for data encryption. Instead, libgcrypt will
281 encrypt/decrypt the data with AES-128 key. The OPEN and SAVE commands will
282 need the base64 encoded key.
284 Renamed host to hostname and added sslfingerprint to the DTD.
286 Added command line option -s to specify the socket path.
288 Added command line option -d to specify where pwmd will open and save the data
289 files.
291 Renamed protocol command SET to SETATTR.
293 Added shared memory file caching. If a file is found in the cache then the
294 cached password associated with the file will be used with the OPEN command.
295 With SAVE, if there is no cached password a key is required, else the cached
296 password will be used unless there is a key argument. This also adds a new
297 protocol command CACHE with 3 subcommands CLEARALL, CLEAR and ISCACHED.
298 Sending the SIGHUP signal to pwmd will clear the file cache.
300 Added command line option -M to disable calling mlockall(). mlock() will still
301 be used for the file cache reguardless of this option.
303 Added command line option -C to specify the file cache size. The cache size
304 must be in multiples of PAGE_SIZE.
306 Added command line option -l to enable logging to the specified file.
308 If there is a protocol command error, ERR is returned along with a protocol
309 error code and description. See src/pwmd_error.h for error codes.
311 Fix for the DELETE command and deleting an entire element tree when an invalid
312 element was in the element path.
314 Fix for the GET command and finding elements of the same name in other
315 accounts.
317 Added a manual page.
320 PWMD v0.1
321 ---------
322 Initial release.