d835c8e60ae04ba7bcda56febaa30b54363c8e70
[gnupg.git] / agent / ChangeLog
1 2004-12-21  Werner Koch  <wk@g10code.com>
2
3         * preset-passphrase.c (preset_passphrase): Handle --passphrase.
4
5         * Makefile.am (gpg_preset_passphrase_LDADD): Reorder libs so that
6         pwquery may use stuff from jnlib.  Conditionally add -lwsock2
7         (gpg_protect_tool_LDADD): Ditto.
8
9         * preset-passphrase.c (main): Use default_homedir().
10         (main) [W32]: Initialize sockets.
11
12 2004-12-21  Marcus Brinkmann  <marcus@g10code.de>
13
14         * Makefile.am (libexec_PROGRAMS): Add gpg-preset-passphrase.
15         (gpg_preset_passphrase_SOURCES, gpg_preset_passphrase_LDADD): New
16         targets.
17         * agent.h (opt): New member allow_cache_passphrase.
18         * cache.c (housekeeping): Check if R->ttl is not negative.
19         (agent_put_cache): Allow ttl to be negative.
20         * command.c (parse_hexstring): Allow something to follow the
21         hexstring.
22         (cmd_cache_passphrase): New function.
23         (register_commands): Add it.
24         * gpg-agent.c: Handle --allow-preset-passphrase.
25         * preset-passphrase.c: New file.
26
27 2004-12-21  Werner Koch  <wk@g10code.com>
28
29         * gpg-agent.c (main): Use default_homedir().
30         * protect-tool.c (main): Ditto. 
31
32 2004-12-20  Werner Koch  <wk@g10code.com>
33
34         * gpg-agent.c (main) [W32]: Now that Mutexes work we can remove
35         the pth_init kludge.
36         (main): Add new options --[no-]use-standard-socket.
37         (check_for_running_agent): Check whether it is running on the
38         standard socket.
39
40         * call-scd.c (init_membuf, put_membuf, get_membuf): Removed.  We
41         now use the identical implementation from ../common/membuf.c.
42
43         * pksign.c (agent_pksign): Changed arg OUTFP to OUTBUF and use
44         membuf functions to return the value.
45         * pkdecrypt.c (agent_pkdecrypt): Ditto.
46         * genkey.c (agent_genkey): Ditto.
47         * command.c (cmd_pksign, cmd_pkdecrypt, cmd_genkey): Replaced
48         assuan_get_data_fp() by a the membuf scheme.
49         (clear_outbuf, write_and_clear_outbuf): New.
50
51 2004-12-19  Werner Koch  <wk@g10code.com>
52
53         * query.c (initialize_module_query): New.
54         * call-scd.c (initialize_module_call_scd): New.
55         * gpg-agent.c (main): Call them.
56         
57 2004-12-18  Werner Koch  <wk@g10code.com>
58
59         * gpg-agent.c (main):  Remove special Pth initialize.
60
61         * agent.h (map_assuan_err): Define in terms of
62         map_assuan_err_with_source.
63
64 2004-12-17  Moritz Schulte  <moritz@g10code.com>
65
66         * query.c: Undo change from 2004-12-05.
67
68 2004-12-15  Werner Koch  <wk@g10code.com>
69
70         * gpg-agent.c [W32]: Various hacks to make it work.
71
72         * findkey.c (agent_write_private_key) [W32]: Adjust open call.
73
74         * call-scd.c (start_scd) [W32]: Don't check whether the daemon
75         didn't died.  To hard to do under Windows.
76         (start_scd) [W32]: Disable sending of the event signal option.
77
78         * protect-tool.c (read_file, export_p12_file) [W32]: Use setmode
79         to get stdout and stin into binary mode.
80
81 2004-12-05  Moritz Schulte  <moritz@g10code.com>
82
83         * query.c (start_pinentry): Allow CTRL be NULL.
84
85 2004-10-22  Werner Koch  <wk@g10code.com>
86
87         * gpg-agent.c (parse_rereadable_options): Return "not handled"
88         when the log file has not beend hadled.  This is will let the main
89         option processing continue. Fixed a bug introduced on 2004-09-4
90         resulting in logging to stderr until a HUP has been given.
91         (main): Don't close the listen FD.
92
93 2004-09-30  Werner Koch  <wk@g10code.com>
94
95         * Makefile.am: Adjusted from gettext 1.14.
96
97 2004-09-29  Werner Koch  <wk@g10code.com>
98
99         * minip12.c (parse_bag_encrypted_data): Print error if a bad
100         passphrase has been given.
101
102 2004-09-28  Werner Koch  <wk@g10code.com>
103
104         * protect.c (agent_unprotect): Fixed wiping of CLEARTEXT.  Thanks
105         to Moritz for pointing this out.
106
107 2004-09-25  Moritz Schulte  <moritz@g10code.com>
108         
109         * agent.h: Declare: agent_pksign_do.
110         (struct server_control_s): New member: raw_value.
111         
112         * pksign.c (do_encode_md): New argument: raw_value; support
113         generation of raw (non-pkcs1) data objects; adjust callers.
114         (agent_pksign_do): New function, based on code ripped
115         out from agent_pksign.
116         (agent_pksign): Use agent_pksign_do.
117
118         * command.c (start_command_handler): Set ctrl.digest.raw_value.
119         
120 2004-09-09  Werner Koch  <wk@g10code.de>
121
122         * gpg-agent.c (check_for_running_agent): New.
123         (main): The default action is now to check for an already running
124         agent.
125         (parse_rereadable_options): Set logfile only on reread.
126         (main): Do not print the "is development version" note.
127
128 2004-08-20  Werner Koch  <wk@g10code.de>
129
130         * gpg-agent.c: New option --max-cache-ttl.  Suggested by Alexander
131         Belopolsky.
132         * cache.c (housekeeping): Use it here instead of the hardwired
133         default of 1 hour.
134
135         * query.c (start_pinentry): Use a timeout for the pinentry lock.
136
137 2004-08-18  Werner Koch  <wk@g10code.de>
138
139         * protect-tool.c (get_passphrase): Make sure that the default
140         prompts passed to gpg-agent are utf-8 encoded. Add new prompt values.
141         (import_p12_file, import_p12_file, export_p12_file): Changed calls
142         to get_passphrase so that better prompts are displayed.
143         (get_new_passphrase): New.
144
145 2004-07-22  Werner Koch  <wk@g10code.de>
146
147         * trustlist.c (read_list): Allow colons in the fingerprint.
148         (headerblurb): Rephrased.
149
150         * gpg-agent.c (handle_connections): Increase the stack size ot 256k.
151
152 2004-06-20  Moritz Schulte  <moritz@g10code.com>
153
154         * gpg-agent.c: Include <sys/stat.h> (build fix for BSD).
155
156 2004-05-11  Werner Koch  <wk@gnupg.org>
157
158         * gpg-agent.c (handle_signal): Reload the trustlist on SIGHUP.
159         (start_connection_thread): Hack to simulate a ticker.
160         * trustlist.c (agent_trustlist_housekeeping) 
161         (agent_reload_trustlist): New.  Protected all global functions
162         here with a simple counter which is sufficient for Pth.
163
164 2004-05-03  Werner Koch  <wk@gnupg.org>
165
166         * gpg-agent.c: Remove help texts for options lile --lc-ctype.
167         (main): New option --allow-mark-trusted. 
168         * trustlist.c (agent_marktrusted): Use it here.
169
170 2004-04-30  Werner Koch  <wk@gnupg.org>
171
172         * protect-tool.c: New option --enable-status-msg.
173         (store_private_key): Print status messages for imported keys.
174         (read_and_unprotect): Ditto for bad passphrase.
175
176         * gpg-agent.c (parse_rereadable_options): New arg REREAD.  Allow
177         changing oLogFile.
178         (current_logfile): New.
179
180 2004-04-26  Werner Koch  <wk@gnupg.org>
181
182         * call-scd.c (start_scd): Do not register an event signal if we
183         are running as a pipe server.
184
185 2004-04-21  Werner Koch  <wk@gnupg.org>
186
187         * call-scd.c (start_scd): Send event-signal option. Always check
188         that the scdaemon is still running.
189
190         * gpg-agent.c (handle_signal): Do not use SIGUSR{1,2} anymore for
191         changing the verbosity.
192
193 2004-04-16  Werner Koch  <wk@gnupg.org>
194
195         * gpg-agent.c (main): Tell the logging code that we are running
196         detached.
197
198 2004-04-06  Werner Koch  <wk@gnupg.org>
199
200         * gpg-agent.c (main): Use new libgcrypt thread library register
201         scheme.
202
203 2004-03-23  Marcus Brinkmann  <marcus@g10code.de>
204
205         * gpg-agent.c (main): For now, always print the default config
206         file name for --gpgconf-list.
207
208 2004-03-17  Werner Koch  <wk@gnupg.org>
209
210         * gpg-agent.c (main) <gpgconf>: Fixed default value quoting.
211
212 2004-03-16  Werner Koch  <wk@gnupg.org>
213
214         * gpg-agent.c (parse_rereadable_options): Use the new
215         DEFAULT_CACHE_TTL macro.
216         (main): Updated --gpgconf-list output.
217
218 2004-02-21  Werner Koch  <wk@gnupg.org>
219
220         * command.c (cmd_passwd): Take acount of a key description.
221
222         * genkey.c (reenter_compare_cb): Do not set the error text.
223         (agent_protect_and_store, agent_genkey): Force a re-enter after a
224         non-matching passphrase.
225         * query.c (agent_askpin): Add new arg INITIAL_ERRTEXT; changed
226         all callers.
227
228 2004-02-19  Werner Koch  <wk@gnupg.org>
229
230         * protect-tool.c: New options --have-cert and --prompt.
231         (export_p12_file): Read a certificate from STDIN and pass it to
232         p12_build.  Detect a keygrip and construct the filename in that
233         case.  Unprotcet a key if needed.  Print error messages for key
234         formats we can't handle.
235         (release_passphrase): New.
236         (get_passphrase): New arg PROMPTNO. Return the allocated
237         string. Changed all callers.
238
239         * minip12.c: Revamped the build part.
240         (p12_build): New args CERT and CERTLEN.  
241
242 2004-02-18  Werner Koch  <wk@gnupg.org>
243
244         * protect-tool.c (main): Setup the used character set.
245         * gpg-agent.c (main): Ditto.
246
247         * gpg-agent.c (set_debug): New.  New option --debug-level.
248         (main): New option --gpgconf-list.
249
250 2004-02-17  Werner Koch  <wk@gnupg.org>
251
252         * pksign.c (do_encode_md): Cleaned up by using gcry_sexp_build.
253
254         * Makefile.am (gpg_protect_tool_SOURCES): Removed
255         simple-pwquery.[ch], as we once moved it to ../common.
256
257 2004-02-13  Werner Koch  <wk@gnupg.org>
258
259         * command.c (cmd_setkeydesc): New.
260         (register_commands): Add command SETKEYDESC.
261         (cmd_pksign, cmd_pkdecrypt): Use the key description.
262         (reset_notify): Reset the description.
263         * findkey.c (unprotect): Add arg DESC_TEXT.
264         (agent_key_from_file): Ditto.
265         * pksign.c (agent_pksign): Ditto.
266         * pkdecrypt.c (agent_pkdecrypt): Ditto. Made CIPHERTEXT an
267         unsigned char*.
268
269         * protect-tool.c (main): New options --no-fail-on-exist, --homedir.
270         (store_private_key): Use them here.
271
272 2004-02-12  Werner Koch  <wk@gnupg.org>
273
274         * protect-tool.c (read_file, main): Allow reading from stdin.
275
276         * Makefile.am: Include cmacros.am for common flags.
277         (libexec_PROGRAMS): Put gpg-protect-tool there.
278
279 2004-02-10  Werner Koch  <wk@gnupg.org>
280
281         * minip12.c (parse_bag_encrypted_data): Finished implementation.
282         (p12_parse): Add callback args.
283         * protect-tool.c (import_p12_cert_cb): New.
284         (import_p12_file): Use it.
285
286 2004-02-06  Werner Koch  <wk@gnupg.org>
287
288         * minip12.c (crypt_block): Add arg CIPHER_ALGO; changed all callers.
289         (set_key_iv): Add arg KEYBYTES; changed caller.
290
291 2004-02-03  Werner Koch  <wk@gnupg.org>
292
293         * findkey.c (agent_key_from_file): Extra paranoid wipe.
294         * protect.c (agent_unprotect): Ditto.
295         (merge_lists): Ditto. Add arg RESULTLEN.
296         * pkdecrypt.c (agent_pkdecrypt): Don't show the secret key even in
297         debug mode.
298
299         * protect.c: Add DSA and Elgamal description.
300
301 2004-01-29  Werner Koch  <wk@gnupg.org>
302
303         * agent.h (server_control_s): Add connection_fd field.
304         * command.c (start_command_handler): Init it here.
305         * gpg-agent.c (agent_init_default_ctrl): and here.
306         * call-scd.c: Add the CTRL arg to all functions calling start_scd
307         and pass it to start_scd.  Changed all callers
308         (start_scd): Keep track of the current active connection.
309         (agent_reset_scd): New.
310         * command.c (start_command_handler): Call it here.
311         * learncard.c (agent_handle_learn): Add arg CTRL; changed caller.
312         (send_cert_back): Ditto.
313
314 2004-01-28  Werner Koch  <wk@gnupg.org>
315
316         * trustlist.c (agent_marktrusted): Check whether the trustlist is
317         writable.
318
319 2004-01-27  Werner Koch  <wk@gnupg.org>
320
321         * sexp-parse.h: Moved to ../common.
322
323 2004-01-24  Werner Koch  <wk@gnupg.org>
324
325         * call-scd.c (atfork_cb): New.
326         (start_scd): Make sure secmem gets cleared.
327         * query.c  (atfork_cb): New.
328         (start_pinentry): Make sure secmem gets cleared.
329
330 2004-01-16  Werner Koch  <wk@gnupg.org>
331
332         * findkey.c (agent_key_from_file): Now return an error code so
333         that we have more detailed error messages in the upper layers.
334         This fixes the handling of pinentry's cancel button. 
335         * pksign.c (agent_pksign): Changed accordingly.
336         * pkdecrypt.c (agent_pkdecrypt): Ditto.
337         * command.c (cmd_passwd): Ditto.
338
339 2003-12-16  Werner Koch  <wk@gnupg.org>
340
341         * gpg-agent.c (main): Set the prefixes for assuan logging.
342
343 2003-12-15  Werner Koch  <wk@gnupg.org>
344
345         * protect.c (do_encryption): Use gcry_create_nonce instad of the
346         obsolete WEAK_RANDOM.
347
348 2003-11-20  Werner Koch  <wk@gnupg.org>
349
350         * sexp-parse.h (snext): Don't use atoi_1 and digitp macros, so
351         that this file is useful by other applications too.
352
353 2003-10-27  Werner Koch  <wk@gnupg.org>
354
355         * command.c (cmd_get_confirmation): New command.
356
357 2003-08-20  Timo Schulz  <twoaday@freakmail.de>
358
359         * pksign.c (do_encode_md): Allocate enough space. Cast md
360         byte to unsigned char to prevent sign extension.
361         
362 2003-08-14  Timo Schulz  <twoaday@freakmail.de>
363
364         * pksign.c (do_encode_md): Due to the fact pkcs#1 padding
365         is now in Libgcrypt, use the new interface.
366         
367 2003-07-31  Werner Koch  <wk@gnupg.org>
368
369         * Makefile.am (gpg_agent_LDADD): Added INTLLIBS.
370         (gpg_protect_tool_SOURCES): Added simple-pwquery.[ch]
371
372 2003-07-27  Werner Koch  <wk@gnupg.org>
373
374         Adjusted for gcry_mpi_print and gcry_mpi_scan API change.
375
376 2003-07-15  Werner Koch  <wk@gnupg.org>
377
378         * simple-pwquery.c, simple-pwquery.h:  Moved to ../common.
379         * Makefile.am (gpg_protect_tool_LDADD): Add simple-pwquery.o.
380         Removed it from xx_SOURCES.
381
382 2003-07-04  Werner Koch  <wk@gnupg.org>
383
384         * gpg-agent.c (handle_connections): Kludge to allow use of Pth 1
385         and 2.
386
387 2003-06-30  Werner Koch  <wk@gnupg.org>
388
389         * call-scd.c (learn_status_cb): Store the serialno in PARM.
390
391 2003-06-26  Werner Koch  <wk@gnupg.org>
392
393         * call-scd.c (agent_card_serialno): Don't do a RESET anymore.
394
395 2003-06-25  Werner Koch  <wk@gnupg.org>
396
397         * command.c (cmd_scd): New.
398         * call-scd.c (agent_card_scd): New.
399         * divert-scd.c (divert_generic_cmd): New
400
401         * call-scd.c (agent_card_learn): New callback args SINFO.
402         (learn_status_cb): Pass all other status lines to the sinfo
403         callback.
404         * learncard.c (release_sinfo, sinfo_cb): New.
405         (agent_handle_learn): Pass the new cb to the learn function and
406         pass the collected information back to the client's assuan
407         connection.
408
409         * gpg-agent.c (main): Moved pth_init before gcry_check_version.
410
411 2003-06-24  Werner Koch  <wk@gnupg.org>
412
413         * gpg-agent.c (handle_connections): Adjusted for Pth 2.0
414
415         Adjusted for changes in the libgcrypt API. Some more fixes for the
416         libgpg-error stuff.  
417
418 2003-06-04  Werner Koch  <wk@gnupg.org>
419
420         Renamed error codes from INVALID to INV and removed _ERROR suffixes.
421
422 2003-06-03  Werner Koch  <wk@gnupg.org>
423
424         Changed all error codes in all files to the new libgpg-error scheme.
425
426         * agent.h: Include gpg-error.h and errno.h
427         * Makefile.am: Link with libgpg-error
428
429         * query.c: assuan.h is now a system header.
430         * genkey.c (agent_genkey): Fixed silly use of xmalloc by
431         xtrymalloc.
432
433 2003-04-29  Werner Koch  <wk@gnupg.org>
434
435         * command.c (register_commands): Adjusted for new Assuan semantics.
436
437         * Makefile.am: Don't override LDFLAGS.
438
439 2002-12-04  Werner Koch  <wk@gnupg.org>
440
441         * gpg-agent.c: New variable config_filename.
442         (parse_rereadable_options): New.
443         (main): Use it here.  Add setting of default values, set
444         config_filename.
445         (reread_configuration): Filled with actual code.
446
447 2002-12-03  Werner Koch  <wk@gnupg.org>
448
449         * protect-tool.c (read_key): Don't run make_canonical on a NULL
450         buffer.
451
452         * command.c (parse_hexstring): New.
453         (cmd_sethash): Use it.
454         (parse_keygrip): New.
455         (cmd_havekey, cmd_sigkey): Use it.
456         (cmd_passwd): New.
457         * genkey.c (agent_protect_and_store): New.
458         (store_key): Add arg FORCE.
459         (agent_genkey): Pass false to this force of store_key.
460
461 2002-11-13  Werner Koch  <wk@gnupg.org>
462
463         * gpg-agent.c (main): Switch all messages to utf-8.
464
465         * simple-pwquery.c (agent_send_all_options): Use $GPG_TTY and
466         stdin with ttyname.
467
468         * cache.c (new_data): Uiih - /sizeof d/sizeof *d/.
469
470 2002-11-10  Werner Koch  <wk@gnupg.org>
471
472         * command.c (option_handler): Fix keep_tty check.
473
474 2002-11-06  Werner Koch  <wk@gnupg.org>
475
476         * gpg-agent.c (main): Make sure we have a default ttyname.
477         * command.c (option_handler): Check opt.keep_tty here
478         * query.c (start_pinentry): but not anymore here.
479
480 2002-11-05  Werner Koch  <wk@gnupg.org>
481
482         * agent.h (opt,server_control_s): Move display and lc_ variables
483         to the control struct so that they are per connection.
484         * gpg-agent.c (agent_init_default_ctrl): New.
485         (main): Assign those command line options to new default_* variables.
486         Reset DISPLAY in server mode so that tehre is no implicit default.
487         * command.c (start_command_handler): Initialize and deinitialize
488         the control values.
489         (option_handler): Work on the ctrl values and not on the opt.
490         * query.c (start_pinentry): New argument CTRL to set the display
491         connection specific.  Changed all callers to pass this value.
492         (agent_askpin,agent_get_passphrase,agent_get_confirmation): Add
493         CTRL arg and pass it ot start_pinentry.
494         * command.c (cmd_get_passphrase): Pass CTRL argument.
495         * trustlist.c (agent_marktrusted):  Add CTRL argument  
496         * command.c (cmd_marktrusted): Pass CTRL argument
497         * divert-scd.c (ask_for_card):  Add CTRL arg. 
498         (divert_pksign,divert_pkdecrypt): Ditto.  Changed caller.
499         (getpin_cb): Use OPAQUE to pass the CTRL variable.  Changed both 
500         users.
501         * findkey.c (unprotect): Add CTRL arg.
502         (agent_key_from_file): Ditto.
503
504         * query.c (unlock_pinentry): Disconnect the pinentry so that we
505         start a new one for each request.  This is required to support
506         clients with different environments (e.g. X magic cookies).
507
508 2002-09-05  Neal H. Walfield  <neal@cs.uml.edu>
509
510         * gpg-agent.c (main) [USE_GNU_PTH]: No need to call
511         assuan_set_io_func as assuan is smart.
512
513 2002-09-25  Werner Koch  <wk@gnupg.org>
514
515         * gpg-agent.c (handle_signal): Flush cache on SIGHUP.
516         * cache.c (agent_flush_cache): New.
517
518         * gpg-agent.c, agent.h: Add --keep-display and --keep-tty.
519         * query.c (start_pinentry): Implement them.  The option passing
520         needs more thoughts.
521
522 2002-09-09  Werner Koch  <wk@gnupg.org>
523
524         * gpg-agent.c (create_private_keys_directory)
525         (create_directories): New.
526         (main): Try to create a home directory.
527
528 2002-09-04  Neal H. Walfield  <neal@g10code.de>
529
530         * gpg-agent.c (main): Use sigaction, not signal.
531
532 2002-09-03  Neal H. Walfield  <neal@g10code.de>
533
534         * findkey.c: Include <fcntl.h>.
535         (agent_write_private_key): Prefer POSIX compatibity, open and
536         fdopen, over the simplicity of GNU extensions, fopen(file, "x").
537
538 2002-08-22  Werner Koch  <wk@gnupg.org>
539
540         * query.c (agent_askpin): Provide the default desc text depending
541         on the pininfo.  Do the basic PIN verification only when
542         min_digits is set.
543
544 2002-08-21  Werner Koch  <wk@gnupg.org>
545
546         * query.c (agent_askpin): Hack to show the right default prompt.
547         (agent_get_passphrase): Ditto.
548
549         * trans.c: Removed and replaced all usages with standard _()
550
551         * divert-scd.c (getpin_cb): Pass a more descritive text to the
552         pinentry.
553
554         * Makefile.am: Renamed the binary protect-tool to gpg-protect-tool.
555         * protect-tool.c: Removed the note about internal use only.
556
557         * gpg-agent.c (main): New option --daemon so that the program is
558         not accidently started in the background.
559
560 2002-08-16  Werner Koch  <wk@gnupg.org>
561
562         * call-scd.c (learn_status_cb): Handle CERTINFO status.
563         (agent_card_learn): Add args for certinfo cb.
564         * learncard.c (release_certinfo,certinfo_cb): New.
565         (send_cert_back): New. With factored out code from ..
566         (agent_handle_learn): here.  Return certinfo stuff.
567
568 2002-07-26  Werner Koch  <wk@gnupg.org>
569
570         * gpg-agent.c (main): New option --ignore-cache-for-signing.
571         * command.c (option_handler): New server option
572         use-cache-for-signing defaulting to true.
573         (cmd_pksign): handle global and per session option.
574         * findkey.c (agent_key_from_file, unprotect): New arg
575         ignore_cache.  Changed all callers.
576         * pksign.c (agent_pksign): Likewise.
577
578 2002-06-29  Werner Koch  <wk@gnupg.org>
579
580         * query.c (start_pinentry): Use GNUPG_DERAULT_PINENTRY.
581         * call-scd.c (start_scd): Use GNUPG_DEFAULT_SCDAEMON.
582
583 2002-06-28  Werner Koch  <wk@gnupg.org>
584
585         * protect-tool.c (export_p12_file): New.
586         (main): New command --p12-export.
587         * minip12.c (create_final,p12_build,compute_tag_length): New.
588         (store_tag_length): New.
589
590 2002-06-27  Werner Koch  <wk@gnupg.org>
591
592         * minip12.c (crypt_block): Renamed from decrypt_block, add arg to
593         allow encryption.
594
595         * Makefile.am (pkglib_PROGRAMS): Put protect-tool there.
596
597         * findkey.c (agent_write_private_key,agent_key_from_file)
598         (agent_key_available): Use GNUPG_PRIVATE_KEYS_DIR constant.
599         * gpg-agent.c (main): Use GNUPG_DEFAULT_HOMEDIR constant.
600
601         * protect-tool.c (store_private_key): New.
602         (import_p12_file): Store the new file if requested.
603         (main): New options --force and --store.
604
605         * gpg-agent.c (main): Set a global flag when running detached.
606         * query.c (start_pinentry): Pass the list of FD to keep in the
607         child when not running detached.
608         * call-scd.c (start_scd): Ditto.
609
610 2002-06-26  Werner Koch  <wk@gnupg.org>
611
612         * command.c (cmd_istrusted, cmd_listtrusted, cmd_marktrusted)
613         (cmd_pksign, cmd_pkdecrypt, cmd_genkey, cmd_get_passphrase)
614         (cmd_learn): Print an error message for a failed operation.
615
616         * simple-pwquery.c, simple-pwquery.h: New.
617         * protect-tool. (get_passphrase): New, used to get a passphrase
618         from the agent if none was given on the command line.
619
620 2002-06-25  Werner Koch  <wk@gnupg.org>
621
622         * protect-tool.c (rsa_key_check): New.
623         (import_p12_file): New.
624         (main): New command --p12-import.
625         * minip12.c, minip12.h: New.
626
627 2002-06-24  Werner Koch  <wk@gnupg.org>
628
629         * protect-tool.c (read_file): New.
630         (read_key): Factored most code out to read_file.
631
632 2002-06-17  Werner Koch  <wk@gnupg.org>
633
634         * agent.h: Add a callback function to the pin_entry_info structure.
635         * query.c (agent_askpin): Use the callback to check for a correct
636         PIN.  Removed the start_err_text argument because it is not
637         anymore needed; changed callers.
638         * findkey.c (unprotect): Replace our own check loop by a callback.
639         (try_unprotect_cb): New.
640         * genkey.c (reenter_compare_cb): New.
641         (agent_genkey): Use this callback here.  Fixed setting of the pi2
642         variable and a segv in case of an empty PIN.
643
644         * divert-scd.c (getpin_cb): Removed some unused stuff and
645         explained what we still have to change.
646
647 2002-06-12  Werner Koch  <wk@gnupg.org>
648
649         * gpg-agent.c (main): New option --disable-pth.
650
651 2002-06-11  Werner Koch  <wk@gnupg.org>
652
653         * protect-tool.c: Add command --show-keygrip
654         (show_keygrip): New.
655
656 2002-05-23  Werner Koch  <wk@gnupg.org>
657
658         * call-scd.c: Seirialized all scdaeom access when using Pth.
659
660         * cache.c: Made the cache Pth-thread-safe.
661         (agent_unlock_cache_entry): New.
662         * findkey.c (unprotect): Unlock the returned cache value.
663         * command.c (cmd_get_passphrase): Ditto.
664
665         * gpg-agent.c (main): Register pth_read/write with Assuan.
666
667 2002-05-22  Werner Koch  <wk@gnupg.org>
668
669         * query.c: Serialized all pinentry access when using Pth.
670
671         * gpg-agent.c (handle_signal,start_connection_thread)
672         (handle_connections): New
673         (main): Use the new Pth stuff to allow concurrent connections.
674         * command.c (start_command_handler): Add new arg FD so that the
675         fucntion can also be used for an already connected socket.
676         * Makefile.am: Link with Pth.
677
678 2002-05-14  Werner Koch  <wk@gnupg.org>
679
680         * cache.c (housekeeping, agent_put_cache): Use our time() wrapper.
681
682 2002-04-26  Werner Koch  <wk@gnupg.org>
683
684         * cache.c (agent_put_cache): Reinitialize the creation time and
685         the ttl when reusing a slot.
686
687         * call-scd.c (start_scd): Print debug messages only with debug
688         flags set.
689         * query.c (start_pinentry): Ditto.
690
691 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
692
693         * agent.h (agent_get_confirmation): Replace paramter prompt with
694         two parameters ok and cancel.
695         * query.c (agent_get_confirmation): Likewise.  Implement this.
696         * trustlist.c (agent_marktrusted): Fix invocation of
697         agent_get_confirmation.
698         * divert-scd.c (ask_for_card): Likewise.
699
700 2002-04-24  Marcus Brinkmann  <marcus@g10code.de>
701
702         * agent.h (struct opt): Add members display, ttyname, ttytype,
703         lc_ctype, and lc_messages.
704         * gpg-agent.c (enum cmd_and_opt_values): Add oDisplay, oTTYname,
705         oTTYtype, oLCctype, and LCmessages.
706         (main): Handle these options.
707         * command.c (option_handler): New function.
708         (register_commands): Register option handler.
709         * query.c (start_pinentry): Pass the various display and tty
710         options to the pinentry.
711
712 2002-04-05  Werner Koch  <wk@gnupg.org>
713
714         * protect-tool.c (show_file): New.  Used as default action.
715
716 2002-03-28  Werner Koch  <wk@gnupg.org>
717
718         * divert-scd.c (encode_md_for_card): Don't do the pkcs-1 padding,
719         the scdaemon should take care of it.
720         (ask_for_card): Hack to not display the trailing zero.
721
722 2002-03-11  Werner Koch  <wk@gnupg.org>
723
724         * learncard.c (kpinfo_cb): Remove the content restrictions from
725         the keyID.
726
727 2002-03-06  Werner Koch  <wk@gnupg.org>
728
729         * learncard.c: New.
730         * divert-scd.c (ask_for_card): The serial number is binary so
731         convert it to hex here.
732         * findkey.c (agent_write_private_key): New.
733         * genkey.c (store_key): And use it here.
734         
735         * pkdecrypt.c (agent_pkdecrypt): Changed the way the diversion is done.
736         * divert-scd.c (divert_pkdecrypt): Changed interface and
737         implemented it.
738
739 2002-03-05  Werner Koch  <wk@gnupg.org>
740
741         * call-scd.c (inq_needpin): New.
742         (agent_card_pksign): Add getpin_cb args.
743         (agent_card_pkdecrypt): New.
744
745 2002-03-04  Werner Koch  <wk@gnupg.org>
746
747         * pksign.c (agent_pksign): Changed how the diversion is done.
748         * divert-scd.c (divert_pksign): Changed interface and implemented it.
749         (encode_md_for_card): New.
750         * call-scd.c (agent_card_pksign): New.
751
752 2002-02-28  Werner Koch  <wk@gnupg.org>
753
754         * pksign.c (agent_pksign): Detect whether a Smartcard is to be
755         used and divert the operation in this case.
756         * pkdecrypt.c (agent_pkdecrypt): Likewise
757         * findkey.c (agent_key_from_file): Add optional arg shadow_info
758         and have it return information about a shadowed key.
759         * protect.c (agent_get_shadow_info): New.
760
761         * protect.c (snext,sskip,smatch): Moved to
762         * sexp-parse.h: New file.
763         * divert-scd.c: New.
764         
765 2002-02-27  Werner Koch  <wk@gnupg.org>
766
767         * protect.c (agent_shadow_key): New.
768
769         * command.c (cmd_learn): New command LEARN.
770         * gpg-agent.c: New option --scdaemon-program.
771         * call-scd.c (start_scd): New. Based on query.c
772         * query.c: Add 2 more arguments to all uses of assuan_transact.
773
774 2002-02-18  Werner Koch  <wk@gnupg.org>
775
776         * findkey.c (unprotect): Show an error message for a bad passphrase.
777
778         * command.c (cmd_marktrusted): Implemented.
779         * trustlist.c (agent_marktrusted): New.
780         (open_list): Add APPEND arg.
781
782         * query.c (agent_get_confirmation): New.
783
784 2002-02-06  Werner Koch  <wk@gnupg.org>
785
786         * cache.c (housekeeping): Fixed linking in the remove case.
787
788 2002-02-01  Werner Koch  <wk@gnupg.org>
789
790         * gpg-agent.c: New option --default-cache-ttl.
791         * cache.c (agent_put_cache): Use it.
792         
793         * cache.c: Add a few debug outputs.
794
795         * protect.c (agent_private_key_type): New.
796         * agent.h: Add PRIVATE_KEY_ enums.
797         * findkey.c (agent_key_from_file): Use it to decide whether we
798         have to unprotect a key.
799         (unprotect): Cache the passphrase.
800         
801         * findkey.c (agent_key_from_file,agent_key_available): The key
802         files do now require a ".key" suffix to make a script's life
803         easier. 
804         * genkey.c (store_key): Ditto.
805
806 2002-01-31  Werner Koch  <wk@gnupg.org>
807
808         * genkey.c (store_key): Protect the key.
809         (agent_genkey): Ask for the passphrase.
810         * findkey.c (unprotect): Actually unprotect the key.
811         * query.c (agent_askpin): Add an optional start_err_text. 
812
813 2002-01-30  Werner Koch  <wk@gnupg.org>
814
815         * protect.c: New.  
816         (hash_passphrase): Based on the GnuPG 1.0.6 version.
817         * protect-tool.c: New
818
819 2002-01-29  Werner Koch  <wk@gnupg.org>
820
821         * findkey.c (agent_key_available): New.
822         * command.c (cmd_havekey): New.
823         (register_commands): And register new command.
824
825 2002-01-20  Werner Koch  <wk@gnupg.org>
826
827         * command.c (cmd_get_passphrase): Remove the plus signs.
828
829         * query.c (start_pinentry): Send no-grab option to pinentry
830         * gpg-agent.c (main): Move variable grab as no_grab to agent.h.
831
832 2002-01-19  Werner Koch  <wk@gnupg.org>
833
834         * gpg-agent.c (main): Disable core dumps.
835
836         * cache.c: New.
837         * command.c (cmd_get_passphrase): Use the cache.
838         (cmd_clear_passphrase): Ditto.
839
840         * gpg-agent.c:  Removed unused cruft and implement the socket
841         based server.
842         (my_strusage): Take bug report address from configure.ac.
843         * command.c (start_command_handler): Add an argument to start as
844         regular server.
845         (start_command_handler): Enable Assuan logging.
846
847 2002-01-15  Werner Koch  <wk@gnupg.org>
848
849         * trustlist.c: New.
850         * command.c (cmd_istrusted, cmd_listtrusted, cmd_marktrusted): New.
851
852 2002-01-07  Werner Koch  <wk@gnupg.org>
853
854         * genkey.c: Store the secret part and return the public part.
855
856 2002-01-03  Werner Koch  <wk@gnupg.org>
857
858         * command.c (cmd_get_passphrase): New.
859         (cmd_clear_passphrase): New.
860         * query.c (agent_get_passphrase): New.
861
862 2002-01-02  Werner Koch  <wk@gnupg.org>
863
864         * genkey.c: New.
865         * command.c (cmd_genkey): New.
866
867         * command.c (rc_to_assuan_status): Removed and changed all callers
868         to use map_to_assuan_status.
869         
870 2001-12-19  Werner Koch  <wk@gnupg.org>
871
872         * keyformat.txt: New. 
873
874 2001-12-19  Marcus Brinkmann  <marcus@g10code.de>
875
876         * query.c (start_pinentry): Add new argument to assuan_pipe_connect.
877
878 2001-12-18  Werner Koch  <wk@gnupg.org>
879
880         * Makefile.am: Use LIBGCRYPT macros
881
882 2001-12-14  Werner Koch  <wk@gnupg.org>
883
884         * gpg-agent.c (main): New option --batch.  New option --debug-wait
885         n, so that it is possible to attach gdb when used in server mode.
886         * query.c (agent_askpin): Don't ask in batch mode.
887
888         * command.c: Removed the conversion macros as they are now in
889         ../common/util.h.
890
891 2001-12-14  Marcus Brinkmann  <marcus@g10code.de>
892
893         * query.c (LINELENGTH): Removed.
894         (agent_askpin): Use ASSUAN_LINELENGTH, not LINELENGTH.
895
896 2001-11-19  Werner Koch  <wk@gnupg.org>
897
898         * gpg-agent.c: Removed all GUI code, removed code for old
899         protocol.  New code to use the Assuan protocol as a server and
900         also to communicate with a new ask-passphrase utility.
901
902 2000-11-22  Werner Koch  <wk@gnupg.org>
903
904         * gpg-agent.c (main): csh support by Dan Winship, new options --sh
905         and --csh and set default by consulting $SHELL.
906
907 Mon Aug 21 17:59:17 CEST 2000  Werner Koch  <wk@openit.de>
908
909         * gpg-agent.c (passphrase_dialog): Cleanup the window and added the
910         user supplied text to the window.
911         (main): Fixed segv in gtk_init when used without a command to start.
912
913         * gpg-agent.c: --flush option.
914         (req_flush): New.
915         (req_clear_passphrase): Implemented.
916
917 Fri Aug 18 14:27:14 CEST 2000  Werner Koch  <wk@openit.de>
918
919         * gpg-agent.c: New.
920         * Makefile.am: New.
921
922
923  Copyright 2001, 2002 Free Software Foundation, Inc.
924
925  This file is free software; as a special exception the author gives
926  unlimited permission to copy and/or distribute it, with or without
927  modifications, as long as this notice is preserved.
928
929  This file is distributed in the hope that it will be useful, but
930  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
931  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.