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