4e9a64248b53fa3e8b0bd51bdc5ae47340af6e85
[gpgme.git] / gpgme / ChangeLog
1 2001-10-29  Marcus Brinkmann  <marcus@g10code.de>
2
3         * context.h: New member signers_len.
4         * signers.c (gpgme_signers_clear): Require that signers are
5         non-NULL with assertion.  Use signers_len to determine how much
6         keys to release.  Add documentation.
7         (gpgme_signers_add): Use signers_len to determine if the buffer is
8         large enough.  Use xtryrealloc rather than xtrymalloc and copying.
9         Add documentation.
10         (gpgme_signers_enum): Use signers_len to determine if key is
11         available.  Add documentation.
12
13 2001-10-22  Marcus Brinkmann  <marcus@g10code.de>
14
15         * data.c (_gpgme_data_append): Check if LENGTH is smaller than
16         ALLOC_CHUNK, not DH->length.
17
18 2001-10-17  Marcus Brinkmann  <marcus@g10code.de>
19
20         * gpgme.c (gpgme_set_protocol): Fix last change.
21
22 2001-10-15  Werner Koch  <wk@gnupg.org>
23
24         * gpgme.h (GpgmeProtocol): New.
25         * gpgme.c (gpgme_set_protocol): New.
26
27 2001-09-26  Werner Koch  <wk@gnupg.org>
28
29         * gpgme.c (gpgme_set_passphrase_cb): Ignore a NULL context.
30         (gpgme_set_progress_cb): Ditto. Suggested by Mark Mutz.
31
32 2001-09-17  Werner Koch  <wk@gnupg.org>
33
34         * keylist.c (finish_key): Shortcut for no tmp_key.  Changed all
35         callers to use this function without a check for tmp_key.
36         
37         * keylist.c (gpgme_op_keylist_next): Reset the key_cond after
38         emptying the queue.  Bug reported by Stéphane Corthésy.
39
40 2001-09-12  Werner Koch  <wk@gnupg.org>
41
42         * data.c (gpgme_data_rewind): Allow rewind for callbacks.
43
44 2001-09-07  Werner Koch  <wk@gnupg.org>
45
46         * rungpg.h: Add NO_RECP.
47         * encrypt.c (encrypt_status_handler): Take on No_RECP.
48         (gpgme_op_encrypt): Better error return.
49
50         * verify.c (verify_status_handler): Take on NODATA.
51
52 2001-09-03  Werner Koch  <wk@gnupg.org>
53
54         * rungpg.h: Added STATUS_INV_RECP.
55         * gpgme.c (_gpgme_release_result): Add support for new
56         EncryptResult object.
57         * encrypt.c (append_xml_encinfo): New.
58         (encrypt_status_handler): Add some status parsing.
59         (_gpgme_release_encrypt_result): New.
60
61 2001-08-29  Werner Koch  <wk@gnupg.org>
62
63         * recipient.c (gpgme_recipients_release): Free the list.  By Timo.
64
65         * keylist.c (keylist_colon_handler): Do a finish key if we receive
66         an EOF here.  This is probably the reason for a lot of bugs
67         related to keylisting.  It is so obvious.  Kudos to Enno Cramer
68         for pointing that out. 
69
70 2001-08-28  Werner Koch  <wk@gnupg.org>
71
72         * gpgme.c, gpgme.h (gpgme_get_op_info): New.
73         (_gpgme_set_op_info): New. 
74         (_gpgme_release_result): Reset the op_info here.
75         * sign.c (append_xml_siginfo): New.
76         (sign_status_handler): Store the sig create information.
77
78 2001-07-31  Werner Koch  <wk@gnupg.org>
79
80         * encrypt.c (gpgme_op_encrypt): Hack to detect no valid recipients.
81
82 2001-07-30  Werner Koch  <wk@gnupg.org>
83
84         * gpgme.c (gpgme_get_armor,gpgme_get_textmode): New.
85
86         * rungpg.c (build_argv): Disable armor comments
87         * w32-io.c (build_commandline): Need to add quotes here
88
89 2001-07-24  Werner Koch  <wk@gnupg.org>
90
91         * data.c (gpgme_data_read): Add a a way to return the available bytes.
92
93 2001-07-23  Werner Koch  <wk@gnupg.org>
94
95         * util.c: Removed stpcpy() because we use the version from jnlib.
96
97 2001-07-19  Werner Koch  <wk@gnupg.org>
98
99         * mkstatus: Define the collating sequence for sort.
100
101 2001-06-26  Werner Koch  <wk@gnupg.org>
102
103         * rungpg.h: Add STATUS_UNEXPECTED as suggested by Timo.
104
105 2001-06-15  Werner Koch  <wk@gnupg.org>
106
107         * keylist.c (set_userid_flags): Fixed the assigned values. Kudos
108         to Timo for pointing this out.
109
110 2001-06-01  Werner Koch  <wk@gnupg.org>
111
112         * debug.c (_gpgme_debug_begin): Fixed a /tmp race.  Noted by
113         Johannes Poehlmann.
114
115 2001-05-28  Werner Koch  <wk@gnupg.org>
116
117         * version.c (gpgme_check_engine): Stop version number parsing at
118         the opening angle and not the closing one.  By Tommy Reynolds.
119
120 2001-05-01  José Carlos García Sogo <jose@jaimedelamo.eu.org>
121
122         * encrypt.c (gpgme_op_encrypt_start): Deleted the assert ( !c->gpg )
123         line, because it gave an error if another operation had been made 
124         before using the same context.
125         
126         * decrypt.c (gpgme_op_decrypt_start): The same as above. Also added 
127         one line to release the gpg object in the context (if any).
128         
129 2001-04-26  Werner Koch  <wk@gnupg.org>
130
131         * key.c, key.h (_gpgme_key_cache_init): New.
132         (_gpgme_key_cache_add): New.
133         (_gpgme_key_cache_get): New.
134         * version.c (do_subsystem_inits): Init the cache.
135         * keylist.c (finish_key): Put key into the cache
136         * verify.c (gpgme_get_sig_key): First look into the cache.
137
138 2001-04-19  Werner Koch  <wk@gnupg.org>
139
140         * keylist.c (parse_timestamp): Adjusted for the changed
141         --fixed-list-mode of gpg 1.0.4h.
142
143 2001-04-05  Werner Koch  <wk@gnupg.org>
144
145         * verify.c (gpgme_op_verify_start): Enabled pipemode for detached sigs.
146
147 2001-04-04  Werner Koch  <wk@gnupg.org>
148
149         * w32-io.c (_gpgme_io_select): Don't select on the writer if there
150         are still bytes pending.  Timo found this not easy to track down
151         race condition. 
152
153 2001-04-02  Werner Koch  <wk@gnupg.org>
154
155         * gpgme.h: Add GPGME_ATTR_KEY_{EXPIRED,DISABLED}.
156         * key.c (gpgme_key_get_ulong_attr): And return those attribs.
157
158         * verify.c (gpgme_get_sig_key): Set keyliosting mode depending on 
159         the mode set in the current context.  Suggested by Timo.
160
161         * key.c (gpgme_key_get_ulong_attr): Return can_certify and not
162         can_encrypt. By Timo.
163
164 2001-03-30  Werner Koch  <wk@gnupg.org>
165
166         * debug.c (debug_init): Allow to specify a debug file.
167         (_gpgme_debug_level): New.
168
169         * posix-io.c (_gpgme_io_read, _gpgme_io_write): Print output.
170         (_gpgme_io_select): Debug only with level > 2.
171
172 2001-03-15  Werner Koch  <wk@gnupg.org>
173
174         * rungpg.c: Included time.h.
175
176         * key.h: New keyflags for capabilities.
177         * keylist.c (set_mainkey_capability, set_subkey_capability): New.
178         (keylist_colon_handler): Parse them.
179         * gpgme.h: New attribute values for capabilties.
180         * key.c (gpgme_key_get_string_attr): Return them.
181         (capabilities_to_string): New.
182         (gpgme_key_get_ulong_attr): Return the global caps.
183
184 2001-03-14  Werner Koch  <wk@gnupg.org>
185
186         * w32-io.c (destroy_reader,destroy_writer): Fixed syntax error. 
187         Thanks to Jan Oliver Wagner.
188
189 2001-03-13  Werner Koch  <wk@gnupg.org>
190
191         * context.h: Add invalid and revoke flags to user_id structure.
192         * keylist.c (gpgme_op_keylist_start): Use --fixed-list-mode.
193         (keylist_colon_handler): Adjust for that.
194         (set_userid_flags): New. 
195         (set_mainkey_trust_info): Handle new key invalid flag
196         (set_subkey_trust_info): Ditto.
197         * gpgme.h: Add new attributes for key and user ID flags.
198         * key.c (_gpgme_key_append_name): Init these flags
199         (gpgme_key_get_as_xml): Print them.
200         (one_uid_as_xml): New helper for above.
201         (gpgme_key_get_string_attr, gpgme_key_get_ulong_attr):
202         Return the new attributes.  Enhanced, so that subkey information
203         can be returned now.
204
205 2001-02-28  Werner Koch  <wk@gnupg.org>
206
207         * w32-io.c (destroy_reader): Set stop_me flag.
208         (writer,create_writer,destroy_writer,find_writer,kill_writer): New.
209         (_gpgme_io_write): Use a writer thread to avaoid blocking.
210         (_gpgme_io_close): Cleanup a writer thread
211         (_gpgme_io_select): Repalce tthe faked wait on writing by a real
212         waiting which is now possible due to the use of a writer thread.
213
214 2001-02-20  Werner Koch  <wk@gnupg.org>
215
216         * w32-io.c (destroy_reader,kill_reader): New. 
217         (create_reader, reader): Add a new event to stop the thread.
218         (_gpgme_io_close): Kill the reader thread.
219
220         * posix-io.c (_gpgme_io_select): Handle frozen fds here. 
221         * 32-io.c (_gpgme_io_select): Ditto. Removed a bunch of unused code.
222
223         * wait.c: Reworked the whole thing.
224         * rungpg.c (_gpgme_gpg_new): Init pid to -1.
225         (_gpgme_gpg_release): Remove the process from the wait queue.
226
227 2001-02-19  Werner Koch  <wk@gnupg.org>
228
229         * w32-io.c (_gpgme_io_set_close_notify): New.
230         (_gpgme_io_close): Do the notification.
231
232         * posix-io.c (_gpgme_io_select): Use a 1 sec timeout and not 200
233         microseconds.
234
235         * wait.c (remove_process): Don't close the fd here.
236         (do_select): Set the fd to -1 and remove the is_closed flag everywhere.
237         (_gpgme_wait_on_condition): Remove the assert on the queue and
238         break out if we could not find the queue.  The whole thing should
239         be reworked.
240
241         * posix-io.c (_gpgme_io_set_close_notify): New.
242         (_gpgme_io_close): Do the notification.
243
244         * rungpg.c (close_notify_handler): New. 
245         (_gpgme_gpg_new): Register a callback for the fd.
246         (_gpgme_gpg_set_colon_line_handler): Ditto.
247         (build_argv): Ditto
248
249 2001-02-13  Werner Koch  <wk@gnupg.org>
250
251         * rungpg.c (struct reap_s): Replaced pid_t by int.
252
253         * types.h: Add ulong typedef.
254
255         * rungpg.c (do_reaping,_gpgme_gpg_housecleaning): New.
256         (_gpgme_gpg_release): Reap children.
257         * io.h, posix-io.c (_gpgme_io_kill): New.
258         * w32-io.c (_gpgme_io_kill): New (dummy).
259
260         * keylist.c (gpgme_op_keylist_start): Cancel a pending request.
261
262         * posix-io.c (_gpgme_io_read): Add some debug output. 
263         (_gpgme_io_write): Ditto.
264         (_gpgme_io_select): Increased the timeout.
265
266 2001-02-12  Werner Koch  <wk@gnupg.org>
267
268         Enhanced the signature verification, so that it can how handle
269         more than one signature and is able to return more information on 
270         the signatures.
271         * verify.c (gpgme_get_sig_key): New.
272         (gpgme_get_sig_status): New.
273
274         * gpgme.h: Add stdio.h. 
275         (GpgmeSigStat): New status DIFF.
276
277 2001-02-01  Werner Koch  <wk@gnupg.org>
278
279         * w32-io.c (set_synchronize): Add EVENT_MODIFY_STATE.  Add Debug
280         code to all Set/ResetEvent().
281
282         * rungpg.c (read_status): Check for end of stream only if we have
283         an r.  By Timo.
284
285 2001-01-31  Werner Koch  <wk@gnupg.org>
286
287         * wait.c (_gpgme_wait_on_condition): Removed all exit code processing.
288         (propagate_term_results,clear_active_fds): Removed.
289         (count_active_fds): Renamed to .. 
290         (count_active_and_thawed_fds): .. this and count only thawed fds. 
291
292         * rungpg.c (gpg_colon_line_handler): Return colon.eof and not
293         status.eof ;-)
294
295 2001-01-30  Werner Koch  <wk@gnupg.org>
296
297         * w32-io.c (_gpgme_io_spawn): Use the supplied path arg.
298
299         * version.c (get_engine_info): Return better error information.
300
301         * posix-util.c, w32-util.c: New.
302         (_gpgme_get_gpg_path): New, suggested by Jan-Oliver.
303         * rungpg.c (_gpgme_gpg_spawn): Use new function to get GPG's path.
304
305         * signers.c (gpgme_signers_add): Ooops, one should test code and
306         not just write it; the newarr was not assigned.  Thanks to José
307         for pointing this out.  Hmmm, still not tested, why shoudl a coder
308         test his fix :-)
309
310         * w32-io.c: Does now use reader threads, so that we can use
311         WaitForMultipleObjects. 
312         * sema.h, posix-sema.c, w32-sema.c: Support for Critcial sections.
313         Does currently only work for W32.
314
315         * debug.c, util.h : New. Changed all fprintfs to use this new
316         set of debugging functions.
317
318 2001-01-23  Werner Koch  <wk@gnupg.org>
319
320         * data.c (_gpgme_data_release_and_return_string): Fixed string
321         termination.
322
323 2001-01-22  Werner Koch  <wk@gnupg.org>
324
325         * delete.c: New.
326
327         * signers.c: New.
328         * key.c (gpgme_key_ref, gpgme_key_unref): New.
329         * sign.c (gpgme_op_sign_start): Allow the use of other keys.
330
331         * version.c (gpgme_get_engine_info,gpgme_check_engine): New.
332         * rungpg.c (_gpgme_gpg_set_simple_line_handler): New.
333
334 2001-01-05  Werner Koch  <wk@gnupg.org>
335
336         * data.c (gpgme_data_rewind): Allow to rewind data_type_none.
337
338
339  Copyright 2001 g10 Code GmbH
340
341  This file is free software; as a special exception the author gives
342  unlimited permission to copy and/or distribute it, with or without
343  modifications, as long as this notice is preserved.
344
345  This file is distributed in the hope that it will be useful, but
346  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
347  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
348