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