Use a default argument for --write-env-file.
[gnupg.git] / agent / ChangeLog
1 2005-08-16  Werner Koch  <wk@g10code.com>
2
3         * gpg-agent.c (main): Use a default file name for --write-env-file.
4
5 2005-07-25  Werner Koch  <wk@g10code.com>
6
7         * findkey.c (agent_public_key_from_file): Fixed array assignment.
8         This was the cause for random segvs.
9
10 2005-06-29  Werner Koch  <wk@g10code.com>
11
12         * command-ssh.c (data_sign): Removed empty statement.
13
14 2005-06-21  Werner Koch  <wk@g10code.com>
15
16         * minip12.c (create_final): Cast size_t to ulong for printf. 
17         (build_key_bag, build_cert_bag, build_cert_sequence): Ditto.
18
19 2005-06-16  Werner Koch  <wk@g10code.com>
20
21         * protect-tool.c (make_advanced): Makde RESULT a plain char.
22         * call-scd.c (unescape_status_string): Need to cast unsigned char*
23         for strcpy.
24         (agent_card_pksign): Made arg R_BUF an unsigned char**.
25         * divert-scd.c (divert_pksign): Made SIGVAL unsigned char*.
26         (encode_md_for_card): Initialize R_VAL and R_LEN.
27         * genkey.c (store_key): Made BUF unsigned.
28         * protect.c (do_encryption): Ditto.
29         (do_encryption): Made arg PROTBEGIN unsigned. Initialize RESULT
30         and RESULTLEN even on error.
31         (merge_lists): Need to cast unsigned char * for strcpy. Initialize 
32         RESULTand RESULTLEN even on error.
33         (agent_unprotect): Likewise for strtoul.
34         (make_shadow_info): Made P and INFO plain char.
35         (agent_shadow_key): Made P plain char.
36
37 2005-06-15  Werner Koch  <wk@g10code.com>
38
39         * query.c (agent_get_passphrase): Made HEXSTRING a char*.
40         * command-ssh.c (ssh_key_grip): Made arg BUFFER unsigned.
41         (ssh_key_grip): Simplified.
42         (data_sign): Initialize variables with the definition.
43         (ssh_convert_key_to_blob): Make sure that BLOB and BLOB_SIZE
44         are set to NULL on error.  Cool, gcc-4 detects uninitialized stuff
45         beyond function boundaries; well it can't know that we do error
46         proper error handling so that this was not a real error.
47         (file_to_buffer): Likewise for BUFFER and BUFFER_N.
48         (data_sign): Likewise for SIG and SIG_N.
49         (stream_read_byte): Set B to a value even on error.
50         * command.c (cmd_genkey): Changed VALUE to char.
51         (cmd_readkey): Cast arg for gcry_sexp_sprint.
52         * agent.h (struct server_control_s): Made KEYGRIP unsigned.
53
54 2005-06-13  Werner Koch  <wk@g10code.com>
55
56         * command-ssh.c (start_command_handler_ssh): Reset the SCD.
57
58 2005-06-09  Werner Koch  <wk@g10code.com>
59
60         * gpg-agent.c (create_socket_name): New option --max-cache-ttl-ssh.
61         * cache.c (housekeeping): Use it.
62         (agent_put_cache): Use a switch to get the default ttl so that it
63         is easier to add more cases.
64
65 2005-06-06  Werner Koch  <wk@g10code.com>
66
67         * gpg-agent.c: New option --default-cache-ttl-ssh.
68         * agent.h (cache_mode_t): New.
69         * pksign.c (agent_pksign_do): New arg CACHE_MODE to replace the
70         ARG IGNORE_CACHE. Changed all callers.
71         (agent_pksign): Ditto.
72         * findkey.c (agent_key_from_file): Ditto. Canged all callers.
73         (unprotect): Ditto.
74         * command-ssh.c (data_sign): Use CACHE_MODE_SSH.
75         * cache.c (agent_get_cache): New arg CACHE_MODE.
76         (agent_put_cache): Ditto.  Store it in the cache.
77
78         * query.c (agent_query_dump_state, dump_mutex_state): New.
79         (unlock_pinentry): Reset the global context before releasing the
80         mutex.
81         * gpg-agent.c (handle_signal): Dump query.c info on SIGUSR1.
82
83         * call-scd.c (agent_scd_check_aliveness): Always do a waitpid and
84         add a timeout to the locking.
85
86 2005-06-03  Werner Koch  <wk@g10code.com>
87
88         * command.c (cmd_updatestartuptty): New.
89
90         * gpg-agent.c: New option --write-env-file.
91         
92         * gpg-agent.c (handle_connections): Make sure that the signals we
93         are handling are not blocked.Block signals while creating new
94         threads.
95
96 2005-06-02  Werner Koch  <wk@g10code.com>
97
98         * call-scd.c (agent_scd_dump_state, dump_mutex_state): New.
99         * gpg-agent.c (handle_signal): Print it on SIGUSR1.
100         (handle_connections): Include the file descriptor into the
101         threadnames.
102
103 2005-06-01  Werner Koch  <wk@g10code.com>
104
105         * gpg-agent.c: Include setenv.h.
106
107 2005-05-31  Werner Koch  <wk@g10code.com>
108
109         * agent.h (out_of_core): s/__inline__/inine.  Noted by Ray Link.
110
111 2005-05-25  Werner Koch  <wk@g10code.com>
112
113         * gpg-agent.c (main): Do not unset the DISPLAY when we are
114         continuing as child.
115
116 2005-05-24  Werner Koch  <wk@g10code.com>
117
118         * call-scd.c (inq_needpin): Skip leading spaces in of PIN
119         description.
120         * divert-scd.c (getpin_cb): Enhanced to cope with description
121         flags.
122         * query.c (agent_askpin): Add arg PROMPT_TEXT. Changed all
123         callers.
124
125 2005-05-21  Werner Koch  <wk@g10code.com>
126
127         * call-scd.c (start_scd): Don't test for an alive scdaemon here.
128         (agent_scd_check_aliveness): New.
129         * gpg-agent.c (handle_tick): Test for an alive scdaemon.
130         (handle_signal): Print thread info on SIGUSR1.
131
132 2005-05-20  Werner Koch  <wk@g10code.com>
133
134         * protect-tool.c: New option --canonical.
135         (show_file): Implement it.
136
137         * keyformat.txt: Define the created-at attribute for keys.
138
139 2005-05-18  Werner Koch  <wk@g10code.com>
140
141         * divert-scd.c (ask_for_card): Removed the card reset kludge.
142
143 2005-05-17  Werner Koch  <wk@g10code.com>
144
145         * call-scd.c (unlock_scd): Add new arg CTRL. Changed all callers.
146         (start_scd): Reoworked to allow for additional connections.
147         * agent.h (ctrl_t): Add local data for the SCdaemon.
148         * command.c (start_command_handler): Release SERVER_LOCAL.
149
150         * gpg-agent.c (create_server_socket): Use xmalloc.
151         (main): Removed option --disable-pth a dummy.  Removed non-pth
152         code path.
153         (cleanup_sh): Removed.  Not needed anymore.
154
155 2005-05-05  Moritz Schulte  <moritz@g10code.com>
156
157         * command-ssh.c (ssh_key_to_buffer): Rename to ...
158         (ssh_key_to_protected_buffer): ... this; change callers.
159         Improved documentation.
160         Use ssh_key_grip(), where gcry_pk_get_keygrip() has been used
161         before.
162         (ssh_handler_sign_request): Removed unusued variable P.
163
164 2005-04-20  Moritz Schulte  <moritz@g10code.com>
165
166         * command-ssh.c (ssh_handler_request_identities): Removed
167         debugging code (sleep call), which was commited unintenionally.
168
169 2005-04-20  Werner Koch  <wk@g10code.com>
170
171         * minip12.c (parse_bag_encrypted_data): Fix the unpadding hack.
172
173         * gpg-agent.c: New option --disable-scdaemon.
174         (handle_connections): Add time event to drive ...
175         (handle_tick): New function.
176         (main): Record the parent PID. Fixed segv when using ssh and a
177         command.
178
179         * call-scd.c (start_scd): Take care of this option.
180
181 2005-04-03  Moritz Schulte  <moritz@g10code.com>
182
183         * command-ssh.c (ssh_request_spec): New member: secret_input.
184         (REQUEST_SPEC_DEFINE): New argument: secret_input.
185         (request_specs): Add secret_input flag.
186         (request_spec_lookup): New function ...
187         (ssh_request_process): ... use it here; depending on secret_input
188         flag allocate secure or non-secure memory.
189
190 2005-03-02  Moritz Schulte  <moritz@g10code.com>
191
192         * command-ssh.c (sexp_key_extract): Removed FIXME, since
193         xtrymallos does set errno correctly by now.
194         (sexp_extract_identifier): Remove const attribute from identifier.
195         (ssh_handler_request_identities): Remove const attribute from
196         key_type; removes ugly casts and FIXME.
197         (sexp_key_extract): Remove const attribute from comment.
198         (ssh_send_key_public): Remove const attribute from
199         key_type/comment; removes ugly cast.
200         (data_sign): Remove const attribute from identifier; removes ugly
201         cast.
202         (key_secret_to_public): Remove const attribute from comment;
203         removes ugly cast.
204         (ssh_handler_sign_request): Remove const attribute from p.
205         (sexp_key_extract): Use make_cstring().
206         (ssh_key_extract_comment): Likewise.
207         (ssh_key_to_buffer): Use secure memory for memory area to hold the
208         key S-Expression.
209         Added more comments.
210
211 2005-02-25  Werner Koch  <wk@g10code.com>
212
213         * findkey.c (modify_description): Keep invalid % escapes, so that
214         %0A may pass through.
215
216         * agent.h (server_control_s): New field USE_AUTH_CALL.
217         * call-scd.c (agent_card_pksign): Make use of it.
218         * command-ssh.c (data_sign): Set the flag.
219         (ssh_send_key_public): New arg OVERRIDE_COMMENT.
220         (card_key_available): Add new arg CARDSN.
221         (ssh_handler_request_identities): Use the card s/n as comment.
222         (sexp_key_extract): Use GCRYMPI_FMT_STD.
223         (data_sign): Ditto.
224
225         * learncard.c (make_shadow_info): Moved to ..
226         * protect.c (make_shadow_info): .. here. Return NULL on malloc
227         failure. Made global.
228         * agent.h: Add prototype.
229
230 2005-02-24  Werner Koch  <wk@g10code.com>
231
232         * call-scd.c (unescape_status_string): New. Actual a copy of
233         ../g10/call-agent.c
234         (card_getattr_cb, agent_card_getattr): New.
235
236         * command-ssh.c (card_key_available): New.
237         (ssh_handler_request_identities): First see whether a card key is
238         available.
239
240         * gpg-agent.c (handle_connections): Need to check for events if
241         select returns with -1.
242
243 2005-02-23  Werner Koch  <wk@g10code.com>
244
245         * command-ssh.c (get_passphrase): Removed.
246         (ssh_identity_register): Partly rewritten.
247         (open_control_file, search_control_file, add_control_entry): New.
248         (ssh_handler_request_identities): Return only files listed in our
249         control file.
250
251         * findkey.c (unprotect): Check for allocation error.
252
253         * agent.h (opt): Add fields to record the startup terminal
254         settings.
255         * gpg-agent.c (main): Record them and do not force keep display
256         with --enable-ssh-support.
257         * command-ssh.c (start_command_handler_ssh): Use them here.
258
259         * gpg-agent.c: Renamed option --ssh-support to
260         --enable-ssh-support.
261
262         * command.c (cmd_readkey): New.
263         (register_commands): Register new command "READKEY".
264
265         * command-ssh.c (ssh_request_process): Improved logging.
266
267         * findkey.c (agent_write_private_key): Always use plain open.
268         Don't depend on an umask for permissions.
269         (agent_key_from_file): Factored file reading code out to ..
270         (read_key_file): .. new function.
271         (agent_public_key_from_file): New.
272
273 2005-02-22  Werner Koch  <wk@g10code.com>
274
275         * command-ssh.c (stream_read_string): Removed call to abort on
276         memory error because the CVS version of libgcrypt makes sure
277         that ERRNO gets always set on error even with a faulty user
278         supplied function.
279
280 2005-02-19  Moritz Schulte  <moritz@g10code.com>
281
282         * command-ssh.c (ssh_receive_mpint_list): Slightly rewritten, do
283         not use elems_secret member of key_spec.
284         (ssh_key_type_spec): Removed member: elems_secret.
285         (ssh_key_types): Removed elems_secret data.
286         (ssh_sexp_construct): Renamed to ...
287         (sexp_key_construct): ... this; changed callers.
288         (ssh_sexp_extract): Renamed to ...
289         (sexp_key_extract): ... this; changed callers.
290         (ssh_sexp_extract_key_type): Renamed to ...
291         (sexp_extract_identifier): ... this; changed callers; use
292         make_cstring().
293         Added more comments.
294
295 2005-02-18  Moritz Schulte  <moritz@g10code.com>
296
297         * command-ssh.c (ssh_sexp_construct): Rewritten generation of sexp
298         template, clarified.
299         (ssh_sexp_extract): Support shadowed-private-key-sexp; treat
300         protected-private key and shadowed-private-key as public keys.
301         (key_secret_to_public): Rewritten: simply use ssh_sexp_extract()
302         and ssh_sexp_construct().
303
304 2005-02-15  Werner Koch  <wk@g10code.com>
305
306         * findkey.c (modify_description): Don't increment OUT_LEN during
307         the second pass.
308
309 2005-02-14  Moritz Schulte  <moritz@g10code.com>
310
311         * command-ssh.c (es_read_byte): Renamed to ...
312         (stream_es_read_byte): ... this; changed callers.
313         (es_write_byte): Renamed to ...
314         (stream_write_byte): ... this; changed callers.
315         (es_read_uint32): Renamed to ...
316         (stream_read_uint32): ... this; changed callers.
317         (es_write_uint32): Renamed to ...
318         (stream_write_uint32): ... this; changed callers.
319         (es_read_data): Renamed to ...
320         (stream_read_data): ... this; changed callers.
321         (es_write_data): Renamed to ...
322         (stream_write_data): ... this; changed callers.
323         (es_read_string): Renamed to ...
324         (stream_read_string): ... this; changed callers.
325         (es_read_cstring): Renamed to ...
326         (stream_read_cstring): ... this; changed callers.
327         (es_write_string): Renamed to ...
328         (stream_write_string): ... this; changed callers.
329         (es_write_cstring): Renamed to ...
330         (stream_write_cstring): ... this; changed callers.
331         (es_read_mpi): Renamed to ...
332         (stream_read_mpi): ... this; changed callers.
333         (es_write_mpi): Renamed to ...
334         (stream_write_mpi): ... this; changed callers.
335         (es_copy): Renamed to ...
336         (stream_copy): ... this; changed callers.
337         (es_read_file): Renamed to ...
338         (file_to_buffer): ... this; changed callers.
339         (ssh_identity_register): Removed variable description_length;
340         changed code to use asprintf for description.
341         (stream_write_uint32): Do not filter out the last byte of shift
342         expression.
343         (uint32_construct): New macro ...
344         (stream_read_uint32): ... use it; removed unnecessary cast.
345
346 2005-02-03  Werner Koch  <wk@g10code.com>
347
348         * agent.h (agent_exit): Add JNLIB_GCC_A_NR to indicate that this
349         function won't return.
350
351         * gpg-agent.c (check_for_running_agent): Initialize pid to a
352         default value if not needed.
353
354         * command-ssh.c: Removed stdint.h.  s/byte_t/unsigned char/,
355         s/uint32/u32/ becuase that is what we have always used in GnuPG.
356         (ssh_request_specs): Moved to top of file.
357         (ssh_key_types): Ditto.
358         (make_cstring): Ditto.
359         (data_sign): Don't use a variable for the passphrase prompt, make
360         it translatable.
361         (ssh_request_process): 
362         
363
364         * findkey.c (modify_description): Renamed arguments for clarity,
365         polished documentation.  Make comment a C-string.  Fixed case of
366         DESCRIPTION being just "%".
367         (agent_key_from_file): Make sure comment string to a C-string.
368
369         * gpg-agent.c (create_socket_name): Cleanup the implemntation, use
370         DIMof, agent_exit, removed superflous args and return the
371         allocated string as value.  Documented.  Changed callers.
372         (create_server_socket): Cleanups similar to above.  Changed callers.
373         (cleanup_do): Renamed to ..
374         (remove_socket): .. this.  Changed caller.
375         (handle_connections): The signals are to be handled in the select
376         and not in the accept.  Test all FDs after returning from a
377         select.  Remove the event tests from the accept calls.  The select
378         already assured that the accept won't block.
379
380 2005-01-29  Moritz Schulte  <moritz@g10code.com>
381
382         * command-ssh.c (ssh_handler_request_identities)
383         (ssh_handler_sign_request, ssh_handler_add_identity)
384         (ssh_handler_remove_identity, ssh_handler_remove_all_identities)
385         (ssh_handler_lock, ssh_handler_unlock): Changed to return an error
386         code instead of a boolean.
387         (ssh_request_process): Changed to return a boolean instead of an
388         error; adjust caller.
389         (ssh_request_handle_t): Adjusted type.
390         (ssh_request_spec): New member: identifier.
391         (REQUEST_SPEC_DEFINE): New macro; use it for initialization of
392         request_specs[].
393         (ssh_request_process): In debugging mode, log identifier of
394         handler to execute.
395         (start_command_handler_ssh): Moved most of the stream handling
396         code ...
397         (ssh_request_process): ... here.
398
399 2005-01-28  Moritz Schulte  <moritz@g10code.com>
400
401         * command-ssh.c (ssh_handler_add_identity): Pass ctrl to
402         ssh_identity_register().
403         (ssh_identity_register): New argument: ctrl; pass ctrl to
404         get_passphrase().
405         (get_passphrase): Pass ctrl instead of NULL to agent_askpin().
406         (start_command_handler_ssh): Use agent_init_default_ctrl();
407         deallocate structure members, which might be dynamically
408         allocated.
409         (lifetime_default): Removed variable.
410         (ssh_handler_add_identity): Fix ttl handling; renamed variable
411         `death' to `ttl'.
412         (ssh_identity_register): Fix key grip handling.
413
414 2005-01-26  Moritz Schulte  <moritz@g10code.com>
415
416         * command-ssh.c (ssh_handler_sign_request): Confirm to agent
417         protocol in case of failure.
418
419         * command-ssh.c: New file.
420
421         * Makefile.am (gpg_agent_SOURCES): New source file: command-ssh.c.
422
423         * findkey.c (modify_description): New function.
424         (agent_key_from_file): Support comment field in key s-expressions.
425
426         * gpg-agent.c (enum cmd_and_opt_values): New item: oSSHSupport.
427         (opts) New entry for oSSHSupport.
428         New variable: socket_name_ssh.
429         (cleanup_do): New function based on cleanup().
430         (cleanup): Use cleanup_do() for socket_name and socket_name_ssh.
431         (main): New switch case for oSSHSupport.
432         (main): Move socket name creation code to ...
433         (create_socket_name): ... this new function.
434         (main): Use create_socket_name() for creating socket names for
435         socket_name and for socket_name_ssh in case ssh support is
436         enabled.
437         Move socket creation code to ...
438         (create_server_socket): ... this new function.
439         (main): Use create_server_socket() for creating sockets.
440         In case standard_socket is set, do not only store a socket name in
441         socket_name, but also in socket_name_ssh.
442         Generate additional environment info strings for ssh support.
443         Pass additional ssh socket argument to handle_connections.
444         (start_connection_thread_ssh): New function.
445         (handle_connections): Use select to multiplex between gpg-agent
446         and ssh-agent protocol.
447
448         * agent.h (struct opt): New member: ssh_support.
449         (start_command_handler_ssh): Add prototype.
450
451 2005-01-04  Werner Koch  <wk@g10code.com>
452
453         * trustlist.c (agent_marktrusted): Use "Cancel" for the first
454         confirmation and made the strings translatable.
455
456         * cache.c (agent_put_cache): Fix the test for using the default
457         TTL.
458
459 2004-12-21  Werner Koch  <wk@g10code.com>
460
461         * preset-passphrase.c (preset_passphrase): Handle --passphrase.
462
463         * Makefile.am (gpg_preset_passphrase_LDADD): Reorder libs so that
464         pwquery may use stuff from jnlib.  Conditionally add -lwsock2
465         (gpg_protect_tool_LDADD): Ditto.
466
467         * preset-passphrase.c (main): Use default_homedir().
468         (main) [W32]: Initialize sockets.
469
470 2004-12-21  Marcus Brinkmann  <marcus@g10code.de>
471
472         * Makefile.am (libexec_PROGRAMS): Add gpg-preset-passphrase.
473         (gpg_preset_passphrase_SOURCES, gpg_preset_passphrase_LDADD): New
474         targets.
475         * agent.h (opt): New member allow_cache_passphrase.
476         * cache.c (housekeeping): Check if R->ttl is not negative.
477         (agent_put_cache): Allow ttl to be negative.
478         * command.c (parse_hexstring): Allow something to follow the
479         hexstring.
480         (cmd_cache_passphrase): New function.
481         (register_commands): Add it.
482         * gpg-agent.c: Handle --allow-preset-passphrase.
483         * preset-passphrase.c: New file.
484
485 2004-12-21  Werner Koch  <wk@g10code.com>
486
487         * gpg-agent.c (main): Use default_homedir().
488         * protect-tool.c (main): Ditto. 
489
490 2004-12-20  Werner Koch  <wk@g10code.com>
491
492         * gpg-agent.c (main) [W32]: Now that Mutexes work we can remove
493         the pth_init kludge.
494         (main): Add new options --[no-]use-standard-socket.
495         (check_for_running_agent): Check whether it is running on the
496         standard socket.
497
498         * call-scd.c (init_membuf, put_membuf, get_membuf): Removed.  We
499         now use the identical implementation from ../common/membuf.c.
500
501         * pksign.c (agent_pksign): Changed arg OUTFP to OUTBUF and use
502         membuf functions to return the value.
503         * pkdecrypt.c (agent_pkdecrypt): Ditto.
504         * genkey.c (agent_genkey): Ditto.
505         * command.c (cmd_pksign, cmd_pkdecrypt, cmd_genkey): Replaced
506         assuan_get_data_fp() by a the membuf scheme.
507         (clear_outbuf, write_and_clear_outbuf): New.
508
509 2004-12-19  Werner Koch  <wk@g10code.com>
510
511         * query.c (initialize_module_query): New.
512         * call-scd.c (initialize_module_call_scd): New.
513         * gpg-agent.c (main): Call them.
514         
515 2004-12-18  Werner Koch  <wk@g10code.com>
516
517         * gpg-agent.c (main):  Remove special Pth initialize.
518
519         * agent.h (map_assuan_err): Define in terms of
520         map_assuan_err_with_source.
521
522 2004-12-17  Moritz Schulte  <moritz@g10code.com>
523
524         * query.c: Undo change from 2004-12-05.
525
526 2004-12-15  Werner Koch  <wk@g10code.com>
527
528         * gpg-agent.c [W32]: Various hacks to make it work.
529
530         * findkey.c (agent_write_private_key) [W32]: Adjust open call.
531
532         * call-scd.c (start_scd) [W32]: Don't check whether the daemon
533         didn't died.  To hard to do under Windows.
534         (start_scd) [W32]: Disable sending of the event signal option.
535
536         * protect-tool.c (read_file, export_p12_file) [W32]: Use setmode
537         to get stdout and stin into binary mode.
538
539 2004-12-05  Moritz Schulte  <moritz@g10code.com>
540
541         * query.c (start_pinentry): Allow CTRL be NULL.
542
543 2004-10-22  Werner Koch  <wk@g10code.com>
544
545         * gpg-agent.c (parse_rereadable_options): Return "not handled"
546         when the log file has not beend hadled.  This is will let the main
547         option processing continue. Fixed a bug introduced on 2004-09-4
548         resulting in logging to stderr until a HUP has been given.
549         (main): Don't close the listen FD.
550
551 2004-09-30  Werner Koch  <wk@g10code.com>
552
553         * Makefile.am: Adjusted from gettext 1.14.
554
555 2004-09-29  Werner Koch  <wk@g10code.com>
556
557         * minip12.c (parse_bag_encrypted_data): Print error if a bad
558         passphrase has been given.
559
560 2004-09-28  Werner Koch  <wk@g10code.com>
561
562         * protect.c (agent_unprotect): Fixed wiping of CLEARTEXT.  Thanks
563         to Moritz for pointing this out.
564
565 2004-09-25  Moritz Schulte  <moritz@g10code.com>
566         
567         * agent.h: Declare: agent_pksign_do.
568         (struct server_control_s): New member: raw_value.
569         
570         * pksign.c (do_encode_md): New argument: raw_value; support
571         generation of raw (non-pkcs1) data objects; adjust callers.
572         (agent_pksign_do): New function, based on code ripped
573         out from agent_pksign.
574         (agent_pksign): Use agent_pksign_do.
575
576         * command.c (start_command_handler): Set ctrl.digest.raw_value.
577         
578 2004-09-09  Werner Koch  <wk@g10code.de>
579
580         * gpg-agent.c (check_for_running_agent): New.
581         (main): The default action is now to check for an already running
582         agent.
583         (parse_rereadable_options): Set logfile only on reread.
584         (main): Do not print the "is development version" note.
585
586 2004-08-20  Werner Koch  <wk@g10code.de>
587
588         * gpg-agent.c: New option --max-cache-ttl.  Suggested by Alexander
589         Belopolsky.
590         * cache.c (housekeeping): Use it here instead of the hardwired
591         default of 1 hour.
592
593         * query.c (start_pinentry): Use a timeout for the pinentry lock.
594
595 2004-08-18  Werner Koch  <wk@g10code.de>
596
597         * protect-tool.c (get_passphrase): Make sure that the default
598         prompts passed to gpg-agent are utf-8 encoded. Add new prompt values.
599         (import_p12_file, import_p12_file, export_p12_file): Changed calls
600         to get_passphrase so that better prompts are displayed.
601         (get_new_passphrase): New.
602
603 2004-07-22  Werner Koch  <wk@g10code.de>
604
605         * trustlist.c (read_list): Allow colons in the fingerprint.
606         (headerblurb): Rephrased.
607
608         * gpg-agent.c (handle_connections): Increase the stack size ot 256k.
609
610 2004-06-20  Moritz Schulte  <moritz@g10code.com>
611
612         * gpg-agent.c: Include <sys/stat.h> (build fix for BSD).
613
614 2004-05-11  Werner Koch  <wk@gnupg.org>
615
616         * gpg-agent.c (handle_signal): Reload the trustlist on SIGHUP.
617         (start_connection_thread): Hack to simulate a ticker.
618         * trustlist.c (agent_trustlist_housekeeping) 
619         (agent_reload_trustlist): New.  Protected all global functions
620         here with a simple counter which is sufficient for Pth.
621
622 2004-05-03  Werner Koch  <wk@gnupg.org>
623
624         * gpg-agent.c: Remove help texts for options lile --lc-ctype.
625         (main): New option --allow-mark-trusted. 
626         * trustlist.c (agent_marktrusted): Use it here.
627
628 2004-04-30  Werner Koch  <wk@gnupg.org>
629
630         * protect-tool.c: New option --enable-status-msg.
631         (store_private_key): Print status messages for imported keys.
632         (read_and_unprotect): Ditto for bad passphrase.
633
634         * gpg-agent.c (parse_rereadable_options): New arg REREAD.  Allow
635         changing oLogFile.
636         (current_logfile): New.
637
638 2004-04-26  Werner Koch  <wk@gnupg.org>
639
640         * call-scd.c (start_scd): Do not register an event signal if we
641         are running as a pipe server.
642
643 2004-04-21  Werner Koch  <wk@gnupg.org>
644
645         * call-scd.c (start_scd): Send event-signal option. Always check
646         that the scdaemon is still running.
647
648         * gpg-agent.c (handle_signal): Do not use SIGUSR{1,2} anymore for
649         changing the verbosity.
650
651 2004-04-16  Werner Koch  <wk@gnupg.org>
652
653         * gpg-agent.c (main): Tell the logging code that we are running
654         detached.
655
656 2004-04-06  Werner Koch  <wk@gnupg.org>
657
658         * gpg-agent.c (main): Use new libgcrypt thread library register
659         scheme.
660
661 2004-03-23  Marcus Brinkmann  <marcus@g10code.de>
662
663         * gpg-agent.c (main): For now, always print the default config
664         file name for --gpgconf-list.
665
666 2004-03-17  Werner Koch  <wk@gnupg.org>
667
668         * gpg-agent.c (main) <gpgconf>: Fixed default value quoting.
669
670 2004-03-16  Werner Koch  <wk@gnupg.org>
671
672         * gpg-agent.c (parse_rereadable_options): Use the new
673         DEFAULT_CACHE_TTL macro.
674         (main): Updated --gpgconf-list output.
675
676 2004-02-21  Werner Koch  <wk@gnupg.org>
677
678         * command.c (cmd_passwd): Take acount of a key description.
679
680         * genkey.c (reenter_compare_cb): Do not set the error text.
681         (agent_protect_and_store, agent_genkey): Force a re-enter after a
682         non-matching passphrase.
683         * query.c (agent_askpin): Add new arg INITIAL_ERRTEXT; changed
684         all callers.
685
686 2004-02-19  Werner Koch  <wk@gnupg.org>
687
688         * protect-tool.c: New options --have-cert and --prompt.
689         (export_p12_file): Read a certificate from STDIN and pass it to
690         p12_build.  Detect a keygrip and construct the filename in that
691         case.  Unprotcet a key if needed.  Print error messages for key
692         formats we can't handle.
693         (release_passphrase): New.
694         (get_passphrase): New arg PROMPTNO. Return the allocated
695         string. Changed all callers.
696
697         * minip12.c: Revamped the build part.
698         (p12_build): New args CERT and CERTLEN.  
699
700 2004-02-18  Werner Koch  <wk@gnupg.org>
701
702         * protect-tool.c (main): Setup the used character set.
703         * gpg-agent.c (main): Ditto.
704
705         * gpg-agent.c (set_debug): New.  New option --debug-level.
706         (main): New option --gpgconf-list.
707
708 2004-02-17  Werner Koch  <wk@gnupg.org>
709
710         * pksign.c (do_encode_md): Cleaned up by using gcry_sexp_build.
711
712         * Makefile.am (gpg_protect_tool_SOURCES): Removed
713         simple-pwquery.[ch], as we once moved it to ../common.
714
715 2004-02-13  Werner Koch  <wk@gnupg.org>
716
717         * command.c (cmd_setkeydesc): New.
718         (register_commands): Add command SETKEYDESC.
719         (cmd_pksign, cmd_pkdecrypt): Use the key description.
720         (reset_notify): Reset the description.
721         * findkey.c (unprotect): Add arg DESC_TEXT.
722         (agent_key_from_file): Ditto.
723         * pksign.c (agent_pksign): Ditto.
724         * pkdecrypt.c (agent_pkdecrypt): Ditto. Made CIPHERTEXT an
725         unsigned char*.
726
727         * protect-tool.c (main): New options --no-fail-on-exist, --homedir.
728         (store_private_key): Use them here.
729
730 2004-02-12  Werner Koch  <wk@gnupg.org>
731
732         * protect-tool.c (read_file, main): Allow reading from stdin.
733
734         * Makefile.am: Include cmacros.am for common flags.
735         (libexec_PROGRAMS): Put gpg-protect-tool there.
736
737 2004-02-10  Werner Koch  <wk@gnupg.org>
738
739         * minip12.c (parse_bag_encrypted_data): Finished implementation.
740         (p12_parse): Add callback args.
741         * protect-tool.c (import_p12_cert_cb): New.
742         (import_p12_file): Use it.
743
744 2004-02-06  Werner Koch  <wk@gnupg.org>
745
746         * minip12.c (crypt_block): Add arg CIPHER_ALGO; changed all callers.
747         (set_key_iv): Add arg KEYBYTES; changed caller.
748
749 2004-02-03  Werner Koch  <wk@gnupg.org>
750
751         * findkey.c (agent_key_from_file): Extra paranoid wipe.
752         * protect.c (agent_unprotect): Ditto.
753         (merge_lists): Ditto. Add arg RESULTLEN.
754         * pkdecrypt.c (agent_pkdecrypt): Don't show the secret key even in
755         debug mode.
756
757         * protect.c: Add DSA and Elgamal description.
758
759 2004-01-29  Werner Koch  <wk@gnupg.org>
760
761         * agent.h (server_control_s): Add connection_fd field.
762         * command.c (start_command_handler): Init it here.
763         * gpg-agent.c (agent_init_default_ctrl): and here.
764         * call-scd.c: Add the CTRL arg to all functions calling start_scd
765         and pass it to start_scd.  Changed all callers
766         (start_scd): Keep track of the current active connection.
767         (agent_reset_scd): New.
768         * command.c (start_command_handler): Call it here.
769         * learncard.c (agent_handle_learn): Add arg CTRL; changed caller.
770         (send_cert_back): Ditto.
771
772 2004-01-28  Werner Koch  <wk@gnupg.org>
773
774         * trustlist.c (agent_marktrusted): Check whether the trustlist is
775         writable.
776
777 2004-01-27  Werner Koch  <wk@gnupg.org>
778
779         * sexp-parse.h: Moved to ../common.
780
781 2004-01-24  Werner Koch  <wk@gnupg.org>
782
783         * call-scd.c (atfork_cb): New.
784         (start_scd): Make sure secmem gets cleared.
785         * query.c  (atfork_cb): New.
786         (start_pinentry): Make sure secmem gets cleared.
787
788 2004-01-16  Werner Koch  <wk@gnupg.org>
789
790         * findkey.c (agent_key_from_file): Now return an error code so
791         that we have more detailed error messages in the upper layers.
792         This fixes the handling of pinentry's cancel button. 
793         * pksign.c (agent_pksign): Changed accordingly.
794         * pkdecrypt.c (agent_pkdecrypt): Ditto.
795         * command.c (cmd_passwd): Ditto.
796
797 2003-12-16  Werner Koch  <wk@gnupg.org>
798
799         * gpg-agent.c (main): Set the prefixes for assuan logging.
800
801 2003-12-15  Werner Koch  <wk@gnupg.org>
802
803         * protect.c (do_encryption): Use gcry_create_nonce instad of the
804         obsolete WEAK_RANDOM.
805
806 2003-11-20  Werner Koch  <wk@gnupg.org>
807
808         * sexp-parse.h (snext): Don't use atoi_1 and digitp macros, so
809         that this file is useful by other applications too.
810
811 2003-10-27  Werner Koch  <wk@gnupg.org>
812
813         * command.c (cmd_get_confirmation): New command.
814
815 2003-08-20  Timo Schulz  <twoaday@freakmail.de>
816
817         * pksign.c (do_encode_md): Allocate enough space. Cast md
818         byte to unsigned char to prevent sign extension.
819         
820 2003-08-14  Timo Schulz  <twoaday@freakmail.de>
821
822         * pksign.c (do_encode_md): Due to the fact pkcs#1 padding
823         is now in Libgcrypt, use the new interface.
824         
825 2003-07-31  Werner Koch  <wk@gnupg.org>
826
827         * Makefile.am (gpg_agent_LDADD): Added INTLLIBS.
828         (gpg_protect_tool_SOURCES): Added simple-pwquery.[ch]
829
830 2003-07-27  Werner Koch  <wk@gnupg.org>
831
832         Adjusted for gcry_mpi_print and gcry_mpi_scan API change.
833
834 2003-07-15  Werner Koch  <wk@gnupg.org>
835
836         * simple-pwquery.c, simple-pwquery.h:  Moved to ../common.
837         * Makefile.am (gpg_protect_tool_LDADD): Add simple-pwquery.o.
838         Removed it from xx_SOURCES.
839
840 2003-07-04  Werner Koch  <wk@gnupg.org>
841
842         * gpg-agent.c (handle_connections): Kludge to allow use of Pth 1
843         and 2.
844
845 2003-06-30  Werner Koch  <wk@gnupg.org>
846
847         * call-scd.c (learn_status_cb): Store the serialno in PARM.
848
849 2003-06-26  Werner Koch  <wk@gnupg.org>
850
851         * call-scd.c (agent_card_serialno): Don't do a RESET anymore.
852
853 2003-06-25  Werner Koch  <wk@gnupg.org>
854
855         * command.c (cmd_scd): New.
856         * call-scd.c (agent_card_scd): New.
857         * divert-scd.c (divert_generic_cmd): New
858
859         * call-scd.c (agent_card_learn): New callback args SINFO.
860         (learn_status_cb): Pass all other status lines to the sinfo
861         callback.
862         * learncard.c (release_sinfo, sinfo_cb): New.
863         (agent_handle_learn): Pass the new cb to the learn function and
864         pass the collected information back to the client's assuan
865         connection.
866
867         * gpg-agent.c (main): Moved pth_init before gcry_check_version.
868
869 2003-06-24  Werner Koch  <wk@gnupg.org>
870
871         * gpg-agent.c (handle_connections): Adjusted for Pth 2.0
872
873         Adjusted for changes in the libgcrypt API. Some more fixes for the
874         libgpg-error stuff.  
875
876 2003-06-04  Werner Koch  <wk@gnupg.org>
877
878         Renamed error codes from INVALID to INV and removed _ERROR suffixes.
879
880 2003-06-03  Werner Koch  <wk@gnupg.org>
881
882         Changed all error codes in all files to the new libgpg-error scheme.
883
884         * agent.h: Include gpg-error.h and errno.h
885         * Makefile.am: Link with libgpg-error
886
887         * query.c: assuan.h is now a system header.
888         * genkey.c (agent_genkey): Fixed silly use of xmalloc by
889         xtrymalloc.
890
891 2003-04-29  Werner Koch  <wk@gnupg.org>
892
893         * command.c (register_commands): Adjusted for new Assuan semantics.
894
895         * Makefile.am: Don't override LDFLAGS.
896
897 2002-12-04  Werner Koch  <wk@gnupg.org>
898
899         * gpg-agent.c: New variable config_filename.
900         (parse_rereadable_options): New.
901         (main): Use it here.  Add setting of default values, set
902         config_filename.
903         (reread_configuration): Filled with actual code.
904
905 2002-12-03  Werner Koch  <wk@gnupg.org>
906
907         * protect-tool.c (read_key): Don't run make_canonical on a NULL
908         buffer.
909
910         * command.c (parse_hexstring): New.
911         (cmd_sethash): Use it.
912         (parse_keygrip): New.
913         (cmd_havekey, cmd_sigkey): Use it.
914         (cmd_passwd): New.
915         * genkey.c (agent_protect_and_store): New.
916         (store_key): Add arg FORCE.
917         (agent_genkey): Pass false to this force of store_key.
918
919 2002-11-13  Werner Koch  <wk@gnupg.org>
920
921         * gpg-agent.c (main): Switch all messages to utf-8.
922
923         * simple-pwquery.c (agent_send_all_options): Use $GPG_TTY and
924         stdin with ttyname.
925
926         * cache.c (new_data): Uiih - /sizeof d/sizeof *d/.
927
928 2002-11-10  Werner Koch  <wk@gnupg.org>
929
930         * command.c (option_handler): Fix keep_tty check.
931
932 2002-11-06  Werner Koch  <wk@gnupg.org>
933
934         * gpg-agent.c (main): Make sure we have a default ttyname.
935         * command.c (option_handler): Check opt.keep_tty here
936         * query.c (start_pinentry): but not anymore here.
937
938 2002-11-05  Werner Koch  <wk@gnupg.org>
939
940         * agent.h (opt,server_control_s): Move display and lc_ variables
941         to the control struct so that they are per connection.
942         * gpg-agent.c (agent_init_default_ctrl): New.
943         (main): Assign those command line options to new default_* variables.
944         Reset DISPLAY in server mode so that tehre is no implicit default.
945         * command.c (start_command_handler): Initialize and deinitialize
946         the control values.
947         (option_handler): Work on the ctrl values and not on the opt.
948         * query.c (start_pinentry): New argument CTRL to set the display
949         connection specific.  Changed all callers to pass this value.
950         (agent_askpin,agent_get_passphrase,agent_get_confirmation): Add
951         CTRL arg and pass it ot start_pinentry.
952         * command.c (cmd_get_passphrase): Pass CTRL argument.
953         * trustlist.c (agent_marktrusted):  Add CTRL argument  
954         * command.c (cmd_marktrusted): Pass CTRL argument
955         * divert-scd.c (ask_for_card):  Add CTRL arg. 
956         (divert_pksign,divert_pkdecrypt): Ditto.  Changed caller.
957         (getpin_cb): Use OPAQUE to pass the CTRL variable.  Changed both 
958         users.
959         * findkey.c (unprotect): Add CTRL arg.
960         (agent_key_from_file): Ditto.
961
962         * query.c (unlock_pinentry): Disconnect the pinentry so that we
963         start a new one for each request.  This is required to support
964         clients with different environments (e.g. X magic cookies).
965
966 2002-09-05  Neal H. Walfield  <neal@cs.uml.edu>
967
968         * gpg-agent.c (main) [USE_GNU_PTH]: No need to call
969         assuan_set_io_func as assuan is smart.
970
971 2002-09-25  Werner Koch  <wk@gnupg.org>
972
973         * gpg-agent.c (handle_signal): Flush cache on SIGHUP.
974         * cache.c (agent_flush_cache): New.
975
976         * gpg-agent.c, agent.h: Add --keep-display and --keep-tty.
977         * query.c (start_pinentry): Implement them.  The option passing
978         needs more thoughts.
979
980 2002-09-09  Werner Koch  <wk@gnupg.org>
981
982         * gpg-agent.c (create_private_keys_directory)
983         (create_directories): New.
984         (main): Try to create a home directory.
985
986 2002-09-04  Neal H. Walfield  <neal@g10code.de>
987
988         * gpg-agent.c (main): Use sigaction, not signal.
989
990 2002-09-03  Neal H. Walfield  <neal@g10code.de>
991
992         * findkey.c: Include <fcntl.h>.
993         (agent_write_private_key): Prefer POSIX compatibity, open and
994         fdopen, over the simplicity of GNU extensions, fopen(file, "x").
995
996 2002-08-22  Werner Koch  <wk@gnupg.org>
997
998         * query.c (agent_askpin): Provide the default desc text depending
999         on the pininfo.  Do the basic PIN verification only when
1000         min_digits is set.
1001
1002 2002-08-21  Werner Koch  <wk@gnupg.org>
1003
1004         * query.c (agent_askpin): Hack to show the right default prompt.
1005         (agent_get_passphrase): Ditto.
1006
1007         * trans.c: Removed and replaced all usages with standard _()
1008
1009         * divert-scd.c (getpin_cb): Pass a more descritive text to the
1010         pinentry.
1011
1012         * Makefile.am: Renamed the binary protect-tool to gpg-protect-tool.
1013         * protect-tool.c: Removed the note about internal use only.
1014
1015         * gpg-agent.c (main): New option --daemon so that the program is
1016         not accidently started in the background.
1017
1018 2002-08-16  Werner Koch  <wk@gnupg.org>
1019
1020         * call-scd.c (learn_status_cb): Handle CERTINFO status.
1021         (agent_card_learn): Add args for certinfo cb.
1022         * learncard.c (release_certinfo,certinfo_cb): New.
1023         (send_cert_back): New. With factored out code from ..
1024         (agent_handle_learn): here.  Return certinfo stuff.
1025
1026 2002-07-26  Werner Koch  <wk@gnupg.org>
1027
1028         * gpg-agent.c (main): New option --ignore-cache-for-signing.
1029         * command.c (option_handler): New server option
1030         use-cache-for-signing defaulting to true.
1031         (cmd_pksign): handle global and per session option.
1032         * findkey.c (agent_key_from_file, unprotect): New arg
1033         ignore_cache.  Changed all callers.
1034         * pksign.c (agent_pksign): Likewise.
1035
1036 2002-06-29  Werner Koch  <wk@gnupg.org>
1037
1038         * query.c (start_pinentry): Use GNUPG_DERAULT_PINENTRY.
1039         * call-scd.c (start_scd): Use GNUPG_DEFAULT_SCDAEMON.
1040
1041 2002-06-28  Werner Koch  <wk@gnupg.org>
1042
1043         * protect-tool.c (export_p12_file): New.
1044         (main): New command --p12-export.
1045         * minip12.c (create_final,p12_build,compute_tag_length): New.
1046         (store_tag_length): New.
1047
1048 2002-06-27  Werner Koch  <wk@gnupg.org>
1049
1050         * minip12.c (crypt_block): Renamed from decrypt_block, add arg to
1051         allow encryption.
1052
1053         * Makefile.am (pkglib_PROGRAMS): Put protect-tool there.
1054
1055         * findkey.c (agent_write_private_key,agent_key_from_file)
1056         (agent_key_available): Use GNUPG_PRIVATE_KEYS_DIR constant.
1057         * gpg-agent.c (main): Use GNUPG_DEFAULT_HOMEDIR constant.
1058
1059         * protect-tool.c (store_private_key): New.
1060         (import_p12_file): Store the new file if requested.
1061         (main): New options --force and --store.
1062
1063         * gpg-agent.c (main): Set a global flag when running detached.
1064         * query.c (start_pinentry): Pass the list of FD to keep in the
1065         child when not running detached.
1066         * call-scd.c (start_scd): Ditto.
1067
1068 2002-06-26  Werner Koch  <wk@gnupg.org>
1069
1070         * command.c (cmd_istrusted, cmd_listtrusted, cmd_marktrusted)
1071         (cmd_pksign, cmd_pkdecrypt, cmd_genkey, cmd_get_passphrase)
1072         (cmd_learn): Print an error message for a failed operation.
1073
1074         * simple-pwquery.c, simple-pwquery.h: New.
1075         * protect-tool. (get_passphrase): New, used to get a passphrase
1076         from the agent if none was given on the command line.
1077
1078 2002-06-25  Werner Koch  <wk@gnupg.org>
1079
1080         * protect-tool.c (rsa_key_check): New.
1081         (import_p12_file): New.
1082         (main): New command --p12-import.
1083         * minip12.c, minip12.h: New.
1084
1085 2002-06-24  Werner Koch  <wk@gnupg.org>
1086
1087         * protect-tool.c (read_file): New.
1088         (read_key): Factored most code out to read_file.
1089
1090 2002-06-17  Werner Koch  <wk@gnupg.org>
1091
1092         * agent.h: Add a callback function to the pin_entry_info structure.
1093         * query.c (agent_askpin): Use the callback to check for a correct
1094         PIN.  Removed the start_err_text argument because it is not
1095         anymore needed; changed callers.
1096         * findkey.c (unprotect): Replace our own check loop by a callback.
1097         (try_unprotect_cb): New.
1098         * genkey.c (reenter_compare_cb): New.
1099         (agent_genkey): Use this callback here.  Fixed setting of the pi2
1100         variable and a segv in case of an empty PIN.
1101
1102         * divert-scd.c (getpin_cb): Removed some unused stuff and
1103         explained what we still have to change.
1104
1105 2002-06-12  Werner Koch  <wk@gnupg.org>
1106
1107         * gpg-agent.c (main): New option --disable-pth.
1108
1109 2002-06-11  Werner Koch  <wk@gnupg.org>
1110
1111         * protect-tool.c: Add command --show-keygrip
1112         (show_keygrip): New.
1113
1114 2002-05-23  Werner Koch  <wk@gnupg.org>
1115
1116         * call-scd.c: Seirialized all scdaeom access when using Pth.
1117
1118         * cache.c: Made the cache Pth-thread-safe.
1119         (agent_unlock_cache_entry): New.
1120         * findkey.c (unprotect): Unlock the returned cache value.
1121         * command.c (cmd_get_passphrase): Ditto.
1122
1123         * gpg-agent.c (main): Register pth_read/write with Assuan.
1124
1125 2002-05-22  Werner Koch  <wk@gnupg.org>
1126
1127         * query.c: Serialized all pinentry access when using Pth.
1128
1129         * gpg-agent.c (handle_signal,start_connection_thread)
1130         (handle_connections): New
1131         (main): Use the new Pth stuff to allow concurrent connections.
1132         * command.c (start_command_handler): Add new arg FD so that the
1133         fucntion can also be used for an already connected socket.
1134         * Makefile.am: Link with Pth.
1135
1136 2002-05-14  Werner Koch  <wk@gnupg.org>
1137
1138         * cache.c (housekeeping, agent_put_cache): Use our time() wrapper.
1139
1140 2002-04-26  Werner Koch  <wk@gnupg.org>
1141
1142         * cache.c (agent_put_cache): Reinitialize the creation time and
1143         the ttl when reusing a slot.
1144
1145         * call-scd.c (start_scd): Print debug messages only with debug
1146         flags set.
1147         * query.c (start_pinentry): Ditto.
1148
1149 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
1150
1151         * agent.h (agent_get_confirmation): Replace paramter prompt with
1152         two parameters ok and cancel.
1153         * query.c (agent_get_confirmation): Likewise.  Implement this.
1154         * trustlist.c (agent_marktrusted): Fix invocation of
1155         agent_get_confirmation.
1156         * divert-scd.c (ask_for_card): Likewise.
1157
1158 2002-04-24  Marcus Brinkmann  <marcus@g10code.de>
1159
1160         * agent.h (struct opt): Add members display, ttyname, ttytype,
1161         lc_ctype, and lc_messages.
1162         * gpg-agent.c (enum cmd_and_opt_values): Add oDisplay, oTTYname,
1163         oTTYtype, oLCctype, and LCmessages.
1164         (main): Handle these options.
1165         * command.c (option_handler): New function.
1166         (register_commands): Register option handler.
1167         * query.c (start_pinentry): Pass the various display and tty
1168         options to the pinentry.
1169
1170 2002-04-05  Werner Koch  <wk@gnupg.org>
1171
1172         * protect-tool.c (show_file): New.  Used as default action.
1173
1174 2002-03-28  Werner Koch  <wk@gnupg.org>
1175
1176         * divert-scd.c (encode_md_for_card): Don't do the pkcs-1 padding,
1177         the scdaemon should take care of it.
1178         (ask_for_card): Hack to not display the trailing zero.
1179
1180 2002-03-11  Werner Koch  <wk@gnupg.org>
1181
1182         * learncard.c (kpinfo_cb): Remove the content restrictions from
1183         the keyID.
1184
1185 2002-03-06  Werner Koch  <wk@gnupg.org>
1186
1187         * learncard.c: New.
1188         * divert-scd.c (ask_for_card): The serial number is binary so
1189         convert it to hex here.
1190         * findkey.c (agent_write_private_key): New.
1191         * genkey.c (store_key): And use it here.
1192         
1193         * pkdecrypt.c (agent_pkdecrypt): Changed the way the diversion is done.
1194         * divert-scd.c (divert_pkdecrypt): Changed interface and
1195         implemented it.
1196
1197 2002-03-05  Werner Koch  <wk@gnupg.org>
1198
1199         * call-scd.c (inq_needpin): New.
1200         (agent_card_pksign): Add getpin_cb args.
1201         (agent_card_pkdecrypt): New.
1202
1203 2002-03-04  Werner Koch  <wk@gnupg.org>
1204
1205         * pksign.c (agent_pksign): Changed how the diversion is done.
1206         * divert-scd.c (divert_pksign): Changed interface and implemented it.
1207         (encode_md_for_card): New.
1208         * call-scd.c (agent_card_pksign): New.
1209
1210 2002-02-28  Werner Koch  <wk@gnupg.org>
1211
1212         * pksign.c (agent_pksign): Detect whether a Smartcard is to be
1213         used and divert the operation in this case.
1214         * pkdecrypt.c (agent_pkdecrypt): Likewise
1215         * findkey.c (agent_key_from_file): Add optional arg shadow_info
1216         and have it return information about a shadowed key.
1217         * protect.c (agent_get_shadow_info): New.
1218
1219         * protect.c (snext,sskip,smatch): Moved to
1220         * sexp-parse.h: New file.
1221         * divert-scd.c: New.
1222         
1223 2002-02-27  Werner Koch  <wk@gnupg.org>
1224
1225         * protect.c (agent_shadow_key): New.
1226
1227         * command.c (cmd_learn): New command LEARN.
1228         * gpg-agent.c: New option --scdaemon-program.
1229         * call-scd.c (start_scd): New. Based on query.c
1230         * query.c: Add 2 more arguments to all uses of assuan_transact.
1231
1232 2002-02-18  Werner Koch  <wk@gnupg.org>
1233
1234         * findkey.c (unprotect): Show an error message for a bad passphrase.
1235
1236         * command.c (cmd_marktrusted): Implemented.
1237         * trustlist.c (agent_marktrusted): New.
1238         (open_list): Add APPEND arg.
1239
1240         * query.c (agent_get_confirmation): New.
1241
1242 2002-02-06  Werner Koch  <wk@gnupg.org>
1243
1244         * cache.c (housekeeping): Fixed linking in the remove case.
1245
1246 2002-02-01  Werner Koch  <wk@gnupg.org>
1247
1248         * gpg-agent.c: New option --default-cache-ttl.
1249         * cache.c (agent_put_cache): Use it.
1250         
1251         * cache.c: Add a few debug outputs.
1252
1253         * protect.c (agent_private_key_type): New.
1254         * agent.h: Add PRIVATE_KEY_ enums.
1255         * findkey.c (agent_key_from_file): Use it to decide whether we
1256         have to unprotect a key.
1257         (unprotect): Cache the passphrase.
1258         
1259         * findkey.c (agent_key_from_file,agent_key_available): The key
1260         files do now require a ".key" suffix to make a script's life
1261         easier. 
1262         * genkey.c (store_key): Ditto.
1263
1264 2002-01-31  Werner Koch  <wk@gnupg.org>
1265
1266         * genkey.c (store_key): Protect the key.
1267         (agent_genkey): Ask for the passphrase.
1268         * findkey.c (unprotect): Actually unprotect the key.
1269         * query.c (agent_askpin): Add an optional start_err_text. 
1270
1271 2002-01-30  Werner Koch  <wk@gnupg.org>
1272
1273         * protect.c: New.  
1274         (hash_passphrase): Based on the GnuPG 1.0.6 version.
1275         * protect-tool.c: New
1276
1277 2002-01-29  Werner Koch  <wk@gnupg.org>
1278
1279         * findkey.c (agent_key_available): New.
1280         * command.c (cmd_havekey): New.
1281         (register_commands): And register new command.
1282
1283 2002-01-20  Werner Koch  <wk@gnupg.org>
1284
1285         * command.c (cmd_get_passphrase): Remove the plus signs.
1286
1287         * query.c (start_pinentry): Send no-grab option to pinentry
1288         * gpg-agent.c (main): Move variable grab as no_grab to agent.h.
1289
1290 2002-01-19  Werner Koch  <wk@gnupg.org>
1291
1292         * gpg-agent.c (main): Disable core dumps.
1293
1294         * cache.c: New.
1295         * command.c (cmd_get_passphrase): Use the cache.
1296         (cmd_clear_passphrase): Ditto.
1297
1298         * gpg-agent.c:  Removed unused cruft and implement the socket
1299         based server.
1300         (my_strusage): Take bug report address from configure.ac.
1301         * command.c (start_command_handler): Add an argument to start as
1302         regular server.
1303         (start_command_handler): Enable Assuan logging.
1304
1305 2002-01-15  Werner Koch  <wk@gnupg.org>
1306
1307         * trustlist.c: New.
1308         * command.c (cmd_istrusted, cmd_listtrusted, cmd_marktrusted): New.
1309
1310 2002-01-07  Werner Koch  <wk@gnupg.org>
1311
1312         * genkey.c: Store the secret part and return the public part.
1313
1314 2002-01-03  Werner Koch  <wk@gnupg.org>
1315
1316         * command.c (cmd_get_passphrase): New.
1317         (cmd_clear_passphrase): New.
1318         * query.c (agent_get_passphrase): New.
1319
1320 2002-01-02  Werner Koch  <wk@gnupg.org>
1321
1322         * genkey.c: New.
1323         * command.c (cmd_genkey): New.
1324
1325         * command.c (rc_to_assuan_status): Removed and changed all callers
1326         to use map_to_assuan_status.
1327         
1328 2001-12-19  Werner Koch  <wk@gnupg.org>
1329
1330         * keyformat.txt: New. 
1331
1332 2001-12-19  Marcus Brinkmann  <marcus@g10code.de>
1333
1334         * query.c (start_pinentry): Add new argument to assuan_pipe_connect.
1335
1336 2001-12-18  Werner Koch  <wk@gnupg.org>
1337
1338         * Makefile.am: Use LIBGCRYPT macros
1339
1340 2001-12-14  Werner Koch  <wk@gnupg.org>
1341
1342         * gpg-agent.c (main): New option --batch.  New option --debug-wait
1343         n, so that it is possible to attach gdb when used in server mode.
1344         * query.c (agent_askpin): Don't ask in batch mode.
1345
1346         * command.c: Removed the conversion macros as they are now in
1347         ../common/util.h.
1348
1349 2001-12-14  Marcus Brinkmann  <marcus@g10code.de>
1350
1351         * query.c (LINELENGTH): Removed.
1352         (agent_askpin): Use ASSUAN_LINELENGTH, not LINELENGTH.
1353
1354 2001-11-19  Werner Koch  <wk@gnupg.org>
1355
1356         * gpg-agent.c: Removed all GUI code, removed code for old
1357         protocol.  New code to use the Assuan protocol as a server and
1358         also to communicate with a new ask-passphrase utility.
1359
1360 2000-11-22  Werner Koch  <wk@gnupg.org>
1361
1362         * gpg-agent.c (main): csh support by Dan Winship, new options --sh
1363         and --csh and set default by consulting $SHELL.
1364
1365 Mon Aug 21 17:59:17 CEST 2000  Werner Koch  <wk@openit.de>
1366
1367         * gpg-agent.c (passphrase_dialog): Cleanup the window and added the
1368         user supplied text to the window.
1369         (main): Fixed segv in gtk_init when used without a command to start.
1370
1371         * gpg-agent.c: --flush option.
1372         (req_flush): New.
1373         (req_clear_passphrase): Implemented.
1374
1375 Fri Aug 18 14:27:14 CEST 2000  Werner Koch  <wk@openit.de>
1376
1377         * gpg-agent.c: New.
1378         * Makefile.am: New.
1379
1380
1381  Copyright 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
1382
1383  This file is free software; as a special exception the author gives
1384  unlimited permission to copy and/or distribute it, with or without
1385  modifications, as long as this notice is preserved.
1386
1387  This file is distributed in the hope that it will be useful, but
1388  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
1389  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.