* gpg-agent.c (main): Use default_homedir().
[gnupg.git] / agent / ChangeLog
1 2004-12-21  Werner Koch  <wk@g10code.com>
2
3         * gpg-agent.c (main): Use default_homedir().
4         * protect-tool.c (main): Ditto.
5         
6
7 2004-12-20  Werner Koch  <wk@g10code.com>
8
9         * gpg-agent.c (main) [W32]: Now that Mutexes work we can remove
10         the pth_init kludge.
11         (main): Add new options --[no-]use-standard-socket.
12         (check_for_running_agent): Check whether it is running on the
13         standard socket.
14
15         * call-scd.c (init_membuf, put_membuf, get_membuf): Removed.  We
16         now use the identical implementation from ../common/membuf.c.
17
18         * pksign.c (agent_pksign): Changed arg OUTFP to OUTBUF and use
19         membuf functions to return the value.
20         * pkdecrypt.c (agent_pkdecrypt): Ditto.
21         * genkey.c (agent_genkey): Ditto.
22         * command.c (cmd_pksign, cmd_pkdecrypt, cmd_genkey): Replaced
23         assuan_get_data_fp() by a the membuf scheme.
24         (clear_outbuf, write_and_clear_outbuf): New.
25
26 2004-12-19  Werner Koch  <wk@g10code.com>
27
28         * query.c (initialize_module_query): New.
29         * call-scd.c (initialize_module_call_scd): New.
30         * gpg-agent.c (main): Call them.
31         
32 2004-12-18  Werner Koch  <wk@g10code.com>
33
34         * gpg-agent.c (main):  Remove special Pth initialize.
35
36         * agent.h (map_assuan_err): Define in terms of
37         map_assuan_err_with_source.
38
39 2004-12-17  Moritz Schulte  <moritz@g10code.com>
40
41         * query.c: Undo change from 2004-12-05.
42
43 2004-12-15  Werner Koch  <wk@g10code.com>
44
45         * gpg-agent.c [W32]: Various hacks to make it work.
46
47         * findkey.c (agent_write_private_key) [W32]: Adjust open call.
48
49         * call-scd.c (start_scd) [W32]: Don't check whether the daemon
50         didn't died.  To hard to do under Windows.
51         (start_scd) [W32]: Disable sending of the event signal option.
52
53         * protect-tool.c (read_file, export_p12_file) [W32]: Use setmode
54         to get stdout and stin into binary mode.
55
56 2004-12-05  Moritz Schulte  <moritz@g10code.com>
57
58         * query.c (start_pinentry): Allow CTRL be NULL.
59
60 2004-10-22  Werner Koch  <wk@g10code.com>
61
62         * gpg-agent.c (parse_rereadable_options): Return "not handled"
63         when the log file has not beend hadled.  This is will let the main
64         option processing continue. Fixed a bug introduced on 2004-09-4
65         resulting in logging to stderr until a HUP has been given.
66         (main): Don't close the listen FD.
67
68 2004-09-30  Werner Koch  <wk@g10code.com>
69
70         * Makefile.am: Adjusted from gettext 1.14.
71
72 2004-09-29  Werner Koch  <wk@g10code.com>
73
74         * minip12.c (parse_bag_encrypted_data): Print error if a bad
75         passphrase has been given.
76
77 2004-09-28  Werner Koch  <wk@g10code.com>
78
79         * protect.c (agent_unprotect): Fixed wiping of CLEARTEXT.  Thanks
80         to Moritz for pointing this out.
81
82 2004-09-25  Moritz Schulte  <moritz@g10code.com>
83         
84         * agent.h: Declare: agent_pksign_do.
85         (struct server_control_s): New member: raw_value.
86         
87         * pksign.c (do_encode_md): New argument: raw_value; support
88         generation of raw (non-pkcs1) data objects; adjust callers.
89         (agent_pksign_do): New function, based on code ripped
90         out from agent_pksign.
91         (agent_pksign): Use agent_pksign_do.
92
93         * command.c (start_command_handler): Set ctrl.digest.raw_value.
94         
95 2004-09-09  Werner Koch  <wk@g10code.de>
96
97         * gpg-agent.c (check_for_running_agent): New.
98         (main): The default action is now to check for an already running
99         agent.
100         (parse_rereadable_options): Set logfile only on reread.
101         (main): Do not print the "is development version" note.
102
103 2004-08-20  Werner Koch  <wk@g10code.de>
104
105         * gpg-agent.c: New option --max-cache-ttl.  Suggested by Alexander
106         Belopolsky.
107         * cache.c (housekeeping): Use it here instead of the hardwired
108         default of 1 hour.
109
110         * query.c (start_pinentry): Use a timeout for the pinentry lock.
111
112 2004-08-18  Werner Koch  <wk@g10code.de>
113
114         * protect-tool.c (get_passphrase): Make sure that the default
115         prompts passed to gpg-agent are utf-8 encoded. Add new prompt values.
116         (import_p12_file, import_p12_file, export_p12_file): Changed calls
117         to get_passphrase so that better prompts are displayed.
118         (get_new_passphrase): New.
119
120 2004-07-22  Werner Koch  <wk@g10code.de>
121
122         * trustlist.c (read_list): Allow colons in the fingerprint.
123         (headerblurb): Rephrased.
124
125         * gpg-agent.c (handle_connections): Increase the stack size ot 256k.
126
127 2004-06-20  Moritz Schulte  <moritz@g10code.com>
128
129         * gpg-agent.c: Include <sys/stat.h> (build fix for BSD).
130
131 2004-05-11  Werner Koch  <wk@gnupg.org>
132
133         * gpg-agent.c (handle_signal): Reload the trustlist on SIGHUP.
134         (start_connection_thread): Hack to simulate a ticker.
135         * trustlist.c (agent_trustlist_housekeeping) 
136         (agent_reload_trustlist): New.  Protected all global functions
137         here with a simple counter which is sufficient for Pth.
138
139 2004-05-03  Werner Koch  <wk@gnupg.org>
140
141         * gpg-agent.c: Remove help texts for options lile --lc-ctype.
142         (main): New option --allow-mark-trusted. 
143         * trustlist.c (agent_marktrusted): Use it here.
144
145 2004-04-30  Werner Koch  <wk@gnupg.org>
146
147         * protect-tool.c: New option --enable-status-msg.
148         (store_private_key): Print status messages for imported keys.
149         (read_and_unprotect): Ditto for bad passphrase.
150
151         * gpg-agent.c (parse_rereadable_options): New arg REREAD.  Allow
152         changing oLogFile.
153         (current_logfile): New.
154
155 2004-04-26  Werner Koch  <wk@gnupg.org>
156
157         * call-scd.c (start_scd): Do not register an event signal if we
158         are running as a pipe server.
159
160 2004-04-21  Werner Koch  <wk@gnupg.org>
161
162         * call-scd.c (start_scd): Send event-signal option. Always check
163         that the scdaemon is still running.
164
165         * gpg-agent.c (handle_signal): Do not use SIGUSR{1,2} anymore for
166         changing the verbosity.
167
168 2004-04-16  Werner Koch  <wk@gnupg.org>
169
170         * gpg-agent.c (main): Tell the logging code that we are running
171         detached.
172
173 2004-04-06  Werner Koch  <wk@gnupg.org>
174
175         * gpg-agent.c (main): Use new libgcrypt thread library register
176         scheme.
177
178 2004-03-23  Marcus Brinkmann  <marcus@g10code.de>
179
180         * gpg-agent.c (main): For now, always print the default config
181         file name for --gpgconf-list.
182
183 2004-03-17  Werner Koch  <wk@gnupg.org>
184
185         * gpg-agent.c (main) <gpgconf>: Fixed default value quoting.
186
187 2004-03-16  Werner Koch  <wk@gnupg.org>
188
189         * gpg-agent.c (parse_rereadable_options): Use the new
190         DEFAULT_CACHE_TTL macro.
191         (main): Updated --gpgconf-list output.
192
193 2004-02-21  Werner Koch  <wk@gnupg.org>
194
195         * command.c (cmd_passwd): Take acount of a key description.
196
197         * genkey.c (reenter_compare_cb): Do not set the error text.
198         (agent_protect_and_store, agent_genkey): Force a re-enter after a
199         non-matching passphrase.
200         * query.c (agent_askpin): Add new arg INITIAL_ERRTEXT; changed
201         all callers.
202
203 2004-02-19  Werner Koch  <wk@gnupg.org>
204
205         * protect-tool.c: New options --have-cert and --prompt.
206         (export_p12_file): Read a certificate from STDIN and pass it to
207         p12_build.  Detect a keygrip and construct the filename in that
208         case.  Unprotcet a key if needed.  Print error messages for key
209         formats we can't handle.
210         (release_passphrase): New.
211         (get_passphrase): New arg PROMPTNO. Return the allocated
212         string. Changed all callers.
213
214         * minip12.c: Revamped the build part.
215         (p12_build): New args CERT and CERTLEN.  
216
217 2004-02-18  Werner Koch  <wk@gnupg.org>
218
219         * protect-tool.c (main): Setup the used character set.
220         * gpg-agent.c (main): Ditto.
221
222         * gpg-agent.c (set_debug): New.  New option --debug-level.
223         (main): New option --gpgconf-list.
224
225 2004-02-17  Werner Koch  <wk@gnupg.org>
226
227         * pksign.c (do_encode_md): Cleaned up by using gcry_sexp_build.
228
229         * Makefile.am (gpg_protect_tool_SOURCES): Removed
230         simple-pwquery.[ch], as we once moved it to ../common.
231
232 2004-02-13  Werner Koch  <wk@gnupg.org>
233
234         * command.c (cmd_setkeydesc): New.
235         (register_commands): Add command SETKEYDESC.
236         (cmd_pksign, cmd_pkdecrypt): Use the key description.
237         (reset_notify): Reset the description.
238         * findkey.c (unprotect): Add arg DESC_TEXT.
239         (agent_key_from_file): Ditto.
240         * pksign.c (agent_pksign): Ditto.
241         * pkdecrypt.c (agent_pkdecrypt): Ditto. Made CIPHERTEXT an
242         unsigned char*.
243
244         * protect-tool.c (main): New options --no-fail-on-exist, --homedir.
245         (store_private_key): Use them here.
246
247 2004-02-12  Werner Koch  <wk@gnupg.org>
248
249         * protect-tool.c (read_file, main): Allow reading from stdin.
250
251         * Makefile.am: Include cmacros.am for common flags.
252         (libexec_PROGRAMS): Put gpg-protect-tool there.
253
254 2004-02-10  Werner Koch  <wk@gnupg.org>
255
256         * minip12.c (parse_bag_encrypted_data): Finished implementation.
257         (p12_parse): Add callback args.
258         * protect-tool.c (import_p12_cert_cb): New.
259         (import_p12_file): Use it.
260
261 2004-02-06  Werner Koch  <wk@gnupg.org>
262
263         * minip12.c (crypt_block): Add arg CIPHER_ALGO; changed all callers.
264         (set_key_iv): Add arg KEYBYTES; changed caller.
265
266 2004-02-03  Werner Koch  <wk@gnupg.org>
267
268         * findkey.c (agent_key_from_file): Extra paranoid wipe.
269         * protect.c (agent_unprotect): Ditto.
270         (merge_lists): Ditto. Add arg RESULTLEN.
271         * pkdecrypt.c (agent_pkdecrypt): Don't show the secret key even in
272         debug mode.
273
274         * protect.c: Add DSA and Elgamal description.
275
276 2004-01-29  Werner Koch  <wk@gnupg.org>
277
278         * agent.h (server_control_s): Add connection_fd field.
279         * command.c (start_command_handler): Init it here.
280         * gpg-agent.c (agent_init_default_ctrl): and here.
281         * call-scd.c: Add the CTRL arg to all functions calling start_scd
282         and pass it to start_scd.  Changed all callers
283         (start_scd): Keep track of the current active connection.
284         (agent_reset_scd): New.
285         * command.c (start_command_handler): Call it here.
286         * learncard.c (agent_handle_learn): Add arg CTRL; changed caller.
287         (send_cert_back): Ditto.
288
289 2004-01-28  Werner Koch  <wk@gnupg.org>
290
291         * trustlist.c (agent_marktrusted): Check whether the trustlist is
292         writable.
293
294 2004-01-27  Werner Koch  <wk@gnupg.org>
295
296         * sexp-parse.h: Moved to ../common.
297
298 2004-01-24  Werner Koch  <wk@gnupg.org>
299
300         * call-scd.c (atfork_cb): New.
301         (start_scd): Make sure secmem gets cleared.
302         * query.c  (atfork_cb): New.
303         (start_pinentry): Make sure secmem gets cleared.
304
305 2004-01-16  Werner Koch  <wk@gnupg.org>
306
307         * findkey.c (agent_key_from_file): Now return an error code so
308         that we have more detailed error messages in the upper layers.
309         This fixes the handling of pinentry's cancel button. 
310         * pksign.c (agent_pksign): Changed accordingly.
311         * pkdecrypt.c (agent_pkdecrypt): Ditto.
312         * command.c (cmd_passwd): Ditto.
313
314 2003-12-16  Werner Koch  <wk@gnupg.org>
315
316         * gpg-agent.c (main): Set the prefixes for assuan logging.
317
318 2003-12-15  Werner Koch  <wk@gnupg.org>
319
320         * protect.c (do_encryption): Use gcry_create_nonce instad of the
321         obsolete WEAK_RANDOM.
322
323 2003-11-20  Werner Koch  <wk@gnupg.org>
324
325         * sexp-parse.h (snext): Don't use atoi_1 and digitp macros, so
326         that this file is useful by other applications too.
327
328 2003-10-27  Werner Koch  <wk@gnupg.org>
329
330         * command.c (cmd_get_confirmation): New command.
331
332 2003-08-20  Timo Schulz  <twoaday@freakmail.de>
333
334         * pksign.c (do_encode_md): Allocate enough space. Cast md
335         byte to unsigned char to prevent sign extension.
336         
337 2003-08-14  Timo Schulz  <twoaday@freakmail.de>
338
339         * pksign.c (do_encode_md): Due to the fact pkcs#1 padding
340         is now in Libgcrypt, use the new interface.
341         
342 2003-07-31  Werner Koch  <wk@gnupg.org>
343
344         * Makefile.am (gpg_agent_LDADD): Added INTLLIBS.
345         (gpg_protect_tool_SOURCES): Added simple-pwquery.[ch]
346
347 2003-07-27  Werner Koch  <wk@gnupg.org>
348
349         Adjusted for gcry_mpi_print and gcry_mpi_scan API change.
350
351 2003-07-15  Werner Koch  <wk@gnupg.org>
352
353         * simple-pwquery.c, simple-pwquery.h:  Moved to ../common.
354         * Makefile.am (gpg_protect_tool_LDADD): Add simple-pwquery.o.
355         Removed it from xx_SOURCES.
356
357 2003-07-04  Werner Koch  <wk@gnupg.org>
358
359         * gpg-agent.c (handle_connections): Kludge to allow use of Pth 1
360         and 2.
361
362 2003-06-30  Werner Koch  <wk@gnupg.org>
363
364         * call-scd.c (learn_status_cb): Store the serialno in PARM.
365
366 2003-06-26  Werner Koch  <wk@gnupg.org>
367
368         * call-scd.c (agent_card_serialno): Don't do a RESET anymore.
369
370 2003-06-25  Werner Koch  <wk@gnupg.org>
371
372         * command.c (cmd_scd): New.
373         * call-scd.c (agent_card_scd): New.
374         * divert-scd.c (divert_generic_cmd): New
375
376         * call-scd.c (agent_card_learn): New callback args SINFO.
377         (learn_status_cb): Pass all other status lines to the sinfo
378         callback.
379         * learncard.c (release_sinfo, sinfo_cb): New.
380         (agent_handle_learn): Pass the new cb to the learn function and
381         pass the collected information back to the client's assuan
382         connection.
383
384         * gpg-agent.c (main): Moved pth_init before gcry_check_version.
385
386 2003-06-24  Werner Koch  <wk@gnupg.org>
387
388         * gpg-agent.c (handle_connections): Adjusted for Pth 2.0
389
390         Adjusted for changes in the libgcrypt API. Some more fixes for the
391         libgpg-error stuff.  
392
393 2003-06-04  Werner Koch  <wk@gnupg.org>
394
395         Renamed error codes from INVALID to INV and removed _ERROR suffixes.
396
397 2003-06-03  Werner Koch  <wk@gnupg.org>
398
399         Changed all error codes in all files to the new libgpg-error scheme.
400
401         * agent.h: Include gpg-error.h and errno.h
402         * Makefile.am: Link with libgpg-error
403
404         * query.c: assuan.h is now a system header.
405         * genkey.c (agent_genkey): Fixed silly use of xmalloc by
406         xtrymalloc.
407
408 2003-04-29  Werner Koch  <wk@gnupg.org>
409
410         * command.c (register_commands): Adjusted for new Assuan semantics.
411
412         * Makefile.am: Don't override LDFLAGS.
413
414 2002-12-04  Werner Koch  <wk@gnupg.org>
415
416         * gpg-agent.c: New variable config_filename.
417         (parse_rereadable_options): New.
418         (main): Use it here.  Add setting of default values, set
419         config_filename.
420         (reread_configuration): Filled with actual code.
421
422 2002-12-03  Werner Koch  <wk@gnupg.org>
423
424         * protect-tool.c (read_key): Don't run make_canonical on a NULL
425         buffer.
426
427         * command.c (parse_hexstring): New.
428         (cmd_sethash): Use it.
429         (parse_keygrip): New.
430         (cmd_havekey, cmd_sigkey): Use it.
431         (cmd_passwd): New.
432         * genkey.c (agent_protect_and_store): New.
433         (store_key): Add arg FORCE.
434         (agent_genkey): Pass false to this force of store_key.
435
436 2002-11-13  Werner Koch  <wk@gnupg.org>
437
438         * gpg-agent.c (main): Switch all messages to utf-8.
439
440         * simple-pwquery.c (agent_send_all_options): Use $GPG_TTY and
441         stdin with ttyname.
442
443         * cache.c (new_data): Uiih - /sizeof d/sizeof *d/.
444
445 2002-11-10  Werner Koch  <wk@gnupg.org>
446
447         * command.c (option_handler): Fix keep_tty check.
448
449 2002-11-06  Werner Koch  <wk@gnupg.org>
450
451         * gpg-agent.c (main): Make sure we have a default ttyname.
452         * command.c (option_handler): Check opt.keep_tty here
453         * query.c (start_pinentry): but not anymore here.
454
455 2002-11-05  Werner Koch  <wk@gnupg.org>
456
457         * agent.h (opt,server_control_s): Move display and lc_ variables
458         to the control struct so that they are per connection.
459         * gpg-agent.c (agent_init_default_ctrl): New.
460         (main): Assign those command line options to new default_* variables.
461         Reset DISPLAY in server mode so that tehre is no implicit default.
462         * command.c (start_command_handler): Initialize and deinitialize
463         the control values.
464         (option_handler): Work on the ctrl values and not on the opt.
465         * query.c (start_pinentry): New argument CTRL to set the display
466         connection specific.  Changed all callers to pass this value.
467         (agent_askpin,agent_get_passphrase,agent_get_confirmation): Add
468         CTRL arg and pass it ot start_pinentry.
469         * command.c (cmd_get_passphrase): Pass CTRL argument.
470         * trustlist.c (agent_marktrusted):  Add CTRL argument  
471         * command.c (cmd_marktrusted): Pass CTRL argument
472         * divert-scd.c (ask_for_card):  Add CTRL arg. 
473         (divert_pksign,divert_pkdecrypt): Ditto.  Changed caller.
474         (getpin_cb): Use OPAQUE to pass the CTRL variable.  Changed both 
475         users.
476         * findkey.c (unprotect): Add CTRL arg.
477         (agent_key_from_file): Ditto.
478
479         * query.c (unlock_pinentry): Disconnect the pinentry so that we
480         start a new one for each request.  This is required to support
481         clients with different environments (e.g. X magic cookies).
482
483 2002-09-05  Neal H. Walfield  <neal@cs.uml.edu>
484
485         * gpg-agent.c (main) [USE_GNU_PTH]: No need to call
486         assuan_set_io_func as assuan is smart.
487
488 2002-09-25  Werner Koch  <wk@gnupg.org>
489
490         * gpg-agent.c (handle_signal): Flush cache on SIGHUP.
491         * cache.c (agent_flush_cache): New.
492
493         * gpg-agent.c, agent.h: Add --keep-display and --keep-tty.
494         * query.c (start_pinentry): Implement them.  The option passing
495         needs more thoughts.
496
497 2002-09-09  Werner Koch  <wk@gnupg.org>
498
499         * gpg-agent.c (create_private_keys_directory)
500         (create_directories): New.
501         (main): Try to create a home directory.
502
503 2002-09-04  Neal H. Walfield  <neal@g10code.de>
504
505         * gpg-agent.c (main): Use sigaction, not signal.
506
507 2002-09-03  Neal H. Walfield  <neal@g10code.de>
508
509         * findkey.c: Include <fcntl.h>.
510         (agent_write_private_key): Prefer POSIX compatibity, open and
511         fdopen, over the simplicity of GNU extensions, fopen(file, "x").
512
513 2002-08-22  Werner Koch  <wk@gnupg.org>
514
515         * query.c (agent_askpin): Provide the default desc text depending
516         on the pininfo.  Do the basic PIN verification only when
517         min_digits is set.
518
519 2002-08-21  Werner Koch  <wk@gnupg.org>
520
521         * query.c (agent_askpin): Hack to show the right default prompt.
522         (agent_get_passphrase): Ditto.
523
524         * trans.c: Removed and replaced all usages with standard _()
525
526         * divert-scd.c (getpin_cb): Pass a more descritive text to the
527         pinentry.
528
529         * Makefile.am: Renamed the binary protect-tool to gpg-protect-tool.
530         * protect-tool.c: Removed the note about internal use only.
531
532         * gpg-agent.c (main): New option --daemon so that the program is
533         not accidently started in the background.
534
535 2002-08-16  Werner Koch  <wk@gnupg.org>
536
537         * call-scd.c (learn_status_cb): Handle CERTINFO status.
538         (agent_card_learn): Add args for certinfo cb.
539         * learncard.c (release_certinfo,certinfo_cb): New.
540         (send_cert_back): New. With factored out code from ..
541         (agent_handle_learn): here.  Return certinfo stuff.
542
543 2002-07-26  Werner Koch  <wk@gnupg.org>
544
545         * gpg-agent.c (main): New option --ignore-cache-for-signing.
546         * command.c (option_handler): New server option
547         use-cache-for-signing defaulting to true.
548         (cmd_pksign): handle global and per session option.
549         * findkey.c (agent_key_from_file, unprotect): New arg
550         ignore_cache.  Changed all callers.
551         * pksign.c (agent_pksign): Likewise.
552
553 2002-06-29  Werner Koch  <wk@gnupg.org>
554
555         * query.c (start_pinentry): Use GNUPG_DERAULT_PINENTRY.
556         * call-scd.c (start_scd): Use GNUPG_DEFAULT_SCDAEMON.
557
558 2002-06-28  Werner Koch  <wk@gnupg.org>
559
560         * protect-tool.c (export_p12_file): New.
561         (main): New command --p12-export.
562         * minip12.c (create_final,p12_build,compute_tag_length): New.
563         (store_tag_length): New.
564
565 2002-06-27  Werner Koch  <wk@gnupg.org>
566
567         * minip12.c (crypt_block): Renamed from decrypt_block, add arg to
568         allow encryption.
569
570         * Makefile.am (pkglib_PROGRAMS): Put protect-tool there.
571
572         * findkey.c (agent_write_private_key,agent_key_from_file)
573         (agent_key_available): Use GNUPG_PRIVATE_KEYS_DIR constant.
574         * gpg-agent.c (main): Use GNUPG_DEFAULT_HOMEDIR constant.
575
576         * protect-tool.c (store_private_key): New.
577         (import_p12_file): Store the new file if requested.
578         (main): New options --force and --store.
579
580         * gpg-agent.c (main): Set a global flag when running detached.
581         * query.c (start_pinentry): Pass the list of FD to keep in the
582         child when not running detached.
583         * call-scd.c (start_scd): Ditto.
584
585 2002-06-26  Werner Koch  <wk@gnupg.org>
586
587         * command.c (cmd_istrusted, cmd_listtrusted, cmd_marktrusted)
588         (cmd_pksign, cmd_pkdecrypt, cmd_genkey, cmd_get_passphrase)
589         (cmd_learn): Print an error message for a failed operation.
590
591         * simple-pwquery.c, simple-pwquery.h: New.
592         * protect-tool. (get_passphrase): New, used to get a passphrase
593         from the agent if none was given on the command line.
594
595 2002-06-25  Werner Koch  <wk@gnupg.org>
596
597         * protect-tool.c (rsa_key_check): New.
598         (import_p12_file): New.
599         (main): New command --p12-import.
600         * minip12.c, minip12.h: New.
601
602 2002-06-24  Werner Koch  <wk@gnupg.org>
603
604         * protect-tool.c (read_file): New.
605         (read_key): Factored most code out to read_file.
606
607 2002-06-17  Werner Koch  <wk@gnupg.org>
608
609         * agent.h: Add a callback function to the pin_entry_info structure.
610         * query.c (agent_askpin): Use the callback to check for a correct
611         PIN.  Removed the start_err_text argument because it is not
612         anymore needed; changed callers.
613         * findkey.c (unprotect): Replace our own check loop by a callback.
614         (try_unprotect_cb): New.
615         * genkey.c (reenter_compare_cb): New.
616         (agent_genkey): Use this callback here.  Fixed setting of the pi2
617         variable and a segv in case of an empty PIN.
618
619         * divert-scd.c (getpin_cb): Removed some unused stuff and
620         explained what we still have to change.
621
622 2002-06-12  Werner Koch  <wk@gnupg.org>
623
624         * gpg-agent.c (main): New option --disable-pth.
625
626 2002-06-11  Werner Koch  <wk@gnupg.org>
627
628         * protect-tool.c: Add command --show-keygrip
629         (show_keygrip): New.
630
631 2002-05-23  Werner Koch  <wk@gnupg.org>
632
633         * call-scd.c: Seirialized all scdaeom access when using Pth.
634
635         * cache.c: Made the cache Pth-thread-safe.
636         (agent_unlock_cache_entry): New.
637         * findkey.c (unprotect): Unlock the returned cache value.
638         * command.c (cmd_get_passphrase): Ditto.
639
640         * gpg-agent.c (main): Register pth_read/write with Assuan.
641
642 2002-05-22  Werner Koch  <wk@gnupg.org>
643
644         * query.c: Serialized all pinentry access when using Pth.
645
646         * gpg-agent.c (handle_signal,start_connection_thread)
647         (handle_connections): New
648         (main): Use the new Pth stuff to allow concurrent connections.
649         * command.c (start_command_handler): Add new arg FD so that the
650         fucntion can also be used for an already connected socket.
651         * Makefile.am: Link with Pth.
652
653 2002-05-14  Werner Koch  <wk@gnupg.org>
654
655         * cache.c (housekeeping, agent_put_cache): Use our time() wrapper.
656
657 2002-04-26  Werner Koch  <wk@gnupg.org>
658
659         * cache.c (agent_put_cache): Reinitialize the creation time and
660         the ttl when reusing a slot.
661
662         * call-scd.c (start_scd): Print debug messages only with debug
663         flags set.
664         * query.c (start_pinentry): Ditto.
665
666 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
667
668         * agent.h (agent_get_confirmation): Replace paramter prompt with
669         two parameters ok and cancel.
670         * query.c (agent_get_confirmation): Likewise.  Implement this.
671         * trustlist.c (agent_marktrusted): Fix invocation of
672         agent_get_confirmation.
673         * divert-scd.c (ask_for_card): Likewise.
674
675 2002-04-24  Marcus Brinkmann  <marcus@g10code.de>
676
677         * agent.h (struct opt): Add members display, ttyname, ttytype,
678         lc_ctype, and lc_messages.
679         * gpg-agent.c (enum cmd_and_opt_values): Add oDisplay, oTTYname,
680         oTTYtype, oLCctype, and LCmessages.
681         (main): Handle these options.
682         * command.c (option_handler): New function.
683         (register_commands): Register option handler.
684         * query.c (start_pinentry): Pass the various display and tty
685         options to the pinentry.
686
687 2002-04-05  Werner Koch  <wk@gnupg.org>
688
689         * protect-tool.c (show_file): New.  Used as default action.
690
691 2002-03-28  Werner Koch  <wk@gnupg.org>
692
693         * divert-scd.c (encode_md_for_card): Don't do the pkcs-1 padding,
694         the scdaemon should take care of it.
695         (ask_for_card): Hack to not display the trailing zero.
696
697 2002-03-11  Werner Koch  <wk@gnupg.org>
698
699         * learncard.c (kpinfo_cb): Remove the content restrictions from
700         the keyID.
701
702 2002-03-06  Werner Koch  <wk@gnupg.org>
703
704         * learncard.c: New.
705         * divert-scd.c (ask_for_card): The serial number is binary so
706         convert it to hex here.
707         * findkey.c (agent_write_private_key): New.
708         * genkey.c (store_key): And use it here.
709         
710         * pkdecrypt.c (agent_pkdecrypt): Changed the way the diversion is done.
711         * divert-scd.c (divert_pkdecrypt): Changed interface and
712         implemented it.
713
714 2002-03-05  Werner Koch  <wk@gnupg.org>
715
716         * call-scd.c (inq_needpin): New.
717         (agent_card_pksign): Add getpin_cb args.
718         (agent_card_pkdecrypt): New.
719
720 2002-03-04  Werner Koch  <wk@gnupg.org>
721
722         * pksign.c (agent_pksign): Changed how the diversion is done.
723         * divert-scd.c (divert_pksign): Changed interface and implemented it.
724         (encode_md_for_card): New.
725         * call-scd.c (agent_card_pksign): New.
726
727 2002-02-28  Werner Koch  <wk@gnupg.org>
728
729         * pksign.c (agent_pksign): Detect whether a Smartcard is to be
730         used and divert the operation in this case.
731         * pkdecrypt.c (agent_pkdecrypt): Likewise
732         * findkey.c (agent_key_from_file): Add optional arg shadow_info
733         and have it return information about a shadowed key.
734         * protect.c (agent_get_shadow_info): New.
735
736         * protect.c (snext,sskip,smatch): Moved to
737         * sexp-parse.h: New file.
738         * divert-scd.c: New.
739         
740 2002-02-27  Werner Koch  <wk@gnupg.org>
741
742         * protect.c (agent_shadow_key): New.
743
744         * command.c (cmd_learn): New command LEARN.
745         * gpg-agent.c: New option --scdaemon-program.
746         * call-scd.c (start_scd): New. Based on query.c
747         * query.c: Add 2 more arguments to all uses of assuan_transact.
748
749 2002-02-18  Werner Koch  <wk@gnupg.org>
750
751         * findkey.c (unprotect): Show an error message for a bad passphrase.
752
753         * command.c (cmd_marktrusted): Implemented.
754         * trustlist.c (agent_marktrusted): New.
755         (open_list): Add APPEND arg.
756
757         * query.c (agent_get_confirmation): New.
758
759 2002-02-06  Werner Koch  <wk@gnupg.org>
760
761         * cache.c (housekeeping): Fixed linking in the remove case.
762
763 2002-02-01  Werner Koch  <wk@gnupg.org>
764
765         * gpg-agent.c: New option --default-cache-ttl.
766         * cache.c (agent_put_cache): Use it.
767         
768         * cache.c: Add a few debug outputs.
769
770         * protect.c (agent_private_key_type): New.
771         * agent.h: Add PRIVATE_KEY_ enums.
772         * findkey.c (agent_key_from_file): Use it to decide whether we
773         have to unprotect a key.
774         (unprotect): Cache the passphrase.
775         
776         * findkey.c (agent_key_from_file,agent_key_available): The key
777         files do now require a ".key" suffix to make a script's life
778         easier. 
779         * genkey.c (store_key): Ditto.
780
781 2002-01-31  Werner Koch  <wk@gnupg.org>
782
783         * genkey.c (store_key): Protect the key.
784         (agent_genkey): Ask for the passphrase.
785         * findkey.c (unprotect): Actually unprotect the key.
786         * query.c (agent_askpin): Add an optional start_err_text. 
787
788 2002-01-30  Werner Koch  <wk@gnupg.org>
789
790         * protect.c: New.  
791         (hash_passphrase): Based on the GnuPG 1.0.6 version.
792         * protect-tool.c: New
793
794 2002-01-29  Werner Koch  <wk@gnupg.org>
795
796         * findkey.c (agent_key_available): New.
797         * command.c (cmd_havekey): New.
798         (register_commands): And register new command.
799
800 2002-01-20  Werner Koch  <wk@gnupg.org>
801
802         * command.c (cmd_get_passphrase): Remove the plus signs.
803
804         * query.c (start_pinentry): Send no-grab option to pinentry
805         * gpg-agent.c (main): Move variable grab as no_grab to agent.h.
806
807 2002-01-19  Werner Koch  <wk@gnupg.org>
808
809         * gpg-agent.c (main): Disable core dumps.
810
811         * cache.c: New.
812         * command.c (cmd_get_passphrase): Use the cache.
813         (cmd_clear_passphrase): Ditto.
814
815         * gpg-agent.c:  Removed unused cruft and implement the socket
816         based server.
817         (my_strusage): Take bug report address from configure.ac.
818         * command.c (start_command_handler): Add an argument to start as
819         regular server.
820         (start_command_handler): Enable Assuan logging.
821
822 2002-01-15  Werner Koch  <wk@gnupg.org>
823
824         * trustlist.c: New.
825         * command.c (cmd_istrusted, cmd_listtrusted, cmd_marktrusted): New.
826
827 2002-01-07  Werner Koch  <wk@gnupg.org>
828
829         * genkey.c: Store the secret part and return the public part.
830
831 2002-01-03  Werner Koch  <wk@gnupg.org>
832
833         * command.c (cmd_get_passphrase): New.
834         (cmd_clear_passphrase): New.
835         * query.c (agent_get_passphrase): New.
836
837 2002-01-02  Werner Koch  <wk@gnupg.org>
838
839         * genkey.c: New.
840         * command.c (cmd_genkey): New.
841
842         * command.c (rc_to_assuan_status): Removed and changed all callers
843         to use map_to_assuan_status.
844         
845 2001-12-19  Werner Koch  <wk@gnupg.org>
846
847         * keyformat.txt: New. 
848
849 2001-12-19  Marcus Brinkmann  <marcus@g10code.de>
850
851         * query.c (start_pinentry): Add new argument to assuan_pipe_connect.
852
853 2001-12-18  Werner Koch  <wk@gnupg.org>
854
855         * Makefile.am: Use LIBGCRYPT macros
856
857 2001-12-14  Werner Koch  <wk@gnupg.org>
858
859         * gpg-agent.c (main): New option --batch.  New option --debug-wait
860         n, so that it is possible to attach gdb when used in server mode.
861         * query.c (agent_askpin): Don't ask in batch mode.
862
863         * command.c: Removed the conversion macros as they are now in
864         ../common/util.h.
865
866 2001-12-14  Marcus Brinkmann  <marcus@g10code.de>
867
868         * query.c (LINELENGTH): Removed.
869         (agent_askpin): Use ASSUAN_LINELENGTH, not LINELENGTH.
870
871 2001-11-19  Werner Koch  <wk@gnupg.org>
872
873         * gpg-agent.c: Removed all GUI code, removed code for old
874         protocol.  New code to use the Assuan protocol as a server and
875         also to communicate with a new ask-passphrase utility.
876
877 2000-11-22  Werner Koch  <wk@gnupg.org>
878
879         * gpg-agent.c (main): csh support by Dan Winship, new options --sh
880         and --csh and set default by consulting $SHELL.
881
882 Mon Aug 21 17:59:17 CEST 2000  Werner Koch  <wk@openit.de>
883
884         * gpg-agent.c (passphrase_dialog): Cleanup the window and added the
885         user supplied text to the window.
886         (main): Fixed segv in gtk_init when used without a command to start.
887
888         * gpg-agent.c: --flush option.
889         (req_flush): New.
890         (req_clear_passphrase): Implemented.
891
892 Fri Aug 18 14:27:14 CEST 2000  Werner Koch  <wk@openit.de>
893
894         * gpg-agent.c: New.
895         * Makefile.am: New.
896
897
898  Copyright 2001, 2002 Free Software Foundation, Inc.
899
900  This file is free software; as a special exception the author gives
901  unlimited permission to copy and/or distribute it, with or without
902  modifications, as long as this notice is preserved.
903
904  This file is distributed in the hope that it will be useful, but
905  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
906  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.