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