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