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