Changed the Debian package dependency to require pwmd 1.4 or later.
[libpwmd.git] / NEWS
blob599400a09dcf1f7645107089019e495f3a8ff031
1 libPWMD v4.0.3
2 --------------
3 Added --with-pinentry-path to configure to set the default location of the
4 pinentry binary. The default is /usr/bin/pinentry.
6 The timeout (if set) is cancelled after pinentry returns since this means
7 input was read.
9 PWMD no longer returns EPWMD_FILE_NOT_FOUND anywhere. It is up to the client
10 to figure out if the file is new or not by using the GETCONFIG protocol
11 command.
13 Added the -d command line switch to pwmc. This will redirect any command
14 output to the specified file descriptor. If your using pinentry to retrieve a
15 password from the same tty as pwmc and redirecting output, this is needed.
17 Added pwmc command line options -D, -T and -N. These can set the pinentry
18 display, tty and terminal type.
20 A couple of minor bugfixes.
23 libPWMD v4.0.2
24 --------------
25 Added gettext support.
27 Don't free the password when set with pwmd_setopt() until pwmd_close() is
28 called. Fixes pwmc -p for example.
30 Fixed pwmc and looping when an error occurs and pinentry is used to get the
31 password.
34 libPWMD v4.0.1
35 --------------
36 FreeBSD compile-time fix.
38 pwmd_open() will return GPG_ERR_TIMEOUT after pwmd_terminate_pinentry() is
39 called.
41 Warn about unused function results at compile-time.
44 libPWMD v4.0.0
45 --------------
46 Fixed gpg-error descriptions. Client's linked to this version of libpwmd
47 should be using pwmd v0.10 or later.
49 Made the pwm_t structure private.
51 Library functions returning PWMD_OK or PWMD_ERROR now are prototyped to return
52 a type of gpg_error_t. This removes the extra needed parameter when calling
53 these functions. When these functions succeed, 0 is returned. Otherwise it's
54 an error code that pwmd_strerror() can describe.
56 Renamed pwmd_option to pwmd_option_t.
58 Added PWMD_OPTION_STATUS_FUNC and PWMD_OPTION_STATUS_DATA. The set function
59 will be called when pwmd sends a status (S) line. The function should return 0
60 on success or a gpg_error_t which will fail the current command with the
61 returned error code.
63 Renamed PWMD_OPTION_[TITLE|PROMPT|DESC] to PWMD_OPTION_PINENTRY_...
65 When using pinentry for password retrieval, PWMD_OPTION_PINENTRY_TRIES can
66 be set to specify the number of times before giving up after an invalid
67 password.
69 The custom memory de/allocator symbols are now hidden.
71 Renamed pwmd_password_func to pwmd_password_fn. A pwm_t * is also a required
72 argument.
74 Renamed pwmd_status_func to pwmd_status_fn.
76 Removed pwmd_get_password(). This has been replaced by pwmd_open_nb() and
77 pwmd_save_nb(). These function's will return a file descriptor that select()
78 can use when a file isn't cached. When available for a read(), a
79 pwmd_nb_status_t should be read and then passed to pwmd_open_nb_finalize() or
80 pwmd_save_nb_finalize() to update the pwm handle. pwmd_open_nb() also has an
81 option to specify the number of seconds until the pinentry process will
82 timeout.
84 Added pwmd_terminate_pinentry() which will kill the pinentry process
85 associated with the specified pwm handle. Use this if you need a pinentry
86 timeout but don't call pwmd_open_nb().
88 Added pwmc command line option -t to specified the pinentry timeout.
90 When a file ~/.pwmd/env exists, it is read before calling pinentry. This file
91 contains NAME=VALUE pinentry settings where NAME is one of TTY, TERM or
92 DISPLAY. These settings will overwrite the ones set by pwmd_setopt(). This
93 allows a daemon process to use pinentry after it's cache entry has been
94 removed.
96 Quite a few API changes and bugfixes. Read libpwmd.3 for details. 
99 libPWMD v3.0.0
100 --------------
101 Now uses the assuan protocol for communicating with pwmd. This changes things
102 quite a bit. Read on...
104 Uses more secure memory allocation. Kinda. It mainly just zero's out what is
105 allocated before free()'ing it.
107 Added pwmd_init(). Call this before anything else.
109 Added pwmd_open() and pwmd_save(). This removes PWMD_OPEN and PWMD_SAVE.
111 Removed PWMD_COMMAND. pwmd_command() now accepts a format string as the
112 command.
114 Added pwmd_free_result(). Use this to free a result from pwmd_command().
116 Removed PWMD_SETOPT. Changed to pwmd_setopt().
118 Added options for setting up the pinentry terminal and display.
120 Added pwmd_get_password(). This is a nonblocking way of calling pinentry. It
121 returns a file descriptor that select() can use to read from when a password
122 is ready to be read from with read() (mostly ripped from Elinks'
123 start_thread()). Thanks Kalle Olavi Niemitalo <kon@iki.fi> for the idea.
125 Now uses libgpg-error error codes.
127 Fixed pwmc and the BYE command.
129 A few other changes. Read the libpwmd.h header file, libpwmd.3 and ChangeLog
130 for all the details.
133 libPWMD v2.0.3
134 --------------
135 Split pwmd and libpwmd into their own packages.
137 Added PWMD_SETOPT options PWMD_OPTION_PASSWORD_FUNC and
138 PWMD_OPTION_PASSWORD_DATA to specify a custom password retrieval function for
139 use with the PWMD_OPEN and PWMD_SAVE commands.
141 gpg-agent(1) is no longer used for interacting with pinentry(1). Now libassuan
142 calls pinentry directly. This adds PWMD_OPTION_PINENTRY_PATH to specify the
143 location of the pinentry program. The default is /usr/bin/pinentry. New
144 programs should use PWMD_OPTION_PINENTRY instead of PWMD_OPTION_USEAGENT and
145 EPWMD_PINENTRY_ERROR instead of EPWMD_AGENT_ERROR.
148 libPWMD v2.0.2
149 --------------
150 Added a manual page.
152 Removed pwmd_list_free(). The prototype disappeared but I forgot to remove the
153 code.
156 libPWMD v2.0.1
157 --------------
158 Restore the working directory after connecting to the socket.
160 Changed the gpg-agent title and description strings in pwmc.
162 Fixed a segfault when looking for the empty string in a result from
163 pwmd_command().
166 libPWMD v2.0.0
167 --------------
168 Most of the PWMD_* commands have been removed. PWMD_OPEN, PWMD_SAVE,
169 PWMD_SETOPT and the new PWMD_COMMAND remain. PWMD_COMMAND takes a char*
170 argument being the protocol command along with any argument to send to the
171 server. This is alot simpler and less error prone than before. Also the
172 library won't need to be updated if a protocol command changed or is added.
174 Fixed PWMD_SAVE and asking for a password when the file was cached.
176 Added pwmc. This is a command line client for pwmd. It reads protocol commands
177 from stdin.
179 Removed pwmd_base64_encode() and pwmd_base64_decode().
181 Added a pkg-config meta file.
184 libPWMD v1.0.1
185 --------------
186 Added PWMD_ATTR_GET to get an attribute value from an element path.
188 pwmd_base64_decode() bugfix. Don't assume the return value is a character
189 array by nul-terminating it.
191 Added pwmd_list_free() to free a "list" result.
193 Can compile with g++ and maybe other C++ compilers.
195 Fixed some memory leaks.
197 Bugfix for the protocol parser.
200 libPWMD v1.0.0
201 --------------
202 Changed the version number as suggested by the libtool docs.
204 pwmd_base64_decode() bugfix. The returned string wasn't NULL terminated.
206 Updates for the OPEN and SAVE protocol commands. libPWMD no longer base64
207 encodes the key.
209 Updates for the new ATTR protocol command.
212 libPWMD v0.0.1
213 --------------
214 Initial release.