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