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