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