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