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