* sign.c (make_keysig_packet): Don't use MD5 for a RSA_S key as that
[gnupg.git] / g10 / ChangeLog
1 2006-03-06  David Shaw  <dshaw@jabberwocky.com>
2
3         * sign.c (make_keysig_packet): Don't use MD5 for a RSA_S key as
4         that is not a PGP 2.x algorithm.
5
6         * mainproc.c (proc_compressed): "Uncompressed" is not a valid
7         compression algorithm.
8
9 2006-03-06  Werner Koch  <wk@g10code.com>
10
11         * mainproc.c (check_sig_and_print): Made the composition test more
12         tight.  This is due to another bug report by Tavis Ormandy.
13         (add_onepass_sig): Simplified.
14
15 2006-03-05  Werner Koch  <wk@g10code.com>
16
17         * plaintext.c (handle_plaintext): Replace assert by explict error
18         conflict message.  Reported by Tavis Ormandy.
19
20 2006-03-02  Werner Koch  <wk@g10code.com>
21
22         * cardglue.c (check_card_serialno): Don't ask in batch mode.
23
24 2006-03-01  David Shaw  <dshaw@jabberwocky.com>
25
26         * getkey.c (parse_auto_key_locate): Error if the user selects
27         "cert" or "pka" when those features are disabled.
28
29         * misc.c (has_invalid_email_chars): Fix some C syntax that broke
30         the compilers on SGI IRIX MIPS and Compaq/DEC OSF/1 Alpha.  Noted
31         by Nelson H. F. Beebe.
32
33 2006-02-27  David Shaw  <dshaw@jabberwocky.com>
34
35         * options.skel: Document auto-key-locate and give a pointer to
36         Simon Josefsson's page for CERT.
37
38 2006-02-24  David Shaw  <dshaw@jabberwocky.com>
39
40         * keydb.h, getkey.c (release_akl), gpg.c (main): Add
41         --no-auto-key-locate.
42
43         * options.h, gpg.c (main): Keep track of each keyserver registered
44         so we can match on them later.
45
46         * keyserver-internal.h, keyserver.c (cmp_keyserver_spec,
47         keyserver_match), gpgv.c: New.  Find a keyserver that matches ours
48         and return its spec.
49
50         * getkey.c (get_pubkey_byname): Use it here to get the
51         per-keyserver options from an earlier keyserver.
52
53 2006-02-23  David Shaw  <dshaw@jabberwocky.com>
54
55         * keyserver.c (parse_keyserver_options): Only change max_cert if
56         it is used.
57
58         * options.c, gpg.c (main), keyserver.c (keyserver_spawn): No
59         special treatment of include-revoked, include-subkeys, and
60         try-dns-srv.  These are keyserver features, and GPG shouldn't get
61         involved here.
62
63         * keyserver.c (parse_keyserver_uri, add_canonical_option): Always
64         append options to the list, as ordering may be significant to the
65         user.
66
67         * gpg.c (add_notation_data): Fix reversed logic for isascii check
68         when adding notations.  Noted by Christian Biere.
69
70         * options.h, keyserver.c (add_canonical_option): New.
71         (parse_keyserver_options): Moved from here.
72         (parse_keyserver_uri): Use it here so each keyserver can have some
73         private options in addition to the main keyserver-options
74         (e.g. per-keyserver auth).
75
76 2006-02-22  David Shaw  <dshaw@jabberwocky.com>
77
78         * options.h, keyserver-internal.h, keyserver.c
79         (keyserver_import_name), getkey.c (free_akl,
80         parse_auto_key_locate, get_pubkey_byname): The obvious next step:
81         allow arbitrary keyservers in the auto-key-locate list.
82
83         * options.h, keyserver.c (parse_keyserver_options): Remove
84         auto-cert-retrieve as it is no longer meaningful.  Add
85         max-cert-size to allow users to pick a max key size retrieved via
86         CERT.
87
88         * options.h, gpg.c (main), mainproc.c (check_sig_and_print),
89         keyserver.c (keyserver_opts): Rename auto-pka-retrieve to
90         honor-pka-record to be consistent with honor-keyserver-url.
91
92         * options.h, keydb.h, g10.c (main), getkey.c
93         (parse_auto_key_locate): Parse a list of key access methods.
94         (get_pubkey_byname): Walk the list here to try and retrieve keys
95         we don't have locally.
96
97 2006-02-21  David Shaw  <dshaw@jabberwocky.com>
98
99         * getkey.c (get_pubkey_byname): Fix minor security problem with
100         PKA when importing at -r time.  The URL in the PKA record may
101         point to a key put in by an attacker.  Fix is to use the
102         fingerprint from the PKA record as the recipient.  This ensures
103         that the PKA record is followed.
104
105         * keyserver-internal.h, keyserver.c (keyserver_import_pka): Return
106         the fingerprint we requested.
107
108         * gpgv.c: Stub keyserver_import_ldap.
109
110         * keyserver-internal.h, keyserver.c (keyserver_import_ldap):
111         Import using the PGP Universal trick of asking
112         ldap://keys.(maildomain) for the key.
113
114 2006-02-20  David Shaw  <dshaw@jabberwocky.com>
115
116         * keyserver.c (parse_keyserver_uri): Include the scheme in the uri
117         even when we've assumed "hkp" when there was no scheme.
118
119 2006-02-20  Werner Koch  <wk@g10code.com>
120
121         * apdu.c (open_pcsc_reader): As a precaution set LIST to NULL
122         after free.
123
124 2006-02-14  Werner Koch  <wk@gnupg.org>
125
126         * verify.c (verify_signatures): Print warning also for NO_DATA.
127
128         * mainproc.c (struct mainproc_context): New field any_sig_seen.
129         (add_signature): Set it.
130         (proc_signature_packets): Test and return NO_DATA.
131
132 2006-02-09  Werner Koch  <wk@g10code.com>
133
134         * gpg.c (main) <oLockNever>: Disable random locking.
135
136 2006-02-06  Werner Koch  <wk@g10code.com>
137
138         * ccid-driver.c, ccid-driver.h: Updated from GnuPG 1.9.  Changes:
139         * ccid-driver.h (CCID_DRIVER_ERR_NO_KEYPAD): New.
140         * ccid-driver.c (send_escape_cmd): New args RESULT, RESULTLEN and
141         RESULTMAX.  Changed all callers.
142         (ccid_transceive_escape): New.
143         * ccid-driver.c (special_transport): New
144         (ccid_open_reader, do_close_reader, ccid_shutdown_reader)
145         (bulk_out, bulk_in): Add support for CardMan 4040 reader.
146         * ccid-driver.c (scan_or_find_devices): Factored most code out to
147         (scan_or_find_usb_device): .. new.
148         (make_reader_id): Fixed vendor mask.
149
150 2006-01-24  David Shaw  <dshaw@jabberwocky.com>
151
152         * keyserver.c (parse_keyserver_uri): If there is a path present,
153         set the direct_uri flag so the right keyserver helper is run.
154
155 2006-01-22  David Shaw  <dshaw@jabberwocky.com>
156
157         * keyserver.c (keyserver_spawn): Include the EXEEXT so we can find
158         keyserver helpers on systems that use extensions.
159
160         * misc.c (path_access) [HAVE_DRIVE_LETTERS]: Do the right thing
161         with drive letter systems.
162
163 2006-01-17  David Shaw  <dshaw@jabberwocky.com>
164
165         * keydb.h, passphrase.c (next_to_last_passphrase): New.  "Touch" a
166         passphrase as if it was used (move from next_pw to last_pw).
167
168         * pubkey-enc.c (get_session_key): Use it here to handle the case
169         where a passphrase happens to be correct for a secret key, but yet
170         that key isn't the anonymous recipient (i.e. the secret key could
171         be decrypted, but not the session key).  This also handles the
172         case where a secret key is located on a card and a secret key with
173         no passphrase.  Note this does not fix bug 594 (anonymous
174         recipients on smartcard do not work) - it just prevents the
175         anonymous search from stopping when the card is encountered.
176
177 2006-01-07  David Shaw  <dshaw@jabberwocky.com>
178
179         * keyserver.c (keyserver_refresh): Fix problem when more than one
180         key in a refresh batch has a preferred keyserver set.  Noted by
181         Nicolas Rachinsky.
182
183 2006-01-01  David Shaw  <dshaw@jabberwocky.com>
184
185         * mainproc.c (check_sig_and_print), keyserver.c
186         (keyserver_import_pka), card-util.c (fetch_url): Always require a
187         scheme:// for keyserver URLs except when used as part of the
188         --keyserver command for backwards compatibility.
189
190         * sign.c (write_signature_packets): Lost a digest_algo line.
191
192         * sign.c (hash_for): Add code to detect if the sk lives on a smart
193         card.  If it does, only allow 160-bit hashes, a la DSA.  This
194         involves passing the *sk in, so change all callers.  This is
195         correct for today, given the current 160-bit q in DSA, and the
196         current SHA-1/RIPEMD160 support in the openpgp card.  It will
197         almost certainly need changing down the road.
198
199         * app-openpgp.c (do_sign): Give user error if hash algorithm is
200         not supported by the card.
201
202 2005-12-23  David Shaw  <dshaw@jabberwocky.com>
203
204         * keyserver.c (keyserver_import_pka): New.  Moved from
205         getkey.c:get_pubkey_byname which was getting crowded.
206
207         * keyserver.c (keyserver_import_cert): Import a key found in DNS
208         via CERT records.  Can handle both the PGP (actual key) and IPGP
209         (URL) CERT types.
210
211         * getkey.c (get_pubkey_byname): Call them both here.
212
213         * options.h, keyserver.c (parse_keyserver_options): Add
214         "auto-cert-retrieve" option with optional max size argument.
215
216         * gpgv.c: Stubs.
217
218         * keyserver-internal.h, keyserver.c (keyserver_spawn,
219         keyserver_work, keygerver_getname): New keyserver_getname function
220         to fetch keys by name.
221
222         * getkey.c (get_pubkey_byname): Call it here to enable locating
223         keys by full mailbox from a keyserver a la PKA.  Try PKA first,
224         though, as it is likely to be faster.
225
226 2005-12-20  Werner Koch  <wk@g10code.com>
227
228         * gpg.c: New option --allow-pka-lookup.
229         (parse_trust_model): Add "+pka" variants.
230         (main): Make KEYSERVER_AUTO_PKA_RETRIEVE teh default.
231         * options.h (opt): New fields PKA_TRUST_INCREASE and
232         ALLOW_PKA_LOOKUP.
233         * status.h (STATUS_PKA_TRUST_BAD, STATUS_PKA_TRUST_GOOD): New.
234         * pkclist.c (check_signatures_trust): Increase trust due to valid
235         PKA only if that new option has been set.  Issue new status lines.
236         * trustdb.c (init_trustdb): Print info if this option is active.
237         * getkey.c (get_pubkey_byname): Honor allow-pka-lookup.
238         * mainproc.c (pka_uri_from_sig): Ditto.
239         
240         * trustdb.c (validate_keys): Print no "ultimately trusted keys
241         found" only in non-quiet mode.
242
243 2005-12-19  David Shaw  <dshaw@jabberwocky.com>
244
245         * getkey.c (merge_selfsigs_main): All primary keys can certify.
246
247 2005-12-18  David Shaw  <dshaw@jabberwocky.com>
248
249         * gpg.c (main): Restore convert-sk-to-pk as programs rely on it.
250
251         * keyid.c (usagestr_from_pk): Remove special PUBKEY_USAGE_CERT
252         flag.  It's no longer needed.
253
254 2005-12-14  David Shaw  <dshaw@jabberwocky.com>
255
256         * gpg.c (main): Don't default to import-options convert-sk-to-pk.
257         It causes confusing warning messages when importing a PGP-exported
258         key that contains a secret key without selfsigs followed by the
259         public key.
260
261 2005-12-08  David Shaw  <dshaw@jabberwocky.com>
262
263         * keyserver.c (keyserver_fetch): Switch on fast-import before we
264         --fetch-keys so we don't rebuild the trustdb after each fetch.
265
266 2005-12-08  Werner Koch  <wk@g10code.com>
267
268         * gpg.c (main): Check for DBCS lead byte when converting the
269         homedir.  By Kazuyoshi Kakihara. Fixes PR561.
270
271         * keyserver.c (keyserver_fetch): Made strings translatable.
272
273 2005-12-08  David Shaw  <dshaw@jabberwocky.com>
274
275         * options.h, keyserver.c (curl_cant_handle, keyserver_spawn,
276         keyserver_fetch): Set a flag to indicate that we're doing a direct
277         URI fetch so we can differentiate between a keyserver operation
278         and a URI fetch for protocols like LDAP that can do either.
279
280 2005-12-07  David Shaw  <dshaw@jabberwocky.com>
281
282         * keyserver.c (keyserver_spawn): Don't print "searching for key
283         00000000" when fetching a URI.
284
285         * keyserver-internal.h, keyserver.c (keyserver_fetch): New.  Fetch
286         an arbitrary URI using the keyserver helpers.
287
288         * gpg.c (main): Call it from here for --fetch-keys.
289
290 2005-12-07  Werner Koch  <wk@g10code.com>
291
292         * pkclist.c (do_we_trust): Add NOTREACHED comment.
293
294 2005-11-20  David Shaw  <dshaw@jabberwocky.com>
295
296         * main.h, keylist.c (print_revokers): New.  Print the "rvk"
297         designated revoker record.  Moved from
298         keyedit.c:show_key_with_all_names_colon.
299
300         * keylist.c (list_keyblock_colon): Use it here ...
301
302         * keyedit.c (show_key_with_all_names_colon): ... and here.
303
304 2005-11-19  David Shaw  <dshaw@jabberwocky.com>
305
306         * free-packet.c (copy_secret_key): Copy secret key into secure
307         memory since we may unprotect it.
308
309         * main.h, g10.c (main), revoke.c (gen_desig_revoke): Add local
310         user support so users can use -u with --desig-revoke.  This
311         bypasses the interactive walk over the revocation keys.
312
313 2005-11-17  David Shaw  <dshaw@jabberwocky.com>
314
315         * keyedit.c (keyedit_menu, menu_clean): Simplify clean options to
316         just "clean", and add "minimize".
317
318         * import.c (parse_import_options): Make help text match the export
319         versions of the options.
320
321         * options.h, export.c (parse_export_options, do_export_stream):
322         Reduce clean options to two: clean and minimize.
323
324         * trustdb.h, trustdb.c (clean_one_uid): New function that joins
325         uid and sig cleaning into one for a simple API outside trustdb.
326
327 2005-11-13  David Shaw  <dshaw@jabberwocky.com>
328
329         * armor.c (parse_header_line): A fussy bit of 2440: header lines
330         are delimited with a colon-space pair.  Therefore a line such as
331         "Comment: " (with a trailing space) is actually legal, albeit not
332         particularly useful.
333
334 2005-11-11  David Shaw  <dshaw@jabberwocky.com>
335
336         * trustdb.h, trustdb.c (clean_key): New function to handle key
337         cleaning from one convenient place.
338
339         * options.h, import.c (parse_import_options,
340         clean_sigs_from_all_uids, import_one): Reduce clean options to
341         two: clean and minimize.
342
343         * parse-packet.c (setup_user_id): Remove.
344         (parse_user_id, parse_attribute): Just use xmalloc_clear instead.
345
346         * trustdb.c (clean_uid_from_key, clean_uids_from_key):
347         Significantly simpler implementation.
348
349 2005-11-10  David Shaw  <dshaw@jabberwocky.com>
350
351         * keyedit.c (keyedit_menu, menu_clean_sigs_from_uids): Add
352         "minimize" command.
353
354         * packet.h, keyedit.c (menu_clean_uids_from_key), trustdb.c
355         (clean_uids_from_key): Fix display bug where sigs cleaned for
356         other reasons caused a uid to appear as if it had been compacted.
357
358         * packet.h: Move some flags to a bitfield.  Change all callers.
359
360         * options.h, import.c (parse_import_options,
361         clean_sigs_from_all_uids, import_one): Add import-minimal option.
362         Similar to export-minimal, except it works on the way in.
363
364         * trustdb.h, trustdb.c (clean_sigs_from_uid): Add flag to remove
365         all non-selfsigs from key during cleaning.  Change all callers.
366
367         * export.c (do_export_stream): Use it here for export-minimal so
368         we don't need additional minimize code in the export path.
369
370 2005-11-06  David Shaw  <dshaw@jabberwocky.com>
371
372         * options.skel: Add a section for --encrypt-to.  This is Debian
373         bug 336211 by Javier Fernández-Sanguino Peña.
374
375 2005-11-05  David Shaw  <dshaw@jabberwocky.com>
376
377         * Makefile.am: Include @LIBUSB_CPPFLAGS@ in our CPPFLAGS.
378         Strictly speaking this should be only in gpg_CPPFLAGS, but then we
379         have to compile everything twice for gpg and gpgv.
380
381         * apdu.c (open_pcsc_reader): Fix double free.
382
383         * gpg.c (main) [__APPLE__]: Default the PCSC driver to the OS X
384         location.  Suggested by Patty A. Hardy.
385
386 2005-11-02  David Shaw  <dshaw@jabberwocky.com>
387
388         * trustdb.c (clean_sigs_from_uid): Include sigs from unavailable
389         keys in the sigs that are cleaned.  Suggested by Dirk Traulsen and
390         many others.
391
392 2005-11-01  David Shaw  <dshaw@jabberwocky.com>
393
394         * import.c (import_one): Do collapse_uids() before we do any
395         cleaning so keyserver mangled keys with doubled user IDs can be
396         properly cleaned - possibly sigs on the different user IDs cancel
397         each other out.
398
399         * import.c (parse_import_options), export.c
400         (parse_export_options): List "xxx-clean" before the longer options
401         so we don't end up with a partial match on the longer options.
402
403         * trustdb.c (clean_uids_from_key): Return proper number of cleaned
404         user IDs.  Don't count user IDs as cleaned unless we actually
405         delete something.
406
407 2005-10-27  David Shaw  <dshaw@jabberwocky.com>
408
409         * keyedit.c (menu_addrevoker), getkey.c (finish_lookup): Fix
410         problem with adding a cert-only designated revoker.  Code was
411         looking for a key with sign ability, and not cert ability.  Noted
412         by Timo Schulz.
413
414 2005-10-27  Werner Koch  <wk@g10code.com>
415
416         * gpg.c [__CYGWIN__]: Set default driver to winscard.dll.
417
418         * apdu.c, apdu.h: Updated from gnupg 1.9.  Changes are:
419         * apdu.c [__CYGWIN__]: Make cygwin environment similar to _WIN32.
420         Suggested by John P. Clizbe.
421         * apdu.h (SW_HOST_NO_KEYPAD): New.
422         * apdu.c (host_sw_string): Support new code. 
423         (reader_table_s): New field CHECK_KEYPAD.
424         (new_reader_slot, open_ct_reader, open_pcsc_reader) 
425         (open_ccid_reader, open_rapdu_reader): Initialize it.
426         (check_ccid_keypad): New.
427         (apdu_check_keypad): New.
428         (apdu_send_le): Factored all code out to ...
429         (send_le): .. new.  Takes an additional arg; changed all callers
430         of the orginal function to use this one with a NULL for the new
431         arg.
432         (apdu_send_simple_kp): New.
433         (ct_send_apdu, pcsc_send_apdu, my_rapdu_send_apdu) 
434         (send_apdu_ccid): New arg PININFO.
435         (send_apdu_ccid): Use the new arg.
436
437 2005-10-26  David Shaw  <dshaw@jabberwocky.com>
438
439         * keygen.c (proc_parameter_file): Default key and subkey usage
440         flags to algo capabilities if parameter file doesn't specify them.
441         Noted by Timo Schulz.
442
443 2005-10-18  Werner Koch  <wk@g10code.com>
444
445         * cardglue.c (pin_cb): Fixed prompt for repeated PIN.  Return
446         G10ERR_CANCELED and not just -1.
447         (status_sc_op_failure): New.  Use it where we issue that status.
448         (pin_cb): Append serial number to the need-pin status message.
449         (agent_scd_change_pin): Add arg SERIALNO.  Changed all callers.
450         (agent_scd_writekey): Ditto.
451         (agent_scd_setattr): Ditto.
452         (agent_scd_genkey): Ditto.
453         (agent_scd_checkpin): Pass serialno to the pin_cb.
454
455         * keygen.c (parse_expire_string): Allow setting the expire
456         interval using a "seconds=<n>" syntax.  This is useful for
457         debugging.
458
459 2005-10-17  Werner Koch  <wk@g10code.com>
460
461         * export.c (do_export_stream): Factored some code out to ...
462         (skip_subkey_p): .. new.
463         (subkey_in_list_p, release_subkey_list): New.
464         (new_subkey_list_item): New. 
465         (do_export_stream): Export exactly specified subkeys into one
466         keyblock.
467
468 2005-10-13  David Shaw  <dshaw@jabberwocky.com>
469
470         * keyedit.c (keyedit_menu, menu_backsign): New "backsign" command
471         to add 0x19 backsigs to old keys that don't have them.
472
473         * misc.c (parse_options): Fix build warning.
474
475         * main.h, keygen.c (make_backsig): Make public.
476
477 2005-10-12  David Shaw  <dshaw@jabberwocky.com>
478
479         * options.h, getkey.c (merge_selfsigs_subkey), gpg.c (main),
480         sig-check.c (signature_check2): Add --require-backsigs and
481         --no-require-backsigs.  Currently defaults to
482         --no-require-backsigs.
483
484 2005-10-11  David Shaw  <dshaw@jabberwocky.com>
485
486         * getkey.c (merge_selfsigs_subkey), sig-check.c
487         (signature_check2), keygen.c (make_backsig): Did some backsig
488         interop testing with the PGP folks.  All is well, so I'm turning
489         generation of backsigs on for new keys.  Checking for backsigs on
490         verification is still off.
491
492 2005-10-05  Werner Koch  <wk@g10code.com>
493
494         * g10.c: Renamed to ..
495         * gpg.c: ..this.
496         * Makefile.am: Adjusted accordingly.
497
498 2005-09-22  Werner Koch  <wk@g10code.com>
499
500         * sign.c (write_plaintext_packet): Don't print an empty file
501         warning if the file is actually too large.
502         * encode.c (encode_simple,encode_crypt): Ditto.
503         * progress.c (handle_progress): Adjusted for iobuf_get_filelength
504         change.
505         * photoid.c (generate_photo_id): Ditto.
506
507 2005-09-20  Werner Koch  <wk@g10code.com>
508
509         * mainproc.c (proc_symkey_enc): Take care of a canceled passphrase
510         prompt.
511
512 2005-09-19  David Shaw  <dshaw@jabberwocky.com>
513
514         * keylist.c (reorder_keyblock, do_reorder_keyblock): Reorder
515         attribute IDs as well as regular text IDs.
516
517         * plaintext.c (ask_for_detached_datafile): Use make_filename() on
518         filename so tilde expansion works.
519
520 2005-09-14  David Shaw  <dshaw@jabberwocky.com>
521
522         * main.h, misc.c (parse_options): Add the ability to have help
523         strings in xxx-options commands.
524
525         * keyserver.c (keyserver_opts), import.c (parse_import_options),
526         export.c (parse_export_options), g10.c (parse_list_options, main):
527         Add help strings to xxx-options.
528
529 2005-09-10  David Shaw  <dshaw@jabberwocky.com>
530
531         * keyedit.c (show_names): Moved name display code out from
532         show_key_with_all_names.
533         (keyedit_menu): Call it here for pref and showpref so they can
534         show only the selected user ID.  Suggested by Timo Schulz.
535
536 2005-09-07  Werner Koch  <wk@g10code.com>
537
538         * cardglue.h (GPG_ERR_TOO_LARGE): New.
539
540         * apdu.c, apdu.h, iso7816.c, iso7816.h
541         * ccid-driver.c, ccid-driver.h: Updated from GnuPG 1.9 source.
542         Changes are:
543         * iso7816.c (iso7816_select_path): New.
544         * iso7816.c (iso7816_read_binary): Use Le=0 when reading all
545         data.  Handle 6C00 error and take 6B00 as indication for EOF.
546         * apdu.h (SW_EXACT_LENGTH_P): New.
547         * apdu.c (new_reader_slot, reset_pcsc_reader, pcsc_get_status) 
548         (open_pcsc_reader): Set new reader state IS_T0.
549         (apdu_send_le): When doing T=0 make sure not to send Lc and Le.
550         Problem reported by Carl Meijer.
551         (apdu_send_direct): Initialize RESULTLEN.
552
553         * misc.c (parse_options): Allow meta option "help" to list all
554         options and to exit the program.
555
556 2005-09-02  David Shaw  <dshaw@jabberwocky.com>
557
558         * parse-packet.c (enum_sig_subpkt, parse_signature,
559         parse_attribute_subpkts): Make a number of warnings verbose items.
560         These fire on many slightly mangled keys in the field, so the
561         warning is becoming burdensome.
562
563 2005-09-01  David Shaw  <dshaw@jabberwocky.com>
564
565         * photoid.h, photoid.c (generate_photo_id): Allow passing in a
566         suggested filename.
567
568         * keyedit.c (keyedit_menu, menu_adduid): Call it here so "addphoto
569         filename" works.
570
571 2005-08-31  David Shaw  <dshaw@jabberwocky.com>
572
573         * photoid.c (generate_photo_id): Enable readline completion and
574         tilde expansion for the JPEG prompt.
575
576 2005-08-30  Werner Koch  <wk@g10code.com>
577
578         * passphrase.c (agent_open): Print a warning and not an error in
579         case of a missing agent.  Should fix Debian bug #325578.
580
581 2005-08-26  David Shaw  <dshaw@jabberwocky.com>
582
583         * misc.c (openpgp_pk_algo_usage): Default to allowing CERT for
584         signing algorithms.
585
586         * keyedit.c (sign_uids): Don't request a signing key to make a
587         certification.
588
589         * keygen.c (do_add_key_flags): Force the certify flag on for all
590         primary keys, as the spec requires primary keys must be able to
591         certify (if nothing else, which key is going to issue the user ID
592         signature?)
593         (print_key_flags): Show certify flag.
594         (ask_key_flags, ask_algo): Don't allow setting the C flag for
595         subkeys.
596         
597         * keyid.c (usagestr_from_pk), getkey.c (parse_key_usage):
598         Distinguish between a sign/certify key and a certify-only key.
599
600         * keyedit.c (ask_revoke_sig): Add a revsig --with-colons mode.
601         Suggested by Michael Schierl.
602
603 2005-08-21  David Shaw  <dshaw@jabberwocky.com>
604
605         * Makefile.am: No need to link with curl any longer.
606
607         * main.h, misc.c (path_access): New.  Same as access() but does a
608         PATH search like execlp.
609
610         * keyserver.c (curl_can_handle): Removed.  Replaced by...
611         (curl_cant_handle): We are now relying on curl as the handler of
612         last resort.  This is necessary because PGP LDAP and curl LDAP are
613         apples and oranges.
614         (keyserver_typemap): Only test for ldap and ldaps.
615         (keyserver_spawn): If a given handler is unusable (as determined
616         by path_access()) then try gpgkeys_curl.
617
618         * exec.h, exec.c (make_tempdir, expand_args, exec_write,
619         exec_read): Minor cleanup to use bitfield flags instead of a bunch
620         of integers.
621
622 2005-08-20  David Shaw  <dshaw@jabberwocky.com>
623
624         * g10.c (main): Add aliases sign-with->local-user and
625         user->recipient to make switching from PGP command line to GPG
626         easier.
627
628 2005-08-19  David Shaw  <dshaw@jabberwocky.com>
629
630         * options.skel: Remove the surfnet LDAP keyserver from the list of
631         samples since it is being shut down.
632
633         * getkey.c (classify_user_id): Disable the '.' and '+' search
634         modes since they aren't supported yet.
635
636 2005-08-05  David Shaw  <dshaw@jabberwocky.com>
637
638         * g10.c (main), passphrase.c (set_passphrase_from_string): New
639         --passphrase command line option.  Only useful in very special
640         circumstances.
641
642 2005-08-05  Werner Koch  <wk@g10code.com>
643
644         * gpgv.c (keyserver_import_fprint): New stub.
645
646         * keygen.c (ask_user_id): Moved email checking code out to ..
647         * misc.c (is_valid_mailbox): .. new.
648         * mainproc.c (get_pka_address): Use it here.
649         * getkey.c (get_pubkey_byname): Add falback to auto-retrieve a key
650         via the PKA mechanism.
651
652         * options.h (KEYSERVER_AUTO_PKA_RETRIEVE): New.
653         * keyserver.c (keyserver_opts): Ditto.
654         * mainproc.c (check_sig_and_print): Use it here to retrieve keys
655         from a PKA DNS record.
656
657         * pkclist.c (build_pk_list): Add comments to this function;
658         re-indented it.
659
660 2005-08-04  David Shaw  <dshaw@jabberwocky.com>
661
662         * keygen.c (proc_parameter_file): Sanity check items in keygen
663         batch file.  Noted by Michael Schierl.
664
665         * pkclist.c (do_edit_ownertrust): Don't allow ownertrust level 0.
666         Noted by Michael Schierl.
667
668         * keygen.c (write_keyblock): Don't try and build deleted kbnodes
669         since we start our tree with one.
670
671 2005-08-04  Werner Koch  <wk@g10code.com>
672
673         * export.c (do_export_stream): Skip on-card keys when only subkeys
674         are to be exported.  It does not make sense to replace the on-card
675         key stub by a no-key stub.
676
677         * revoke.c (gen_revoke): Check for non-online keys.
678
679         * seckey-cert.c (is_secret_key_protected): Return -3 for
680         non-online key stubs.  The old code assumes that a protection
681         algorithm is still set but in some cases this one is 0 and thus it
682         won't be possible to decide whether it is unprotected or
683         protected.
684
685 2005-07-28  Werner Koch  <wk@g10code.com>
686
687         * Makefile.am (other_libs): Add SRVLIBS.
688
689         * parse-packet.c (can_handle_critical_notation): We know about
690         pka-address@gnupg.org.
691         * packet.h (PKT_signature): New fields PKA_INFO and PKA_TRIED. 
692         (pka_info_t): New.
693         * free-packet.c (cp_pka_info): New.
694         (free_seckey_enc, copy_signature): Support new fields.
695         * mainproc.c (get_pka_address, pka_uri_from_sig): New.
696         (check_sig_and_print): Try to get the keyserver from the PKA
697         record.
698         * pkclist.c (check_signatures_trust): Adjust the trust based on
699         the PKA.
700         * gpgv.c (parse_keyserver_uri): New stub.
701
702         * keygen.c (has_invalid_email_chars): Moved to ..
703         * misc.c (has_invalid_email_chars): .. here and made global.
704
705 2005-07-27  Werner Koch  <wk@g10code.com>
706
707         * export.c (do_export_stream): Make two strings translatable.
708
709 2005-07-26  David Shaw  <dshaw@jabberwocky.com>
710
711         * keyserver.c (keyserver_typemap): Special-case LDAP since curl
712         will report that it can handle it, and we don't want it to.
713
714 2005-07-26  Werner Koch  <wk@g10code.com>
715
716         * passphrase.c (agent_get_passphrase): Make sure to release the
717         saved codeset.
718         (agent_open): Add arg ORIG_CODESET and switch back to it in case
719         of error.  Changed all callers.
720
721 2005-07-22  David Shaw  <dshaw@jabberwocky.com>
722
723         * keyedit.c (sign_uids): Don't prompt for setting signature expiry
724         to match key expiry unless --ask-cert-expire is set.  Suggested by
725         Peter Palfrader.
726
727 2005-07-22  Werner Koch  <wk@g10code.com>
728
729         * g10.c, options.h: New option --exit-on-status-write-error.
730         * status.c (write_status_text): Make use of this option.
731
732 2005-07-22  David Shaw  <dshaw@jabberwocky.com>
733
734         * options.h, g10.c (main): Removed option --no-interactive-selection.
735         * keyedit.c (keyedit_menu): Use --interactive to enable the uid
736         walking when signing a key with no uids specified to sign.
737
738         * keylist.c (list_keyblock_print): Fix silly typo.  Noted by Greg
739         Sabino Mullane.
740
741 2005-07-20  Werner Koch  <wk@g10code.com>
742
743         * openfile.c (open_outfile): Disable FD caching for created files.
744         * encode.c (encode_simple, encode_crypt): Disable FD caching for
745         input files.
746         * verify.c (verify_one_file): Ditto.
747         * decrypt.c (decrypt_messages): Ditto. This is bug #479.
748
749         * misc.c (get_libexecdir) [W32]: Changed to return the value of
750         program used to create the process.
751         * keyserver.c (keyserver_spawn) [DISABLE_KEYSERVER_PATH]: Don't
752         change the exec-path at all.
753
754 2005-07-20  David Shaw  <dshaw@jabberwocky.com>
755
756         * keyserver.c (curl_can_handle): New.  Do a runtime check against
757         libcurl to see if it can handle a particular protocol.
758         (keyserver_typemap): Call it here.
759
760         * Makefile.am: Pull in libcurl for curl_version_info() if used.
761
762 2005-07-19  Werner Koch  <wk@g10code.com>
763
764         * g10.c, options.h: New option --limit-card-insert-tries.
765         * cardglue.c (open_card): Use it.
766
767         * export.c (parse_export_options): New option
768         export-reset-subkey-passwd.
769         (do_export_stream): Implement it.
770
771         * misc.c (get_libexecdir): New.
772         * keyserver.c (keyserver_spawn): Use it
773
774 2005-07-18  Werner Koch  <wk@g10code.com>
775
776         * tdbio.c (open_db): Check for EROFS.  Suggested by Bryce Nichols.
777
778 2005-07-08  David Shaw  <dshaw@jabberwocky.com>
779
780         * trustdb.c (clean_uids_from_key): Don't keep a valid selfsig
781         around when compacting a uid.  There is no reason to make an
782         attacker's job easier - this way they only have a revocation which
783         is useless in bringing the uid back.
784
785         * keydb.h, kbnode.c (undelete_kbnode): Removed.  No longer needed.
786
787         * import.c (chk_self_sigs): Allow a uid revocation to be enough to
788         allow importing a particular uid (no self sig needed).  This
789         allows importing compacted uids.
790
791 2005-06-20  David Shaw  <dshaw@jabberwocky.com>
792
793         * keygen.c (save_unprotected_key_to_card): Better fix for gcc4
794         warning.
795
796 2005-06-20  Werner Koch  <wk@g10code.com>
797
798         * g10.c, options.h: New option --no-interactive-selection.
799         * keyedit.c (keyedit_menu): Use it.
800
801 2005-06-18  Werner Koch  <wk@g10code.com>
802
803         * parse-packet.c (parse_signature): Use log_info for messages
804         about missing timestamp or keyid.  In case we don't use that key
805         there won't be no further error and thus gpg does not need to
806         return with an error.
807
808 2005-06-13  David Shaw  <dshaw@jabberwocky.com>
809
810         * keygen.c (save_unprotected_key_to_card): Fix gcc4 warning.
811
812         * options.h, import.c (parse_import_options, import_one): Add
813         import-clean-uids option to automatically compact unusable uids
814         when importing.  Like import-clean-sigs, this may nodify the local
815         keyring.
816
817         * trustdb.c (clean_uids_from_key): Only allow selfsigs to be a
818         candidate for re-inclusion.
819
820 2005-06-12  David Shaw  <dshaw@jabberwocky.com>
821
822         * options.h, import.c (parse_import_options,
823         clean_sigs_from_all_uids, import_one): Add import-clean-sigs
824         option to automatically clean a key when importing.  Note that
825         when importing a key that is already on the local keyring, the
826         clean applies to the merged key - i.e. existing superceded or
827         invalid signatures are removed.
828
829         * getkey.c (merge_selfsigs_main, merge_selfsigs_subkey): Make sure
830         that even after keys may be merged together, we only have one
831         chosen selfsig.
832
833 2005-06-09  David Shaw  <dshaw@jabberwocky.com>
834
835         * options.h, import.c (parse_import_options, delete_inv_parts):
836         import-unusable-sigs is now a noop.
837
838         * options.h, export.c (do_export_stream), keyedit.c (keyedit_menu,
839         menu_clean_subkeys_from_key), trustdb.h, trustdb.c
840         (clean_subkeys_from_key): Remove subkey cleaning function.  It is
841         of very limited usefulness since it cannot be used on any subkey
842         that can sign, and can only affect multiple selfsigs on
843         encryption-only subkeys.
844
845         * keydb.h, kbnode.c (undelete_kbnode): New function to undelete a
846         kbnode.
847
848         * trustdb.c (clean_uids_from_key): Further tweak the algorithm so
849         that the last good selfsig is kept when the chosen selfsig is a
850         revocation.
851
852 2005-06-08  David Shaw  <dshaw@jabberwocky.com>
853
854         * trustdb.c (clean_uids_from_key), keyedit.c
855         (menu_clean_uids_from_key): Tweak algorithm to preserve the last
856         selfsig which helps prevent uid resurrections.
857
858         * getkey.c (fixup_uidnode, merge_selfsigs_main): Handle both
859         expired and revoked uids in fixup_uidnode().  No need to special
860         case in merge_selfsigs_main().  This also means that an expired
861         uid will have its selfsig tagged with chosen_selfsig.
862
863 2005-06-07  David Shaw  <dshaw@jabberwocky.com>
864
865         * options.h, g10.c (main), export.c (parse_export_options,
866         do_export_stream): Add export-options export-clean-sigs,
867         export-clean-uids, export-clean-subkeys, and export-clean which is
868         all of the above.  Export-minimal is the same except it also
869         removes all non-selfsigs.  export-unusable-sigs is now a noop.
870
871 2005-06-06  Werner Koch  <wk@g10code.com>
872
873         * cardglue.c (open_card): Emit new CARDCTRL status 5 for no reader
874         available.
875
876 2005-06-02  Werner Koch  <wk@g10code.com>
877
878         * app-openpgp.c (do_writekey): Typo fix.
879
880         * status.c, status.h: Removed STATUS_BAD_PASSPHRASE_PIN.
881
882 2005-06-01  David Shaw  <dshaw@jabberwocky.com>
883
884         * signal.c [HAVE_DOSISH_SYSTEM]: Fix unused function warnings on
885         mingw32.  Noted by Joe Vender.
886
887         * passphrase.c [_WIN32]: Remove unused variables.
888
889 2005-05-31  David Shaw  <dshaw@jabberwocky.com>
890
891         * keyedit.c (menu_clean_uids_from_key,
892         menu_clean_subkeys_from_key), trustdb.c (clean_uids_from_key,
893         clean_subkeys_from_key): Fix mingw32 build warnings.  Noted by Joe
894         Vender.
895
896 2005-05-31  Werner Koch  <wk@g10code.com>
897
898         * keydb.h [!ENABLE_AGENT_SUPPORT]: Define dummy types.
899
900         * cardglue.c (assuan_strerror, assuan_transact): Dummy functions
901         if not build with agent support. 
902
903         * armor.c (check_input): Don't bail out on invalid header lines
904         unless in struict rfc2440 mode.  Suggested by Richard Patterson.
905
906 2005-05-30  Werner Koch  <wk@g10code.com>
907
908         * tlv.c: Add hack to compile without gpg-error.h.
909
910 2005-05-30  David Shaw  <dshaw@jabberwocky.com>
911
912         * trustdb.h, trustdb.c (clean_subkeys_from_key): New.  Walk
913         through the subkeys on a key, and mark any that aren't usable for
914         deletion.  Note that a signing subkey is never marked for deletion
915         since these keys are still useful after expiration or revocation.
916
917         * keyedit.c (menu_clean_subkeys_from_key): New function to call
918         clean_subkeys_from_key() on a key.  Note that the strings here are
919         not marked for translation yet.  The UI is still in flux, and
920         there is no point in annoying the translators twice.
921         (keyedit_menu): Call it here as part of the "clean" command.
922
923 2005-05-29  David Shaw  <dshaw@jabberwocky.com>
924
925         * trustdb.h, trustdb.c (clean_uids_from_key): New.  Walk through
926         the user IDs on a key, and mark any that aren't valid for
927         deletion.
928
929         * keyedit.c (menu_clean_uids_from_key): New function to call
930         clean_uids_from_key() on a key.
931         (keyedit_menu): Call it from here as part of the "clean" command.
932
933 2005-05-26  David Shaw  <dshaw@jabberwocky.com>
934
935         * g10.c (main): Default {export|import}-unusable-sigs to off until
936         the "clean" UI can be finished.
937
938 2005-05-24  Werner Koch  <wk@g10code.com>
939
940         * passphrase.c (ask_passphrase): Unescape the description string.
941         * cardglue.c (unescape_status_string): Removed.  Changed all
942         caller to use ...
943         * misc.c (unescape_percent_string): New.
944
945         * g10.c (add_notation_data): Check number of at-signs.
946
947 2005-05-23  Werner Koch  <wk@g10code.com>
948
949         * app-openpgp.c, app-common.h: Again updated from gnupg 1.9 CVS.
950
951         * cardglue.c (open_card): Check USE_AGENT.
952         (agent_scd_checkpin): Implemented Assuan part.
953         (agent_scd_change_pin): Ditto.
954
955         * g10.c (main): Option --debug-ccid-driver may now be given
956         several times increase the debug level.
957
958         * ccid-driver.c (parse_ccid_descriptor): Mark SCR335 FW version
959         5.14 as good.
960         (do_close_reader): Never do a reset. The caller should instead
961         make sure that the reader has been closed properly.  The new retry
962         code in ccid_slot_status will make sure that the readersatrts up
963         fine even if the last process didn't closed the USB connection
964         properly.
965         (ccid_get_atr): For certain readers try switching to ISO mode.
966         Thanks to Ludovic Rousseau for this hint and the magic numbers.
967         (print_command_failed): New.
968         (bulk_in): Use it here. Add new arg NO_DEBUG.
969         (ccid_slot_status): Disabled debugging.
970
971 2005-05-21  Werner Koch  <wk@g10code.com>
972
973         * cardglue.c (send_status_info): Make CTRL optional.
974         (agent_scd_writekey, inq_writekey_parms): New.
975         (agent_openpgp_storekey): Removed.
976         * cardglue.h: Add a few more error code mappings.
977         * keygen.c (copy_mpi): Removed.
978         (save_unprotected_key_to_card): Changed to use agent_scd_writekey.
979         * app-common.h, app-openpgp.c, tlv.c, tlv.h: Updated from newer
980         version in gnupg 1.9 CVS.
981
982 2005-05-20  Werner Koch  <wk@g10code.com>
983
984         * ccid-driver.c (ccid_transceive): Arghhh.  The seqno is another
985         bit in the R-block than in the I block, this was wrong at one
986         place. Fixes bug #419 and hopefully several others.
987
988 2005-05-19  Werner Koch  <wk@g10code.com>
989
990         * app-common.h, app-openpgp.c, tlv.c, tlv.h: Updated from newer
991         version in gnupg 1.9 CVS.
992
993 2005-05-18  Werner Koch  <wk@g10code.com>
994
995         * passphrase.c (agent_open): Made global and add arg TRY.
996         (agent_close): Made global.
997
998         * app-common.h (app_t): Add a field to store the Assuan context.
999
1000 2005-05-13  David Shaw  <dshaw@jabberwocky.com>
1001
1002         * build-packet.c (do_comment): Removed.
1003         (build_packet): Ignore comment packets.
1004
1005         * export.c (do_export_stream): Don't export comment packets any
1006         longer.
1007
1008         * options.h, g10.c (main): Remove --sk-comments and
1009         --no-sk-comments options, and replace with no-op.
1010
1011 2005-05-11  David Shaw  <dshaw@jabberwocky.com>
1012
1013         * keygen.c (write_selfsigs): Rename from write_selfsig.  Write the
1014         same selfsig into both the pk and sk, so that someone importing
1015         their sk (which will get an autoconvert to the pk) won't end up
1016         with two selfsigs.
1017         (do_generate_keypair): Call it from here.
1018
1019         * parse-packet.c (can_handle_critical_notation): New.  Check for
1020         particular notation tags that we will accept when critical.
1021         Currently, that's only preferred-email-encoding@pgp.com, since we
1022         know how to handle it (pass it through to a mail program).
1023         (can_handle_critical): Call it from here.
1024         (parse_one_sig_subpkt): Sanity check that notations are
1025         well-formed in that the internal lengths add up to the size of the
1026         subpacket.
1027
1028 2005-05-07  Werner Koch  <wk@g10code.com>
1029
1030         * ccid-driver.c (do_close_reader): Don't do a reset before close.
1031         Some folks reported that it makes the SCR335 hang less often.
1032         Look at the source on how to re-enable it.
1033
1034 2005-05-06  David Shaw  <dshaw@jabberwocky.com>
1035
1036         * main.h, keygen.c (parse_expire_string, ask_expire_interval),
1037         sign.c (sign_file, clearsign_file, sign_symencrypt_file), g10.c
1038         (main), keyedit.c (sign_uids): Use seconds rather than days
1039         internally to calculate expiration.  We no longer need the
1040         day-based code as we don't generate v3 keys.
1041
1042         * sign.c (sign_file, clearsign_file, sign_symencrypt_file): Use
1043         the default sig expire value when signing in batchmode.
1044
1045 2005-05-05  David Shaw  <dshaw@jabberwocky.com>
1046
1047         * Makefile.am, packet.h, main.h, comment.c: Remove comment.c.  We
1048         don't use any of these functions any longer.
1049
1050         * keygen.c (start_tree): New function to "prime" a KBNODE list.
1051         (do_generate_keypair): Use it here rather than creating and
1052         deleting a comment packet.
1053
1054         * keygen.c (gen_elg, gen_dsa): Do not put public factors in secret
1055         key as a comment.
1056
1057         * options.h, encode.c (encode_simple, encode_crypt), keygen.c
1058         (do_create): Remove disabled comment packet code.
1059
1060         * keygen.c (keygen_set_std_prefs): Add SHA256 and BZip2 to default
1061         preferences.
1062
1063         * options.h, g10.c (main): Add new --default-sig-expire and
1064         --default-cert-expire options.  Suggested by Florian Weimer.
1065
1066         * main.h, keygen.c (parse_expire_string, ask_expire_interval): Use
1067         defaults passed in, or "0" to control what default expiration is.
1068
1069         * keyedit.c (sign_uids), sign.c (sign_file, clearsign_file,
1070         sign_symencrypt_file): Call them here, so that default expiration
1071         is used when --ask-xxxxx-expire is off.
1072
1073 2005-05-03  Werner Koch  <wk@g10code.com>
1074
1075         * passphrase.c (agent_get_passphrase): Add new arg CACHEID.
1076         Changed all callers.
1077         (ask_passphrase): Add new arg CACHEID and use it in agent mode.
1078         Changed all callers.
1079         (passphrase_clear_cache): New arg CACHEID.  Changed all callers.
1080         * cardglue.c (format_cacheid): New.
1081         (pin_cb): Compute a cache ID.
1082         (agent_scd_pksign, agent_scd_pkdecrypt): Use it.
1083         (agent_clear_pin_cache): New.
1084         * card-util.c (change_pin): Clear the PIN cache.
1085         (check_pin_for_key_operation): Ditto.
1086
1087 2005-04-24  David Shaw  <dshaw@jabberwocky.com>
1088
1089         * trustdb.h, trustdb.c (mark_usable_uid_certs): Add flags for the
1090         no-pubkey and chosen revocation cases.
1091         (clean_uid): New function to clean a user ID of unusable (as
1092         defined by mark_usable_uid_certs) certs.
1093
1094         * keyedit.c (keyedit_menu, menu_clean_uids): Call it here for new
1095         "clean" command that removes unusable sigs from a key.
1096
1097         * trustdb.h, keyedit.c (keyedit_menu, menu_select_uid_namehash):
1098         Allow specifying user ID via the namehash from --with-colons
1099         --fixed-list-mode --list-keys.  Suggested by Peter Palfrader.
1100
1101 2005-04-21  David Shaw  <dshaw@jabberwocky.com>
1102
1103         * keyedit.c (sign_uids, keyedit_menu): When the user requests to
1104         sign a key without specifying which user IDs to sign, and declines
1105         to sign all user IDs, walk through the set of user IDs and prompt
1106         for which to sign.
1107
1108         * mainproc.c (symkey_decrypt_seskey): There is no need to have an
1109         extra check for a bad passphrase and/or unknown cipher algorithm
1110         here.  We'll fail quite happily later, and usually with a better
1111         error message to boot.
1112
1113 2005-04-20  Werner Koch  <wk@g10code.com>
1114
1115         * sign.c (sign_file, sign_symencrypt_file): Allow for hash
1116         debugging.
1117
1118 2005-04-16  David Shaw  <dshaw@jabberwocky.com>
1119
1120         * keyserver.c (keyserver_spawn): Free some memory.
1121
1122         * sign.c (hash_for): Comments.
1123
1124 2005-04-11  Werner Koch  <wk@g10code.com>
1125
1126         * g10.c (main, add_notation_data, add_policy_url)
1127         (add_keyserver_url): Use isascii() to protect the isfoo macros and
1128         to replace direct tests.  Possible problems noted by Christian
1129         Biere.
1130         * keyserver.c (parse_keyserver_uri): Ditto.
1131
1132 2005-04-07  Werner Koch  <wk@g10code.com>
1133
1134         * g10.c (main): Declare --pipemode deprecated.
1135         * misc.c (deprecated_command): New.
1136
1137         * ccid-driver.c (ccid_slot_status): Fixed debug messages.
1138
1139         * card-util.c (card_edit): Add command "verify".  Enhanced admin
1140         command to allow optional arguments "on", "off" and "verify".
1141         (card_status): Print private DOs in colon mode.
1142         * app-openpgp.c (do_check_pin): Add hack to allow verification of
1143         CHV3.
1144
1145 2005-04-01  Werner Koch  <wk@g10code.com>
1146
1147         * keygen.c (keygen_set_std_prefs): Explain the chosen order of
1148         AES key sizes. 
1149
1150 2005-04-01  David Shaw  <dshaw@jabberwocky.com>
1151
1152         * mainproc.c (proc_plaintext): Properly handle SIG+LITERAL
1153         (old-style PGP) signatures that use hashes other than SHA-1,
1154         RIPEMD160, or MD5.
1155
1156 2005-03-31  David Shaw  <dshaw@jabberwocky.com>
1157
1158         * exec.h, exec.c (set_exec_path): Remove some dead code and change
1159         all callers.  We no longer need to append to $PATH.
1160
1161 2005-03-31  Werner Koch  <wk@g10code.com>
1162
1163         * passphrase.c (agent_open): Dropped support for W32 - is was
1164         never actually used.  Removed support for the old non-assuan
1165         protocol; there has never been a matured implementation and
1166         gpg-agent is now arround for quite some time.  Rewritten to make
1167         use of the Assuan code from ../util.
1168         (gpga_protocol_codes): Removed.
1169         (readn): Removed.
1170         (agent_close): Simplified for use with Assuan.
1171         (agent_get_passphrase, passphrase_clear_cache): Removed support
1172         for old protocol.  Use only with ENABLE_CARD_SUPPORT defined.
1173         (agent_send_all_options): Take assuan context instead of a file
1174         descriptor.
1175         (agent_send_option): Likewise. Use assuan_transact.
1176         * passphrase.c (writen, readaline): Removed.
1177
1178         * g10.c (main): Print a warning if --use-agent has been used but
1179         it has not been build with support for it.
1180
1181         * keydb.c (keydb_add_resource): Clarify meaning of flags.  Add new
1182         flag 4.  Use log_info for errors registering the default secret key.
1183         * g10.c (main): Flag the default keyrings.
1184
1185 2005-03-30  David Shaw  <dshaw@jabberwocky.com>
1186
1187         * keyserver.c (keyserver_spawn): Don't mess about with the $PATH.
1188         Rather, call keyserver helpers with the full path.  This fixes
1189         some PATH-inspired DLL problems on W32.  Noted by Carlo Luciano
1190         Bianco.
1191
1192 2005-03-30  Werner Koch  <wk@g10code.com>
1193
1194         * cardglue.c (pin_cb): Print a warning if the info string hack is
1195         not there.  This may happen due to typos in the translation.
1196
1197 2005-03-22  Werner Koch  <wk@g10code.com>
1198
1199         * misc.c (w32_shgetfolderpath) [W32]: Changed declaration of
1200         function ptr.  Noted by Tim Costello. 
1201         * apdu.c [W32]: Changed declaration of dlopened function pointers.
1202
1203 2005-03-21  David Shaw  <dshaw@jabberwocky.com>
1204
1205         * gpgv.c: Stubs for tty_enable_completion() &
1206         tty_disable_completion().
1207
1208         * openfile.c (ask_outfile_name): Enable readline completion when
1209         prompting for an output filename.
1210
1211         * plaintext.c (ask_for_detached_datafile): Enable readline
1212         completion when prompting for a detached sig datafile.
1213
1214 2005-03-21  Werner Koch  <wk@g10code.com>
1215
1216         * keyedit.c (command_generator, keyedit_completion): Changed
1217         indentation.
1218         * card-util.c (command_generator, card_edit_completion): Ditto.
1219
1220 2005-03-19  David Shaw  <dshaw@jabberwocky.com>
1221
1222         * card-util.c (command_generator, card_edit_completion)
1223         [GNUPG_MAJOR_VERSION==1 && HAVE_LIBREADLINE]: New functions to
1224         enable command completion in the --card-edit menu.
1225         (card_edit): Call them here.
1226
1227 2005-03-18  David Shaw  <dshaw@jabberwocky.com>
1228
1229         * keyedit.c (command_generator, keyedit_completion)
1230         [HAVE_LIBREADLINE]: New functions to enable command completion in
1231         the --edit-key menu.
1232         (keyedit_menu): Call them here.
1233
1234 2005-03-17  David Shaw  <dshaw@jabberwocky.com>
1235
1236         * getkey.c (get_seckey_byname2): If no explicit default key is
1237         set, don't pick a disabled default.  Noted by David Crick.
1238
1239         * Makefile.am: Calculate GNUPG_LIBEXECDIR directly.  Do not
1240         redefine $libexecdir.
1241
1242         * options.h, keyserver.c (parse_keyserver_options)
1243         (keyserver_spawn): Don't treat 'verbose' and 'include-disabled' as
1244         special.  Just pass them through silently to the keyserver helper.
1245
1246 2005-03-16  Werner Koch  <wk@g10code.com>
1247
1248         * ccid-driver.c (parse_ccid_descriptor): Make SCM workaround
1249         reader type specific.
1250         (scan_or_find_devices): Do not check the interface subclass in the
1251         SPR532 kludge, as this depends on the firmware version.
1252         (ccid_get_atr): Get the Slot status first.  This solves the
1253         problem with readers hanging on recent Linux 2.6.x.
1254         (bulk_in): Add argument TIMEOUT and changed all callers to pass an
1255         appropriate one.  Change the standard timeout from 10 to 5 seconds.
1256         (ccid_slot_status): Add a retry code with an initial short timeout.
1257         (do_close_reader): Do an usb_reset before closing the reader.
1258
1259 2005-03-14  Werner Koch  <wk@g10code.com>
1260
1261         * card-util.c (card_status): Use isotimestamp and not the
1262         localized asctimestamp to match the timezone used in the key
1263         information.
1264
1265         * cardglue.c (pin_cb): Disable debug output.
1266
1267 2005-03-11  Werner Koch  <wk@g10code.com>
1268
1269         * keygen.c (gen_card_key_with_backup): Write status line with the
1270         backup filename.
1271
1272         * status.h, status.h (STATUS_BACKUP_KEY_CREATED): New.
1273
1274 2005-03-10  David Shaw  <dshaw@jabberwocky.com>
1275
1276         * keyserver.c (parse_keyserver_options): Accept honor-http-proxy
1277         as an alias for http-proxy.
1278
1279         * delkey.c (do_delete_key, delete_keys): Fix problem with --expert
1280         preventing --delete-secret-and-public-keys from deleting secret
1281         keys.
1282
1283 2005-03-10  Werner Koch  <wk@g10code.com>
1284
1285         * keyedit.c (keyedit_menu) [W32]: Run the trustdb stale check
1286         earlier.
1287
1288 2005-03-07  Werner Koch  <wk@g10code.com>
1289
1290         * cardglue.c (agent_scd_pkdecrypt, agent_scd_pksign) 
1291         (agent_scd_genkey, agent_scd_setattr, agent_scd_change_pin) 
1292         (agent_scd_checkpin, agent_openpgp_storekey): Make sure to send a
1293         SC_OP_FAILURE after card operations which might change data.
1294         * card-util.c (change_pin): Send a SC_OP_SUCCESS after a PIN has
1295         been changed.
1296         (change_name): Removed a debug output.
1297         * status.h, status.c: New codes BAD_PASSPHRASE_PIN, SC_OP_FAILURE
1298         and SC_OP_SUCCESS.
1299
1300 2005-02-24  David Shaw  <dshaw@jabberwocky.com>
1301
1302         * keyedit.c (keyedit_menu): Only print the key signing hint when
1303         signing from a place where it is useful (i.e. --edit-key and not
1304         --sign-key).
1305
1306 2005-02-16  Werner Koch  <wk@g10code.com>
1307
1308         * card-util.c (fetch_url): Fetch the key from the default
1309         keyserver if no URL is available.
1310
1311 2005-02-15  Werner Koch  <wk@g10code.com>
1312
1313         * passphrase.c (agent_get_passphrase): Don't call free_public_key
1314         if PK is NULL.
1315         (passphrase_clear_cache): Ditto. Removed debug output.
1316         (passphrase_to_dek): Ditto.
1317
1318 2005-02-13  Werner Koch  <wk@g10code.com>
1319
1320         * keyedit.c (cmds): Limit code to 80 columns. Add command
1321         BKUPTOCARD.
1322
1323 2005-02-09  David Shaw  <dshaw@jabberwocky.com>
1324
1325         * encr-data.c (decrypt_data): Use it here to turn off the "quick
1326         check" bytes for PK decryptions.  This is in regards to the Mister
1327         and Zuccherato attack on OpenPGP CFB mode.
1328
1329         * mainproc.c (proc_symkey_enc): Set a flag to indicate that a
1330         particular session key came from a passphrase and not a PK.
1331
1332 2005-02-08  Werner Koch  <wk@g10code.com>
1333
1334         * misc.c (w32_shgetfolderpath): New.
1335         (default_homedir): Use it to avoid problems under Windows95.
1336
1337 2005-02-06  David Shaw  <dshaw@jabberwocky.com>
1338
1339         * trustdb.h, trustdb.c (trustdb_check_or_update): New.  If the
1340         trustdb is dirty and --interactive is set, do an --update-trustdb.
1341         If not interactive, do a --check_trustdb unless
1342         --no-auto-check-trustdb is set.
1343
1344         * import.c (import_keys_internal): Moved from here.
1345
1346         * keyserver.c (keyserver_refresh): Call it here after all
1347         refreshing has happened so that we don't rebuild after each
1348         preferred keyserver set of imports, but do one big rebuild at the
1349         end.  This is Debian bug #293816, noted by Kurt Roeckx.
1350
1351 2005-02-04  David Shaw  <dshaw@jabberwocky.com>
1352
1353         * getkey.c (merge_selfsigs_subkey): Merged away definition from
1354         the backsigs code.
1355
1356 2005-01-31  David Shaw  <dshaw@jabberwocky.com>
1357
1358         * keygen.c (do_generate_keypair): Write the auth key to the card
1359         before the encryption key.  This is a partial workaround for a PGP
1360         bug (as of this writing, all versions including 8.1), that causes
1361         it to try and encrypt to the most recent subkey regardless of
1362         whether that subkey is actually an encryption type.  In this case,
1363         the auth key is an RSA key so it succeeds.
1364
1365 2005-01-27  David Shaw  <dshaw@jabberwocky.com>
1366
1367         * keyid.c (keyid_from_sk, keyid_from_pk): Use 0xFFFFFFFFFFFFFFFF
1368         instead of 0x0000000000000000 for the invalid key ID since
1369         all-zeroes is reserved for the anonymous recipient.
1370
1371         * keyedit.c (change_passphrase), keygen.c (generate_subkeypair):
1372         Fix a string ;)
1373
1374 2005-01-27  Werner Koch  <wk@g10code.com>
1375
1376         * parse-packet.c (listfp): New.
1377         (set_packet_list_mode): Intialize it to stdout or stderr depending
1378         on a global option.  Made all printing in list mode use LISTFP.
1379
1380         * keygen.c (generate_subkeypair): Detect primary key on-card and
1381         ask for the passphrase.  Return an error if the primary key is a
1382         plain stub.
1383
1384         * keyedit.c (change_passphrase): Don't ever change any stub key.
1385         Print a note if a key consists of only stub keys.  Reported by
1386         Dany Nativel.  These are bugs #401 and #402.
1387
1388 2005-01-26  Werner Koch  <wk@g10code.com>
1389
1390         * ccid-driver.c (parse_ccid_descriptor): Need the CSM workaround
1391         also for newer firmware versions.  Need to get a list of fixed
1392         firmware versions and use that.
1393
1394 2005-01-26  David Shaw  <dshaw@jabberwocky.com>
1395
1396         * keyserver.c (parse_keyserver_uri): Allow RFC-2732 IPv6 [literal
1397         address] syntax in keyserver URLs.
1398         (keyserver_typemap): Map ftps if we are supporting it.
1399
1400 2005-01-25  Werner Koch  <wk@g10code.com>
1401
1402         * keygen.c (do_generate_keypair): Don't continue after an error;
1403         fixed at two places. Why at all didn't I used a goto to cleanup,
1404         tsss?
1405
1406         * app-openpgp.c (get_cached_data): New arg GET_IMMEDIATE to bypass
1407         the cache.  Changed all callers.
1408         (get_one_do): Bypass the cache if the value would have been read
1409         directly for v1.1 cards.  It makes things a bit slower but only for
1410         1.0 cards and there are not that many cards out in the wild.  This
1411         is required to fix a caching bug when generating new keys; as a
1412         side effect of the retrieval of the the C4 DO from the 6E DO the
1413         chaced fingerprint will get updated to the old value and later
1414         when signing the generated key the checking of the fingerprint
1415         fails becuase it won't match the new one.  Thanks to Moritz for
1416         analyzing this problem.
1417         (verify_chv3): Removed the CHV status reread logic because we
1418         won't cache the C4 DO anymore.
1419
1420 2005-01-21  David Shaw  <dshaw@grover.jabberwocky.com>
1421
1422         * keyserver.c (free_keyserver_spec): Fix small leak.
1423         (keyserver_typemap): Map https if we are supporting it.
1424
1425 2005-01-20  Werner Koch  <wk@g10code.com>
1426
1427         * cardglue.c (open_card): Issue new CARDCTRL(4) status.
1428
1429         * gpgv.c (tty_fprintf): New stub.
1430
1431         * card-util.c (card_status): Create a secret key stub on the fly
1432         and print more information about a card key.
1433         * import.c (pub_to_sec_keyblock, auto_create_card_key_stub): New.
1434         * getkey.c (get_seckeyblock_byfprint): New.
1435         * keylist.c (print_card_key_info): New.
1436
1437         * g10.c (i18n_init) [W32]: Pass registry key to gettext
1438         initialization.
1439         * gpgv.c (i18n_init) [W32]: Ditto.
1440
1441 2005-01-18  Werner Koch  <wk@g10code.com>
1442
1443         * misc.c (default_homedir): New.  Taken from gnupg 1.9.15.
1444         * g10.c (main): Use it.
1445         * gpgv.c (main): Ditto.
1446
1447         * keylist.c (public_key_list): Do a trustdb staleness check before
1448         opening the keyring.
1449         (secret_key_list): Ditto.
1450
1451 2005-01-10  David Shaw  <dshaw@jabberwocky.com>
1452
1453         * keyedit.c (keyedit_menu): Move command strings outside the
1454         function to get ready for the readline completion code.
1455
1456         * passphrase.c (readline, agent_send_option, agent_open,
1457         agent_get_passphrase, passphrase_clear_cache): Rename readline()
1458         to readaline() to keep readline library namespace clear.
1459
1460 2005-01-06  David Shaw  <dshaw@jabberwocky.com>
1461
1462         * filter.h, armor.c (armor_filter): Use the eol string from the
1463         armor filter context instead of hardcoding '\n' or '\r\n'.  If no
1464         eol string is provided, default to '\n' or '\r\n' as appropriate.
1465         (is_armor_header): Trim tabs in armor header lines as well.
1466
1467         * keyserver.c (keyserver_spawn): Use it here to force '\n' line
1468         endings since the keyserver output file gets a LF->CRLF expansion
1469         on win32.
1470
1471 2005-01-05  David Shaw  <dshaw@jabberwocky.com>
1472
1473         * g10.c (main): Typo.
1474
1475         * armor.c (is_armor_header): Allow CR and LF (not just actual
1476         spaces) in an armor header line (-----BEGIN etc).  This is needed
1477         due to CRLF issues on win32.  As before, --openpgp makes it
1478         strict.
1479
1480 2005-01-03  David Shaw  <dshaw@jabberwocky.com>
1481
1482         * Makefile.am: Use @LIBUSB@ instead of @LIBUSB_LIBS@
1483
1484         * import.c (delete_inv_parts): Comments on import-unusable-sigs.
1485
1486 2005-01-01  David Shaw  <dshaw@jabberwocky.com>
1487
1488         * options.h, import.c (parse_import_options, delete_inv_parts):
1489         Add import-unusable-sigs flag to enable importing unusable
1490         (currently: expired) sigs.
1491
1492         * options.h, export.c (parse_export_options, do_export_stream):
1493         Add export-unusable-sigs flag to enable exporting unusable
1494         (currently: expired) sigs.
1495
1496 2004-12-29  David Shaw  <dshaw@jabberwocky.com>
1497
1498         * packet.h, getkey.c (merge_selfsigs_main, sig_to_revoke_info),
1499         keyid.c (revokestr_from_pk), keyedit.c (show_key_with_all_names):
1500         Show who revoked a key (either the same key or a designated
1501         revoker) and when.
1502
1503 2004-12-28  Werner Koch  <wk@g10code.com>
1504
1505         * ccid-driver.c (find_endpoint): New.
1506         (scan_or_find_devices): Add new args to return endpoint info and
1507         interface number.
1508         (ccid_open_reader, ccid_shutdown_reader): Take care of these new
1509         args.
1510         (bulk_in, bulk_out): Use the correct endpoints.
1511         (ccid_transceive_apdu_level): New.
1512         (ccid_transceive): Divert to above.
1513         (parse_ccid_descriptor): Allow APDU level exchange mode.
1514         (do_close_reader): Pass the interface number to usb_release_interface.
1515
1516 2004-12-24  David Shaw  <dshaw@jabberwocky.com>
1517
1518         * keyserver.c (keyserver_typemap): Only map HTTP and FTP if
1519         libcurl has specifically been selected to handle them.
1520
1521 2004-12-22  David Shaw  <dshaw@jabberwocky.com>
1522
1523         * options.h, keyserver.c (parse_keyserver_uri): Properly parse
1524         auth data from URLs and pass to keyserver helpers.
1525
1526         * keyserver.c (keyserver_typemap): New.  Map certain keyserver
1527         types to a common type (e.g. ldaps -> ldap).  If we are building
1528         with curl, map both http and ftp to curl.
1529
1530         * build-packet.c (build_sig_subpkt): Only allow one preferred
1531         keyserver subpacket at a time.
1532
1533 2004-12-21  David Shaw  <dshaw@jabberwocky.com>
1534
1535         * keyedit.c (menu_set_keyserver_url): Make sure we only operate on
1536         the chosen selfsig so we don't accidentally promote an older
1537         selfsig to chosen.  Discovered by Simon Josefsson and 'Todd'.
1538
1539         * keygen.c (ask_expire_interval): Fix typo.
1540
1541 2004-12-20  David Shaw  <dshaw@jabberwocky.com>
1542
1543         * keylist.c (list_keyblock_print): Secret key listings should
1544         always show everything (expired UIDs, revoked subkeys, etc, etc).
1545
1546         * keyedit.c (keyedit_menu): Add additional help for the "sign"
1547         flags.
1548
1549 2004-12-20  Werner Koch  <wk@g10code.com>
1550
1551         * keygen.c (ask_expire_interval): For better translations chnage 2
1552         strings.
1553
1554         * seckey-cert.c (do_check): Handle case when checksum was okay but
1555         passphrase still wrong.  Roman Pavlik found such a case.
1556
1557 2004-12-20  David Shaw  <dshaw@jabberwocky.com>
1558
1559         * keyedit.c (keyedit_menu): Invisible alias "passwd" as
1560         "password".
1561
1562         * passphrase.c: Don't check for __CYGWIN__, so it is treated as a
1563         unix-like system.
1564
1565         * options.h, g10.c (main), textfilter.c (standard): Use new option
1566         --rfc2440-text to determine whether to filter "<space>\t\r\n" or
1567         just "\r\n" before canonicalizing text line endings.  Default to
1568         "<space>\t\r\n".
1569
1570 2004-12-19  David Shaw  <dshaw@jabberwocky.com>
1571
1572         * keygen.c (keygen_get_std_prefs): Set reference count when
1573         creating the temporary user ID.
1574
1575         * keyedit.c (keyedit_menu): Merge updpref and setpref.  Keep
1576         updpref as an invisible alias.  Add invisible alias for revphoto.
1577         Fix small memory leak when using "setpref" (not all of the uid was
1578         freed).
1579         (menu_revkey): Trigger a trust rebuild after revoking a key.
1580         Don't allow revoking an already-revoked whole key.
1581         (menu_revsubkey): Don't allow revoking an already-revoked subkey.
1582
1583 2004-12-18  David Shaw  <dshaw@jabberwocky.com>
1584
1585         * keyedit.c (menu_revkey): Rename to menu_revsubkey.
1586         (menu_revkey): New.  Revoke a whole key.
1587         (keyedit_menu): Call it here for when 'revkey' is used without any
1588         subkeys selected.  This is to be consistent with the other
1589         functions which are "selected part if selected, whole key if not".
1590
1591         * signal.c: Use only HAVE_LIBREADLINE to detect readline
1592         availability.
1593
1594         * Makefile.am: Link with readline where necessary.
1595
1596 2004-12-17  Werner Koch  <wk@g10code.com>
1597
1598         * passphrase.c (agent_get_passphrase): Define NREAD locally as
1599         size_t or int.
1600
1601         * keylist.c (list_keyblock_print): Make field width an int.
1602         * keyedit.c (show_key_with_all_names): Ditto.
1603
1604 2004-12-16  David Shaw  <dshaw@jabberwocky.com>
1605
1606         * g10.c (main): Add --require-secmem/--no-require-secmem to cause
1607         gpg to exit if it cannot lock memory.  Also remove --nrsign-key
1608         and --nrlsign-key since this can better be done via --edit-key.
1609
1610 2004-12-15  David Shaw  <dshaw@jabberwocky.com>
1611
1612         * apdu.c (apdu_send_le, apdu_send_direct), keylist.c
1613         (status_one_subpacket, print_one_subpacket): Fix some compiler
1614         warnings.
1615
1616         * g10.c (main): Fix --compression-algo to take a string argument
1617         like --compress-algo.
1618
1619         * trustdb.c (uid_trust_string_fixed): For safety, check for a pk.
1620
1621 2004-12-14  David Shaw  <dshaw@jabberwocky.com>
1622
1623         * keyedit.c (keyedit_menu): Re-remove the N_() markers.
1624
1625         * trustdb.c (uid_trust_string_fixed): Show uids as revoked if the
1626         key is revoked.
1627         
1628         * keyedit.c (show_key_with_all_names): Don't show validity for
1629         secret key UIDs.
1630
1631         * keyedit.c (parse_sign_type): New.  Figure out the flags (local,
1632         nonrevoke, trust) for a signature.
1633         (keyedit_menu): Call it here so we can mix and match flags, and
1634         don't need "nrltsign", "ltsign", "tnrsign", etc, etc, etc.
1635
1636 2004-12-14  Werner Koch  <wk@g10code.com>
1637
1638         * passphrase.c (agent_get_passphrase): Removed debug output
1639
1640         * keyserver.c (keyserver_work, keyserver_spawn): Map ldaps to ldap.
1641
1642         * keyedit.c (keyedit_menu): Removed the N_() markers from the
1643         command names.
1644         * card-util.c (card_edit): Ditto.
1645
1646 2004-12-13  Werner Koch  <wk@g10code.com>
1647
1648         * passphrase.c (read_passphrase_from_fd): Fixed memory leak.
1649         Noted by Andrei Darashenka.
1650
1651 2004-12-11  David Shaw  <dshaw@jabberwocky.com>
1652
1653         * keyserver.c (parse_preferred_keyserver): Force preferred
1654         keyserver subpackets to have a URI scheme specified.
1655
1656 2004-12-10  David Shaw  <dshaw@jabberwocky.com>
1657
1658         * options.h, g10.c (main), textfilter.c (standard): Use --rfc2440
1659         or --openpgp directly to determine the end of line hashing rule.
1660
1661         * trustdb.c (uid_trust_string_fixed): Show uids as expired if the
1662         key is expired.
1663
1664 2004-12-10  Werner Koch  <wk@g10code.com>
1665
1666         * app-openpgp.c (send_fprtime_if_not_null): New.
1667         (do_getattr): Add KEY_TIME.
1668         (do_learn_status): Print KEY_TIME.
1669         * cardglue.c (learn_status_cb): Parse KEY-TIME.
1670         * card-util.c (card_status): Print creation time if available.
1671
1672 2004-12-09  David Shaw  <dshaw@jabberwocky.com>
1673
1674         * options.h, g10.c (main), textfilter.c (len_without_trailing_ws):
1675         Removed (not used).
1676         (standard): 2440 says that textmode hashes should canonicalize
1677         line endings to CRLF and remove spaces and tabs.  2440bis-12 says
1678         to just canonicalize to CRLF.  So, we default to the 2440bis-12
1679         behavior, but revert to the strict 2440 behavior if the user
1680         specifies --rfc2440.  In practical terms this makes no difference
1681         to any signatures in the real world except for a textmode detached
1682         signature.
1683
1684 2004-12-09  Werner Koch  <wk@g10code.com>
1685
1686         * passphrase.c (agent_get_passphrase): New args CUSTOM_PROMPT and
1687         CUSTOM_DESCRIPTION.     Changed all callers.
1688
1689         * app-openpgp.c (do_getattr, do_learn_status, do_setattr): Support
1690         the new private DOs.
1691         (do_change_pin): Add a "N" prefix to the strings so that the
1692         callback can act accordingly for a new PIN.  Unfortunately this
1693         breaks existing translations but I see no wother way to overvome
1694         this.
1695
1696         * cardglue.c (learn_status_cb): Ditto.
1697         (agent_release_card_info): Ditto.
1698         (struct pin_cb_info_s): Removed and changed all users.
1699         (pin_cb): Reworked.
1700
1701         * card-util.c (card_status): Print them
1702         (card_edit): New command PRIVATEDO.
1703         (change_private_do): New.
1704
1705 2004-12-09  David Shaw  <dshaw@jabberwocky.com>
1706
1707         * keygen.c (ask_algo): Add a choose-your-own-capabilities option
1708         for DSA.
1709
1710 2004-12-07  David Shaw  <dshaw@jabberwocky.com>
1711
1712         * keygen.c (ask_keysize): Change strings to always use %u instead
1713         of hardcoding key sizes.  Bump default to 2048.  Bump minimum down
1714         to 512, where possible, but require --expert to get there.  DSA is
1715         always 1024 unless --expert is given.
1716
1717 2004-11-29  David Shaw  <dshaw@jabberwocky.com>
1718
1719         * getkey.c (parse_key_usage): New function to parse out key usage
1720         flags.  Set PUBKEY_USAGE_UNKNOWN to handle flags that we don't
1721         understand.
1722         (fixup_uidnode, merge_selfsigs_main, merge_selfsigs_subkey): Call
1723         it from here to remove duplicate code.
1724
1725 2004-11-26  David Shaw  <dshaw@jabberwocky.com>
1726
1727         * export.c (do_export_stream): Allow export-minimal to work with
1728         secret keys, even though a non-selfsig secret key signature is
1729         rare.
1730
1731         * options.h, export.c (parse_export_options, do_export_stream),
1732         import.c (parse_import_options, import_keys_internal): Make the
1733         import-options and export-options distinct since they can be mixed
1734         together as part of keyserver-options.
1735
1736 2004-11-24  David Shaw  <dshaw@jabberwocky.com>
1737
1738         * options.h, export.c (parse_export_options, do_export_stream):
1739         Add "export-minimal" option to disregard any sigs except selfsigs.
1740
1741         * trustdb.c (uid_trust_string_fixed): Use a string that can be
1742         atoi-ed, but also has a comment for the translator.
1743
1744         * trustdb.h, trustdb.c (uid_trust_string_fixed): New.  Return a
1745         fixed-size translatable string similar to trust_value_to_string.
1746         This allows for easier lining up of displays.
1747
1748         * keyedit.c (show_key_with_all_names), keylist.c
1749         (list_keyblock_print): Use it here to print validity strings.
1750
1751         * gpgv.c: Stub.
1752
1753 2004-11-18  Werner Koch  <wk@g10code.com>
1754
1755         * g10.c (S_IRGRP) [HAVE_DOSISH_SYSTEM]: Define to 0.
1756
1757 2004-11-17  Werner Koch  <wk@g10code.com>
1758
1759         * g10.c (open_info_file): New.
1760         (main): Unconditionally implement --status-file, --logger-file,
1761         --attribute-file, --passphrase-file, --command-file.  This is not
1762         generally useful but easy to support and might make scripting
1763         under Windows easier.
1764
1765 2004-11-11  Werner Koch  <wk@g10code.com>
1766
1767         * passphrase.c (readn): Fixed test against EINTR.
1768
1769 2004-11-05  Werner Koch  <wk@g10code.com>
1770
1771         * app-openpgp.c: Made more strings translatable.
1772         (verify_chv3, do_change_pin): Add a special prefix to the prompt
1773         of the Admin PIN prompts.
1774         * passphrase.c (ask_passphrase): Add arg TRYAGAIN_TEXT.  Changed
1775         call callers.
1776         * cardglue.c (pin_cb): Make use of the OPAQUE arg to pass
1777         arguments to the PIN callback.  Use this to implement a way to
1778         check for correct PIN repetition.  Changed all callers to pass an
1779         opaque argument. Improved detection of Admin PIN prompts.
1780
1781 2004-11-04  David Shaw  <dshaw@jabberwocky.com>
1782
1783         * plaintext.c (handle_plaintext): Don't try and create a
1784         zero-length filename when using --use-embedded-filename with input
1785         that has no filename (clearsigned or message generated from a
1786         pipe).
1787
1788         * encode.c (encode_simple, encode_crypt), progress.c
1789         (handle_progress), sign.c (write_plaintext_packet): Fix a few
1790         inconsistent calls (NULL filename means a pipe here, so don't
1791         bother to check it twice).
1792
1793 2004-11-03  David Shaw  <dshaw@jabberwocky.com>
1794
1795         * misc.c (print_digest_algo_note): The latest 2440bis drafts
1796         deprecates MD5, so give a warning.
1797         (print_pubkey_algo_note, print_cipher_algo_note,
1798         print_digest_algo_note): Give the algorithm name in the
1799         experimental algo warning.
1800
1801 2004-11-03  Timo Schulz  <twoaday@g10code.com>
1802
1803         * passphrase.c (readn, writen): Use w32_strerror instead
1804         of just showing the error number.
1805         * misc.c [_WIN32]: Fix warning about missing prototypes.
1806         
1807 2004-10-28  David Shaw  <dshaw@jabberwocky.com>
1808
1809         * skclist.c (build_sk_list): Don't need to warn about
1810         PGP-generated Elgamal signing keys since we no longer support any
1811         Elgamal signing keys.
1812
1813         * sign.c (sign_file, clearsign_file): Use "writing to" instead of
1814         "writing to file" to match other strings.
1815
1816         * pkclist.c (check_signatures_trust): Fix typo.  Noted by Moray
1817         Allan.  This is Debian bug #278708.
1818
1819         * passphrase.c (ask_passphrase, passphrase_to_dek): "password" ->
1820         "passphrase".
1821
1822         * keyedit.c (show_key_with_all_names): Show designated revoker as
1823         part of translatable string.
1824
1825 2004-10-28  Werner Koch  <wk@g10code.com>
1826
1827         * Makefile.am (other_libs): New.  Also include LIBICONV.  Noted by
1828         Tim Mooney.
1829
1830 2004-10-28  Werner Koch  <wk@g10code.com>
1831
1832         * apdu.c (open_pcsc_reader): Removed bad free in error handler.
1833
1834 2004-10-27  David Shaw  <dshaw@jabberwocky.com>
1835
1836         * card-util.c, delkey.c, keygen.c, plaintext.c, keyedit.c,
1837         passphrase.c, revoke.c: Collapse the two different "can't do that
1838         in batch mode" strings into one.
1839
1840         * keylist.c (status_one_subpacket): New.  Send the subpacket data
1841         to the --status interface.
1842
1843         * card-util.c (card_edit): Show when admin is enabled or not.
1844
1845         * status.h, status.c: New STATUS_SIG_SUBPACKET type.
1846
1847         * build-packet.c (build_sig_subpkt): Multiple keyserver URLs are
1848         allowed.
1849
1850         * keyring.c: Make some strings translatable.
1851
1852         * exec.c, sign.c: Change "can't open file" to "can't open" and
1853         "can't create file" to "can't create" to be consistent with other
1854         strings so we don't have to translate both.
1855
1856         * delkey.c, export.c, keyedit.c, pkclist.c, revoke.c, skclist.c:
1857         Fix a few missed possible \"username\" quotes.
1858
1859 2004-10-26  Werner Koch  <wk@g10code.com>
1860
1861         * app-openpgp.c (verify_chv3): The minimum length for CHV3 is
1862         8. Changed string to match the other ones.
1863
1864         * passphrase.c (agent_send_all_options): Try to deduce the ttyname
1865         from stdin.
1866
1867 2004-10-22  Werner Koch  <wk@g10code.com>
1868
1869         * card-util.c (fetch_url): Disable for gnupg 1.9
1870         (card_generate_subkey): Ditto.
1871         (card_store_subkey): Ditto.
1872
1873 2004-10-21  David Shaw  <dshaw@jabberwocky.com>
1874
1875         * options.h, g10.c (main), mainproc.c (check_sig_and_print):
1876         Rename verify-option show-validity to show-uid-validity to match
1877         the similar list-option.
1878
1879         * app-openpgp.c (verify_chv3): Fix typo.
1880
1881 2004-10-21  Werner Koch  <wk@g10code.com>
1882
1883         * app-common.h (app_openpgp_storekey): Add prototype.
1884
1885         * app-openpgp.c (do_sign): Replace asprintf by direct allocation.
1886         This avoids problems with missing vasprintf implementations.
1887
1888         * card-util.c (generate_card_keys): Add a #warning for gnupg 1.9
1889         and use the same string there.
1890
1891 2004-10-20  David Shaw  <dshaw@jabberwocky.com>
1892
1893         * g10.c (parse_list_options): Fix non-constant initializer so we
1894         can build with C89.
1895
1896 2004-10-17  David Shaw  <dshaw@jabberwocky.com>
1897
1898         * keylist.c (print_one_subpacket): The flags field should be hex.
1899
1900 2004-10-17  Werner Koch  <wk@g10code.com>
1901
1902         * passphrase.c (agent_get_passphrase): Cast UIDLEN to int.  Noted
1903         by Christian Cornelssen.
1904
1905 2004-10-16  David Shaw  <dshaw@jabberwocky.com>
1906
1907         * parse-packet.c (parse_one_sig_subpkt, enum_sig_subpkt): Don't
1908         BUG() on unknown subpackets.  Rather, just return them silently.
1909         
1910 2004-10-15  Werner Koch  <wk@g10code.com>
1911
1912         * status.h (STATUS_NEED_PASSPHRASE_PIN): New.
1913         * status.c (get_status_string): Added.
1914         * passphrase.c (ask_passphrase): Moved status printing to ..
1915         * cardglue.c (pin_cb): .. here and issue new status message.
1916
1917         * keyedit.c (sign_uids): Don't include the leading LF in the
1918         translatable string but print them separately.
1919
1920         * apdu.c (apdu_open_remote_reader) [_WIN32]: We don't have ENOSYS.
1921
1922         * app-openpgp.c (parse_login_data): New. 
1923         (app_select_openpgp): Call it.
1924         (do_setattr): Reparse it after change.
1925
1926         * pkclist.c (do_edit_ownertrust): Add a note to translators.
1927         * keygen.c (ask_user_id): Ditto.
1928
1929         * helptext.c: Typo fix.
1930
1931 2004-10-14  David Shaw  <dshaw@jabberwocky.com>
1932
1933         * keylist.c (list_keyblock_print): Show the fingerprint after the
1934         key, not after the first user ID.
1935
1936         * keyedit.c (show_key_with_all_names): Don't show validity if
1937         we're just printing user IDs for signing.
1938
1939         * armor.c (fake_packet): Properly handle the case where the line
1940         is dash-space (i.e. a blank line that was quoted).  Give a warning
1941         for bad dash escaping.
1942
1943 2004-10-14  Werner Koch  <wk@g10code.com>
1944
1945         * export.c (do_export_stream) [ENABLE_SELINUX_HACKS]: Don't allow
1946         secret key export.
1947         * import.c (import_secret_one) [ENABLE_SELINUX_HACKS]: Likewise 
1948
1949         * misc.c (is_secured_filename): New.
1950         * keydb.c (maybe_create_keyring)
1951         * tdbio.c (tdbio_set_dbname)
1952         * plaintext.c (handle_plaintext)
1953         * openfile.c (copy_options_file, open_outfile)
1954         * exec.c (exec_write)
1955         * keygen.c (do_generate_keypair, gen_card_key_with_backup)
1956
1957         * sign.c (sign_file, clearsign_file)
1958         * keyring.c (create_tmp_file, do_copy): Check for secured files
1959         before creating them. 
1960
1961         * keygen.c (print_status_key_created, read_parameter_file):
1962         s/unsigned char/byte/ due to a strange typedef for RISC OS.  Noted
1963         by Stefan.
1964
1965 2004-10-13  David Shaw  <dshaw@jabberwocky.com>
1966
1967         * armor.c (fake_packet): Allow arbitrary dash-escaped lines as per
1968         2440bis-10.  This is bug #158.
1969
1970         * keyserver.c (keyserver_work): Handle keyserver timeouts.
1971
1972         * pkclist.c (do_edit_ownertrust): Different prompt when we're
1973         using direct trust since the meaning is different.
1974
1975         * keyedit.c (trustsig_prompt): Change the strings to match the
1976         ones in pkclist.c:do_edit_ownertrust to make translation easier.
1977
1978         * trustdb.c (trust_model_string, get_validity): Add direct trust
1979         model which applies to the key as a whole and not per-uid.
1980
1981         * options.h, g10.c (parse_trust_model): New.
1982         (main): Call it from here to do string-to-trust-model.
1983
1984 2004-10-13  Werner Koch  <wk@g10code.com>
1985
1986         * tdbdump.c (import_ownertrust): Removed all log_error_f and
1987         reworded the messages.
1988
1989         * dermor.c: Include i18n.h.  Made 2 strings translatable.
1990         
1991         * misc.c (register_secured_file, is_secured_file)
1992         (unregister_secured_file): New.
1993         * keyring.c (do_copy, rename_tmp_file): Implement the SELinux hacks.
1994         (keyring_register_filename): Ditto.
1995         * tdbio.c (open_db): Ditto.
1996         * openfile.c (copy_options_file, open_sigfile): Ditto.
1997         * verify.c (verify_signatures, verify_one_file): Ditto.
1998         * photoid.c (generate_photo_id): Ditto.
1999         * keygen.c (read_parameter_file): Ditto.
2000         * import.c (import_keys_internal): Ditto.
2001         * decrypt.c (decrypt_message, decrypt_messages): Ditto.
2002         * dearmor.c (dearmor_file, enarmor_file): Ditto.
2003         * g10.c (main, print_mds): Ditto.
2004         * exec.c (exec_write, exec_read): Ditto. 
2005         * card-util.c (change_login): Ditto.
2006         * encode.c (encode_simple, encode_crypt): Ditto.
2007
2008         * openfile.c (overwrite_filep, make_outfile_name, open_outfile) 
2009         (open_sigfile): Use iobuf_is_pipe_filename to check for pipes so
2010         that special filesnames are taken into account. This is bug 327.
2011
2012         * tdbdump.c (import_ownertrust): Ditto.
2013
2014         * sign.c (write_plaintext_packet): Ditto.
2015         (sign_file, clearsign_file, sign_symencrypt_file): 
2016
2017         * progress.c (handle_progress): Ditto.
2018         * plaintext.c (handle_plaintext): Ditto.
2019         (ask_for_detached_datafile, hash_datafiles): 
2020
2021         * encode.c (encode_simple, encode_crypt): Ditto. 
2022
2023 2004-10-12  Werner Koch  <wk@g10code.com>
2024
2025         * keygen.c (read_parameter_file): Changed to use iobuf based file
2026         reading to allow the special file name feature to work.
2027
2028         * keygen.c (read_parameter_file): New keyword "Handle".  This is
2029         bug 287.
2030         (print_status_key_not_created): New.
2031         (print_status_key_created): Add new arg HANDLE.
2032         (do_generate_keypair): Print not created status.
2033         * status.c, tatus.h (STATUS_KEY_NOT_CREATED): New. 
2034
2035 2004-10-11  David Shaw  <dshaw@jabberwocky.com>
2036
2037         * pkclist.c (do_edit_ownertrust): Use the same translated string
2038         for showing the user ID as mainproc.c:print_pkenc_list.
2039
2040         * mainproc.c (print_pkenc_list): Allow translating the quotes
2041         around the user ID.
2042
2043         * card-util.c, g10.c, photoid.c, trustdb.c: The last of the \"%s\"
2044         -> `%s' quoting for things that aren't user IDs.
2045
2046         * keyserver.c (keyserver_spawn): If there is no keyserver host,
2047         print the whole URI since it is self-contained.
2048
2049 2004-10-11  Werner Koch  <wk@g10code.com>
2050
2051         * keyserver.c (keyserver_spawn): Print an empty string in log_info
2052         if the host is not set (e.g. finger).
2053
2054 2004-10-10  David Shaw  <dshaw@jabberwocky.com>
2055
2056         * card-util.c, keyedit.c, openfile.c, pkclist.c, delkey.c,
2057         keygen.c, photoid.c, revoke.c: Some yes-or-no prompts end in
2058         "(y/n)".  Some don't.  Consistently use y/n everywhere.
2059
2060         * keygen.c (ask_key_flags): New.
2061         (ask_algo): Call it here in --expert mode so we don't need to
2062         specify each possible variation of RSA capabilities.
2063
2064         * keygen.c (do_add_key_flags): The spec says that all primary keys
2065         MUST be able to certify.  Force the certify flag on for primaries
2066         (and off for subkeys).
2067
2068         * keygen.c (generate_keypair): Fix generating keys with the auth
2069         flag.
2070
2071 2004-10-08  David Shaw  <dshaw@jabberwocky.com>
2072
2073         * encr-data.c (decrypt_data): Give a warning with a weak key, but
2074         still allow to decrypt the message.
2075
2076 2004-10-07  David Shaw  <dshaw@jabberwocky.com>
2077
2078         * pkclist.c (build_pk_list): Keystrify.
2079
2080         * mainproc.c (check_sig_and_print), pkclist.c
2081         (do_edit_ownertrust): Improve translatability of user ID prompts.
2082
2083 2004-10-06  David Shaw  <dshaw@jabberwocky.com>
2084
2085         * helptext.c, pkclist.c (do_we_trust): It is not possible to get
2086         here with a revoked or expired key, so BUG() that case.  Remove
2087         question about overriding revoked/expired.  Also
2088         --keyid-format-ify.
2089         (do_we_trust_pre): Use print_pubkey_info() instead of printing the
2090         info ourselves.
2091
2092         * passphrase.c (passphrase_to_dek): Improve translatability of
2093         user ID prompts.
2094
2095         * keylist.c (print_pubkey_info): Use the user ID the pk was
2096         selected by, if any.
2097
2098         * keyedit.c (sign_uids, ask_revoke_sig): Improve translatability
2099         of user ID prompts.
2100         (ask_revoke_sig, menu_revsig): Try and use common strings for
2101         these two functions so they don't need to be translated twice.
2102
2103         * keyedit.c, keylist.c, keyserver.c, mainproc.c: The
2104         revoked/expired/expires string change of 2004-09-29 was too
2105         simple.  Use two styles for each tag.
2106
2107 2004-10-06  Werner Koch  <wk@g10code.com>
2108
2109         * ccid-driver.c (ccid_open_reader): Store the vendor ID.
2110         (ccid_transceive_secure): New.
2111         (parse_ccid_descriptor): Workaround for an SCM reader problem.
2112         (send_escape_cmd): New.
2113
2114 2004-10-05  David Shaw  <dshaw@jabberwocky.com>
2115
2116         * passphrase.c (agent_get_passphrase): Use keystrs for agent
2117         strings, and fix sprintf warnings.
2118
2119         * keyserver.c (keyserver_spawn): Fix BUG() with certain sets of
2120         mixed regular and preferred keyserver refreshes.  Noted by
2121         Sebastian Wiesinger.
2122
2123         * keyedit.c (show_key_with_all_names): Show uid validity in menu.
2124
2125 2004-10-03  Timo Schulz  <twoaday@g10code.de>
2126
2127         * apdu.c (apdu_open_remote_reader) [_WIN32]: Do not set ENOSYS.
2128         
2129 2004-10-03  David Shaw  <dshaw@jabberwocky.com>
2130
2131         * keyedit.c (print_and_check_one_sig_colon): Fix bad keyids in
2132         colon delsig output.  Noted by Peter Palfrader.
2133         (show_prefs): Do not reference missing selfsig.  Noted by Alex
2134         Moroz.
2135
2136 2004-10-01  Werner Koch  <wk@g10code.com>
2137
2138         * gpgv.c (i18n_init): Always use LC_ALL.
2139
2140 2004-09-30  Werner Koch  <wk@g10code.com>
2141
2142         * app-openpgp.c (verify_chv3) [GNUPG_MAJOR_VERSION!=1]: Typo fix.
2143
2144 2004-09-30  David Shaw  <dshaw@jabberwocky.com>
2145
2146         * gpgv.c, keydb.c (keydb_add_resource): Factored keyring creation
2147         out to ..
2148         (maybe_create_keyring): .. new.  Make sure that we do the checks
2149         in a locked state.  Problem reported by Stefan Haller.  Try to
2150         create the home directory before acquiring a lock for the keyring.
2151         From Werner on stable branch.
2152
2153         * g10.c (main): Blow up if we didn't lose setuid.  From Werner on
2154         stable branch.
2155
2156 2004-09-29  David Shaw  <dshaw@jabberwocky.com>
2157
2158         * keyedit.c, keylist.c, keyserver.c, mainproc.c: Reduce the many
2159         variations of "revoked" ("revoked", "[revoked]", " [revoked]",
2160         "[revoked] ") "and" expired down to two to simplify translation.
2161
2162 2004-09-28  David Shaw  <dshaw@jabberwocky.com>
2163
2164         * keyedit.c (print_and_check_one_sig): Account for the extra space
2165         that show-sig-expire takes up so we do not wrap lines.
2166         (show_key_with_all_names): No need to show subkey revocations as a
2167         seperate line since we now show revocation date in the main subkey
2168         line.
2169
2170         * signal.c (got_fatal_signal): HAVE_DECL_SYS_SIGLIST is defined,
2171         but zero if not found.  Noted by John Clizbe.
2172
2173         * keyserver.c (parse_keyrec): Fix problem with non-expiring keys
2174         appearing expired in --search-keys results.
2175
2176 2004-09-27  Werner Koch  <wk@g10code.com>
2177
2178         * card-util.c (card_edit): Take admin only status from the table.
2179
2180         * app-openpgp.c: Made all strings translatable.
2181         (verify_chv3) [GNUPG_MAJOR_VERSION]: Make opt.allow_admin
2182         available for use in gnupg 2. 
2183         (verify_chv3): Reimplemented countdown showing to use only
2184         functions from this module.  Flush the CVH status cache on a
2185         successful read.
2186         (get_one_do): Hack to bypass the cache for cards versions > 1.0.
2187         (store_fpr): Store the creation date for card version > 1.0.
2188
2189 2004-09-25  David Shaw  <dshaw@jabberwocky.com>
2190
2191         * main.h, g10.c (main), card-util.c (change_pin): If "admin" has
2192         not been issued, skip right to the CHV1/CHV2 PIN change.  No need
2193         to show the unblock or admin PIN change option.
2194         (card_edit): Add "admin" command to add admin commands to the
2195         menu.  Do not allow admin commands until "admin" is given.
2196
2197         * app-openpgp.c (verify_chv3): Show a countdown of how many wrong
2198         admin PINs can be entered before the card is locked.
2199
2200         * options.h, g10.c (main), app-openpgp.c (verify_chv3): Remove
2201         --allow-admin.
2202
2203 2004-09-24  David Shaw  <dshaw@jabberwocky.com>
2204
2205         * main.h: Create S2K_DIGEST_ALGO macro so we do not need to always
2206         set opt.s2k_digest_algo.  This helps fix a problem with PGP 2.x
2207         encrypted symmetric messages.  Change all callers (encode.c,
2208         g10.c, keyedit.c, keygen.c, passphrase.c, sign.c).
2209
2210         * armor.c, cardglue.c, getkey.c, import.c, keygen.c: Be consistent
2211         in some more quoted strings.  Always use 'user ID', not 'user id',
2212         "quotes" for user IDs, etc.
2213
2214         * keyedit.c (keyedit_menu), gpgv.c (agent_scd_getattr (stub)),
2215         keygen.c (copy_mpi, generate_raw_key): Fix a compile problem and a
2216         few warnings when building without card support.
2217
2218 2004-09-23  Werner Koch  <wk@g10code.com>
2219
2220         * card_util.c (generate_card_keys): ask whether backup should be
2221         created.
2222         (card_store_subkey): Factored some code out to ..
2223         * keygen.c (save_unprotected_key_to_card): .. new function.
2224         (gen_card_key_with_backup): New.
2225         (generate_raw_key): New.
2226         (generate_keypair): New arg BACKUP_ENCRYPTION_DIR.  Changed all
2227         callers.
2228         (do_generate_keypair): Divert to gen_card_key_with_backup when
2229         desired.
2230
2231         * apdu.c (open_pcsc_reader): Do not print empty reader string.
2232
2233         * keygen.c (ask_algo): Allow creation of AUTH keys.
2234
2235         * keyid.c (usagestr_from_pk): New.
2236
2237         * app-openpgp.c (app_openpgp_storekey): Call flush_cache.
2238         (get_cached_data): Move local data initialization to ..
2239         (app_select_openpgp): .. here. Read some flags for later use.
2240         (do_getattr): New read-only attribute EXTCAP.
2241
2242         * keyedit.c (keyedit_menu): New command "keytocard"
2243         (keyedit_menu): Bad hack for the not_with_sk element.
2244         (show_key_with_all_names): Print the usage.
2245         (find_pk_from_sknode): New.
2246
2247         * card-util.c (card_store_subkey): New.
2248         (copy_mpi): New.
2249
2250         * cardglue.c (agent_openpgp_storekey): New.
2251
2252 2004-09-22  Werner Koch  <wk@g10code.com>
2253
2254         * card-util.c (card_generate_subkey, generate_card_keys): Factored
2255         common code out to ...
2256         (get_info_for_key_operation, check_pin_for_key_operation)
2257         (restore_forced_chv1, replace_existing_key_p)
2258         (show_card_key_info): ... new functions.
2259
2260 2004-09-21  David Shaw  <dshaw@jabberwocky.com>
2261
2262         * mainproc.c (check_sig_and_print), keyedit.c (show_prefs,
2263         menu_set_keyserver_url): Make sure that keyserver URLs with
2264         control characters inside are printed properly.  In fact, handle
2265         them as UTF8.
2266
2267         * keyedit.c (keyedit_menu): Don't show "addcardkey" in the menu if
2268         we do not have card support.
2269
2270         * keydb.h, keyserver.c (print_keyrec, keyserver_spawn): fpr is an
2271         array of unsigned bytes.
2272
2273 2004-09-20  Werner Koch  <wk@g10code.com>
2274
2275         * g10.c: Make -K an alias for --list-secret-keys.
2276
2277         * keylist.c (print_card_serialno): New. Taken from gnupg 1.9.11.
2278         (list_keyblock_print): Make use of it.
2279         * keyedit.c (show_key_with_all_names): Print the card S/N.
2280
2281         * keyedit.c (keyedit_menu): New command ADDCARDKEY.
2282         * card-util.c (card_generate_subkey): New.
2283         * keygen.c (generate_card_subkeypair): New.
2284         (gen_card_key): New arg IS_PRIMARY; changed all callers.
2285
2286         * cardglue.c (open_card): Use shutdown code if possible.
2287         (check_card_serialno): Ditto.
2288
2289         * ccid-driver.c (do_close_reader): Factored some code out from ...
2290         (ccid_close_reader): ..here.
2291         (ccid_shutdown_reader): New.
2292
2293         * apdu.c (apdu_shutdown_reader): New.
2294         (shutdown_ccid_reader): New.
2295
2296 2004-09-17  Werner Koch  <wk@g10code.com>
2297
2298         * g10.c (list_config): New config option ccid-reader-id.
2299         (gpgconf_list): Add "reader-port".
2300
2301         * apdu.c (open_ccid_reader): New arg PORTSTR.  Pass it to
2302         ccid_open_reader.
2303         (apdu_open_reader): Pass portstr to open_ccid_reader.
2304         (apdu_open_reader): No fallback if a full CCID reader id has been
2305         given.
2306
2307         * ccid-driver.c (ccid_get_reader_list): New.
2308         (ccid_open_reader): Changed API to take a string for the reader.
2309         Removed al the cruft for the libusb development vesion which seems
2310         not to be maintained anymore and there are no packages anyway.
2311         The stable library works just fine.
2312         (struct ccid_reader_id_s): Deleted and replaced everywhere by a
2313         simple string.
2314         (usb_get_string_simple): Removed.
2315         (bulk_in): Do valgrind hack here and not just everywhere.
2316
2317 2004-09-16  David Shaw  <dshaw@jabberwocky.com>
2318
2319         * keyedit.c (show_key_with_all_names, show_prefs): Show preferred
2320         keyserver(s) in "showpref" output.
2321
2322         * keygen.c (keygen_add_keyserver_url), keyedit.c
2323         (menu_set_keyserver_url): Allow setting a keyserver URL of "none"
2324         to remove an existing keyserver URL.
2325
2326         * keyedit.c (menu_set_keyserver_url): Confirm replacement of a
2327         keyserver URL before overwriting the old one.
2328
2329 2004-09-15  David Shaw  <dshaw@jabberwocky.com>
2330
2331         * gpgv.c (agent_scd_getattr): Stub.
2332
2333         * misc.c (get_signature_count): New.  Get the signature count from
2334         a smartcard.
2335         (pct_expando): Call it here so the %c expando becomes the number
2336         of signatures issued.  This allows for notations or the like with
2337         an automatic signature count.
2338
2339         * ccid-driver.c (usb_get_string_simple): Replacement function to
2340         work with older libusb.
2341
2342 2004-09-15  Werner Koch  <wk@g10code.com>
2343
2344         * g10.c [HAVE_LIBUSB]: New option --debug-ccid-driver.
2345
2346         * ccid-driver.c (read_device_info): Removed.
2347         (make_reader_id, scan_or_find_devices): New.
2348         (ccid_open_reader): Simplified by make use of the new functions.
2349         (ccid_set_debug_level): New.  Changed the macros to make use of
2350         it.  It has turned out that it is often useful to enable debugging
2351         at runtime so I added this option.
2352
2353 2004-09-13  David Shaw  <dshaw@jabberwocky.com>
2354
2355         * getkey.c (premerge_public_with_secret): Fix subkey<->binding sig
2356         mismatch when some secret subkeys are missing.  Discovered by
2357         Michael Roth.
2358
2359         * main.h, keylist.c (print_subpackets_colon): Make a public
2360         function.
2361
2362         * keyedit.c (print_and_check_one_sig_colon): New.  Print a
2363         with-colons version of the sig record.
2364         (menu_delsig): Call it here for a with-colons delsig.
2365
2366 2004-09-12  David Shaw  <dshaw@jabberwocky.com>
2367
2368         * options.h, keylist.c (print_one_subpacket,
2369         print_subpackets_colon): Print a spk record for each request
2370         subpacket.
2371         (list_keyblock_colon): Call them here.
2372
2373         * g10.c (parse_subpacket_list, parse_list_options): New.  Make the
2374         list of subpackets we are going to print.
2375         (main): Call them here.
2376
2377 2004-09-11  David Shaw  <dshaw@jabberwocky.com>
2378
2379         * card-util.c (fetch_url, card_edit): Use the pubkey URL stored on
2380         the card to fetch an updated copy.  Works with either straight
2381         URLs or HKP or LDAP keyservers.
2382
2383         * keyserver-internal.h, keyserver.c (keyserver_import_fprint),
2384         import.c (revocation_present): Use a keyserver_spec so the caller
2385         can pass in whatever keyserver they like.
2386
2387 2004-09-10  David Shaw  <dshaw@jabberwocky.com>
2388
2389         * app-openpgp.c (get_cached_data): Avoid mallocing zero since it
2390         breaks us when using --enable-m-guard.
2391
2392         * ccid-driver.c (read_device_info): Fix segfault when usb device
2393         is not accessible.
2394         (ccid_open_reader): Allow working with an even older version of
2395         libusb (usb_busses global instead of usb_get_busses()).
2396
2397 2004-09-09  Werner Koch  <wk@g10code.com>
2398
2399         * cardglue.h: Add members for CA fingerprints.
2400         * cardglue.c (agent_release_card_info): Invalid them.
2401         (learn_status_cb): Store them.
2402
2403         * app-common.h, app-openpgp.c, iso7816.c, iso7816.h
2404         * apdu.c, apdu.h, ccid-driver.c, ccid-driver.h
2405         * card-util.c: Updated from current gnupg-1.9.
2406
2407         Changes are:
2408
2409         * ccid-driver.h (CCID_DRIVER_ERR_ABORTED): New.
2410         * ccid-driver.c (ccid_open_reader): Support the stable 0.1 version
2411         of libusb.
2412         (ccid_get_atr): Handle short messages.
2413         * apdu.c (my_rapdu_get_status): Implemented.
2414         * apdu.c: Include <signal.h>.
2415         * apdu.c (reader_table_s):  Add function pointers for the backends.
2416         (apdu_close_reader, apdu_get_status, apdu_activate) 
2417         (send_apdu): Make use of them.
2418         (new_reader_slot): Intialize them to NULL.
2419         (dump_ccid_reader_status, ct_dump_reader_status): New.
2420         (dump_pcsc_reader_status): New.
2421         (open_ct_reader, open_pcsc_reader, open_ccid_reader) 
2422         (open_osc_reader, open_rapdu_reader): Intialize function pointers.
2423         (ct_activate_card, ct_send_apdu, pcsc_send_apdu, osc_send_apdu) 
2424         (error_string): Removed.  Replaced by apdu_strerror.
2425         (get_ccid_error_string): Removed.
2426         (ct_activate_card): Remove the unused loop.
2427         (reset_ct_reader): Implemented.
2428         (ct_send_apdu): Activate the card if not yet done.
2429         (pcsc_send_apdu): Ditto.
2430         * ccid-driver.h: Add error codes.
2431         * ccid-driver.c: Implement more or less proper error codes all
2432         over the place.
2433         * apdu.c (apdu_send_direct): New.
2434         (get_ccid_error_string): Add some error code mappings.
2435         (send_apdu): Pass error codes along for drivers already supporting
2436         them.
2437         (host_sw_string): New.
2438         (get_ccid_error_string): Use above.
2439         (send_apdu_ccid): Reset the reader if it has not yet been done.
2440         (open_ccid_reader): Don't care if the ATR can't be read.
2441         (apdu_activate_card): New.
2442         (apdu_strerror): New.
2443         (dump_reader_status): Only enable it with opt.VERBOSE.
2444         * iso7816.c (map_sw): Add mappings for the new error codes.
2445         * apdu.c (open_ct_reader, open_pcsc_reader, open_ccid_reader)
2446         (reset_ccid_reader, open_osc_reader): Call dump_reader_status only
2447         in verbose mode.
2448         * app-openpgp.c (do_getattr): Fix for sending CA-FPR.
2449         * app-openpgp.c (app_openpgp_readkey): Fixed check for valid
2450         exponent.
2451         * app-openpgp.c (do_setattr): Sync FORCE_CHV1.
2452         * card-util.c (change_login): Kludge to allow reading data from a
2453         file.
2454         (card_edit): Pass ARG_STRING to change_login.
2455         (card_status): Print CA fingerprints.
2456         (change_cafpr): New.
2457         (card_edit): New command CAFPR.
2458
2459 2004-04-30  Werner Koch  <wk@gnupg.org>
2460
2461         * g10.c (main) <gpgconf>: Use gpg.conf and not /dev/null as
2462         default filename.
2463
2464 2004-04-28  Werner Koch  <wk@gnupg.org>
2465
2466         * card-util.c (card_edit): Remove PIN verification.
2467         (generate_card_keys): New arg SERIALNO.  Do PIN verification here
2468         after resetting forced_chv1.
2469
2470         
2471 2004-09-09  Werner Koch  <wk@g10code.com>
2472
2473         * signal.c (got_fatal_signal): Do readline cleanup.  Print signal
2474         number if we can't print the name. Use new autoconf macro
2475         HAVE_DECL_SYS_SIGLIST.
2476         (get_signal_name): Removed.
2477
2478         * photoid.c: Include ttyio.h.
2479
2480         * parse-packet.c (skip_rest): Removed.  Changed all callers to use
2481         the new iobuf_skip_reset.  Orginal patch by Florian Weimer.
2482
2483 2004-09-07  Werner Koch  <wk@g10code.de>
2484
2485         * photoid.c (generate_photo_id): Use tty_printf and not just
2486         printf.  Put _() around one string.
2487
2488 2004-09-03  David Shaw  <dshaw@jabberwocky.com>
2489
2490         * keyserver.c (parse_keyrec): Force the 'e'xpired flag on as soon
2491         as we know the key is definitely expired.  Some translatable
2492         string cleanup.
2493
2494 2004-08-27  David Shaw  <dshaw@jabberwocky.com>
2495
2496         * encode.c, exec.c, g10.c, sign.c: Some translatable string
2497         cleanup.  Change some "this" to `this'.
2498
2499 2004-08-23  David Shaw  <dshaw@jabberwocky.com>
2500
2501         * keyserver.c (keyserver_spawn): Show log line for what keyserver
2502         action we are taking.
2503
2504         * keyid.c (keystr): If printing a keyid that lacks the high 4
2505         bytes, print the low 4 alone.
2506         (keystr_from_desc): Handle short keyids and warn on v3
2507         fingerprints.
2508
2509         * keydb.h, getkey.c (get_user_id_printable,
2510         get_user_id_string_printable): Rename to get_user_id_native and
2511         get_user_id_string_native and remove the printable stuff since
2512         we're print-ifying valid utf8 characters.  Change all callers in
2513         import.c, sign.c, keylist.c, and encode.c.
2514
2515         * keyserver.c (keyserver_search_prompt): Make sure the search
2516         string is converted from UTF-8 before display.
2517
2518 2004-08-19  Werner Koch  <wk@g10code.de>
2519
2520         * seskey.c (encode_session_key): Changed the zero random byte
2521         substituting code to actually do clever things.  Thanks to
2522         Matthias Urlichs for noting the implementation problem.
2523
2524 2004-08-18  Marcus Brinkmann  <marcus@g10code.de>
2525
2526         * passphrase.c (agent_get_passphrase): Fix detection of gpg-agent
2527         cancellation.
2528
2529 2004-08-08  David Shaw  <dshaw@jabberwocky.com>
2530
2531         * plaintext.c (handle_plaintext): Bigger buffer for extra safety.
2532
2533         * g10.c (main): New alias --throw-keyid for --throw-keyids, so
2534         that it continues to work in old configuration files.  Noted by
2535         Jens Adam.
2536
2537         * pkclist.c (algo_available): --pgp8 now allows blowfish, zlib,
2538         and bzip2.
2539
2540         * status.c (do_get_from_fd): Flush stdout if status isn't flushing
2541         it for us.  This guarantees that any menus that were displayed
2542         before the prompt don't get stuck in a buffer.  Noted by Peter
2543         Palfrader.  This is Debian bug #254072.
2544
2545         * sign.c (update_keysig_packet): Revert change of 2004-05-18.  It
2546         is not appropriate to strip policy and notations when remaking a
2547         sig.  That should only happen when specifically requested by the
2548         user.
2549
2550 2004-08-05  David Shaw  <dshaw@jabberwocky.com>
2551
2552         * armor.c (radix64_read): No armor CRC is legal according to the
2553         spec (the CRC is a MAY).
2554
2555 2004-07-28  David Shaw  <dshaw@jabberwocky.com>
2556
2557         * misc.c (argsplit): Properly split quoted args from the keyword
2558         and trim whitespace afterwards.
2559
2560 2004-07-27  David Shaw  <dshaw@jabberwocky.com>
2561
2562         * misc.c (optsep): Add the ability to understand keyword="quoted
2563         arg with spaces" type options.
2564
2565 2004-07-16  David Shaw  <dshaw@jabberwocky.com>
2566
2567         * keylist.c (list_keyblock_print): Always use the new listing
2568         format where uids are always on a line for themselves.  Mark
2569         expired secret keys as expired.
2570
2571         * options.h, g10.c (main): Rename list show-validity to
2572         show-uid-validity as it only shows for uids.
2573
2574         * armor.c (armor_filter): Do not use padding to get us to 8 bytes
2575         of header.  Rather, use 2+4 as two different chunks.  This avoids
2576         a fake filename of "is".
2577
2578 2004-07-15  David Shaw  <dshaw@jabberwocky.com>
2579
2580         * keyedit.c (sign_uids): Properly handle remaking a self-sig on
2581         revoked or expired user IDs.  Also, once we've established that a
2582         given uid cannot or will not be signed, don't continue to ask
2583         about each sig.
2584
2585         * mainproc.c (proc_symkey_enc), seckey-cert.c (do_check): Check
2586         the S2K hash algorithm before we try to generate a passphrase
2587         using it.  This prevents hitting BUG() when generating a
2588         passphrase using a hash that we don't have.
2589
2590         * sign.c (sign_symencrypt_file): Allow using --force-mdc in --sign
2591         --symmetric messages.
2592
2593         * g10.c (main): Alias --charset as --display-charset to help avoid
2594         the continuing confusion and make room for possible changes in
2595         devel.
2596
2597         * parse-packet.c (parse_plaintext): Show the hex value for the
2598         literal packet mode since it may not be printable.
2599
2600         * keygen.c (make_backsig): Make sure that the backsig was built
2601         successfully before we try and use it.
2602
2603         * status.h, status.c (get_status_string), plaintext.c
2604         (handle_plaintext): New status tags PLAINTEXT and
2605         PLAINTEXT_LENGTH.
2606
2607 2004-06-16  Werner Koch  <wk@gnupg.org>
2608
2609         * free-packet.c (copy_secret_key): Get last fix right.
2610
2611 2004-06-16  Werner Koch  <wk@gnupg.org>
2612
2613         * free-packet.c (copy_secret_key): Fixed memory leak when D is not
2614         NULL.
2615
2616         * passphrase.c (passphrase_to_dek): Added a few comments to the
2617         code.
2618
2619 2004-05-26  David Shaw  <dshaw@jabberwocky.com>
2620
2621         * keyserver.c (keyserver_refresh): Keep track of keys already
2622         fetched so we don't do a regular keyserver fetch if the preferred
2623         keyserver fetch has exhausted the list.
2624
2625 2004-05-23  David Shaw  <dshaw@jabberwocky.com>
2626
2627         * verify.c (verify_signatures): Verify multiple files in the same
2628         order in which we hashed them when issuing the signature.  Noted
2629         by Nicholas Cole.
2630
2631         * pkclist.c (do_edit_ownertrust): Fix a kbnode leak and do another
2632         keyid-format conversion.
2633
2634 2004-05-22  Werner Koch  <wk@gnupg.org>
2635
2636         * trustdb.c (check_regexp): s/EXP/EXPR/.
2637
2638         * keyedit.c (trustsig_prompt): Remoev useless range check.
2639
2640         * options.h: Renamed ctrl to glo_ctrl.  Changed all users.
2641
2642         * ccid-driver.c (ccid_open_reader): Print a warning when CCID
2643         can't be used.
2644
2645 2004-05-21  David Shaw  <dshaw@jabberwocky.com>
2646
2647         * mainproc.c (check_sig_and_print): If we're honoring preferred
2648         keyservers, and auto-key-retrieve is set, try and get a missing
2649         key from the preferred keyserver subpacket when we verify the sig.
2650
2651         * gpgv.c (parse_preferred_keyserver, free_keyserver_spec): Stubs.
2652
2653         * keyserver.c (keyidlist): Use new parse_preferred_keyserver
2654         function.
2655         (keyserver_work): Use the passed-in keyserver spec rather than the
2656         options global one.
2657
2658         * keyserver-internal.h, keyserver.c (parse_preferred_keyserver):
2659         New function to take a sig and return a split out keyserver_spec.
2660         (keyserver_import_keyid): Now takes a keyserver_spec.
2661
2662         * keyserver.c (keyidlist): Go back to the old fast keyid lister.
2663         Only merge selfsigs if we have to for honor-keyserver-url.
2664         (keyserver_refresh): Keyserver URL handler moved here.
2665         (calculate_keyid_fpr): Removed.
2666
2667         * keydb.h, keyid.c (keystr_from_desc): Calculate a key string from
2668         a KEYDB_SEARCH_DESC.
2669
2670         * keyserver.c (keyserver_spawn): Fix keyserver options on tempfile
2671         only platforms.  Noted by Roger Sondermann.
2672
2673 2004-05-20  David Shaw  <dshaw@jabberwocky.com>
2674
2675         * keyserver.c (keyserver_work): Allow --refresh-keys with a
2676         preferred keyserver to happen even if there is no global keyserver
2677         set.
2678
2679         * sig-check.c (do_check_messages): No need to check for Elgamal
2680         signatures any longer.
2681         (do_check_messages, do_check, check_key_signature2):
2682         --keyid-format conversion.
2683
2684         * pkclist.c (show_paths, edit_ownertrust): Remove some unused
2685         code.
2686
2687         * options.h (ctrl): New for member IN_AUTO_KEY_RETRIEVE.
2688
2689         * mainproc.c (check_sig_and_print): track whether we are
2690         retrieving a key.
2691
2692         * status.c (status_currently_allowed): New.
2693         (write_status_text, write_status_text_and_buffer): Use it here.
2694
2695         * g10.c: New command --gpgconf-list.
2696         (gpgconf_list): New.  From Werner on stable branch.
2697
2698 2004-05-19  David Shaw  <dshaw@jabberwocky.com>
2699
2700         * pubkey-enc.c (get_session_key, get_it), keyedit.c
2701         (show_key_with_all_names, show_basic_key_info): --keyid-format
2702         conversion.
2703
2704 2004-05-18  David Shaw  <dshaw@jabberwocky.com>
2705
2706         * sign.c (update_keysig_packet): Policies and notations should be
2707         stripped out when remaking a self-signature.  Noted by Atom
2708         Smasher.
2709
2710         * keyserver.c (parse_keyserver_uri): Fix compiler warnings.
2711
2712 2004-05-11  David Shaw  <dshaw@jabberwocky.com>
2713
2714         * options.h, keyserver-internal.h, keyserver.c
2715         (parse_keyserver_uri): Improved URI parser that keeps track of the
2716         path information and doesn't modify the input string.
2717         (keyserver_spawn): Tell keyserver plugins about the path.
2718
2719 2004-05-11  Werner Koch  <wk@gnupg.org>
2720
2721         * keylist.c (show_policy_url, show_keyserver_url, show_notation) 
2722         (list_one): Use const char* for i18n string helpers.
2723
2724         * keygen.c (do_generate_keypair, read_parameter_file): Really
2725         close the files.
2726         (do_generate_keypair): Create the secret key file using safe
2727         permissions.  Noted by Atom Smasher.
2728
2729 2004-05-10  David Shaw  <dshaw@jabberwocky.com>
2730
2731         * options.h, mainproc.c (symkey_decrypt_seskey), keyserver.c
2732         (struct keyrec, parse_keyrec, keyserver_search_prompt), keyedit.c
2733         (keyedit_menu), g10.c (add_keyserver_url, add_policy_url): Fix
2734         some compiler warnings.
2735
2736 2004-05-08  David Shaw  <dshaw@jabberwocky.com>
2737
2738         * keyedit.c (keyedit_menu, menu_set_keyserver_url): Allow passing
2739         preferred keyserver on "keyserver" command line.  Sanity check
2740         keyserver URL before accepting it.
2741
2742         * keyserver-internal.h, g10.c (main), keyserver.c
2743         (parse_keyserver_uri): Add an option to require the scheme:// and
2744         change all callers.
2745         (free_keyserver_spec): Make public.
2746
2747 2004-05-07  Werner Koch  <wk@gnupg.org>
2748
2749         * sign.c (write_plaintext_packet): Fixed the detection of too
2750         large files in the same way as in encode.c.
2751
2752 2004-05-04  David Shaw  <dshaw@jabberwocky.com>
2753
2754         * keylist.c (show_notation): Use bits to select which sort of
2755         notation to show.  Don't allow a not-shown notation to prevent us
2756         from issuing the proper --status-fd message.
2757
2758         * options.h, g10.c (main): Add show-std/standard-notations and
2759         show-user-notations.  show-notations is both.  Default is to show
2760         standard notations only during verify.  Change all callers.
2761
2762 2004-04-28  David Shaw  <dshaw@jabberwocky.com>
2763
2764         * main.h, keylist.c (show_notation): Add argument to show only
2765         user notations, only standard notations, or both.  Change all
2766         callers.
2767
2768         * keyserver.c (keyserver_spawn): We still need EXEC_TEMPFILE_ONLY.
2769
2770 2004-04-28  Werner Koch  <wk@gnupg.org>
2771
2772         * card-util.c (card_edit): Require PIN only for generate. 
2773
2774         * app-openpgp.c (do_setattr): Sync FORCE_CHV1.
2775
2776 2004-04-27  Werner Koch  <wk@gnupg.org>
2777
2778         * keyserver.c (keyserver_spawn) [EXEC_TEMPFILE_ONLY]: Removed
2779         setting use_temp_file because this option has been removed.
2780
2781         * g10.c: New commands --allow-admin and --deny-admin.
2782         * options.h (opt): Add member ALLOW_ADMIN.
2783
2784         * tlv.h, tlv.c: New.  Copied from gnupg-1.9. 
2785         * cardglue.c (open_card): The serialno is now set internally by
2786         app_select_openpgp; changed invocation.
2787         * cardglue.h (app_t, ctrl_t): New.
2788         (GPG_ERR_EBUSY, GPG_ERR_ENOENT, GPG_ERR_NOT_FOUND, GPG_ERR_BUG) 
2789         (GPG_ERR_NOT_IMPLEMENTED, GPG_ERR_EACCESS): New.
2790         (gpg_err_code_from_errno): New.
2791
2792         * app-common.h, app-openpgp.c, iso7816.c, iso7816.h
2793         * apdu.c, apdu.h, ccid-driver.c, ccid-driver.h
2794         * card-util.c: Updated from current gnupg-1.9.
2795
2796         Changes are:
2797
2798         * app-common.h: New members FNC.DEINIT and APP_LOCAL.
2799         * app-openpgp.c (do_deinit): New.
2800         (get_cached_data, flush_cache_item, flush_cache_after_error)
2801         (flush_cache): New.
2802         (get_one_do): Replaced arg SLOT by APP.  Make used of cached data.
2803         (verify_chv2, verify_chv3): Flush some cache item after error.
2804         (do_change_pin): Ditto.
2805         (do_sign): Ditto.
2806         (do_setattr): Flush cache item.
2807         (do_genkey): Flush the entire cache.
2808         (compare_fingerprint): Use cached data.
2809
2810         * apdu.c (apdu_send_le): Reinitialize RESULTLEN.  Handle
2811         SW_EOF_REACHED like SW_SUCCESS.
2812
2813         * ccid-driver.c (parse_ccid_descriptor): Store some of the reader
2814         features away.  New arg HANDLE
2815         (read_device_info): New arg HANDLE. Changed caller.
2816         (bulk_in): Handle time extension requests.
2817         (ccid_get_atr): Setup parameters and the IFSD.
2818         (compute_edc): New. Factored out code.
2819         (ccid_transceive): Use default NADs when required.
2820
2821         * apdu.h: New pseudo stati SW_HOST_NOT_SUPPORTED,
2822         SW_HOST_LOCKING_FAILED and SW_HOST_BUSY.
2823         * iso7816.c (map_sw): Map it.
2824         
2825         * ccid-driver.c (ccid_slot_status): Add arg STATUSBITS.
2826         * apdu.c (apdu_get_status): New.
2827         (ct_get_status, pcsc_get_status, ocsc_get_status): New stubs.
2828         (get_status_ccid): New.
2829         (apdu_reset): New.
2830         (reset_ct_reader, reset_pcsc_reader, reset_osc_reader): New stubs.
2831         (reset_ccid_reader): New.
2832         (apdu_enum_reader): New.
2833         
2834         * apdu.c (lock_slot, trylock_slot, unlock_slot): New helpers.
2835         (new_reader_slot) [USE_GNU_PTH]: Init mutex.
2836         (apdu_reset, apdu_get_status, apdu_send_le): Run functions
2837         in locked mode.
2838         
2839 2004-04-25  David Shaw  <dshaw@jabberwocky.com>
2840
2841         * getkey.c (get_seckey_byname2): Significantly simplify this
2842         function by using key_byname to do the heavy lifting.  Note that
2843         this also fixes an old problem when the first key on the secret
2844         keyring has an unusable stub primary, but is still chosen.
2845
2846         * getkey.c (key_byname): If namelist is NULL, return the first key
2847         in the keyring.
2848
2849 2004-04-22  David Shaw  <dshaw@jabberwocky.com>
2850
2851         * keygen.c (make_backsig): If DO_BACKSIGS is not defined, do not
2852         create backsigs.
2853
2854         * getkey.c (merge_selfsigs_subkey): Find 0x19 backsigs on subkey
2855         selfsigs and verify they are valid.  If DO_BACKSIGS is not
2856         defined, fake this as always valid.
2857
2858         * packet.h, parse-packet.c (parse_signature): Make parse_signature
2859         non-static so we can parse 0x19s in self-sigs.
2860
2861         * main.h, sig-check.c (check_backsig): Check a 0x19 signature.
2862         (signature_check2): Give a backsig warning if there is no or a bad
2863         0x19 with signatures from a subkey.
2864
2865 2004-04-21  David Shaw  <dshaw@jabberwocky.com>
2866
2867         * parse-packet.c (dump_sig_subpkt, parse_one_sig_subpkt,
2868         can_handle_critical): Parse and display 0x19 signatures.
2869
2870 2004-04-20  David Shaw  <dshaw@jabberwocky.com>
2871
2872         * keyserver.c (parse_keyserver_uri): Do not accept "http" as an
2873         alias for "hkp".  They are not the same thing.
2874
2875 2004-04-19  David Shaw  <dshaw@jabberwocky.com>
2876
2877         * options.h, g10.c (main): Add keyserver-option
2878         honor-keyserver-url.  parse_keyserver_options now returns a
2879         success code.
2880
2881         * keyserver.c (parse_keyserver_options): Return error on failure
2882         to parse.  Currently there is no way to fail as any unrecognized
2883         options get saved to be sent to the keyserver plugins later.
2884         Check length of keyserver option tokens since with =arguments we
2885         must only match the prefix.
2886         (free_keyserver_spec): Moved code from parse_keyserver_url.
2887         (keyserver_work, keyserver_spawn): Pass in a struct keyserver_spec
2888         rather than using the global keyserver option.
2889         (calculate_keyid_fpr): New.  Fills in a KEYDB_SEARCH_DESC for a
2890         key.
2891         (keyidlist): New implementation using get_pubkey_bynames rather
2892         than searching the keydb directly.  If honor-keyserver-url is set,
2893         make up a keyserver_spec and try and fetch that key directly.  Do
2894         not include it in the returned keyidlist in that case.
2895
2896 2004-04-16  David Shaw  <dshaw@jabberwocky.com>
2897
2898         * plaintext.c (handle_plaintext): Accept 'u' as a plaintext mode
2899         that requires end of line conversion.  This is being considered
2900         for a UTF8 text packet.  If this doesn't take place, no major harm
2901         done.  If it does take place, we'll get a jump on starting the
2902         changeover.
2903
2904         * g10.c (main): --no-use-embedded-filename.
2905
2906         * build-packet.c (calc_plaintext, do_plaintext): Do not create
2907         illegal (packet header indicates a size larger than the actual
2908         packet) encrypted data packets when not compressing and using a
2909         filename longer than 255 characters.
2910
2911         * keyedit.c (no_primary_warning): Cleanup. (menu_expire): Don't
2912         give primary warning for subkey expiration changes.  These cannot
2913         reorder primaries.
2914
2915         * keygen.c (gen_elg, gen_dsa, gen_rsa, do_create,
2916         do_generate_keypair, generate_subkeypair): New is_subkey argument
2917         to set whether a generated key is a subkey.  Do not overload the
2918         ret_sk.  This is some early cleanup to do backsigs for signing
2919         subkeys.
2920
2921         * keygen.c (write_keybinding, do_generate_keypair,
2922         generate_subkeypair): Keep track of the unprotected subkey secret
2923         key so we can make a backsig with it.
2924
2925         * keygen.c (make_backsig): New function to add a backsig to a
2926         binding sig of signing subkeys.  Currently disabled.
2927         (write_keybinding): Call it here, for signing subkeys only.
2928
2929         * sign.c (make_keysig_packet): Allow generating 0x19 signatures
2930         (same as 0x18 or 0x28, but used for backsigs).
2931
2932         * packet.h, build-packet.c (build_sig_subpkt): Add new
2933         SIGSUBPKT_SIGNATURE type for embedded signatures.
2934
2935         * main.h, misc.c (optsep, argsplit, optlen, parse_options):
2936         Simplify code and properly handle a partial match against an
2937         option with an argument.
2938
2939         * keyserver-internal.h, keyserver.c (parse_keyserver_options): Use
2940         new optsep and argsplit functions.
2941
2942 2004-04-15  David Shaw  <dshaw@jabberwocky.com>
2943
2944         * main.h, misc.c (argsplit): Refactor argsep into argsplit and
2945         argsep so they can be called separately.
2946
2947         * options.h, keyserver.c (parse_keyserver_options): Remove
2948         duplicate code from parse_keyserver_options by calling the generic
2949         parse_options.
2950
2951         * keyserver.c (keyserver_spawn, keyserver_refresh), g10.c (main),
2952         gpgv.c (main), mainproc.c (check_sig_and_print), import.c
2953         (revocation_present): Change all callers.
2954
2955 2004-04-14  David Shaw  <dshaw@jabberwocky.com>
2956
2957         * packet.h, getkey.c (fixup_uidnode, merge_selfsigs_subkey): Keep
2958         track of which self-sig we actually chose.
2959
2960         * keyedit.c (menu_expire, menu_set_primary_uid,
2961         menu_set_preferences): Use it here to avoid updating non-used
2962         self-sigs and possibly promoting an old self-sig into
2963         consideration again.
2964
2965         * options.h, import.c, keyserver-internal.h, g10.c, mainproc.c,
2966         keyserver.c (parse_keyserver_uri): Parse keyserver URI into a
2967         structure.  Cleanup for new "guess my keyserver" functionality, as
2968         well as refreshing via a preferred keyserver subpacket.
2969
2970         * options.h: Encapsulate keyserver details.  Change all callers.
2971
2972 2004-04-05  Werner Koch  <wk@gnupg.org>
2973
2974         * status.h (STATUS_NEWSIG): New.
2975         * status.c (get_status_string): Add it. 
2976
2977 2004-03-27  David Shaw  <dshaw@jabberwocky.com>
2978
2979         * keyedit.c (keyedit_menu): Request a trustdb update when adding a
2980         new user ID so the new ID gets validity set.  Reported by Owen
2981         Taylor.
2982
2983 2004-03-25  David Shaw  <dshaw@jabberwocky.com>
2984
2985         * options.h, g10.c (main), compress-bz2.c (init_uncompress):
2986         Rename --bzip2-compress-lowmem to --bzip2-decompress-lowmem since
2987         it applies to decompression, not compression.
2988
2989 2004-03-24  David Shaw  <dshaw@jabberwocky.com>
2990
2991         * keyedit.c (sign_uids, show_key_and_fingerprint, ask_revoke_sig,
2992         menu_revsig, menu_showphoto): --keyid-format conversion.
2993         (menu_addrevoker): Use print_pubkey_info() rather than duplicating
2994         code.
2995
2996 2004-03-19  David Shaw  <dshaw@jabberwocky.com>
2997
2998         * trustdb.c (update_min_ownertrust, validate_keys): Do not use
2999         keystr functions in log_debug.
3000
3001         * import.c (import_one): Try and collapse user IDs when importing
3002         a key for the first time.
3003
3004         * keyedit.c (menu_addrevoker): Allow appointing a subkey as a
3005         designated revoker if the user forces it via keyid!, so long as
3006         the subkey can certify.  Also use the proper date string when
3007         prompting for confirmation.
3008
3009         * g10.c (main): Maintain ordering of multiple Comment lines.
3010         Requested by Peter Hyman.
3011
3012 2004-03-17  David Shaw  <dshaw@jabberwocky.com>
3013
3014         * mainproc.c (proc_pubkey_enc, print_pkenc_list, list_node):
3015         --keyid-format conversion.
3016
3017 2004-03-16  David Shaw  <dshaw@jabberwocky.com>
3018
3019         * getkey.c (skip_unusable, merge_selfsigs_main,
3020         premerge_public_with_secret, lookup, get_user_id_string):
3021         --keyid-format conversion.
3022
3023 2004-03-15  David Shaw  <dshaw@jabberwocky.com>
3024
3025         * trustdb.c (add_utk, verify_own_keys, update_min_ownertrust,
3026         get_validity, ask_ownertrust, validate_keys): --keyid-format
3027         conversion.
3028
3029         * import.c (check_prefs_warning, check_prefs): --keyid-format
3030         conversion and a little better text.
3031         (import_one, import_secret_one, import_revoke_cert, chk_self_sigs,
3032         delete_inv_parts, merge_blocks): Still more --keyid-format
3033         conversions.
3034
3035 2004-03-06  David Shaw  <dshaw@jabberwocky.com>
3036
3037         * keylist.c (print_seckey_info, print_pubkey_info): --keyid-format
3038         conversion.
3039         (list_keyblock_print): 0xshort should not push us into the new
3040         list format since it is not much longer than regular 8-character
3041         short keyids.
3042
3043         * keydb.h, keyid.c (keystr_from_pk, keystr_from_sk): New functions
3044         to pull a key string from a key in one step.  This isn't faster
3045         than before, but makes for neater code.
3046
3047         * keylist.c (list_keyblock_print): Use keystr_from_xx here.
3048         (print_key_data): No need to pass a keyid in.
3049
3050 2004-03-05  David Shaw  <dshaw@jabberwocky.com>
3051
3052         * keyid.c (keyid_from_sk): Minor performance boost by caching
3053         secret key keyids so we don't have to calculate them each time.
3054
3055         * getkey.c (merge_selfsigs_subkey): Do not mark subkeys valid if
3056         we do not support their pk algorithm.  This allows for early
3057         (during get_*) rejection of a subkey, and selection of another.
3058
3059         * passphrase.c (passphrase_to_dek): Give a little more information
3060         when we have room to do so.
3061
3062 2004-03-04  David Shaw  <dshaw@jabberwocky.com>
3063
3064         * revoke.c (export_minimal_pk), export.c (do_export_stream),
3065         passphrase.c (passphrase_to_dek), keyserver.c (print_keyrec): A
3066         few more places to use --keyid-format.
3067
3068         * options.h, g10.c (main), export.c (parse_export_options,
3069         do_export_stream): Remove --export-all and the "include-non-rfc"
3070         export-option as they are no longer meaningful with the removal of
3071         v3 Elgamal keys.
3072
3073         * armor.c (fake_packet, armor_filter): Use the 2440 partial length
3074         encoding for the faked plaintext packet.
3075
3076 2004-03-03  David Shaw  <dshaw@jabberwocky.com>
3077
3078         * options.h, g10.c (main), mainproc.c (check_sig_and_print):
3079         Remove verify-option show-long-keyids and replace with
3080         the more general keyid-format.
3081
3082         * build-packet.c (write_header2): Remove call to start old gpg
3083         partial length mode and change all callers.
3084         (do_plaintext): Turn off partial length encoding now that we're
3085         done writing the packet.
3086         (do_comment, do_user_id): Try for a headerlen of 2 since that's
3087         the smallest and most likely encoding for these packets.
3088
3089         * parse-packet.c (parse): Remove call to start old gpg partial
3090         length mode.
3091
3092 2004-03-02  David Shaw  <dshaw@jabberwocky.com>
3093
3094         * options.h, g10.c (main): Add a more flexible --keyid-format
3095         option to replace the list-option (and eventually verify-option)
3096         show-long-keyids.  The format can be short, long, 0xshort, and
3097         0xlong.
3098
3099         * keydb.h, keyid.c (keystr, keystrlen): New functions to generate
3100         a printable keyid.
3101
3102         * keyedit.c (print_and_check_one_sig, show_key_with_all_names),
3103         keylist.c (list_keyblock_print): Use new keystr() function here to
3104         print keyids.
3105
3106         * packet.h, free-packet.c (free_encrypted, free_plaintext),
3107         parse-packet.c (copy_packet, skip_packet, skip_rest, read_rest,
3108         parse_plaintext, parse_encrypted, parse_gpg_control): Use a flag
3109         to indicate partial or indeterminate encoding.  This is the first
3110         step in some minor surgery to remove the old gpg partial length
3111         encoding.
3112
3113 2004-03-01  David Shaw  <dshaw@jabberwocky.com>
3114
3115         * parse-packet.c (parse): Only data-type packets are allowed to
3116         use OpenPGP partial length encoding.
3117
3118 2004-02-25  David Shaw  <dshaw@jabberwocky.com>
3119
3120         * delkey.c (do_delete_key): Allow deleting a public key with a
3121         secret present if --expert is set.
3122
3123         * plaintext.c (handle_plaintext): Make bytecount static so it
3124         works with multiple literal packets inside a message.
3125
3126         * encode.c, helptext.c (keygen.algo, keygen.algo.elg_se), keygen.c
3127         (ask_algo), sig-check.c (do_check_messages), skclist.c
3128         (build_sk_list): Rename "ElGamal" to "Elgamal" as that is the
3129         proper spelling nowadays.  Suggested by Jon Callas.
3130
3131 2004-02-24  David Shaw  <dshaw@jabberwocky.com>
3132
3133         * plaintext.c: Copyright.
3134
3135         * encode.c (encode_simple): Show cipher with --verbose.
3136
3137         * options.h, g10.c (main), keyedit.c (sign_keys): Add
3138         --ask-cert-level option to enable cert level prompts during
3139         sigs. Defaults to on.  Simplify --default-cert-check-level to
3140         --default-cert-level.  If ask-cert-level is off, or batch is on,
3141         use the default-cert-level as the cert level.
3142
3143         * options.h, g10.c (main), trustdb.c (mark_usable_uid_certs):
3144         Simplify --min-cert-check-level to --min-cert-level.
3145
3146 2004-02-22  David Shaw  <dshaw@jabberwocky.com>
3147
3148         * options.h, g10.c (main), trustdb.c (mark_usable_uid_certs): Add
3149         --min-cert-check-level option to specify minimum cert check level.
3150         Defaults to 2 (so 0x11 sigs are ignored).  0x10 sigs cannot be
3151         ignored.
3152
3153 2004-02-21  David Shaw  <dshaw@jabberwocky.com>
3154
3155         * plaintext.c (handle_plaintext): Properly handle a --max-output
3156         of zero (do not limit output at all).
3157
3158         * keyserver.c (keyserver_spawn): Use the full 64-bit keyid in the
3159         INFO header lines, and include "sig:" records for the benefit of
3160         people who store their keys in LDAP servers.  It makes it easy to
3161         do queries for things like "all keys signed by Isabella".
3162
3163         * main.h, misc.c (hextobyte): Removed.  It's in libutil.a now.
3164
3165 2004-02-20  David Shaw  <dshaw@jabberwocky.com>
3166
3167         * keyserver.c (keyserver_export): Disallow user strings that
3168         aren't key IDs.
3169         (keyserver_import): Clarify error message.
3170         (keyserver_spawn): Properly handle 8 bit characters in user IDs in
3171         the info lines during SEND.
3172
3173         * mkdtemp.c: Removed.
3174
3175         * Makefile.am: We get mkdtemp.c from libutil.a now, so don't link
3176         with @LIBOBJS@.
3177
3178         * keyserver.c (keyserver_spawn): Pass the scheme to the keyserver
3179         helper.
3180
3181 2004-02-18  David Shaw  <dshaw@jabberwocky.com>
3182
3183         * options.h, g10.c (main), plaintext.c (handle_plaintext): Add
3184         --max-output option to help people deal with decompression bombs.
3185
3186 2004-02-15  David Shaw  <dshaw@jabberwocky.com>
3187
3188         * build-packet.c (do_user_id): Do not force a header for attribute
3189         packets as they require a new CTB, and we don't support forced
3190         headers for new CTBs yet.
3191
3192 2004-02-14  David Shaw  <dshaw@jabberwocky.com>
3193
3194         * build-packet.c (write_header2): If a suggested header length is
3195         provided along with a zero length, interpret this as an actual
3196         zero length packet and not as an indeterminate length packet.
3197         (do_comment, do_user_id): Use it here as these packets might be
3198         naturally zero length.
3199
3200         * parse-packet.c (parse): Show packet type when failing due to an
3201         indeterminate length packet.
3202
3203         * misc.c (parse_options): Only provide args for the true (i.e. not
3204         "no-xxx") form of options.
3205
3206 2004-02-13  David Shaw  <dshaw@jabberwocky.com>
3207
3208         * keyserver.c (argsep): Move to misc.c.
3209
3210         * main.h, misc.c (parse_options), export.c (parse_export_options),
3211         import.c (parse_import_options), g10.c (main): Use it here to
3212         allow for options with optional arguments.  Change all callers.
3213
3214         * import.c (check_prefs): Some language fixes.
3215         (sec_to_pub_keyblock, import_secret_one): Without knowing the
3216         number of MPIs there are, we cannot try and sk-to-pk-ize a key.
3217
3218 2004-02-12  David Shaw  <dshaw@jabberwocky.com>
3219
3220         * import.c (check_prefs): New function to check preferences on a
3221         public key to ensure that it does not advertise any that we cannot
3222         fulfill.  Use the keyedit command list function to optionally
3223         rewrite the prefs.
3224         (import_one, import_secret_one): Use it here when importing a
3225         public key that we have the secret half of, or when importing a
3226         secret key that we have the public half of.
3227
3228         * main.h, keyedit.c (keyedit_menu): Remove sign_mode and enhance
3229         the more general command list functionality to replace it.
3230
3231         * g10.c (main): Use the general command functionality to implement
3232         --sign-key, --lsign-key, --nrsign-key, and --nrlsign-key.
3233
3234         * import.c (import_one): Do the revocation check even in the case
3235         when a key, a revocation key set in a direct key signature, and a
3236         revocation from that revocation key, all arrive piecemeal.
3237         Needless to say, this is pretty obscure.
3238
3239 2004-02-11  David Shaw  <dshaw@jabberwocky.com>
3240
3241         * options.h, g10.c (main), keylist.c (list_keyblock_print): Add
3242         "show-unusable-subkeys" list-option to show revoked and/or expired
3243         subkeys.
3244
3245 2004-02-10  David Shaw  <dshaw@jabberwocky.com>
3246
3247         * keyedit.c (keyedit_menu): Prompt for subkey removal for both
3248         secret and public subkeys.
3249
3250         * keylist.c (list_keyblock_print), keyedit.c
3251         (show_key_with_all_names): Show the revocation date of a
3252         key/subkey, and general formatting work.
3253
3254         * packet.h, getkey.c (merge_selfsigs_main, merge_selfsigs_subkey,
3255         merge_selfsigs): Keep track of the revocation date of a key.
3256
3257         * keydb.h, keyid.c (revokestr_from_pk): New function to print the
3258         revocation date of a key.
3259
3260         * keygen.c (keygen_set_std_prefs): Build the default preferences
3261         list at runtime as it properly handles algorithms disabled at
3262         build or run time.
3263
3264         * getkey.c (merge_selfsigs_main): Properly handle expired user IDs
3265         when the expired self-sig is not the only self-sig.
3266
3267         * misc.c (compress_algo_to_string): Return NULL on failure like
3268         all of the other xxxx_algo_to_string() functions.
3269
3270         * mainproc.c (list_node): Minor spacing tweak to match --list-keys
3271         output.
3272
3273         * keylist.c (list_keyblock_print), mainproc.c (list_node): Mark
3274         revoked subkeys as revoked.  Requested by Matthew Wilcox.  Revoked
3275         overrides expiration when both apply.
3276
3277         * keyedit.c (show_prefs): Use compress algo constants.
3278         (show_basic_key_info): Make revoked and expired tags translatable.
3279
3280         * g10.c (rm_group): Properly ungroup from a list of groups.
3281
3282 2004-01-30  David Shaw  <dshaw@jabberwocky.com>
3283
3284         * g10.c (main, rm_group): Add --ungroup command to remove a
3285         particular group.
3286         (add_group): When adding a group with the same name as an already
3287         existing group, merge the two groups.
3288         (list_config): Show an error message when listing a config item
3289         that doesn't exist.
3290         (main): Replace -z0 trick for no compression.
3291
3292         * packet.h, keyedit.c (show_key_with_all_names_colon), keylist.c
3293         (list_keyblock_colon), mainproc.c (list_node, proc_tree): Minor
3294         cleanup to remove local_id, which is no longer used.
3295
3296 2004-01-27  David Shaw  <dshaw@jabberwocky.com>
3297
3298         * getkey.c: Set MAX_PK_CACHE_ENTRIES and MAX_UID_CACHE_ENTRIES to
3299         PK_UID_CACHE_SIZE (set in ./configure).
3300
3301         * getkey.c (get_pubkey): When reading key data into the cache,
3302         properly handle keys that are partially (pk, no UIDs) cached
3303         already.  This is Debian bug #176425 and #229549.
3304
3305         * compress.c (init_compress, push_compress_filter2): Do the right
3306         thing (i.e. nothing) with compress algo 0.
3307
3308         * main.h, decrypt.c (decrypt_messages): Accept filenames to
3309         decrypt on stdin.  This is bug #253.
3310
3311 2004-01-23  David Shaw  <dshaw@jabberwocky.com>
3312
3313         * mainproc.c (list_node): Show sigs with --verbose.
3314
3315         * options.h, g10.c (set_screen_dimensions): New function to look
3316         at COLUMNS and LINES.
3317
3318         * keyserver.c (parse_keyrec, keyserver_search_prompt), keyedit.c
3319         (print_and_check_one_sig): Use new screen dimension variables.
3320
3321 2004-01-21  David Shaw  <dshaw@jabberwocky.com>
3322
3323         * g10.c (list_config): New function to dump config options to
3324         stdout.  Currently requires --with-colons.
3325         (collapse_args): New function to turn argc/argv into a single
3326         string.
3327         (main): Use it here to pass list_config() more than one argument
3328         as a single string.
3329         (print_algo_numbers): Helper to print algorithm number for
3330         --list-config "pubkey", "cipher", "hash"/"digest", and "compress"
3331         config options.
3332
3333         * packet.h, getkey.c (merge_selfsigs, merge_selfsigs_main),
3334         pkclist.c (check_signatures_trust): Indicate who has revoked a key
3335         (the owner or a designated revoker).  If a key was revoked by
3336         both, prefer the owner.  If a subkey is already revoked by the
3337         owner, don't allow a designated revokation of the whole key to
3338         override this.  We're still revoked either way, of course.
3339         
3340         * keyedit.c (print_and_check_one_sig, keyedit_menu): Use the
3341         COLUMNS environment variable (if any) to hint how wide the
3342         terminal is.  Disabled on _WIN32.  Suggested by Janusz
3343         A. Urbanowicz.
3344
3345 2004-01-20  David Shaw  <dshaw@jabberwocky.com>
3346
3347         * keylist.c (set_attrib_fd): Open attribute fd in binary
3348         mode. This isn't meaningful on POSIX systems, but the Mingw builds
3349         aren't exactly POSIX.
3350
3351         * trustdb.c (reset_trust_records): New, faster, implementation
3352         that doesn't involve a keyring scan.
3353         (clear_validity): Removed.
3354
3355         * g10.c (main), keydb.h, keydb.c (keydb_rebuild_caches),
3356         keyring.h, keyring.c (keyring_rebuild_cache): Add "noisy" flag so
3357         cache rebuilds can remain noisy when called for itself, and quiet
3358         when called as part of the trustdb rebuild.
3359
3360         * trustdb.c (validate_keys): Rebuild the sig caches before
3361         building the trustdb.  Note that this is going to require some
3362         architectual re-thinking, as it is agonizingly slow.
3363
3364 2004-01-19  David Shaw  <dshaw@jabberwocky.com>
3365
3366         * sig-check.c (check_key_signature2): Comments.
3367
3368         * keyring.c (keyring_rebuild_cache): Clear sig cache for any
3369         signatures that we can no longer process (say, if the user removed
3370         support for a necessary pubkey or digest algorithm).
3371
3372 2004-01-16  David Shaw  <dshaw@jabberwocky.com>
3373
3374         * misc.c (print_cipher_algo_note): May as well call Rijndael AES
3375         at this point.
3376
3377         * keygen.c (do_create), misc.c (openpgp_pk_algo_usage): Remove the
3378         last bits of Elgamal type 20 support.
3379
3380 2004-01-03  Stefan Bellon  <sbellon@sbellon.de>
3381
3382         * compress.c [__riscos__]: Only use RISC OS' own ZLib module if
3383         configured to use it.
3384
3385 2003-12-30  David Shaw  <dshaw@jabberwocky.com>
3386
3387         * options.h, g10.c (main), import.c (parse_import_options,
3388         import_one, import_secret_one), keyserver.c (keyserver_refresh):
3389         Change --merge-only to --import-option merge-only.  Deprecate
3390         --merge-only.
3391
3392 2003-12-29  David Shaw  <dshaw@jabberwocky.com>
3393
3394         * misc.c (pull_in_libs): Dead code.  Removed.
3395
3396         * sig-check.c (check_revocation_keys): Comments.
3397
3398         * getkey.c (merge_selfsigs_main): Don't bother to check designated
3399         revoker sigs if the key is already revoked.
3400
3401         * packet.h, getkey.c (merge_selfsigs_main): New "maybe_revoked"
3402         flag on PKs.  It is set when there is a revocation signature from
3403         a valid revocation key, but the revocation key is not present to
3404         verify the signature.
3405
3406         * pkclist.c (check_signatures_trust): Use it here to give a
3407         warning when showing key trust.
3408
3409         * compress-bz2.c: Include stdio.h.  Solaris 9 has a very old bzip2
3410         library and we can at least guarantee that it won't fail because
3411         of the lack of stdio.h.
3412
3413         * tdbio.c: Fixed format string bugs related to the use of DB_NAME.
3414         Reported by Florian Weimer.
3415
3416 2003-12-28  David Shaw  <dshaw@jabberwocky.com>
3417
3418         * options.h, g10.c (main), keyserver.c (keyserver_opts,
3419         parse_keyserver_uri): honor-http-proxy is no longer an option
3420         since we can do the same thing with http-proxy with no arguments.
3421         Also remove broken-http-proxy since it can be better handled in
3422         the HTTP helper.
3423
3424         * keyserver.c (argsep): New variation on strsep that knows about
3425         optional arguments.
3426         (parse_keyserver_options): Use it here for optional arguments.
3427
3428 2003-12-28  Stefan Bellon  <sbellon@sbellon.de>
3429
3430         * plaintext.c (handle_plaintext) [__riscos__]: Don't mangle
3431         filename if the user specified it.
3432
3433         * g10.c, gpgv.c [__riscos__]: Removal of unnecessary #ifdef
3434         __riscos__ sections.
3435
3436 2003-12-27  David Shaw  <dshaw@jabberwocky.com>
3437
3438         * keyserver.c (strip_leading_space, get_arg): New.
3439         (parse_keyserver_options): Use them here to allow arguments to
3440         keyserver-options.  Since none of our options need arguments yet,
3441         just pass them through whole to the keyserver helper.
3442
3443         * main.h, misc.c (parse_options): Add a "noisy" flag to enable and
3444         disable the messages about which option didn't match or matched
3445         ambiguously.  Change all callers (g10.c, keyserver.c).
3446
3447         * main.h, import.c (import_options), export.c (export_options):
3448         Pass the noisy flag through.
3449
3450 2003-12-17  David Shaw  <dshaw@jabberwocky.com>
3451
3452         * build-packet.c (write_fake_data, do_secret_key), seckey-cert.c
3453         (do_check): Use an unsigned length for mpi_get_opaque.
3454
3455         * options.h: It's impolite to assign -1 to an unsigned
3456         opt.force_ownertrust.
3457
3458         * sig-check.c (cmp_help, do_check), sign.c (do_sign): Remove old
3459         unused code.
3460
3461         * keyid.c (keyid_from_sk): Make sure lowbits is initialized.
3462
3463 2003-12-12  David Shaw  <dshaw@jabberwocky.com>
3464
3465         * sig-check.c (do_check): Move the signing algo and hash checks
3466         from here...
3467         (signature_check2): ... to here.
3468         (check_key_signature2): ... and here.  This is a minor
3469         optimization to avoid fetching a key (which can be expensive,
3470         especially if it is not self-signed, and there are many key
3471         signatures on it which need to be checked for ultim