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