Make use of libgpg-error
[gnupg.git] / agent / ChangeLog
1 2003-06-03  Werner Koch  <wk@gnupg.org>
2
3         Changed all error codes in all files to the new libgpg-error scheme.
4
5         * agent.h: Include gpg-error.h and errno.h
6         * Makefile.am: Link with libgpg-error
7
8         * query.c: assuan.h is now a system header.
9         * genkey.c (agent_genkey): Fixed silly use of xmalloc by
10         xtrymalloc.
11
12 2003-04-29  Werner Koch  <wk@gnupg.org>
13
14         * command.c (register_commands): Adjusted for new Assuan semantics.
15
16         * Makefile.am: Don't override LDFLAGS.
17
18 2002-12-04  Werner Koch  <wk@gnupg.org>
19
20         * gpg-agent.c: New variable config_filename.
21         (parse_rereadable_options): New.
22         (main): Use it here.  Add setting of default values, set
23         config_filename.
24         (reread_configuration): Filled with actual code.
25
26 2002-12-03  Werner Koch  <wk@gnupg.org>
27
28         * protect-tool.c (read_key): Don't run make_canonical on a NULL
29         buffer.
30
31         * command.c (parse_hexstring): New.
32         (cmd_sethash): Use it.
33         (parse_keygrip): New.
34         (cmd_havekey, cmd_sigkey): Use it.
35         (cmd_passwd): New.
36         * genkey.c (agent_protect_and_store): New.
37         (store_key): Add arg FORCE.
38         (agent_genkey): Pass false to this force of store_key.
39
40 2002-11-13  Werner Koch  <wk@gnupg.org>
41
42         * gpg-agent.c (main): Switch all messages to utf-8.
43
44         * simple-pwquery.c (agent_send_all_options): Use $GPG_TTY and
45         stdin with ttyname.
46
47         * cache.c (new_data): Uiih - /sizeof d/sizeof *d/.
48
49 2002-11-10  Werner Koch  <wk@gnupg.org>
50
51         * command.c (option_handler): Fix keep_tty check.
52
53 2002-11-06  Werner Koch  <wk@gnupg.org>
54
55         * gpg-agent.c (main): Make sure we have a default ttyname.
56         * command.c (option_handler): Check opt.keep_tty here
57         * query.c (start_pinentry): but not anymore here.
58
59 2002-11-05  Werner Koch  <wk@gnupg.org>
60
61         * agent.h (opt,server_control_s): Move display and lc_ variables
62         to the control struct so that they are per connection.
63         * gpg-agent.c (agent_init_default_ctrl): New.
64         (main): Assign those command line options to new default_* variables.
65         Reset DISPLAY in server mode so that tehre is no implicit default.
66         * command.c (start_command_handler): Initialize and deinitialize
67         the control values.
68         (option_handler): Work on the ctrl values and not on the opt.
69         * query.c (start_pinentry): New argument CTRL to set the display
70         connection specific.  Changed all callers to pass this value.
71         (agent_askpin,agent_get_passphrase,agent_get_confirmation): Add
72         CTRL arg and pass it ot start_pinentry.
73         * command.c (cmd_get_passphrase): Pass CTRL argument.
74         * trustlist.c (agent_marktrusted):  Add CTRL argument  
75         * command.c (cmd_marktrusted): Pass CTRL argument
76         * divert-scd.c (ask_for_card):  Add CTRL arg. 
77         (divert_pksign,divert_pkdecrypt): Ditto.  Changed caller.
78         (getpin_cb): Use OPAQUE to pass the CTRL variable.  Changed both 
79         users.
80         * findkey.c (unprotect): Add CTRL arg.
81         (agent_key_from_file): Ditto.
82
83         * query.c (unlock_pinentry): Disconnect the pinentry so that we
84         start a new one for each request.  This is required to support
85         clients with different environments (e.g. X magic cookies).
86
87 2002-09-05  Neal H. Walfield  <neal@cs.uml.edu>
88
89         * gpg-agent.c (main) [USE_GNU_PTH]: No need to call
90         assuan_set_io_func as assuan is smart.
91
92 2002-09-25  Werner Koch  <wk@gnupg.org>
93
94         * gpg-agent.c (handle_signal): Flush cache on SIGHUP.
95         * cache.c (agent_flush_cache): New.
96
97         * gpg-agent.c, agent.h: Add --keep-display and --keep-tty.
98         * query.c (start_pinentry): Implement them.  The option passing
99         needs more thoughts.
100
101 2002-09-09  Werner Koch  <wk@gnupg.org>
102
103         * gpg-agent.c (create_private_keys_directory)
104         (create_directories): New.
105         (main): Try to create a home directory.
106
107 2002-09-04  Neal H. Walfield  <neal@g10code.de>
108
109         * gpg-agent.c (main): Use sigaction, not signal.
110
111 2002-09-03  Neal H. Walfield  <neal@g10code.de>
112
113         * findkey.c: Include <fcntl.h>.
114         (agent_write_private_key): Prefer POSIX compatibity, open and
115         fdopen, over the simplicity of GNU extensions, fopen(file, "x").
116
117 2002-08-22  Werner Koch  <wk@gnupg.org>
118
119         * query.c (agent_askpin): Provide the default desc text depending
120         on the pininfo.  Do the basic PIN verification only when
121         min_digits is set.
122
123 2002-08-21  Werner Koch  <wk@gnupg.org>
124
125         * query.c (agent_askpin): Hack to show the right default prompt.
126         (agent_get_passphrase): Ditto.
127
128         * trans.c: Removed and replaced all usages with standard _()
129
130         * divert-scd.c (getpin_cb): Pass a more descritive text to the
131         pinentry.
132
133         * Makefile.am: Renamed the binary protect-tool to gpg-protect-tool.
134         * protect-tool.c: Removed the note about internal use only.
135
136         * gpg-agent.c (main): New option --daemon so that the program is
137         not accidently started in the background.
138
139 2002-08-16  Werner Koch  <wk@gnupg.org>
140
141         * call-scd.c (learn_status_cb): Handle CERTINFO status.
142         (agent_card_learn): Add args for certinfo cb.
143         * learncard.c (release_certinfo,certinfo_cb): New.
144         (send_cert_back): New. With factored out code from ..
145         (agent_handle_learn): here.  Return certinfo stuff.
146
147 2002-07-26  Werner Koch  <wk@gnupg.org>
148
149         * gpg-agent.c (main): New option --ignore-cache-for-signing.
150         * command.c (option_handler): New server option
151         use-cache-for-signing defaulting to true.
152         (cmd_pksign): handle global and per session option.
153         * findkey.c (agent_key_from_file, unprotect): New arg
154         ignore_cache.  Changed all callers.
155         * pksign.c (agent_pksign): Likewise.
156
157 2002-06-29  Werner Koch  <wk@gnupg.org>
158
159         * query.c (start_pinentry): Use GNUPG_DERAULT_PINENTRY.
160         * call-scd.c (start_scd): Use GNUPG_DEFAULT_SCDAEMON.
161
162 2002-06-28  Werner Koch  <wk@gnupg.org>
163
164         * protect-tool.c (export_p12_file): New.
165         (main): New command --p12-export.
166         * minip12.c (create_final,p12_build,compute_tag_length): New.
167         (store_tag_length): New.
168
169 2002-06-27  Werner Koch  <wk@gnupg.org>
170
171         * minip12.c (crypt_block): Renamed from decrypt_block, add arg to
172         allow encryption.
173
174         * Makefile.am (pkglib_PROGRAMS): Put protect-tool there.
175
176         * findkey.c (agent_write_private_key,agent_key_from_file)
177         (agent_key_available): Use GNUPG_PRIVATE_KEYS_DIR constant.
178         * gpg-agent.c (main): Use GNUPG_DEFAULT_HOMEDIR constant.
179
180         * protect-tool.c (store_private_key): New.
181         (import_p12_file): Store the new file if requested.
182         (main): New options --force and --store.
183
184         * gpg-agent.c (main): Set a global flag when running detached.
185         * query.c (start_pinentry): Pass the list of FD to keep in the
186         child when not running detached.
187         * call-scd.c (start_scd): Ditto.
188
189 2002-06-26  Werner Koch  <wk@gnupg.org>
190
191         * command.c (cmd_istrusted, cmd_listtrusted, cmd_marktrusted)
192         (cmd_pksign, cmd_pkdecrypt, cmd_genkey, cmd_get_passphrase)
193         (cmd_learn): Print an error message for a failed operation.
194
195         * simple-pwquery.c, simple-pwquery.h: New.
196         * protect-tool. (get_passphrase): New, used to get a passphrase
197         from the agent if none was given on the command line.
198
199 2002-06-25  Werner Koch  <wk@gnupg.org>
200
201         * protect-tool.c (rsa_key_check): New.
202         (import_p12_file): New.
203         (main): New command --p12-import.
204         * minip12.c, minip12.h: New.
205
206 2002-06-24  Werner Koch  <wk@gnupg.org>
207
208         * protect-tool.c (read_file): New.
209         (read_key): Factored most code out to read_file.
210
211 2002-06-17  Werner Koch  <wk@gnupg.org>
212
213         * agent.h: Add a callback function to the pin_entry_info structure.
214         * query.c (agent_askpin): Use the callback to check for a correct
215         PIN.  Removed the start_err_text argument because it is not
216         anymore needed; changed callers.
217         * findkey.c (unprotect): Replace our own check loop by a callback.
218         (try_unprotect_cb): New.
219         * genkey.c (reenter_compare_cb): New.
220         (agent_genkey): Use this callback here.  Fixed setting of the pi2
221         variable and a segv in case of an empty PIN.
222
223         * divert-scd.c (getpin_cb): Removed some unused stuff and
224         explained what we still have to change.
225
226 2002-06-12  Werner Koch  <wk@gnupg.org>
227
228         * gpg-agent.c (main): New option --disable-pth.
229
230 2002-06-11  Werner Koch  <wk@gnupg.org>
231
232         * protect-tool.c: Add command --show-keygrip
233         (show_keygrip): New.
234
235 2002-05-23  Werner Koch  <wk@gnupg.org>
236
237         * call-scd.c: Seirialized all scdaeom access when using Pth.
238
239         * cache.c: Made the cache Pth-thread-safe.
240         (agent_unlock_cache_entry): New.
241         * findkey.c (unprotect): Unlock the returned cache value.
242         * command.c (cmd_get_passphrase): Ditto.
243
244         * gpg-agent.c (main): Register pth_read/write with Assuan.
245
246 2002-05-22  Werner Koch  <wk@gnupg.org>
247
248         * query.c: Serialized all pinentry access when using Pth.
249
250         * gpg-agent.c (handle_signal,start_connection_thread)
251         (handle_connections): New
252         (main): Use the new Pth stuff to allow concurrent connections.
253         * command.c (start_command_handler): Add new arg FD so that the
254         fucntion can also be used for an already connected socket.
255         * Makefile.am: Link with Pth.
256
257 2002-05-14  Werner Koch  <wk@gnupg.org>
258
259         * cache.c (housekeeping, agent_put_cache): Use our time() wrapper.
260
261 2002-04-26  Werner Koch  <wk@gnupg.org>
262
263         * cache.c (agent_put_cache): Reinitialize the creation time and
264         the ttl when reusing a slot.
265
266         * call-scd.c (start_scd): Print debug messages only with debug
267         flags set.
268         * query.c (start_pinentry): Ditto.
269
270 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
271
272         * agent.h (agent_get_confirmation): Replace paramter prompt with
273         two parameters ok and cancel.
274         * query.c (agent_get_confirmation): Likewise.  Implement this.
275         * trustlist.c (agent_marktrusted): Fix invocation of
276         agent_get_confirmation.
277         * divert-scd.c (ask_for_card): Likewise.
278
279 2002-04-24  Marcus Brinkmann  <marcus@g10code.de>
280
281         * agent.h (struct opt): Add members display, ttyname, ttytype,
282         lc_ctype, and lc_messages.
283         * gpg-agent.c (enum cmd_and_opt_values): Add oDisplay, oTTYname,
284         oTTYtype, oLCctype, and LCmessages.
285         (main): Handle these options.
286         * command.c (option_handler): New function.
287         (register_commands): Register option handler.
288         * query.c (start_pinentry): Pass the various display and tty
289         options to the pinentry.
290
291 2002-04-05  Werner Koch  <wk@gnupg.org>
292
293         * protect-tool.c (show_file): New.  Used as default action.
294
295 2002-03-28  Werner Koch  <wk@gnupg.org>
296
297         * divert-scd.c (encode_md_for_card): Don't do the pkcs-1 padding,
298         the scdaemon should take care of it.
299         (ask_for_card): Hack to not display the trailing zero.
300
301 2002-03-11  Werner Koch  <wk@gnupg.org>
302
303         * learncard.c (kpinfo_cb): Remove the content restrictions from
304         the keyID.
305
306 2002-03-06  Werner Koch  <wk@gnupg.org>
307
308         * learncard.c: New.
309         * divert-scd.c (ask_for_card): The serial number is binary so
310         convert it to hex here.
311         * findkey.c (agent_write_private_key): New.
312         * genkey.c (store_key): And use it here.
313         
314         * pkdecrypt.c (agent_pkdecrypt): Changed the way the diversion is done.
315         * divert-scd.c (divert_pkdecrypt): Changed interface and
316         implemented it.
317
318 2002-03-05  Werner Koch  <wk@gnupg.org>
319
320         * call-scd.c (inq_needpin): New.
321         (agent_card_pksign): Add getpin_cb args.
322         (agent_card_pkdecrypt): New.
323
324 2002-03-04  Werner Koch  <wk@gnupg.org>
325
326         * pksign.c (agent_pksign): Changed how the diversion is done.
327         * divert-scd.c (divert_pksign): Changed interface and implemented it.
328         (encode_md_for_card): New.
329         * call-scd.c (agent_card_pksign): New.
330
331 2002-02-28  Werner Koch  <wk@gnupg.org>
332
333         * pksign.c (agent_pksign): Detect whether a Smartcard is to be
334         used and divert the operation in this case.
335         * pkdecrypt.c (agent_pkdecrypt): Likewise
336         * findkey.c (agent_key_from_file): Add optional arg shadow_info
337         and have it return information about a shadowed key.
338         * protect.c (agent_get_shadow_info): New.
339
340         * protect.c (snext,sskip,smatch): Moved to
341         * sexp-parse.h: new file.
342         * divert-scd.c: New.
343         
344 2002-02-27  Werner Koch  <wk@gnupg.org>
345
346         * protect.c (agent_shadow_key): New.
347
348         * command.c (cmd_learn): New command LEARN.
349         * gpg-agent.c: New option --scdaemon-program.
350         * call-scd.c (start_scd): New. Based on query.c
351         * query.c: Add 2 more arguments to all uses of assuan_transact.
352
353 2002-02-18  Werner Koch  <wk@gnupg.org>
354
355         * findkey.c (unprotect): Show an error message for a bad passphrase.
356
357         * command.c (cmd_marktrusted): Implemented.
358         * trustlist.c (agent_marktrusted): New.
359         (open_list): Add APPEND arg.
360
361         * query.c (agent_get_confirmation): New.
362
363 2002-02-06  Werner Koch  <wk@gnupg.org>
364
365         * cache.c (housekeeping): Fixed linking in the remove case.
366
367 2002-02-01  Werner Koch  <wk@gnupg.org>
368
369         * gpg-agent.c: New option --default-cache-ttl.
370         * cache.c (agent_put_cache): Use it.
371         
372         * cache.c: Add a few debug outputs.
373
374         * protect.c (agent_private_key_type): New.
375         * agent.h: Add PRIVATE_KEY_ enums.
376         * findkey.c (agent_key_from_file): Use it to decide whether we
377         have to unprotect a key.
378         (unprotect): Cache the passphrase.
379         
380         * findkey.c (agent_key_from_file,agent_key_available): The key
381         files do now require a ".key" suffix to make a script's life
382         easier. 
383         * genkey.c (store_key): Ditto.
384
385 2002-01-31  Werner Koch  <wk@gnupg.org>
386
387         * genkey.c (store_key): Protect the key.
388         (agent_genkey): Ask for the passphrase.
389         * findkey.c (unprotect): Actually unprotect the key.
390         * query.c (agent_askpin): Add an optional start_err_text. 
391
392 2002-01-30  Werner Koch  <wk@gnupg.org>
393
394         * protect.c: New.  
395         (hash_passphrase): Based on the GnuPG 1.0.6 version.
396         * protect-tool.c: New
397
398 2002-01-29  Werner Koch  <wk@gnupg.org>
399
400         * findkey.c (agent_key_available): New.
401         * command.c (cmd_havekey): New.
402         (register_commands): And register new command.
403
404 2002-01-20  Werner Koch  <wk@gnupg.org>
405
406         * command.c (cmd_get_passphrase): Remove the plus signs.
407
408         * query.c (start_pinentry): Send no-grab option to pinentry
409         * gpg-agent.c (main): Move variable grab as no_grab to agent.h.
410
411 2002-01-19  Werner Koch  <wk@gnupg.org>
412
413         * gpg-agent.c (main): Disable core dumps.
414
415         * cache.c: New.
416         * command.c (cmd_get_passphrase): Use the cache.
417         (cmd_clear_passphrase): Ditto.
418
419         * gpg-agent.c:  Removed unused cruft and implement the socket
420         based server.
421         (my_strusage): Take bug report address from configure.ac.
422         * command.c (start_command_handler): Add an argument to start as
423         regular server.
424         (start_command_handler): Enable Assuan logging.
425
426 2002-01-15  Werner Koch  <wk@gnupg.org>
427
428         * trustlist.c: New.
429         * command.c (cmd_istrusted, cmd_listtrusted, cmd_marktrusted): New.
430
431 2002-01-07  Werner Koch  <wk@gnupg.org>
432
433         * genkey.c: Store the secret part and return the public part.
434
435 2002-01-03  Werner Koch  <wk@gnupg.org>
436
437         * command.c (cmd_get_passphrase): New.
438         (cmd_clear_passphrase): New.
439         * query.c (agent_get_passphrase): New.
440
441 2002-01-02  Werner Koch  <wk@gnupg.org>
442
443         * genkey.c: New.
444         * command.c (cmd_genkey): New.
445
446         * command.c (rc_to_assuan_status): Removed and changed all callers
447         to use map_to_assuan_status.
448         
449 2001-12-19  Werner Koch  <wk@gnupg.org>
450
451         * keyformat.txt: New. 
452
453 2001-12-19  Marcus Brinkmann  <marcus@g10code.de>
454
455         * query.c (start_pinentry): Add new argument to assuan_pipe_connect.
456
457 2001-12-18  Werner Koch  <wk@gnupg.org>
458
459         * Makefile.am: Use LIBGCRYPT macros
460
461 2001-12-14  Werner Koch  <wk@gnupg.org>
462
463         * gpg-agent.c (main): New option --batch.  New option --debug-wait
464         n, so that it is possible to attach gdb when used in server mode.
465         * query.c (agent_askpin): Don't ask in batch mode.
466
467         * command.c: Removed the conversion macros as they are now in
468         ../common/util.h.
469
470 2001-12-14  Marcus Brinkmann  <marcus@g10code.de>
471
472         * query.c (LINELENGTH): Removed.
473         (agent_askpin): Use ASSUAN_LINELENGTH, not LINELENGTH.
474
475 2001-11-19  Werner Koch  <wk@gnupg.org>
476
477         * gpg-agent.c: Removed all GUI code, removed code for old
478         protocol.  New code to use the Assuan protocol as a server and
479         also to communicate with a new ask-passphrase utility.
480
481 2000-11-22  Werner Koch  <wk@gnupg.org>
482
483         * gpg-agent.c (main): csh support by Dan Winship, new options --sh
484         and --csh and set default by consulting $SHELL.
485
486 Mon Aug 21 17:59:17 CEST 2000  Werner Koch  <wk@openit.de>
487
488         * gpg-agent.c (passphrase_dialog): Cleanup the window and added the
489         user supplied text to the window.
490         (main): Fixed segv in gtk_init when used without a command to start.
491
492         * gpg-agent.c: --flush option.
493         (req_flush): New.
494         (req_clear_passphrase): Implemented.
495
496 Fri Aug 18 14:27:14 CEST 2000  Werner Koch  <wk@openit.de>
497
498         * gpg-agent.c: New.
499         * Makefile.am: New.
500
501
502  Copyright 2001, 2002 Free Software Foundation, Inc.
503
504  This file is free software; as a special exception the author gives
505  unlimited permission to copy and/or distribute it, with or without
506  modifications, as long as this notice is preserved.
507
508  This file is distributed in the hope that it will be useful, but
509  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
510  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.