Adjusted for use with current libgcrypt (1.1.42).
[gnupg.git] / agent / ChangeLog
1 2003-07-27  Werner Koch  <wk@gnupg.org>
2
3         Adjusted for gcry_mpi_print and gcry_mpi_scan API change.
4
5 2003-07-15  Werner Koch  <wk@gnupg.org>
6
7         * simple-pwquery.c, simple-pwquery.h:  Moved to ../common.
8         * Makefile.am (gpg_protect_tool_LDADD): Add simple-pwquery.o.
9         Removed it from xx_SOURCES.
10
11 2003-07-04  Werner Koch  <wk@gnupg.org>
12
13         * gpg-agent.c (handle_connections): Kludge to allow use of Pth 1
14         and 2.
15
16 2003-06-30  Werner Koch  <wk@gnupg.org>
17
18         * call-scd.c (learn_status_cb): Store the serialno in PARM.
19
20 2003-06-26  Werner Koch  <wk@gnupg.org>
21
22         * call-scd.c (agent_card_serialno): Don't do a RESET anymore.
23
24 2003-06-25  Werner Koch  <wk@gnupg.org>
25
26         * command.c (cmd_scd): New.
27         * call-scd.c (agent_card_scd): New.
28         * divert-scd.c (divert_generic_cmd): New
29
30         * call-scd.c (agent_card_learn): New callback args SINFO.
31         (learn_status_cb): Pass all other status lines to the sinfo
32         callback.
33         * learncard.c (release_sinfo, sinfo_cb): New.
34         (agent_handle_learn): Pass the new cb to the learn function and
35         pass the collected information back to the client's assuan
36         connection.
37
38         * gpg-agent.c (main): Moved pth_init before gcry_check_version.
39
40 2003-06-24  Werner Koch  <wk@gnupg.org>
41
42         * gpg-agent.c (handle_connections): Adjusted for Pth 2.0
43
44         Adjusted for changes in the libgcrypt API. Some more fixes for the
45         libgpg-error stuff.  
46
47 2003-06-04  Werner Koch  <wk@gnupg.org>
48
49         Renamed error codes from INVALID to INV and removed _ERROR suffixes.
50
51 2003-06-03  Werner Koch  <wk@gnupg.org>
52
53         Changed all error codes in all files to the new libgpg-error scheme.
54
55         * agent.h: Include gpg-error.h and errno.h
56         * Makefile.am: Link with libgpg-error
57
58         * query.c: assuan.h is now a system header.
59         * genkey.c (agent_genkey): Fixed silly use of xmalloc by
60         xtrymalloc.
61
62 2003-04-29  Werner Koch  <wk@gnupg.org>
63
64         * command.c (register_commands): Adjusted for new Assuan semantics.
65
66         * Makefile.am: Don't override LDFLAGS.
67
68 2002-12-04  Werner Koch  <wk@gnupg.org>
69
70         * gpg-agent.c: New variable config_filename.
71         (parse_rereadable_options): New.
72         (main): Use it here.  Add setting of default values, set
73         config_filename.
74         (reread_configuration): Filled with actual code.
75
76 2002-12-03  Werner Koch  <wk@gnupg.org>
77
78         * protect-tool.c (read_key): Don't run make_canonical on a NULL
79         buffer.
80
81         * command.c (parse_hexstring): New.
82         (cmd_sethash): Use it.
83         (parse_keygrip): New.
84         (cmd_havekey, cmd_sigkey): Use it.
85         (cmd_passwd): New.
86         * genkey.c (agent_protect_and_store): New.
87         (store_key): Add arg FORCE.
88         (agent_genkey): Pass false to this force of store_key.
89
90 2002-11-13  Werner Koch  <wk@gnupg.org>
91
92         * gpg-agent.c (main): Switch all messages to utf-8.
93
94         * simple-pwquery.c (agent_send_all_options): Use $GPG_TTY and
95         stdin with ttyname.
96
97         * cache.c (new_data): Uiih - /sizeof d/sizeof *d/.
98
99 2002-11-10  Werner Koch  <wk@gnupg.org>
100
101         * command.c (option_handler): Fix keep_tty check.
102
103 2002-11-06  Werner Koch  <wk@gnupg.org>
104
105         * gpg-agent.c (main): Make sure we have a default ttyname.
106         * command.c (option_handler): Check opt.keep_tty here
107         * query.c (start_pinentry): but not anymore here.
108
109 2002-11-05  Werner Koch  <wk@gnupg.org>
110
111         * agent.h (opt,server_control_s): Move display and lc_ variables
112         to the control struct so that they are per connection.
113         * gpg-agent.c (agent_init_default_ctrl): New.
114         (main): Assign those command line options to new default_* variables.
115         Reset DISPLAY in server mode so that tehre is no implicit default.
116         * command.c (start_command_handler): Initialize and deinitialize
117         the control values.
118         (option_handler): Work on the ctrl values and not on the opt.
119         * query.c (start_pinentry): New argument CTRL to set the display
120         connection specific.  Changed all callers to pass this value.
121         (agent_askpin,agent_get_passphrase,agent_get_confirmation): Add
122         CTRL arg and pass it ot start_pinentry.
123         * command.c (cmd_get_passphrase): Pass CTRL argument.
124         * trustlist.c (agent_marktrusted):  Add CTRL argument  
125         * command.c (cmd_marktrusted): Pass CTRL argument
126         * divert-scd.c (ask_for_card):  Add CTRL arg. 
127         (divert_pksign,divert_pkdecrypt): Ditto.  Changed caller.
128         (getpin_cb): Use OPAQUE to pass the CTRL variable.  Changed both 
129         users.
130         * findkey.c (unprotect): Add CTRL arg.
131         (agent_key_from_file): Ditto.
132
133         * query.c (unlock_pinentry): Disconnect the pinentry so that we
134         start a new one for each request.  This is required to support
135         clients with different environments (e.g. X magic cookies).
136
137 2002-09-05  Neal H. Walfield  <neal@cs.uml.edu>
138
139         * gpg-agent.c (main) [USE_GNU_PTH]: No need to call
140         assuan_set_io_func as assuan is smart.
141
142 2002-09-25  Werner Koch  <wk@gnupg.org>
143
144         * gpg-agent.c (handle_signal): Flush cache on SIGHUP.
145         * cache.c (agent_flush_cache): New.
146
147         * gpg-agent.c, agent.h: Add --keep-display and --keep-tty.
148         * query.c (start_pinentry): Implement them.  The option passing
149         needs more thoughts.
150
151 2002-09-09  Werner Koch  <wk@gnupg.org>
152
153         * gpg-agent.c (create_private_keys_directory)
154         (create_directories): New.
155         (main): Try to create a home directory.
156
157 2002-09-04  Neal H. Walfield  <neal@g10code.de>
158
159         * gpg-agent.c (main): Use sigaction, not signal.
160
161 2002-09-03  Neal H. Walfield  <neal@g10code.de>
162
163         * findkey.c: Include <fcntl.h>.
164         (agent_write_private_key): Prefer POSIX compatibity, open and
165         fdopen, over the simplicity of GNU extensions, fopen(file, "x").
166
167 2002-08-22  Werner Koch  <wk@gnupg.org>
168
169         * query.c (agent_askpin): Provide the default desc text depending
170         on the pininfo.  Do the basic PIN verification only when
171         min_digits is set.
172
173 2002-08-21  Werner Koch  <wk@gnupg.org>
174
175         * query.c (agent_askpin): Hack to show the right default prompt.
176         (agent_get_passphrase): Ditto.
177
178         * trans.c: Removed and replaced all usages with standard _()
179
180         * divert-scd.c (getpin_cb): Pass a more descritive text to the
181         pinentry.
182
183         * Makefile.am: Renamed the binary protect-tool to gpg-protect-tool.
184         * protect-tool.c: Removed the note about internal use only.
185
186         * gpg-agent.c (main): New option --daemon so that the program is
187         not accidently started in the background.
188
189 2002-08-16  Werner Koch  <wk@gnupg.org>
190
191         * call-scd.c (learn_status_cb): Handle CERTINFO status.
192         (agent_card_learn): Add args for certinfo cb.
193         * learncard.c (release_certinfo,certinfo_cb): New.
194         (send_cert_back): New. With factored out code from ..
195         (agent_handle_learn): here.  Return certinfo stuff.
196
197 2002-07-26  Werner Koch  <wk@gnupg.org>
198
199         * gpg-agent.c (main): New option --ignore-cache-for-signing.
200         * command.c (option_handler): New server option
201         use-cache-for-signing defaulting to true.
202         (cmd_pksign): handle global and per session option.
203         * findkey.c (agent_key_from_file, unprotect): New arg
204         ignore_cache.  Changed all callers.
205         * pksign.c (agent_pksign): Likewise.
206
207 2002-06-29  Werner Koch  <wk@gnupg.org>
208
209         * query.c (start_pinentry): Use GNUPG_DERAULT_PINENTRY.
210         * call-scd.c (start_scd): Use GNUPG_DEFAULT_SCDAEMON.
211
212 2002-06-28  Werner Koch  <wk@gnupg.org>
213
214         * protect-tool.c (export_p12_file): New.
215         (main): New command --p12-export.
216         * minip12.c (create_final,p12_build,compute_tag_length): New.
217         (store_tag_length): New.
218
219 2002-06-27  Werner Koch  <wk@gnupg.org>
220
221         * minip12.c (crypt_block): Renamed from decrypt_block, add arg to
222         allow encryption.
223
224         * Makefile.am (pkglib_PROGRAMS): Put protect-tool there.
225
226         * findkey.c (agent_write_private_key,agent_key_from_file)
227         (agent_key_available): Use GNUPG_PRIVATE_KEYS_DIR constant.
228         * gpg-agent.c (main): Use GNUPG_DEFAULT_HOMEDIR constant.
229
230         * protect-tool.c (store_private_key): New.
231         (import_p12_file): Store the new file if requested.
232         (main): New options --force and --store.
233
234         * gpg-agent.c (main): Set a global flag when running detached.
235         * query.c (start_pinentry): Pass the list of FD to keep in the
236         child when not running detached.
237         * call-scd.c (start_scd): Ditto.
238
239 2002-06-26  Werner Koch  <wk@gnupg.org>
240
241         * command.c (cmd_istrusted, cmd_listtrusted, cmd_marktrusted)
242         (cmd_pksign, cmd_pkdecrypt, cmd_genkey, cmd_get_passphrase)
243         (cmd_learn): Print an error message for a failed operation.
244
245         * simple-pwquery.c, simple-pwquery.h: New.
246         * protect-tool. (get_passphrase): New, used to get a passphrase
247         from the agent if none was given on the command line.
248
249 2002-06-25  Werner Koch  <wk@gnupg.org>
250
251         * protect-tool.c (rsa_key_check): New.
252         (import_p12_file): New.
253         (main): New command --p12-import.
254         * minip12.c, minip12.h: New.
255
256 2002-06-24  Werner Koch  <wk@gnupg.org>
257
258         * protect-tool.c (read_file): New.
259         (read_key): Factored most code out to read_file.
260
261 2002-06-17  Werner Koch  <wk@gnupg.org>
262
263         * agent.h: Add a callback function to the pin_entry_info structure.
264         * query.c (agent_askpin): Use the callback to check for a correct
265         PIN.  Removed the start_err_text argument because it is not
266         anymore needed; changed callers.
267         * findkey.c (unprotect): Replace our own check loop by a callback.
268         (try_unprotect_cb): New.
269         * genkey.c (reenter_compare_cb): New.
270         (agent_genkey): Use this callback here.  Fixed setting of the pi2
271         variable and a segv in case of an empty PIN.
272
273         * divert-scd.c (getpin_cb): Removed some unused stuff and
274         explained what we still have to change.
275
276 2002-06-12  Werner Koch  <wk@gnupg.org>
277
278         * gpg-agent.c (main): New option --disable-pth.
279
280 2002-06-11  Werner Koch  <wk@gnupg.org>
281
282         * protect-tool.c: Add command --show-keygrip
283         (show_keygrip): New.
284
285 2002-05-23  Werner Koch  <wk@gnupg.org>
286
287         * call-scd.c: Seirialized all scdaeom access when using Pth.
288
289         * cache.c: Made the cache Pth-thread-safe.
290         (agent_unlock_cache_entry): New.
291         * findkey.c (unprotect): Unlock the returned cache value.
292         * command.c (cmd_get_passphrase): Ditto.
293
294         * gpg-agent.c (main): Register pth_read/write with Assuan.
295
296 2002-05-22  Werner Koch  <wk@gnupg.org>
297
298         * query.c: Serialized all pinentry access when using Pth.
299
300         * gpg-agent.c (handle_signal,start_connection_thread)
301         (handle_connections): New
302         (main): Use the new Pth stuff to allow concurrent connections.
303         * command.c (start_command_handler): Add new arg FD so that the
304         fucntion can also be used for an already connected socket.
305         * Makefile.am: Link with Pth.
306
307 2002-05-14  Werner Koch  <wk@gnupg.org>
308
309         * cache.c (housekeeping, agent_put_cache): Use our time() wrapper.
310
311 2002-04-26  Werner Koch  <wk@gnupg.org>
312
313         * cache.c (agent_put_cache): Reinitialize the creation time and
314         the ttl when reusing a slot.
315
316         * call-scd.c (start_scd): Print debug messages only with debug
317         flags set.
318         * query.c (start_pinentry): Ditto.
319
320 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
321
322         * agent.h (agent_get_confirmation): Replace paramter prompt with
323         two parameters ok and cancel.
324         * query.c (agent_get_confirmation): Likewise.  Implement this.
325         * trustlist.c (agent_marktrusted): Fix invocation of
326         agent_get_confirmation.
327         * divert-scd.c (ask_for_card): Likewise.
328
329 2002-04-24  Marcus Brinkmann  <marcus@g10code.de>
330
331         * agent.h (struct opt): Add members display, ttyname, ttytype,
332         lc_ctype, and lc_messages.
333         * gpg-agent.c (enum cmd_and_opt_values): Add oDisplay, oTTYname,
334         oTTYtype, oLCctype, and LCmessages.
335         (main): Handle these options.
336         * command.c (option_handler): New function.
337         (register_commands): Register option handler.
338         * query.c (start_pinentry): Pass the various display and tty
339         options to the pinentry.
340
341 2002-04-05  Werner Koch  <wk@gnupg.org>
342
343         * protect-tool.c (show_file): New.  Used as default action.
344
345 2002-03-28  Werner Koch  <wk@gnupg.org>
346
347         * divert-scd.c (encode_md_for_card): Don't do the pkcs-1 padding,
348         the scdaemon should take care of it.
349         (ask_for_card): Hack to not display the trailing zero.
350
351 2002-03-11  Werner Koch  <wk@gnupg.org>
352
353         * learncard.c (kpinfo_cb): Remove the content restrictions from
354         the keyID.
355
356 2002-03-06  Werner Koch  <wk@gnupg.org>
357
358         * learncard.c: New.
359         * divert-scd.c (ask_for_card): The serial number is binary so
360         convert it to hex here.
361         * findkey.c (agent_write_private_key): New.
362         * genkey.c (store_key): And use it here.
363         
364         * pkdecrypt.c (agent_pkdecrypt): Changed the way the diversion is done.
365         * divert-scd.c (divert_pkdecrypt): Changed interface and
366         implemented it.
367
368 2002-03-05  Werner Koch  <wk@gnupg.org>
369
370         * call-scd.c (inq_needpin): New.
371         (agent_card_pksign): Add getpin_cb args.
372         (agent_card_pkdecrypt): New.
373
374 2002-03-04  Werner Koch  <wk@gnupg.org>
375
376         * pksign.c (agent_pksign): Changed how the diversion is done.
377         * divert-scd.c (divert_pksign): Changed interface and implemented it.
378         (encode_md_for_card): New.
379         * call-scd.c (agent_card_pksign): New.
380
381 2002-02-28  Werner Koch  <wk@gnupg.org>
382
383         * pksign.c (agent_pksign): Detect whether a Smartcard is to be
384         used and divert the operation in this case.
385         * pkdecrypt.c (agent_pkdecrypt): Likewise
386         * findkey.c (agent_key_from_file): Add optional arg shadow_info
387         and have it return information about a shadowed key.
388         * protect.c (agent_get_shadow_info): New.
389
390         * protect.c (snext,sskip,smatch): Moved to
391         * sexp-parse.h: new file.
392         * divert-scd.c: New.
393         
394 2002-02-27  Werner Koch  <wk@gnupg.org>
395
396         * protect.c (agent_shadow_key): New.
397
398         * command.c (cmd_learn): New command LEARN.
399         * gpg-agent.c: New option --scdaemon-program.
400         * call-scd.c (start_scd): New. Based on query.c
401         * query.c: Add 2 more arguments to all uses of assuan_transact.
402
403 2002-02-18  Werner Koch  <wk@gnupg.org>
404
405         * findkey.c (unprotect): Show an error message for a bad passphrase.
406
407         * command.c (cmd_marktrusted): Implemented.
408         * trustlist.c (agent_marktrusted): New.
409         (open_list): Add APPEND arg.
410
411         * query.c (agent_get_confirmation): New.
412
413 2002-02-06  Werner Koch  <wk@gnupg.org>
414
415         * cache.c (housekeeping): Fixed linking in the remove case.
416
417 2002-02-01  Werner Koch  <wk@gnupg.org>
418
419         * gpg-agent.c: New option --default-cache-ttl.
420         * cache.c (agent_put_cache): Use it.
421         
422         * cache.c: Add a few debug outputs.
423
424         * protect.c (agent_private_key_type): New.
425         * agent.h: Add PRIVATE_KEY_ enums.
426         * findkey.c (agent_key_from_file): Use it to decide whether we
427         have to unprotect a key.
428         (unprotect): Cache the passphrase.
429         
430         * findkey.c (agent_key_from_file,agent_key_available): The key
431         files do now require a ".key" suffix to make a script's life
432         easier. 
433         * genkey.c (store_key): Ditto.
434
435 2002-01-31  Werner Koch  <wk@gnupg.org>
436
437         * genkey.c (store_key): Protect the key.
438         (agent_genkey): Ask for the passphrase.
439         * findkey.c (unprotect): Actually unprotect the key.
440         * query.c (agent_askpin): Add an optional start_err_text. 
441
442 2002-01-30  Werner Koch  <wk@gnupg.org>
443
444         * protect.c: New.  
445         (hash_passphrase): Based on the GnuPG 1.0.6 version.
446         * protect-tool.c: New
447
448 2002-01-29  Werner Koch  <wk@gnupg.org>
449
450         * findkey.c (agent_key_available): New.
451         * command.c (cmd_havekey): New.
452         (register_commands): And register new command.
453
454 2002-01-20  Werner Koch  <wk@gnupg.org>
455
456         * command.c (cmd_get_passphrase): Remove the plus signs.
457
458         * query.c (start_pinentry): Send no-grab option to pinentry
459         * gpg-agent.c (main): Move variable grab as no_grab to agent.h.
460
461 2002-01-19  Werner Koch  <wk@gnupg.org>
462
463         * gpg-agent.c (main): Disable core dumps.
464
465         * cache.c: New.
466         * command.c (cmd_get_passphrase): Use the cache.
467         (cmd_clear_passphrase): Ditto.
468
469         * gpg-agent.c:  Removed unused cruft and implement the socket
470         based server.
471         (my_strusage): Take bug report address from configure.ac.
472         * command.c (start_command_handler): Add an argument to start as
473         regular server.
474         (start_command_handler): Enable Assuan logging.
475
476 2002-01-15  Werner Koch  <wk@gnupg.org>
477
478         * trustlist.c: New.
479         * command.c (cmd_istrusted, cmd_listtrusted, cmd_marktrusted): New.
480
481 2002-01-07  Werner Koch  <wk@gnupg.org>
482
483         * genkey.c: Store the secret part and return the public part.
484
485 2002-01-03  Werner Koch  <wk@gnupg.org>
486
487         * command.c (cmd_get_passphrase): New.
488         (cmd_clear_passphrase): New.
489         * query.c (agent_get_passphrase): New.
490
491 2002-01-02  Werner Koch  <wk@gnupg.org>
492
493         * genkey.c: New.
494         * command.c (cmd_genkey): New.
495
496         * command.c (rc_to_assuan_status): Removed and changed all callers
497         to use map_to_assuan_status.
498         
499 2001-12-19  Werner Koch  <wk@gnupg.org>
500
501         * keyformat.txt: New. 
502
503 2001-12-19  Marcus Brinkmann  <marcus@g10code.de>
504
505         * query.c (start_pinentry): Add new argument to assuan_pipe_connect.
506
507 2001-12-18  Werner Koch  <wk@gnupg.org>
508
509         * Makefile.am: Use LIBGCRYPT macros
510
511 2001-12-14  Werner Koch  <wk@gnupg.org>
512
513         * gpg-agent.c (main): New option --batch.  New option --debug-wait
514         n, so that it is possible to attach gdb when used in server mode.
515         * query.c (agent_askpin): Don't ask in batch mode.
516
517         * command.c: Removed the conversion macros as they are now in
518         ../common/util.h.
519
520 2001-12-14  Marcus Brinkmann  <marcus@g10code.de>
521
522         * query.c (LINELENGTH): Removed.
523         (agent_askpin): Use ASSUAN_LINELENGTH, not LINELENGTH.
524
525 2001-11-19  Werner Koch  <wk@gnupg.org>
526
527         * gpg-agent.c: Removed all GUI code, removed code for old
528         protocol.  New code to use the Assuan protocol as a server and
529         also to communicate with a new ask-passphrase utility.
530
531 2000-11-22  Werner Koch  <wk@gnupg.org>
532
533         * gpg-agent.c (main): csh support by Dan Winship, new options --sh
534         and --csh and set default by consulting $SHELL.
535
536 Mon Aug 21 17:59:17 CEST 2000  Werner Koch  <wk@openit.de>
537
538         * gpg-agent.c (passphrase_dialog): Cleanup the window and added the
539         user supplied text to the window.
540         (main): Fixed segv in gtk_init when used without a command to start.
541
542         * gpg-agent.c: --flush option.
543         (req_flush): New.
544         (req_clear_passphrase): Implemented.
545
546 Fri Aug 18 14:27:14 CEST 2000  Werner Koch  <wk@openit.de>
547
548         * gpg-agent.c: New.
549         * Makefile.am: New.
550
551
552  Copyright 2001, 2002 Free Software Foundation, Inc.
553
554  This file is free software; as a special exception the author gives
555  unlimited permission to copy and/or distribute it, with or without
556  modifications, as long as this notice is preserved.
557
558  This file is distributed in the hope that it will be useful, but
559  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
560  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.