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