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