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