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