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