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