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