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