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