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