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