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