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