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