When a new file was opened then the client quit without saving, a
[pwmd.git] / NEWS
blobee5f6f951a860c22a7fd8b9c9ef6ac0d060a5ffa
1 PWMD v0.10
2 ----------
3 Fixed libgpg-error descriptions. The errors that pwmd uses for bad syntax and
4 invalid keys etc. used to return an error code that used
5 GPG_ERR_SOURCE_DEFAULT as the source. GPG_ERR_SOURCE_USER_1 is what pwmd uses
6 now. This breaks compatibility with clients that make use of the error codes
7 (i.e., libpwmd). Be sure to update.
9 Non-option arguments on the command line are files to cache upon startup. This
10 acts like the 'cache_push' configuration parameter.
12 The location of the default configuration file is now ~/.pwmd/config and the
13 default data directory is ~/.pwmd/data, and the default log file ~/.pwmd/log.
14 This fixes clients opening these non-data filenames.
16 Fixed default configuration values when an rcfile doesn't have one.
18 The configuration parameters 'key' and 'key_file' now check to make sure the
19 key is valid before adding it to the cache like 'cache_push' does.
21 Clear the file cache and free the memlist on SIGABRT when debugging is not
22 enabled.
24 Added command line option -b to fork pwmd to the background.
26 Added configuration parameter "iteration_progress". pwmd will send the client
27 a status message showing the percent of iterations that are complete while
28 encrypting or decrypting a data file. The default is 0 which disables sending
29 status messages.
31 Sending SIGUSR1 to pwmd will reload the configuration file.
33 New protocol command REALPATH. This will resolve any "target" attribute for
34 all elements in the specified element path and return the result.
36 Some portability (FreeBSD and maybe others) fixes.
38 SIGTERM and SIGABRT are now properly caught in a child process.
40 Bugfixes.
43 PWMD v0.9
44 ---------
45 Now uses the assuan protocol. This requires libassuan and libgpg-error.
47 Clear the shared memory on exit.
49 The CACHE sub-commands ISCACHED, CLEARCACHE and CACHETIMEOUT have been made
50 into their own commands removing the CACHE command itself.
52 The RESETCACHE command and the cache_reset_timeout configuration parameter
53 have been removed. The cached files timeout is reset to it's configured value
54 (or set value with CACHETIMEOUT) after each OPEN or SAVE command.
56 The OPEN command can open another file using the same connection. Beware
57 though that if the OPEN of the new file fails, no file will be open at all.
59 When OPEN'ing a new file with a specified key, cache both the filename and
60 key. Before you had to SAVE to cache the key.
62 All commands will check if the file has been modified before continueing. Not
63 the cache commands though.
65 Don't unlink() a socket filename that wasn't created by pwmd.
67 Fixed allocating more slots than needed.
69 The commands GET, STORE, DELETE and ATTR make use of the "target" attribute
70 unless the element path argument is prefixed with a '!'. The LIST command
71 will support "target" in the next release, hopefully.
73 Accounts names can no longer begin with a '!' character to avoid problems with
74 the "target" attribute.
76 Removed EPWMD_ROOT_TEXT_ELEMENT. The STORE command will return
77 EPWMD_COMMAND_SYNTAX instead.
79 Added command line option -D and configuration parameter
80 "disable_list_and_dump". When specified or enabled, the LIST and DUMP protocol
81 commands will return EPWMD_EMPTY_ELEMENT.
84 PWMD v0.8
85 ---------
86 Use AM_XML2_PATH() for finding libxml2.
88 Split pwmd and libpwmd into their own projects. Both can be found at
89 http://bjk.sourceforge.net/pwmd/.
92 PWMD v0.7
93 ---------
94 cache_push and working directory bugfix.
96 Added two new configuration options "key" and "key_file". Works with
97 cache_push too.
99 Added a boolean "cache_reset_timeout" configuration option to reset the timer
100 for a cached key when the OPEN or SAVE commands are used.
102 Added two new protocol commands CACHE RESET which clears only the key for the
103 specified file and CACHE RESETALL which clears the key for all files.
105 The "name" and "target" attributes are now case-sensitive.
107 The value of an element path that contains a "target" attribute can be
108 obtained by prefixing the account element with a '!'.
111 PWMD v0.6
112 ---------
113 Fix for the LIST command. When an element path was specified and the document
114 had following elements in the tree the following elements would be shown.
116 Added the CACHE TIMEOUT command to specify the lifetime of a cached file in
117 seconds. This adds a new configuration file setting "cache_timeout".
119 Added per-file settings in the configuration file. A file section is declared
120 by placing the filename in braces. Only the "iterations" and "cache_timeout"
121 settings are used in a file section.
123 No longer chdir() to the data directory.
126 PWMD v0.5
127 ---------
128 If a file size is 0 then CACHE ISCACHED will return EPWMD_FILE_NOT_FOUND.
130 Write a structure to the data file which specifies the iterations and IV. This
131 lets you open a file that had a different iteration setting than the current
132 setting. Breaks file compatibility with previous versions for hopefully the
133 last time.
135 cache_push with an invalid password bugfix.
137 Added command line option -I to import an XML file and write the encrypted
138 data to stdout.
141 PWMD v0.4
142 ---------
143 Use AES-256-CBC to store the data file. This breaks file compatibility with
144 older versions. Sorry.
146 The ATTR protocol command has a new GET sub-command to get an attribute value
147 for an element path.
149 The LIST protocol command can now take an element path.
151 The DUMP command will format it's output.
153 Use MAP_ANONYMOUS|MAP_SHARED mmap() flags on Linux 2.4+. This won't create a
154 file in /dev/shm. #define MMAP_ANONYMOUS_SHARED in config.h if your OS
155 supports this.
157 Fixed closing file descriptors.
159 Fixed some memory leaks.
161 The contents of all memory allocated by Glib, libXML and libgcrypt is cleared
162 before free()ing.
164 Added an "iterations" configuration parameter. This specifies the amount of
165 times to encrypt the data to prevent dictionary attacks. Idea borrowed from
166 aespipe.
169 PWMD v0.3
170 ---------
171 The SETATTR protocol command has been renamed to ATTR. This new command
172 includes three new sub-commands: SET, DELETE and LIST, to SET or update an
173 attribute, DELETE to delete an attribute and LIST to list attributes of an
174 element path. Read PROTOCOL for details.
176 Added the TARGET attribute. If an element has this attribute set, it's value
177 is another element path. It's recursive too so the destination element path
178 can be an element with a TARGET attribute. Be careful of loops though.
180 Added the DUMP protocol command. It shows the in-memory document. Useful for
181 cleaning up empty elements that aren't shown with any command.
183 The "name" attribute can be used in any element but cannot be removed for the
184 root "account" element.
186 More strict element name validation for new elements.
188 Code reorganization. Protocol commands have been put in src/commands.c.
190 The LIST command won't show element values anymore unless DEBUG was defined at
191 compile time. You must use the GET command to get a value.
193 The OPEN and SAVE protocol commands no longer expect a base64 encoded key.
194 Plain text is where it's at.
196 The STORE command wont base64 encode the value. We'll leave it up to the
197 client. But it's still recommended to avoid parsing errors.
199 All of the command line options have been moved into a configuration file. By
200 default pwmd will look for it in ~/.pwmdrc. You can use -f to specify an
201 alternate file. If the file doesn't exist, then some defaults will be used.
202 There is one new config option though; "cache_push" will take a list of
203 filenames as an argument. This will prompt for passwords upon startup and add
204 the file to the cache. It's a (temporary?) fix for background processes that
205 don't have an attached tty (see libpwmd/KnownBugs). Just make sure the file
206 the other process needs is added to the cache.
209 PWMD v0.2
210 ---------
211 There is a library included in the archive to make interfacing the pwmd alot
212 easier. See libpwmd/README for more information.
214 A (temporary) fix for 100% CPU usage after a client connects.
216 GnuPG is no longer used for data encryption. Instead, libgcrypt will
217 encrypt/decrypt the data with AES-128 key. The OPEN and SAVE commands will
218 need the base64 encoded key.
220 Renamed host to hostname and added sslfingerprint to the DTD.
222 Added command line option -s to specify the socket path.
224 Added command line option -d to specify where pwmd will open and save the data
225 files.
227 Renamed protocol command SET to SETATTR.
229 Added shared memory file caching. If a file is found in the cache then the
230 cached password associated with the file will be used with the OPEN command.
231 With SAVE, if there is no cached password a key is required, else the cached
232 password will be used unless there is a key argument. This also adds a new
233 protocol command CACHE with 3 subcommands CLEARALL, CLEAR and ISCACHED.
234 Sending the SIGHUP signal to pwmd will clear the file cache.
236 Added command line option -M to disable calling mlockall(). mlock() will still
237 be used for the file cache reguardless of this option.
239 Added command line option -C to specify the file cache size. The cache size
240 must be in multiples of PAGE_SIZE.
242 Added command line option -l to enable logging to the specified file.
244 If there is a protocol command error, ERR is returned along with a protocol
245 error code and description. See src/pwmd_error.h for error codes.
247 Fix for the DELETE command and deleting an entire element tree when an invalid
248 element was in the element path.
250 Fix for the GET command and finding elements of the same name in other
251 accounts.
253 Added a manual page.
256 PWMD v0.1
257 ---------
258 Initial release.