Updated manual page.
[libpwmd.git] / NEWS
blobd60e70b8d163d52d8780571f6678f8e95534d3bf
1 libPWMD v5.0.1
2 --------------
3 Let pwmc handle the new IMPORT command.
5 Fixed disconnecting pinentry.
7 When the inquire callback returns GPG_ERR_EOF and 'result' is not NULL, send
8 the rest of 'result' before terminating the callback.
11 libPWMD v5.0.0
12 --------------
13 This version breaks backward compatibility and requires pwmd 1.4 or later. The
14 reason is because of how commands that use the INQUIRE response (the "STORE"
15 command) from the server has changed. To do a INQUIRE command, use the new
16 pwmd_inquire() function and not pwmd_command(). The reason for this is to use
17 less memory when large amounts of data is to be sent. The entire data doesn't
18 need to be stored in a buffer before sending. It can be sent ASSUAN_LINELENGTH
19 bytes at a time (~1000) and also removes the one-line-per-command restriction;
20 the data can contain newline characters. See pwmc.c for example usage.
22 Updated to use new pwmd error codes.
24 Fixed pwmd_connect() not setting the error parameter on success.
26 Only one command can be processed with pwmc do to the new INQUIRE code. This
27 removes pwmc command line option -E.
29 Added pwmc command line option -I to read INQUIRE (STORE command) data
30 from the specified file descriptor. Reading from a file descriptor rather from
31 a pipe can save memory when large amounts of data is being sent. See the pwmc
32 manual page for example usage.
34 The result of a pwmc command is not modified at all (newline characters).
36 Send OPTION CLIENT NAME=pwmc when pwmc connects to the server.
38 Server status messages are printed to stderr by default. Use the new command
39 line option -X to suppress status messages.
41 Since pwmd 1.4 includes it's own pinentry support, setting
42 PWMD_OPTION_PINENTRY with pwmd_setopt() will send "OPTION PINENTRY=0" to the
43 server to prevent pwmd from using its pinentry support.
45 Renamed 'configure' option --with-pinentry-path to --with-pinentry.
47 Look for ~/.pwmd/pinentry.conf rather than ~/.pwmd/env. The variable names
48 have also changed. They are now: TTYNAME, TTYTYPE, DISPLAY and PATH.
50 A few bugfixes. See ChangeLog for details.
53 libPWMD v4.0.3
54 --------------
55 Added --with-pinentry-path to configure to set the default location of the
56 pinentry binary. The default is /usr/bin/pinentry.
58 The timeout (if set) is cancelled after pinentry returns since this means
59 input was read.
61 PWMD no longer returns EPWMD_FILE_NOT_FOUND anywhere. It is up to the client
62 to figure out if the file is new or not by using the GETCONFIG protocol
63 command.
65 Added the -d command line switch to pwmc. This will redirect any command
66 output to the specified file descriptor. If your using pinentry to retrieve a
67 password from the same tty as pwmc and redirecting output, this is needed.
69 Added pwmc command line options -D, -T and -N. These can set the pinentry
70 display, tty and terminal type.
72 A couple of minor bugfixes.
75 libPWMD v4.0.2
76 --------------
77 Added gettext support.
79 Don't free the password when set with pwmd_setopt() until pwmd_close() is
80 called. Fixes pwmc -p for example.
82 Fixed pwmc and looping when an error occurs and pinentry is used to get the
83 password.
86 libPWMD v4.0.1
87 --------------
88 FreeBSD compile-time fix.
90 pwmd_open() will return GPG_ERR_TIMEOUT after pwmd_terminate_pinentry() is
91 called.
93 Warn about unused function results at compile-time.
96 libPWMD v4.0.0
97 --------------
98 Fixed gpg-error descriptions. Client's linked to this version of libpwmd
99 should be using pwmd v0.10 or later.
101 Made the pwm_t structure private.
103 Library functions returning PWMD_OK or PWMD_ERROR now are prototyped to return
104 a type of gpg_error_t. This removes the extra needed parameter when calling
105 these functions. When these functions succeed, 0 is returned. Otherwise it's
106 an error code that pwmd_strerror() can describe.
108 Renamed pwmd_option to pwmd_option_t.
110 Added PWMD_OPTION_STATUS_FUNC and PWMD_OPTION_STATUS_DATA. The set function
111 will be called when pwmd sends a status (S) line. The function should return 0
112 on success or a gpg_error_t which will fail the current command with the
113 returned error code.
115 Renamed PWMD_OPTION_[TITLE|PROMPT|DESC] to PWMD_OPTION_PINENTRY_...
117 When using pinentry for password retrieval, PWMD_OPTION_PINENTRY_TRIES can
118 be set to specify the number of times before giving up after an invalid
119 password.
121 The custom memory de/allocator symbols are now hidden.
123 Renamed pwmd_password_func to pwmd_password_fn. A pwm_t * is also a required
124 argument.
126 Renamed pwmd_status_func to pwmd_status_fn.
128 Removed pwmd_get_password(). This has been replaced by pwmd_open_nb() and
129 pwmd_save_nb(). These function's will return a file descriptor that select()
130 can use when a file isn't cached. When available for a read(), a
131 pwmd_nb_status_t should be read and then passed to pwmd_open_nb_finalize() or
132 pwmd_save_nb_finalize() to update the pwm handle. pwmd_open_nb() also has an
133 option to specify the number of seconds until the pinentry process will
134 timeout.
136 Added pwmd_terminate_pinentry() which will kill the pinentry process
137 associated with the specified pwm handle. Use this if you need a pinentry
138 timeout but don't call pwmd_open_nb().
140 Added pwmc command line option -t to specified the pinentry timeout.
142 When a file ~/.pwmd/env exists, it is read before calling pinentry. This file
143 contains NAME=VALUE pinentry settings where NAME is one of TTY, TERM or
144 DISPLAY. These settings will overwrite the ones set by pwmd_setopt(). This
145 allows a daemon process to use pinentry after it's cache entry has been
146 removed.
148 Quite a few API changes and bugfixes. Read libpwmd.3 for details. 
151 libPWMD v3.0.0
152 --------------
153 Now uses the assuan protocol for communicating with pwmd. This changes things
154 quite a bit. Read on...
156 Uses more secure memory allocation. Kinda. It mainly just zero's out what is
157 allocated before free()'ing it.
159 Added pwmd_init(). Call this before anything else.
161 Added pwmd_open() and pwmd_save(). This removes PWMD_OPEN and PWMD_SAVE.
163 Removed PWMD_COMMAND. pwmd_command() now accepts a format string as the
164 command.
166 Added pwmd_free_result(). Use this to free a result from pwmd_command().
168 Removed PWMD_SETOPT. Changed to pwmd_setopt().
170 Added options for setting up the pinentry terminal and display.
172 Added pwmd_get_password(). This is a nonblocking way of calling pinentry. It
173 returns a file descriptor that select() can use to read from when a password
174 is ready to be read from with read() (mostly ripped from Elinks'
175 start_thread()). Thanks Kalle Olavi Niemitalo <kon@iki.fi> for the idea.
177 Now uses libgpg-error error codes.
179 Fixed pwmc and the BYE command.
181 A few other changes. Read the libpwmd.h header file, libpwmd.3 and ChangeLog
182 for all the details.
185 libPWMD v2.0.3
186 --------------
187 Split pwmd and libpwmd into their own packages.
189 Added PWMD_SETOPT options PWMD_OPTION_PASSWORD_FUNC and
190 PWMD_OPTION_PASSWORD_DATA to specify a custom password retrieval function for
191 use with the PWMD_OPEN and PWMD_SAVE commands.
193 gpg-agent(1) is no longer used for interacting with pinentry(1). Now libassuan
194 calls pinentry directly. This adds PWMD_OPTION_PINENTRY_PATH to specify the
195 location of the pinentry program. The default is /usr/bin/pinentry. New
196 programs should use PWMD_OPTION_PINENTRY instead of PWMD_OPTION_USEAGENT and
197 EPWMD_PINENTRY_ERROR instead of EPWMD_AGENT_ERROR.
200 libPWMD v2.0.2
201 --------------
202 Added a manual page.
204 Removed pwmd_list_free(). The prototype disappeared but I forgot to remove the
205 code.
208 libPWMD v2.0.1
209 --------------
210 Restore the working directory after connecting to the socket.
212 Changed the gpg-agent title and description strings in pwmc.
214 Fixed a segfault when looking for the empty string in a result from
215 pwmd_command().
218 libPWMD v2.0.0
219 --------------
220 Most of the PWMD_* commands have been removed. PWMD_OPEN, PWMD_SAVE,
221 PWMD_SETOPT and the new PWMD_COMMAND remain. PWMD_COMMAND takes a char*
222 argument being the protocol command along with any argument to send to the
223 server. This is alot simpler and less error prone than before. Also the
224 library won't need to be updated if a protocol command changed or is added.
226 Fixed PWMD_SAVE and asking for a password when the file was cached.
228 Added pwmc. This is a command line client for pwmd. It reads protocol commands
229 from stdin.
231 Removed pwmd_base64_encode() and pwmd_base64_decode().
233 Added a pkg-config meta file.
236 libPWMD v1.0.1
237 --------------
238 Added PWMD_ATTR_GET to get an attribute value from an element path.
240 pwmd_base64_decode() bugfix. Don't assume the return value is a character
241 array by nul-terminating it.
243 Added pwmd_list_free() to free a "list" result.
245 Can compile with g++ and maybe other C++ compilers.
247 Fixed some memory leaks.
249 Bugfix for the protocol parser.
252 libPWMD v1.0.0
253 --------------
254 Changed the version number as suggested by the libtool docs.
256 pwmd_base64_decode() bugfix. The returned string wasn't NULL terminated.
258 Updates for the OPEN and SAVE protocol commands. libPWMD no longer base64
259 encodes the key.
261 Updates for the new ATTR protocol command.
264 libPWMD v0.0.1
265 --------------
266 Initial release.