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