Added SELInux hacks and did some cleanups.
[gnupg.git] / g10 / ChangeLog
1 2004-10-13  David Shaw  <dshaw@jabberwocky.com>
2
3         * pkclist.c (do_edit_ownertrust): Different prompt when we're
4         using direct trust since the meaning is different.
5
6         * keyedit.c (trustsig_prompt): Change the strings to match the
7         ones in pkclist.c:do_edit_ownertrust to make translation easier.
8
9         * trustdb.c (trust_model_string, get_validity): Add direct trust
10         model which applies to the key as a whole and not per-uid.
11
12         * options.h, g10.c (parse_trust_model): New.
13         (main): Call it from here to do string-to-trust-model.
14
15 2004-10-13  Werner Koch  <wk@g10code.com>
16
17         * tdbdump.c (import_ownertrust): Removed all log_error_f and
18         reworded the messages.
19
20         * dermor.c: Include i18n.h.  Made 2 strings translatable.
21         
22         * misc.c (register_secured_file, is_secured_file)
23         (unregister_secured_file): New.
24         * keyring.c (do_copy, rename_tmp_file): Implement the SELinux hacks.
25         (keyring_register_filename): Ditto.
26         * tdbio.c (open_db): Ditto.
27         * openfile.c (copy_options_file, open_sigfile): Ditto.
28         * verify.c (verify_signatures, verify_one_file): Ditto.
29         * photoid.c (generate_photo_id): Ditto.
30         * keygen.c (read_parameter_file): Ditto.
31         * import.c (import_keys_internal): Ditto.
32         * decrypt.c (decrypt_message, decrypt_messages): Ditto.
33         * dearmor.c (dearmor_file, enarmor_file): Ditto.
34         * g10.c (main, print_mds): Ditto.
35         * exec.c (exec_write, exec_read): Ditto. 
36         * card-util.c (change_login): Ditto.
37         * encode.c (encode_simple, encode_crypt): Ditto.
38
39         * openfile.c (overwrite_filep, make_outfile_name, open_outfile) 
40         (open_sigfile): Use iobuf_is_pipe_filename to check for pipes so
41         that special filesnames are taken into account. This is bug 327.
42
43         * tdbdump.c (import_ownertrust): Ditto.
44
45         * sign.c (write_plaintext_packet): Ditto.
46         (sign_file, clearsign_file, sign_symencrypt_file): 
47
48         * progress.c (handle_progress): Ditto.
49         * plaintext.c (handle_plaintext): Ditto.
50         (ask_for_detached_datafile, hash_datafiles): 
51
52         * encode.c (encode_simple, encode_crypt): Ditto. 
53
54 2004-10-12  Werner Koch  <wk@g10code.com>
55
56         * keygen.c (read_parameter_file): Changed to use iobuf based file
57         reading to allow the special file name feature to work.
58
59         * keygen.c (read_parameter_file): New keyword "Handle".  This is
60         bug 287.
61         (print_status_key_not_created): New.
62         (print_status_key_created): Add new arg HANDLE.
63         (do_generate_keypair): Print not created status.
64         * status.c, tatus.h (STATUS_KEY_NOT_CREATED): New. 
65
66 2004-10-11  David Shaw  <dshaw@jabberwocky.com>
67
68         * pkclist.c (do_edit_ownertrust): Use the same translated string
69         for showing the user ID as mainproc.c:print_pkenc_list.
70
71         * mainproc.c (print_pkenc_list): Allow translating the quotes
72         around the user ID.
73
74         * card-util.c, g10.c, photoid.c, trustdb.c: The last of the \"%s\"
75         -> `%s' quoting for things that aren't user IDs.
76
77         * keyserver.c (keyserver_spawn): If there is no keyserver host,
78         print the whole URI since it is self-contained.
79
80 2004-10-11  Werner Koch  <wk@g10code.com>
81
82         * keyserver.c (keyserver_spawn): Print an empty string in log_info
83         if the host is not set (e.g. finger).
84
85 2004-10-10  David Shaw  <dshaw@jabberwocky.com>
86
87         * card-util.c, keyedit.c, openfile.c, pkclist.c, delkey.c,
88         keygen.c, photoid.c, revoke.c: Some yes-or-no prompts end in
89         "(y/n)".  Some don't.  Consistently use y/n everywhere.
90
91         * keygen.c (ask_key_flags): New.
92         (ask_algo): Call it here in --expert mode so we don't need to
93         specify each possible variation of RSA capabilities.
94
95         * keygen.c (do_add_key_flags): The spec says that all primary keys
96         MUST be able to certify.  Force the certify flag on for primaries
97         (and off for subkeys).
98
99         * keygen.c (generate_keypair): Fix generating keys with the auth
100         flag.
101
102 2004-10-08  David Shaw  <dshaw@jabberwocky.com>
103
104         * encr-data.c (decrypt_data): Give a warning with a weak key, but
105         still allow to decrypt the message.
106
107 2004-10-07  David Shaw  <dshaw@jabberwocky.com>
108
109         * pkclist.c (build_pk_list): Keystrify.
110
111         * mainproc.c (check_sig_and_print), pkclist.c
112         (do_edit_ownertrust): Improve translatability of user ID prompts.
113
114 2004-10-06  David Shaw  <dshaw@jabberwocky.com>
115
116         * helptext.c, pkclist.c (do_we_trust): It is not possible to get
117         here with a revoked or expired key, so BUG() that case.  Remove
118         question about overriding revoked/expired.  Also
119         --keyid-format-ify.
120         (do_we_trust_pre): Use print_pubkey_info() instead of printing the
121         info ourselves.
122
123         * passphrase.c (passphrase_to_dek): Improve translatability of
124         user ID prompts.
125
126         * keylist.c (print_pubkey_info): Use the user ID the pk was
127         selected by, if any.
128
129         * keyedit.c (sign_uids, ask_revoke_sig): Improve translatability
130         of user ID prompts.
131         (ask_revoke_sig, menu_revsig): Try and use common strings for
132         these two functions so they don't need to be translated twice.
133
134         * keyedit.c, keylist.c, keyserver.c, mainproc.c: The
135         revoked/expired/expires string change of 2004-09-29 was too
136         simple.  Use two styles for each tag.
137
138 2004-10-06  Werner Koch  <wk@g10code.com>
139
140         * ccid-driver.c (ccid_open_reader): Store the vendor ID.
141         (ccid_transceive_secure): New.
142         (parse_ccid_descriptor): Workaround for an SCM reader problem.
143         (send_escape_cmd): New.
144
145 2004-10-05  David Shaw  <dshaw@jabberwocky.com>
146
147         * passphrase.c (agent_get_passphrase): Use keystrs for agent
148         strings, and fix sprintf warnings.
149
150         * keyserver.c (keyserver_spawn): Fix BUG() with certain sets of
151         mixed regular and preferred keyserver refreshes.  Noted by
152         Sebastian Wiesinger.
153
154         * keyedit.c (show_key_with_all_names): Show uid validity in menu.
155
156 2004-10-03  Timo Schulz  <twoaday@g10code.de>
157
158         * apdu.c (apdu_open_remote_reader) [_WIN32]: Do not set ENOSYS.
159         
160 2004-10-03  David Shaw  <dshaw@jabberwocky.com>
161
162         * keyedit.c (print_and_check_one_sig_colon): Fix bad keyids in
163         colon delsig output.  Noted by Peter Palfrader.
164         (show_prefs): Do not reference missing selfsig.  Noted by Alex
165         Moroz.
166
167 2004-10-01  Werner Koch  <wk@g10code.com>
168
169         * gpgv.c (i18n_init): Always use LC_ALL.
170
171 2004-09-30  Werner Koch  <wk@g10code.com>
172
173         * app-openpgp.c (verify_chv3) [GNUPG_MAJOR_VERSION!=1]: Typo fix.
174
175 2004-09-30  David Shaw  <dshaw@jabberwocky.com>
176
177         * gpgv.c, keydb.c (keydb_add_resource): Factored keyring creation
178         out to ..
179         (maybe_create_keyring): .. new.  Make sure that we do the checks
180         in a locked state.  Problem reported by Stefan Haller.  Try to
181         create the home directory before acquiring a lock for the keyring.
182         From Werner on stable branch.
183
184         * g10.c (main): Blow up if we didn't lose setuid.  From Werner on
185         stable branch.
186
187 2004-09-29  David Shaw  <dshaw@jabberwocky.com>
188
189         * keyedit.c, keylist.c, keyserver.c, mainproc.c: Reduce the many
190         variations of "revoked" ("revoked", "[revoked]", " [revoked]",
191         "[revoked] ") "and" expired down to two to simplify translation.
192
193 2004-09-28  David Shaw  <dshaw@jabberwocky.com>
194
195         * keyedit.c (print_and_check_one_sig): Account for the extra space
196         that show-sig-expire takes up so we do not wrap lines.
197         (show_key_with_all_names): No need to show subkey revocations as a
198         seperate line since we now show revocation date in the main subkey
199         line.
200
201         * signal.c (got_fatal_signal): HAVE_DECL_SYS_SIGLIST is defined,
202         but zero if not found.  Noted by John Clizbe.
203
204         * keyserver.c (parse_keyrec): Fix problem with non-expiring keys
205         appearing expired in --search-keys results.
206
207 2004-09-27  Werner Koch  <wk@g10code.com>
208
209         * card-util.c (card_edit): Take admin only status from the table.
210
211         * app-openpgp.c: Made all strings translatable.
212         (verify_chv3) [GNUPG_MAJOR_VERSION]: Make opt.allow_admin
213         available for use in gnupg 2. 
214         (verify_chv3): Reimplemented countdown showing to use only
215         functions from this module.  Flush the CVH status cache on a
216         successful read.
217         (get_one_do): Hack to bypass the cache for cards versions > 1.0.
218         (store_fpr): Store the creation date for card version > 1.0.
219
220 2004-09-25  David Shaw  <dshaw@jabberwocky.com>
221
222         * main.h, g10.c (main), card-util.c (change_pin): If "admin" has
223         not been issued, skip right to the CHV1/CHV2 PIN change.  No need
224         to show the unblock or admin PIN change option.
225         (card_edit): Add "admin" command to add admin commands to the
226         menu.  Do not allow admin commands until "admin" is given.
227
228         * app-openpgp.c (verify_chv3): Show a countdown of how many wrong
229         admin PINs can be entered before the card is locked.
230
231         * options.h, g10.c (main), app-openpgp.c (verify_chv3): Remove
232         --allow-admin.
233
234 2004-09-24  David Shaw  <dshaw@jabberwocky.com>
235
236         * main.h: Create S2K_DIGEST_ALGO macro so we do not need to always
237         set opt.s2k_digest_algo.  This helps fix a problem with PGP 2.x
238         encrypted symmetric messages.  Change all callers (encode.c,
239         g10.c, keyedit.c, keygen.c, passphrase.c, sign.c).
240
241         * armor.c, cardglue.c, getkey.c, import.c, keygen.c: Be consistent
242         in some more quoted strings.  Always use 'user ID', not 'user id',
243         "quotes" for user IDs, etc.
244
245         * keyedit.c (keyedit_menu), gpgv.c (agent_scd_getattr (stub)),
246         keygen.c (copy_mpi, generate_raw_key): Fix a compile problem and a
247         few warnings when building without card support.
248
249 2004-09-23  Werner Koch  <wk@g10code.com>
250
251         * card_util.c (generate_card_keys): ask whether backup should be
252         created.
253         (card_store_subkey): Factored some code out to ..
254         * keygen.c (save_unprotected_key_to_card): .. new function.
255         (gen_card_key_with_backup): New.
256         (generate_raw_key): New.
257         (generate_keypair): New arg BACKUP_ENCRYPTION_DIR.  Changed all
258         callers.
259         (do_generate_keypair): Divert to gen_card_key_with_backup when
260         desired.
261
262         * apdu.c (open_pcsc_reader): Do not print empty reader string.
263
264         * keygen.c (ask_algo): Allow creation of AUTH keys.
265
266         * keyid.c (usagestr_from_pk): New.
267
268         * app-openpgp.c (app_openpgp_storekey): Call flush_cache.
269         (get_cached_data): Move local data initialization to ..
270         (app_select_openpgp): .. here. Read some flags for later use.
271         (do_getattr): New read-only attribute EXTCAP.
272
273         * keyedit.c (keyedit_menu): New command "keytocard"
274         (keyedit_menu): Bad hack for the not_with_sk element.
275         (show_key_with_all_names): Print the usage.
276         (find_pk_from_sknode): New.
277
278         * card-util.c (card_store_subkey): New.
279         (copy_mpi): New.
280
281         * cardglue.c (agent_openpgp_storekey): New.
282
283 2004-09-22  Werner Koch  <wk@g10code.com>
284
285         * card-util.c (card_generate_subkey, generate_card_keys): Factored
286         common code out to ...
287         (get_info_for_key_operation, check_pin_for_key_operation)
288         (restore_forced_chv1, replace_existing_key_p)
289         (show_card_key_info): ... new functions.
290
291 2004-09-21  David Shaw  <dshaw@jabberwocky.com>
292
293         * mainproc.c (check_sig_and_print), keyedit.c (show_prefs,
294         menu_set_keyserver_url): Make sure that keyserver URLs with
295         control characters inside are printed properly.  In fact, handle
296         them as UTF8.
297
298         * keyedit.c (keyedit_menu): Don't show "addcardkey" in the menu if
299         we do not have card support.
300
301         * keydb.h, keyserver.c (print_keyrec, keyserver_spawn): fpr is an
302         array of unsigned bytes.
303
304 2004-09-20  Werner Koch  <wk@g10code.com>
305
306         * g10.c: Make -K an alias for --list-secret-keys.
307
308         * keylist.c (print_card_serialno): New. Taken from gnupg 1.9.11.
309         (list_keyblock_print): Make use of it.
310         * keyedit.c (show_key_with_all_names): Print the card S/N.
311
312         * keyedit.c (keyedit_menu): New command ADDCARDKEY.
313         * card-util.c (card_generate_subkey): New.
314         * keygen.c (generate_card_subkeypair): New.
315         (gen_card_key): New arg IS_PRIMARY; changed all callers.
316
317         * cardglue.c (open_card): Use shutdown code if possible.
318         (check_card_serialno): Ditto.
319
320         * ccid-driver.c (do_close_reader): Factored some code out from ...
321         (ccid_close_reader): ..here.
322         (ccid_shutdown_reader): New.
323
324         * apdu.c (apdu_shutdown_reader): New.
325         (shutdown_ccid_reader): New.
326
327 2004-09-17  Werner Koch  <wk@g10code.com>
328
329         * g10.c (list_config): New config option ccid-reader-id.
330         (gpgconf_list): Add "reader-port".
331
332         * apdu.c (open_ccid_reader): New arg PORTSTR.  Pass it to
333         ccid_open_reader.
334         (apdu_open_reader): Pass portstr to open_ccid_reader.
335         (apdu_open_reader): No fallback if a full CCID reader id has been
336         given.
337
338         * ccid-driver.c (ccid_get_reader_list): New.
339         (ccid_open_reader): Changed API to take a string for the reader.
340         Removed al the cruft for the libusb development vesion which seems
341         not to be maintained anymore and there are no packages anyway.
342         The stable library works just fine.
343         (struct ccid_reader_id_s): Deleted and replaced everywhere by a
344         simple string.
345         (usb_get_string_simple): Removed.
346         (bulk_in): Do valgrind hack here and not just everywhere.
347
348 2004-09-16  David Shaw  <dshaw@jabberwocky.com>
349
350         * keyedit.c (show_key_with_all_names, show_prefs): Show preferred
351         keyserver(s) in "showpref" output.
352
353         * keygen.c (keygen_add_keyserver_url), keyedit.c
354         (menu_set_keyserver_url): Allow setting a keyserver URL of "none"
355         to remove an existing keyserver URL.
356
357         * keyedit.c (menu_set_keyserver_url): Confirm replacement of a
358         keyserver URL before overwriting the old one.
359
360 2004-09-15  David Shaw  <dshaw@jabberwocky.com>
361
362         * gpgv.c (agent_scd_getattr): Stub.
363
364         * misc.c (get_signature_count): New.  Get the signature count from
365         a smartcard.
366         (pct_expando): Call it here so the %c expando becomes the number
367         of signatures issued.  This allows for notations or the like with
368         an automatic signature count.
369
370         * ccid-driver.c (usb_get_string_simple): Replacement function to
371         work with older libusb.
372
373 2004-09-15  Werner Koch  <wk@g10code.com>
374
375         * g10.c [HAVE_LIBUSB]: New option --debug-ccid-driver.
376
377         * ccid-driver.c (read_device_info): Removed.
378         (make_reader_id, scan_or_find_devices): New.
379         (ccid_open_reader): Simplified by make use of the new functions.
380         (ccid_set_debug_level): New.  Changed the macros to make use of
381         it.  It has turned out that it is often useful to enable debugging
382         at runtime so I added this option.
383
384 2004-09-13  David Shaw  <dshaw@jabberwocky.com>
385
386         * getkey.c (premerge_public_with_secret): Fix subkey<->binding sig
387         mismatch when some secret subkeys are missing.  Discovered by
388         Michael Roth.
389
390         * main.h, keylist.c (print_subpackets_colon): Make a public
391         function.
392
393         * keyedit.c (print_and_check_one_sig_colon): New.  Print a
394         with-colons version of the sig record.
395         (menu_delsig): Call it here for a with-colons delsig.
396
397 2004-09-12  David Shaw  <dshaw@jabberwocky.com>
398
399         * options.h, keylist.c (print_one_subpacket,
400         print_subpackets_colon): Print a spk record for each request
401         subpacket.
402         (list_keyblock_colon): Call them here.
403
404         * g10.c (parse_subpacket_list, parse_list_options): New.  Make the
405         list of subpackets we are going to print.
406         (main): Call them here.
407
408 2004-09-11  David Shaw  <dshaw@jabberwocky.com>
409
410         * card-util.c (fetch_url, card_edit): Use the pubkey URL stored on
411         the card to fetch an updated copy.  Works with either straight
412         URLs or HKP or LDAP keyservers.
413
414         * keyserver-internal.h, keyserver.c (keyserver_import_fprint),
415         import.c (revocation_present): Use a keyserver_spec so the caller
416         can pass in whatever keyserver they like.
417
418 2004-09-10  David Shaw  <dshaw@jabberwocky.com>
419
420         * app-openpgp.c (get_cached_data): Avoid mallocing zero since it
421         breaks us when using --enable-m-guard.
422
423         * ccid-driver.c (read_device_info): Fix segfault when usb device
424         is not accessible.
425         (ccid_open_reader): Allow working with an even older version of
426         libusb (usb_busses global instead of usb_get_busses()).
427
428 2004-09-09  Werner Koch  <wk@g10code.com>
429
430         * cardglue.h: Add members for CA fingerprints.
431         * cardglue.c (agent_release_card_info): Invalid them.
432         (learn_status_cb): Store them.
433
434         * app-common.h, app-openpgp.c, iso7816.c, iso7816.h
435         * apdu.c, apdu.h, ccid-driver.c, ccid-driver.h
436         * card-util.c: Updated from current gnupg-1.9.
437
438         Changes are:
439
440         * ccid-driver.h (CCID_DRIVER_ERR_ABORTED): New.
441         * ccid-driver.c (ccid_open_reader): Support the stable 0.1 version
442         of libusb.
443         (ccid_get_atr): Handle short messages.
444         * apdu.c (my_rapdu_get_status): Implemented.
445         * apdu.c: Include <signal.h>.
446         * apdu.c (reader_table_s):  Add function pointers for the backends.
447         (apdu_close_reader, apdu_get_status, apdu_activate) 
448         (send_apdu): Make use of them.
449         (new_reader_slot): Intialize them to NULL.
450         (dump_ccid_reader_status, ct_dump_reader_status): New.
451         (dump_pcsc_reader_status): New.
452         (open_ct_reader, open_pcsc_reader, open_ccid_reader) 
453         (open_osc_reader, open_rapdu_reader): Intialize function pointers.
454         (ct_activate_card, ct_send_apdu, pcsc_send_apdu, osc_send_apdu) 
455         (error_string): Removed.  Replaced by apdu_strerror.
456         (get_ccid_error_string): Removed.
457         (ct_activate_card): Remove the unused loop.
458         (reset_ct_reader): Implemented.
459         (ct_send_apdu): Activate the card if not yet done.
460         (pcsc_send_apdu): Ditto.
461         * ccid-driver.h: Add error codes.
462         * ccid-driver.c: Implement more or less proper error codes all
463         over the place.
464         * apdu.c (apdu_send_direct): New.
465         (get_ccid_error_string): Add some error code mappings.
466         (send_apdu): Pass error codes along for drivers already supporting
467         them.
468         (host_sw_string): New.
469         (get_ccid_error_string): Use above.
470         (send_apdu_ccid): Reset the reader if it has not yet been done.
471         (open_ccid_reader): Don't care if the ATR can't be read.
472         (apdu_activate_card): New.
473         (apdu_strerror): New.
474         (dump_reader_status): Only enable it with opt.VERBOSE.
475         * iso7816.c (map_sw): Add mappings for the new error codes.
476         * apdu.c (open_ct_reader, open_pcsc_reader, open_ccid_reader)
477         (reset_ccid_reader, open_osc_reader): Call dump_reader_status only
478         in verbose mode.
479         * app-openpgp.c (do_getattr): Fix for sending CA-FPR.
480         * app-openpgp.c (app_openpgp_readkey): Fixed check for valid
481         exponent.
482         * app-openpgp.c (do_setattr): Sync FORCE_CHV1.
483         * card-util.c (change_login): Kludge to allow reading data from a
484         file.
485         (card_edit): Pass ARG_STRING to change_login.
486         (card_status): Print CA fingerprints.
487         (change_cafpr): New.
488         (card_edit): New command CAFPR.
489
490 2004-04-30  Werner Koch  <wk@gnupg.org>
491
492         * g10.c (main) <gpgconf>: Use gpg.conf and not /dev/null as
493         default filename.
494
495 2004-04-28  Werner Koch  <wk@gnupg.org>
496
497         * card-util.c (card_edit): Remove PIN verification.
498         (generate_card_keys): New arg SERIALNO.  Do PIN verification here
499         after resetting forced_chv1.
500
501         
502 2004-09-09  Werner Koch  <wk@g10code.com>
503
504         * signal.c (got_fatal_signal): Do readline cleanup.  Print signal
505         number if we can't print the name. Use new autoconf macro
506         HAVE_DECL_SYS_SIGLIST.
507         (get_signal_name): Removed.
508
509         * photoid.c: Include ttyio.h.
510
511         * parse-packet.c (skip_rest): Removed.  Changed all callers to use
512         the new iobuf_skip_reset.  Orginal patch by Florian Weimer.
513
514 2004-09-07  Werner Koch  <wk@g10code.de>
515
516         * photoid.c (generate_photo_id): Use tty_printf and not just
517         printf.  Put _() around one string.
518
519 2004-09-03  David Shaw  <dshaw@jabberwocky.com>
520
521         * keyserver.c (parse_keyrec): Force the 'e'xpired flag on as soon
522         as we know the key is definitely expired.  Some translatable
523         string cleanup.
524
525 2004-08-27  David Shaw  <dshaw@jabberwocky.com>
526
527         * encode.c, exec.c, g10.c, sign.c: Some translatable string
528         cleanup.  Change some "this" to `this'.
529
530 2004-08-23  David Shaw  <dshaw@jabberwocky.com>
531
532         * keyserver.c (keyserver_spawn): Show log line for what keyserver
533         action we are taking.
534
535         * keyid.c (keystr): If printing a keyid that lacks the high 4
536         bytes, print the low 4 alone.
537         (keystr_from_desc): Handle short keyids and warn on v3
538         fingerprints.
539
540         * keydb.h, getkey.c (get_user_id_printable): Rename to
541         get_user_id_native and remove the printable stuff since we're
542         print-ifying valid utf8 characters.  Change all callers in
543         import.c, sign.c, keylist.c, and encode.c.
544
545         * keyserver.c (keyserver_search_prompt): Make sure the search
546         string is converted from UTF-8 before display.
547
548 2004-08-19  Werner Koch  <wk@g10code.de>
549
550         * seskey.c (encode_session_key): Changed the zero random byte
551         substituting code to actually do clever things.  Thanks to
552         Matthias Urlichs for noting the implementation problem.
553
554 2004-08-18  Marcus Brinkmann  <marcus@g10code.de>
555
556         * passphrase.c (agent_get_passphrase): Fix detection of gpg-agent
557         cancellation.
558
559 2004-08-08  David Shaw  <dshaw@jabberwocky.com>
560
561         * plaintext.c (handle_plaintext): Bigger buffer for extra safety.
562
563         * g10.c (main): New alias --throw-keyid for --throw-keyids, so
564         that it continues to work in old configuration files.  Noted by
565         Jens Adam.
566
567         * pkclist.c (algo_available): --pgp8 now allows blowfish, zlib,
568         and bzip2.
569
570         * status.c (do_get_from_fd): Flush stdout if status isn't flushing
571         it for us.  This guarantees that any menus that were displayed
572         before the prompt don't get stuck in a buffer.  Noted by Peter
573         Palfrader.  This is Debian bug #254072.
574
575         * sign.c (update_keysig_packet): Revert change of 2004-05-18.  It
576         is not appropriate to strip policy and notations when remaking a
577         sig.  That should only happen when specifically requested by the
578         user.
579
580 2004-08-05  David Shaw  <dshaw@jabberwocky.com>
581
582         * armor.c (radix64_read): No armor CRC is legal according to the
583         spec (the CRC is a MAY).
584
585 2004-07-28  David Shaw  <dshaw@jabberwocky.com>
586
587         * misc.c (argsplit): Properly split quoted args from the keyword
588         and trim whitespace afterwards.
589
590 2004-07-27  David Shaw  <dshaw@jabberwocky.com>
591
592         * misc.c (optsep): Add the ability to understand keyword="quoted
593         arg with spaces" type options.
594
595 2004-07-16  David Shaw  <dshaw@jabberwocky.com>
596
597         * keylist.c (list_keyblock_print): Always use the new listing
598         format where uids are always on a line for themselves.  Mark
599         expired secret keys as expired.
600
601         * options.h, g10.c (main): Rename list show-validity to
602         show-uid-validity as it only shows for uids.
603
604         * armor.c (armor_filter): Do not use padding to get us to 8 bytes
605         of header.  Rather, use 2+4 as two different chunks.  This avoids
606         a fake filename of "is".
607
608 2004-07-15  David Shaw  <dshaw@jabberwocky.com>
609
610         * keyedit.c (sign_uids): Properly handle remaking a self-sig on
611         revoked or expired user IDs.  Also, once we've established that a
612         given uid cannot or will not be signed, don't continue to ask
613         about each sig.
614
615         * mainproc.c (proc_symkey_enc), seckey-cert.c (do_check): Check
616         the S2K hash algorithm before we try to generate a passphrase
617         using it.  This prevents hitting BUG() when generating a
618         passphrase using a hash that we don't have.
619
620         * sign.c (sign_symencrypt_file): Allow using --force-mdc in --sign
621         --symmetric messages.
622
623         * g10.c (main): Alias --charset as --display-charset to help avoid
624         the continuing confusion and make room for possible changes in
625         devel.
626
627         * parse-packet.c (parse_plaintext): Show the hex value for the
628         literal packet mode since it may not be printable.
629
630         * keygen.c (make_backsig): Make sure that the backsig was built
631         successfully before we try and use it.
632
633         * status.h, status.c (get_status_string), plaintext.c
634         (handle_plaintext): New status tags PLAINTEXT and
635         PLAINTEXT_LENGTH.
636
637 2004-06-16  Werner Koch  <wk@gnupg.org>
638
639         * free-packet.c (copy_secret_key): Get last fix right.
640
641 2004-06-16  Werner Koch  <wk@gnupg.org>
642
643         * free-packet.c (copy_secret_key): Fixed memory leak when D is not
644         NULL.
645
646         * passphrase.c (passphrase_to_dek): Added a few comments to the
647         code.
648
649 2004-05-26  David Shaw  <dshaw@jabberwocky.com>
650
651         * keyserver.c (keyserver_refresh): Keep track of keys already
652         fetched so we don't do a regular keyserver fetch if the preferred
653         keyserver fetch has exhausted the list.
654
655 2004-05-23  David Shaw  <dshaw@jabberwocky.com>
656
657         * verify.c (verify_signatures): Verify multiple files in the same
658         order in which we hashed them when issuing the signature.  Noted
659         by Nicholas Cole.
660
661         * pkclist.c (do_edit_ownertrust): Fix a kbnode leak and do another
662         keyid-format conversion.
663
664 2004-05-22  Werner Koch  <wk@gnupg.org>
665
666         * trustdb.c (check_regexp): s/EXP/EXPR/.
667
668         * keyedit.c (trustsig_prompt): Remoev useless range check.
669
670         * options.h: Renamed ctrl to glo_ctrl.  Changed all users.
671
672         * ccid-driver.c (ccid_open_reader): Print a warning when CCID
673         can't be used.
674
675 2004-05-21  David Shaw  <dshaw@jabberwocky.com>
676
677         * mainproc.c (check_sig_and_print): If we're honoring preferred
678         keyservers, and auto-key-retrieve is set, try and get a missing
679         key from the preferred keyserver subpacket when we verify the sig.
680
681         * gpgv.c (parse_preferred_keyserver, free_keyserver_spec): Stubs.
682
683         * keyserver.c (keyidlist): Use new parse_preferred_keyserver
684         function.
685         (keyserver_work): Use the passed-in keyserver spec rather than the
686         options global one.
687
688         * keyserver-internal.h, keyserver.c (parse_preferred_keyserver):
689         New function to take a sig and return a split out keyserver_spec.
690         (keyserver_import_keyid): Now takes a keyserver_spec.
691
692         * keyserver.c (keyidlist): Go back to the old fast keyid lister.
693         Only merge selfsigs if we have to for honor-keyserver-url.
694         (keyserver_refresh): Keyserver URL handler moved here.
695         (calculate_keyid_fpr): Removed.
696
697         * keydb.h, keyid.c (keystr_from_desc): Calculate a key string from
698         a KEYDB_SEARCH_DESC.
699
700         * keyserver.c (keyserver_spawn): Fix keyserver options on tempfile
701         only platforms.  Noted by Roger Sondermann.
702
703 2004-05-20  David Shaw  <dshaw@jabberwocky.com>
704
705         * keyserver.c (keyserver_work): Allow --refresh-keys with a
706         preferred keyserver to happen even if there is no global keyserver
707         set.
708
709         * sig-check.c (do_check_messages): No need to check for Elgamal
710         signatures any longer.
711         (do_check_messages, do_check, check_key_signature2):
712         --keyid-format conversion.
713
714         * pkclist.c (show_paths, edit_ownertrust): Remove some unused
715         code.
716
717         * options.h (ctrl): New for member IN_AUTO_KEY_RETRIEVE.
718
719         * mainproc.c (check_sig_and_print): track whether we are
720         retrieving a key.
721
722         * status.c (status_currently_allowed): New.
723         (write_status_text, write_status_text_and_buffer): Use it here.
724
725         * g10.c: New command --gpgconf-list.
726         (gpgconf_list): New.  From Werner on stable branch.
727
728 2004-05-19  David Shaw  <dshaw@jabberwocky.com>
729
730         * pubkey-enc.c (get_session_key, get_it), keyedit.c
731         (show_key_with_all_names, show_basic_key_info): --keyid-format
732         conversion.
733
734 2004-05-18  David Shaw  <dshaw@jabberwocky.com>
735
736         * sign.c (update_keysig_packet): Policies and notations should be
737         stripped out when remaking a self-signature.  Noted by Atom
738         Smasher.
739
740         * keyserver.c (parse_keyserver_uri): Fix compiler warnings.
741
742 2004-05-11  David Shaw  <dshaw@jabberwocky.com>
743
744         * options.h, keyserver-internal.h, keyserver.c
745         (parse_keyserver_uri): Improved URI parser that keeps track of the
746         path information and doesn't modify the input string.
747         (keyserver_spawn): Tell keyserver plugins about the path.
748
749 2004-05-11  Werner Koch  <wk@gnupg.org>
750
751         * keylist.c (show_policy_url, show_keyserver_url, show_notation) 
752         (list_one): Use const char* for i18n string helpers.
753
754         * keygen.c (do_generate_keypair, read_parameter_file): Really
755         close the files.
756         (do_generate_keypair): Create the secret key file using safe
757         permissions.  Noted by Atom Smasher.
758
759 2004-05-10  David Shaw  <dshaw@jabberwocky.com>
760
761         * options.h, mainproc.c (symkey_decrypt_seskey), keyserver.c
762         (struct keyrec, parse_keyrec, keyserver_search_prompt), keyedit.c
763         (keyedit_menu), g10.c (add_keyserver_url, add_policy_url): Fix
764         some compiler warnings.
765
766 2004-05-08  David Shaw  <dshaw@jabberwocky.com>
767
768         * keyedit.c (keyedit_menu, menu_set_keyserver_url): Allow passing
769         preferred keyserver on "keyserver" command line.  Sanity check
770         keyserver URL before accepting it.
771
772         * keyserver-internal.h, g10.c (main), keyserver.c
773         (parse_keyserver_uri): Add an option to require the scheme:// and
774         change all callers.
775         (free_keyserver_spec): Make public.
776
777 2004-05-07  Werner Koch  <wk@gnupg.org>
778
779         * sign.c (write_plaintext_packet): Fixed the detection of too
780         large files in the same way as in encode.c.
781
782 2004-05-04  David Shaw  <dshaw@jabberwocky.com>
783
784         * keylist.c (show_notation): Use bits to select which sort of
785         notation to show.  Don't allow a not-shown notation to prevent us
786         from issuing the proper --status-fd message.
787
788         * options.h, g10.c (main): Add show-std/standard-notations and
789         show-user-notations.  show-notations is both.  Default is to show
790         standard notations only during verify.  Change all callers.
791
792 2004-04-28  David Shaw  <dshaw@jabberwocky.com>
793
794         * main.h, keylist.c (show_notation): Add argument to show only
795         user notations, only standard notations, or both.  Change all
796         callers.
797
798         * keyserver.c (keyserver_spawn): We still need EXEC_TEMPFILE_ONLY.
799
800 2004-04-28  Werner Koch  <wk@gnupg.org>
801
802         * card-util.c (card_edit): Require PIN only for generate. 
803
804         * app-openpgp.c (do_setattr): Sync FORCE_CHV1.
805
806 2004-04-27  Werner Koch  <wk@gnupg.org>
807
808         * keyserver.c (keyserver_spawn) [EXEC_TEMPFILE_ONLY]: Removed
809         setting use_temp_file because this option has been removed.
810
811         * g10.c: New commands --allow-admin and --deny-admin.
812         * options.h (opt): Add member ALLOW_ADMIN.
813
814         * tlv.h, tlv.c: New.  Copied from gnupg-1.9. 
815         * cardglue.c (open_card): The serialno is now set internally by
816         app_select_openpgp; changed invocation.
817         * cardglue.h (app_t, ctrl_t): New.
818         (GPG_ERR_EBUSY, GPG_ERR_ENOENT, GPG_ERR_NOT_FOUND, GPG_ERR_BUG) 
819         (GPG_ERR_NOT_IMPLEMENTED, GPG_ERR_EACCESS): New.
820         (gpg_err_code_from_errno): New.
821
822         * app-common.h, app-openpgp.c, iso7816.c, iso7816.h
823         * apdu.c, apdu.h, ccid-driver.c, ccid-driver.h
824         * card-util.c: Updated from current gnupg-1.9.
825
826         Changes are:
827
828         * app-common.h: New members FNC.DEINIT and APP_LOCAL.
829         * app-openpgp.c (do_deinit): New.
830         (get_cached_data, flush_cache_item, flush_cache_after_error)
831         (flush_cache): New.
832         (get_one_do): Replaced arg SLOT by APP.  Make used of cached data.
833         (verify_chv2, verify_chv3): Flush some cache item after error.
834         (do_change_pin): Ditto.
835         (do_sign): Ditto.
836         (do_setattr): Flush cache item.
837         (do_genkey): Flush the entire cache.
838         (compare_fingerprint): Use cached data.
839
840         * apdu.c (apdu_send_le): Reinitialize RESULTLEN.  Handle
841         SW_EOF_REACHED like SW_SUCCESS.
842
843         * ccid-driver.c (parse_ccid_descriptor): Store some of the reader
844         features away.  New arg HANDLE
845         (read_device_info): New arg HANDLE. Changed caller.
846         (bulk_in): Handle time extension requests.
847         (ccid_get_atr): Setup parameters and the IFSD.
848         (compute_edc): New. Factored out code.
849         (ccid_transceive): Use default NADs when required.
850
851         * apdu.h: New pseudo stati SW_HOST_NOT_SUPPORTED,
852         SW_HOST_LOCKING_FAILED and SW_HOST_BUSY.
853         * iso7816.c (map_sw): Map it.
854         
855         * ccid-driver.c (ccid_slot_status): Add arg STATUSBITS.
856         * apdu.c (apdu_get_status): New.
857         (ct_get_status, pcsc_get_status, ocsc_get_status): New stubs.
858         (get_status_ccid): New.
859         (apdu_reset): New.
860         (reset_ct_reader, reset_pcsc_reader, reset_osc_reader): New stubs.
861         (reset_ccid_reader): New.
862         (apdu_enum_reader): New.
863         
864         * apdu.c (lock_slot, trylock_slot, unlock_slot): New helpers.
865         (new_reader_slot) [USE_GNU_PTH]: Init mutex.
866         (apdu_reset, apdu_get_status, apdu_send_le): Run functions
867         in locked mode.
868         
869 2004-04-25  David Shaw  <dshaw@jabberwocky.com>
870
871         * getkey.c (get_seckey_byname2): Significantly simplify this
872         function by using key_byname to do the heavy lifting.  Note that
873         this also fixes an old problem when the first key on the secret
874         keyring has an unusable stub primary, but is still chosen.
875
876         * getkey.c (key_byname): If namelist is NULL, return the first key
877         in the keyring.
878
879 2004-04-22  David Shaw  <dshaw@jabberwocky.com>
880
881         * keygen.c (make_backsig): If DO_BACKSIGS is not defined, do not
882         create backsigs.
883
884         * getkey.c (merge_selfsigs_subkey): Find 0x19 backsigs on subkey
885         selfsigs and verify they are valid.  If DO_BACKSIGS is not
886         defined, fake this as always valid.
887
888         * packet.h, parse-packet.c (parse_signature): Make parse_signature
889         non-static so we can parse 0x19s in self-sigs.
890
891         * main.h, sig-check.c (check_backsig): Check a 0x19 signature.
892         (signature_check2): Give a backsig warning if there is no or a bad
893         0x19 with signatures from a subkey.
894
895 2004-04-21  David Shaw  <dshaw@jabberwocky.com>
896
897         * parse-packet.c (dump_sig_subpkt, parse_one_sig_subpkt,
898         can_handle_critical): Parse and display 0x19 signatures.
899
900 2004-04-20  David Shaw  <dshaw@jabberwocky.com>
901
902         * keyserver.c (parse_keyserver_uri): Do not accept "http" as an
903         alias for "hkp".  They are not the same thing.
904
905 2004-04-19  David Shaw  <dshaw@jabberwocky.com>
906
907         * options.h, g10.c (main): Add keyserver-option
908         honor-keyserver-url.  parse_keyserver_options now returns a
909         success code.
910
911         * keyserver.c (parse_keyserver_options): Return error on failure
912         to parse.  Currently there is no way to fail as any unrecognized
913         options get saved to be sent to the keyserver plugins later.
914         Check length of keyserver option tokens since with =arguments we
915         must only match the prefix.
916         (free_keyserver_spec): Moved code from parse_keyserver_url.
917         (keyserver_work, keyserver_spawn): Pass in a struct keyserver_spec
918         rather than using the global keyserver option.
919         (calculate_keyid_fpr): New.  Fills in a KEYDB_SEARCH_DESC for a
920         key.
921         (keyidlist): New implementation using get_pubkey_bynames rather
922         than searching the keydb directly.  If honor-keyserver-url is set,
923         make up a keyserver_spec and try and fetch that key directly.  Do
924         not include it in the returned keyidlist in that case.
925
926 2004-04-16  David Shaw  <dshaw@jabberwocky.com>
927
928         * plaintext.c (handle_plaintext): Accept 'u' as a plaintext mode
929         that requires end of line conversion.  This is being considered
930         for a UTF8 text packet.  If this doesn't take place, no major harm
931         done.  If it does take place, we'll get a jump on starting the
932         changeover.
933
934         * g10.c (main): --no-use-embedded-filename.
935
936         * build-packet.c (calc_plaintext, do_plaintext): Do not create
937         illegal (packet header indicates a size larger than the actual
938         packet) encrypted data packets when not compressing and using a
939         filename longer than 255 characters.
940
941         * keyedit.c (no_primary_warning): Cleanup. (menu_expire): Don't
942         give primary warning for subkey expiration changes.  These cannot
943         reorder primaries.
944
945         * keygen.c (gen_elg, gen_dsa, gen_rsa, do_create,
946         do_generate_keypair, generate_subkeypair): New is_subkey argument
947         to set whether a generated key is a subkey.  Do not overload the
948         ret_sk.  This is some early cleanup to do backsigs for signing
949         subkeys.
950
951         * keygen.c (write_keybinding, do_generate_keypair,
952         generate_subkeypair): Keep track of the unprotected subkey secret
953         key so we can make a backsig with it.
954
955         * keygen.c (make_backsig): New function to add a backsig to a
956         binding sig of signing subkeys.  Currently disabled.
957         (write_keybinding): Call it here, for signing subkeys only.
958
959         * sign.c (make_keysig_packet): Allow generating 0x19 signatures
960         (same as 0x18 or 0x28, but used for backsigs).
961
962         * packet.h, build-packet.c (build_sig_subpkt): Add new
963         SIGSUBPKT_SIGNATURE type for embedded signatures.
964
965         * main.h, misc.c (optsep, argsplit, optlen, parse_options):
966         Simplify code and properly handle a partial match against an
967         option with an argument.
968
969         * keyserver-internal.h, keyserver.c (parse_keyserver_options): Use
970         new optsep and argsplit functions.
971
972 2004-04-15  David Shaw  <dshaw@jabberwocky.com>
973
974         * main.h, misc.c (argsplit): Refactor argsep into argsplit and
975         argsep so they can be called separately.
976
977         * options.h, keyserver.c (parse_keyserver_options): Remove
978         duplicate code from parse_keyserver_options by calling the generic
979         parse_options.
980
981         * keyserver.c (keyserver_spawn, keyserver_refresh), g10.c (main),
982         gpgv.c (main), mainproc.c (check_sig_and_print), import.c
983         (revocation_present): Change all callers.
984
985 2004-04-14  David Shaw  <dshaw@jabberwocky.com>
986
987         * packet.h, getkey.c (fixup_uidnode, merge_selfsigs_subkey): Keep
988         track of which self-sig we actually chose.
989
990         * keyedit.c (menu_expire, menu_set_primary_uid,
991         menu_set_preferences): Use it here to avoid updating non-used
992         self-sigs and possibly promoting an old self-sig into
993         consideration again.
994
995         * options.h, import.c, keyserver-internal.h, g10.c, mainproc.c,
996         keyserver.c (parse_keyserver_uri): Parse keyserver URI into a
997         structure.  Cleanup for new "guess my keyserver" functionality, as
998         well as refreshing via a preferred keyserver subpacket.
999
1000         * options.h: Encapsulate keyserver details.  Change all callers.
1001
1002 2004-04-05  Werner Koch  <wk@gnupg.org>
1003
1004         * status.h (STATUS_NEWSIG): New.
1005         * status.c (get_status_string): Add it. 
1006
1007 2004-03-27  David Shaw  <dshaw@jabberwocky.com>
1008
1009         * keyedit.c (keyedit_menu): Request a trustdb update when adding a
1010         new user ID so the new ID gets validity set.  Reported by Owen
1011         Taylor.
1012
1013 2004-03-25  David Shaw  <dshaw@jabberwocky.com>
1014
1015         * options.h, g10.c (main), compress-bz2.c (init_uncompress):
1016         Rename --bzip2-compress-lowmem to --bzip2-decompress-lowmem since
1017         it applies to decompression, not compression.
1018
1019 2004-03-24  David Shaw  <dshaw@jabberwocky.com>
1020
1021         * keyedit.c (sign_uids, show_key_and_fingerprint, ask_revoke_sig,
1022         menu_revsig, menu_showphoto): --keyid-format conversion.
1023         (menu_addrevoker): Use print_pubkey_info() rather than duplicating
1024         code.
1025
1026 2004-03-19  David Shaw  <dshaw@jabberwocky.com>
1027
1028         * trustdb.c (update_min_ownertrust, validate_keys): Do not use
1029         keystr functions in log_debug.
1030
1031         * import.c (import_one): Try and collapse user IDs when importing
1032         a key for the first time.
1033
1034         * keyedit.c (menu_addrevoker): Allow appointing a subkey as a
1035         designated revoker if the user forces it via keyid!, so long as
1036         the subkey can certify.  Also use the proper date string when
1037         prompting for confirmation.
1038
1039         * g10.c (main): Maintain ordering of multiple Comment lines.
1040         Requested by Peter Hyman.
1041
1042 2004-03-17  David Shaw  <dshaw@jabberwocky.com>
1043
1044         * mainproc.c (proc_pubkey_enc, print_pkenc_list, list_node):
1045         --keyid-format conversion.
1046
1047 2004-03-16  David Shaw  <dshaw@jabberwocky.com>
1048
1049         * getkey.c (skip_unusable, merge_selfsigs_main,
1050         premerge_public_with_secret, lookup, get_user_id_string):
1051         --keyid-format conversion.
1052
1053 2004-03-15  David Shaw  <dshaw@jabberwocky.com>
1054
1055         * trustdb.c (add_utk, verify_own_keys, update_min_ownertrust,
1056         get_validity, ask_ownertrust, validate_keys): --keyid-format
1057         conversion.
1058
1059         * import.c (check_prefs_warning, check_prefs): --keyid-format
1060         conversion and a little better text.
1061         (import_one, import_secret_one, import_revoke_cert, chk_self_sigs,
1062         delete_inv_parts, merge_blocks): Still more --keyid-format
1063         conversions.
1064
1065 2004-03-06  David Shaw  <dshaw@jabberwocky.com>
1066
1067         * keylist.c (print_seckey_info, print_pubkey_info): --keyid-format
1068         conversion.
1069         (list_keyblock_print): 0xshort should not push us into the new
1070         list format since it is not much longer than regular 8-character
1071         short keyids.
1072
1073         * keydb.h, keyid.c (keystr_from_pk, keystr_from_sk): New functions
1074         to pull a key string from a key in one step.  This isn't faster
1075         than before, but makes for neater code.
1076
1077         * keylist.c (list_keyblock_print): Use keystr_from_xx here.
1078         (print_key_data): No need to pass a keyid in.
1079
1080 2004-03-05  David Shaw  <dshaw@jabberwocky.com>
1081
1082         * keyid.c (keyid_from_sk): Minor performance boost by caching
1083         secret key keyids so we don't have to calculate them each time.
1084
1085         * getkey.c (merge_selfsigs_subkey): Do not mark subkeys valid if
1086         we do not support their pk algorithm.  This allows for early
1087         (during get_*) rejection of a subkey, and selection of another.
1088
1089         * passphrase.c (passphrase_to_dek): Give a little more information
1090         when we have room to do so.
1091
1092 2004-03-04  David Shaw  <dshaw@jabberwocky.com>
1093
1094         * revoke.c (export_minimal_pk), export.c (do_export_stream),
1095         passphrase.c (passphrase_to_dek), keyserver.c (print_keyrec): A
1096         few more places to use --keyid-format.
1097
1098         * options.h, g10.c (main), export.c (parse_export_options,
1099         do_export_stream): Remove --export-all and the "include-non-rfc"
1100         export-option as they are no longer meaningful with the removal of
1101         v3 Elgamal keys.
1102
1103         * armor.c (fake_packet, armor_filter): Use the 2440 partial length
1104         encoding for the faked plaintext packet.
1105
1106 2004-03-03  David Shaw  <dshaw@jabberwocky.com>
1107
1108         * options.h, g10.c (main), mainproc.c (check_sig_and_print):
1109         Remove verify-option show-long-keyids and replace with
1110         the more general keyid-format.
1111
1112         * build-packet.c (write_header2): Remove call to start old gpg
1113         partial length mode and change all callers.
1114         (do_plaintext): Turn off partial length encoding now that we're
1115         done writing the packet.
1116         (do_comment, do_user_id): Try for a headerlen of 2 since that's
1117         the smallest and most likely encoding for these packets.
1118
1119         * parse-packet.c (parse): Remove call to start old gpg partial
1120         length mode.
1121
1122 2004-03-02  David Shaw  <dshaw@jabberwocky.com>
1123
1124         * options.h, g10.c (main): Add a more flexible --keyid-format
1125         option to replace the list-option (and eventually verify-option)
1126         show-long-keyids.  The format can be short, long, 0xshort, and
1127         0xlong.
1128
1129         * keydb.h, keyid.c (keystr, keystrlen): New functions to generate
1130         a printable keyid.
1131
1132         * keyedit.c (print_and_check_one_sig, show_key_with_all_names),
1133         keylist.c (list_keyblock_print): Use new keystr() function here to
1134         print keyids.
1135
1136         * packet.h, free-packet.c (free_encrypted, free_plaintext),
1137         parse-packet.c (copy_packet, skip_packet, skip_rest, read_rest,
1138         parse_plaintext, parse_encrypted, parse_gpg_control): Use a flag
1139         to indicate partial or indeterminate encoding.  This is the first
1140         step in some minor surgery to remove the old gpg partial length
1141         encoding.
1142
1143 2004-03-01  David Shaw  <dshaw@jabberwocky.com>
1144
1145         * parse-packet.c (parse): Only data-type packets are allowed to
1146         use OpenPGP partial length encoding.
1147
1148 2004-02-25  David Shaw  <dshaw@jabberwocky.com>
1149
1150         * delkey.c (do_delete_key): Allow deleting a public key with a
1151         secret present if --expert is set.
1152
1153         * plaintext.c (handle_plaintext): Make bytecount static so it
1154         works with multiple literal packets inside a message.
1155
1156         * encode.c, helptext.c (keygen.algo, keygen.algo.elg_se), keygen.c
1157         (ask_algo), sig-check.c (do_check_messages), skclist.c
1158         (build_sk_list): Rename "ElGamal" to "Elgamal" as that is the
1159         proper spelling nowadays.  Suggested by Jon Callas.
1160
1161 2004-02-24  David Shaw  <dshaw@jabberwocky.com>
1162
1163         * plaintext.c: Copyright.
1164
1165         * encode.c (encode_simple): Show cipher with --verbose.
1166
1167         * options.h, g10.c (main), keyedit.c (sign_keys): Add
1168         --ask-cert-level option to enable cert level prompts during
1169         sigs. Defaults to on.  Simplify --default-cert-check-level to
1170         --default-cert-level.  If ask-cert-level is off, or batch is on,
1171         use the default-cert-level as the cert level.
1172
1173         * options.h, g10.c (main), trustdb.c (mark_usable_uid_certs):
1174         Simplify --min-cert-check-level to --min-cert-level.
1175
1176 2004-02-22  David Shaw  <dshaw@jabberwocky.com>
1177
1178         * options.h, g10.c (main), trustdb.c (mark_usable_uid_certs): Add
1179         --min-cert-check-level option to specify minimum cert check level.
1180         Defaults to 2 (so 0x11 sigs are ignored).  0x10 sigs cannot be
1181         ignored.
1182
1183 2004-02-21  David Shaw  <dshaw@jabberwocky.com>
1184
1185         * plaintext.c (handle_plaintext): Properly handle a --max-output
1186         of zero (do not limit output at all).
1187
1188         * keyserver.c (keyserver_spawn): Use the full 64-bit keyid in the
1189         INFO header lines, and include "sig:" records for the benefit of
1190         people who store their keys in LDAP servers.  It makes it easy to
1191         do queries for things like "all keys signed by Isabella".
1192
1193         * main.h, misc.c (hextobyte): Removed.  It's in libutil.a now.
1194
1195 2004-02-20  David Shaw  <dshaw@jabberwocky.com>
1196
1197         * keyserver.c (keyserver_export): Disallow user strings that
1198         aren't key IDs.
1199         (keyserver_import): Clarify error message.
1200         (keyserver_spawn): Properly handle 8 bit characters in user IDs in
1201         the info lines during SEND.
1202
1203         * mkdtemp.c: Removed.
1204
1205         * Makefile.am: We get mkdtemp.c from libutil.a now, so don't link
1206         with @LIBOBJS@.
1207
1208         * keyserver.c (keyserver_spawn): Pass the scheme to the keyserver
1209         helper.
1210
1211 2004-02-18  David Shaw  <dshaw@jabberwocky.com>
1212
1213         * options.h, g10.c (main), plaintext.c (handle_plaintext): Add
1214         --max-output option to help people deal with decompression bombs.
1215
1216 2004-02-15  David Shaw  <dshaw@jabberwocky.com>
1217
1218         * build-packet.c (do_user_id): Do not force a header for attribute
1219         packets as they require a new CTB, and we don't support forced
1220         headers for new CTBs yet.
1221
1222 2004-02-14  David Shaw  <dshaw@jabberwocky.com>
1223
1224         * build-packet.c (write_header2): If a suggested header length is
1225         provided along with a zero length, interpret this as an actual
1226         zero length packet and not as an indeterminate length packet.
1227         (do_comment, do_user_id): Use it here as these packets might be
1228         naturally zero length.
1229
1230         * parse-packet.c (parse): Show packet type when failing due to an
1231         indeterminate length packet.
1232
1233         * misc.c (parse_options): Only provide args for the true (i.e. not
1234         "no-xxx") form of options.
1235
1236 2004-02-13  David Shaw  <dshaw@jabberwocky.com>
1237
1238         * keyserver.c (argsep): Move to misc.c.
1239
1240         * main.h, misc.c (parse_options), export.c (parse_export_options),
1241         import.c (parse_import_options), g10.c (main): Use it here to
1242         allow for options with optional arguments.  Change all callers.
1243
1244         * import.c (check_prefs): Some language fixes.
1245         (sec_to_pub_keyblock, import_secret_one): Without knowing the
1246         number of MPIs there are, we cannot try and sk-to-pk-ize a key.
1247
1248 2004-02-12  David Shaw  <dshaw@jabberwocky.com>
1249
1250         * import.c (check_prefs): New function to check preferences on a
1251         public key to ensure that it does not advertise any that we cannot
1252         fulfill.  Use the keyedit command list function to optionally
1253         rewrite the prefs.
1254         (import_one, import_secret_one): Use it here when importing a
1255         public key that we have the secret half of, or when importing a
1256         secret key that we have the public half of.
1257
1258         * main.h, keyedit.c (keyedit_menu): Remove sign_mode and enhance
1259         the more general command list functionality to replace it.
1260
1261         * g10.c (main): Use the general command functionality to implement
1262         --sign-key, --lsign-key, --nrsign-key, and --nrlsign-key.
1263
1264         * import.c (import_one): Do the revocation check even in the case
1265         when a key, a revocation key set in a direct key signature, and a
1266         revocation from that revocation key, all arrive piecemeal.
1267         Needless to say, this is pretty obscure.
1268
1269 2004-02-11  David Shaw  <dshaw@jabberwocky.com>
1270
1271         * options.h, g10.c (main), keylist.c (list_keyblock_print): Add
1272         "show-unusable-subkeys" list-option to show revoked and/or expired
1273         subkeys.
1274
1275 2004-02-10  David Shaw  <dshaw@jabberwocky.com>
1276
1277         * keyedit.c (keyedit_menu): Prompt for subkey removal for both
1278         secret and public subkeys.
1279
1280         * keylist.c (list_keyblock_print), keyedit.c
1281         (show_key_with_all_names): Show the revocation date of a
1282         key/subkey, and general formatting work.
1283
1284         * packet.h, getkey.c (merge_selfsigs_main, merge_selfsigs_subkey,
1285         merge_selfsigs): Keep track of the revocation date of a key.
1286
1287         * keydb.h, keyid.c (revokestr_from_pk): New function to print the
1288         revocation date of a key.
1289
1290         * keygen.c (keygen_set_std_prefs): Build the default preferences
1291         list at runtime as it properly handles algorithms disabled at
1292         build or run time.
1293
1294         * getkey.c (merge_selfsigs_main): Properly handle expired user IDs
1295         when the expired self-sig is not the only self-sig.
1296
1297         * misc.c (compress_algo_to_string): Return NULL on failure like
1298         all of the other xxxx_algo_to_string() functions.
1299
1300         * mainproc.c (list_node): Minor spacing tweak to match --list-keys
1301         output.
1302
1303         * keylist.c (list_keyblock_print), mainproc.c (list_node): Mark
1304         revoked subkeys as revoked.  Requested by Matthew Wilcox.  Revoked
1305         overrides expiration when both apply.
1306
1307         * keyedit.c (show_prefs): Use compress algo constants.
1308         (show_basic_key_info): Make revoked and expired tags translatable.
1309
1310         * g10.c (rm_group): Properly ungroup from a list of groups.
1311
1312 2004-01-30  David Shaw  <dshaw@jabberwocky.com>
1313
1314         * g10.c (main, rm_group): Add --ungroup command to remove a
1315         particular group.
1316         (add_group): When adding a group with the same name as an already
1317         existing group, merge the two groups.
1318         (list_config): Show an error message when listing a config item
1319         that doesn't exist.
1320         (main): Replace -z0 trick for no compression.
1321
1322         * packet.h, keyedit.c (show_key_with_all_names_colon), keylist.c
1323         (list_keyblock_colon), mainproc.c (list_node, proc_tree): Minor
1324         cleanup to remove local_id, which is no longer used.
1325
1326 2004-01-27  David Shaw  <dshaw@jabberwocky.com>
1327
1328         * getkey.c: Set MAX_PK_CACHE_ENTRIES and MAX_UID_CACHE_ENTRIES to
1329         PK_UID_CACHE_SIZE (set in ./configure).
1330
1331         * getkey.c (get_pubkey): When reading key data into the cache,
1332         properly handle keys that are partially (pk, no UIDs) cached
1333         already.  This is Debian bug #176425 and #229549.
1334
1335         * compress.c (init_compress, push_compress_filter2): Do the right
1336         thing (i.e. nothing) with compress algo 0.
1337
1338         * main.h, decrypt.c (decrypt_messages): Accept filenames to
1339         decrypt on stdin.  This is bug #253.
1340
1341 2004-01-23  David Shaw  <dshaw@jabberwocky.com>
1342
1343         * mainproc.c (list_node): Show sigs with --verbose.
1344
1345         * options.h, g10.c (set_screen_dimensions): New function to look
1346         at COLUMNS and LINES.
1347
1348         * keyserver.c (parse_keyrec, keyserver_search_prompt), keyedit.c
1349         (print_and_check_one_sig): Use new screen dimension variables.
1350
1351 2004-01-21  David Shaw  <dshaw@jabberwocky.com>
1352
1353         * g10.c (list_config): New function to dump config options to
1354         stdout.  Currently requires --with-colons.
1355         (collapse_args): New function to turn argc/argv into a single
1356         string.
1357         (main): Use it here to pass list_config() more than one argument
1358         as a single string.
1359         (print_algo_numbers): Helper to print algorithm number for
1360         --list-config "pubkey", "cipher", "hash"/"digest", and "compress"
1361         config options.
1362
1363         * packet.h, getkey.c (merge_selfsigs, merge_selfsigs_main),
1364         pkclist.c (check_signatures_trust): Indicate who has revoked a key
1365         (the owner or a designated revoker).  If a key was revoked by
1366         both, prefer the owner.  If a subkey is already revoked by the
1367         owner, don't allow a designated revokation of the whole key to
1368         override this.  We're still revoked either way, of course.
1369         
1370         * keyedit.c (print_and_check_one_sig, keyedit_menu): Use the
1371         COLUMNS environment variable (if any) to hint how wide the
1372         terminal is.  Disabled on _WIN32.  Suggested by Janusz
1373         A. Urbanowicz.
1374
1375 2004-01-20  David Shaw  <dshaw@jabberwocky.com>
1376
1377         * keylist.c (set_attrib_fd): Open attribute fd in binary
1378         mode. This isn't meaningful on POSIX systems, but the Mingw builds
1379         aren't exactly POSIX.
1380
1381         * trustdb.c (reset_trust_records): New, faster, implementation
1382         that doesn't involve a keyring scan.
1383         (clear_validity): Removed.
1384
1385         * g10.c (main), keydb.h, keydb.c (keydb_rebuild_caches),
1386         keyring.h, keyring.c (keyring_rebuild_cache): Add "noisy" flag so
1387         cache rebuilds can remain noisy when called for itself, and quiet
1388         when called as part of the trustdb rebuild.
1389
1390         * trustdb.c (validate_keys): Rebuild the sig caches before
1391         building the trustdb.  Note that this is going to require some
1392         architectual re-thinking, as it is agonizingly slow.
1393
1394 2004-01-19  David Shaw  <dshaw@jabberwocky.com>
1395
1396         * sig-check.c (check_key_signature2): Comments.
1397
1398         * keyring.c (keyring_rebuild_cache): Clear sig cache for any
1399         signatures that we can no longer process (say, if the user removed
1400         support for a necessary pubkey or digest algorithm).
1401
1402 2004-01-16  David Shaw  <dshaw@jabberwocky.com>
1403
1404         * misc.c (print_cipher_algo_note): May as well call Rijndael AES
1405         at this point.
1406
1407         * keygen.c (do_create), misc.c (openpgp_pk_algo_usage): Remove the
1408         last bits of Elgamal type 20 support.
1409
1410 2004-01-03  Stefan Bellon  <sbellon@sbellon.de>
1411
1412         * compress.c [__riscos__]: Only use RISC OS' own ZLib module if
1413         configured to use it.
1414
1415 2003-12-30  David Shaw  <dshaw@jabberwocky.com>
1416
1417         * options.h, g10.c (main), import.c (parse_import_options,
1418         import_one, import_secret_one), keyserver.c (keyserver_refresh):
1419         Change --merge-only to --import-option merge-only.  Deprecate
1420         --merge-only.
1421
1422 2003-12-29  David Shaw  <dshaw@jabberwocky.com>
1423
1424         * misc.c (pull_in_libs): Dead code.  Removed.
1425
1426         * sig-check.c (check_revocation_keys): Comments.
1427
1428         * getkey.c (merge_selfsigs_main): Don't bother to check designated
1429         revoker sigs if the key is already revoked.
1430
1431         * packet.h, getkey.c (merge_selfsigs_main): New "maybe_revoked"
1432         flag on PKs.  It is set when there is a revocation signature from
1433         a valid revocation key, but the revocation key is not present to
1434         verify the signature.
1435
1436         * pkclist.c (check_signatures_trust): Use it here to give a
1437         warning when showing key trust.
1438
1439         * compress-bz2.c: Include stdio.h.  Solaris 9 has a very old bzip2
1440         library and we can at least guarantee that it won't fail because
1441         of the lack of stdio.h.
1442
1443         * tdbio.c: Fixed format string bugs related to the use of DB_NAME.
1444         Reported by Florian Weimer.
1445
1446 2003-12-28  David Shaw  <dshaw@jabberwocky.com>
1447
1448         * options.h, g10.c (main), keyserver.c (keyserver_opts,
1449         parse_keyserver_uri): honor-http-proxy is no longer an option
1450         since we can do the same thing with http-proxy with no arguments.
1451         Also remove broken-http-proxy since it can be better handled in
1452         the HTTP helper.
1453
1454         * keyserver.c (argsep): New variation on strsep that knows about
1455         optional arguments.
1456         (parse_keyserver_options): Use it here for optional arguments.
1457
1458 2003-12-28  Stefan Bellon  <sbellon@sbellon.de>
1459
1460         * plaintext.c (handle_plaintext) [__riscos__]: Don't mangle
1461         filename if the user specified it.
1462
1463         * g10.c, gpgv.c [__riscos__]: Removal of unnecessary #ifdef
1464         __riscos__ sections.
1465
1466 2003-12-27  David Shaw  <dshaw@jabberwocky.com>
1467
1468         * keyserver.c (strip_leading_space, get_arg): New.
1469         (parse_keyserver_options): Use them here to allow arguments to
1470         keyserver-options.  Since none of our options need arguments yet,
1471         just pass them through whole to the keyserver helper.
1472
1473         * main.h, misc.c (parse_options): Add a "noisy" flag to enable and
1474         disable the messages about which option didn't match or matched
1475         ambiguously.  Change all callers (g10.c, keyserver.c).
1476
1477         * main.h, import.c (import_options), export.c (export_options):
1478         Pass the noisy flag through.
1479
1480 2003-12-17  David Shaw  <dshaw@jabberwocky.com>
1481
1482         * build-packet.c (write_fake_data, do_secret_key), seckey-cert.c
1483         (do_check): Use an unsigned length for mpi_get_opaque.
1484
1485         * options.h: It's impolite to assign -1 to an unsigned
1486         opt.force_ownertrust.
1487
1488         * sig-check.c (cmp_help, do_check), sign.c (do_sign): Remove old
1489         unused code.
1490
1491         * keyid.c (keyid_from_sk): Make sure lowbits is initialized.
1492
1493 2003-12-12  David Shaw  <dshaw@jabberwocky.com>
1494
1495         * sig-check.c (do_check): Move the signing algo and hash checks
1496         from here...
1497         (signature_check2): ... to here.
1498         (check_key_signature2): ... and here.  This is a minor
1499         optimization to avoid fetching a key (which can be expensive,
1500         especially if it is not self-signed, and there are many key
1501         signatures on it which need to be checked for ultimate trust) if
1502         the signature would have failed anyway because of algorithm or
1503         hash problems.
1504
1505 2003-12-10  David Shaw  <dshaw@jabberwocky.com>
1506
1507         * packet.h, build-packet.c (hash_public_key): Remove function ...
1508
1509         * keydb.h, keyid.c (hash_public_key, do_fingerprint_md): ... and
1510         make a new one here that shares code with the fingerprint
1511         calculations.  This removes some duplicated functionality, and is
1512         also around 14% faster.  (Every bit helps).
1513
1514         * import.c (import_one): No longer need the Elgamal import
1515         warning.
1516
1517         * getkey.c (get_pubkey_fast): This one is sort of obscure.
1518         get_pubkey_fast returns the primary key when requesting a subkey,
1519         so if a user has a key signed by a subkey (we don't do this, but
1520         used to), AND that key is not self-signed, AND the algorithm of
1521         the subkey in question is not present in GnuPG, AND the algorithm
1522         of the primary key that owns the subkey in question is present in
1523         GnuPG, then we will try and verify the subkey signature using the
1524         primary key algorithm and hit a BUG().  The fix is to not return a
1525         hit if the keyid is not the primary.  All other users of
1526         get_pubkey_fast already expect a primary only.
1527
1528 2003-12-09  David Shaw  <dshaw@jabberwocky.com>
1529
1530         * keyid.c (do_fingerprint_md): Remove the rules to hash the old v3
1531         Elgamal keys.  They are no longer needed.
1532
1533         * keyid.c (keyid_from_sk, keyid_from_pk, fingerprint_from_pk,
1534         fingerprint_from_sk): Enforce the v3-is-only-RSA rule.  Anything
1535         that isn't RSA gets a zero keyid and fingerprint.
1536
1537         * keyid.c (do_fingerprint_md): Properly handle hashing of keys
1538         that we don't know the structure of by using the opaque MPI.
1539         (do_fingerprint_md_sk): We cannot calculate the fingerprint from a
1540         secret key unless we know the structure (since we can't leave off
1541         the secret key parts), so fail early.....
1542         (keyid_from_sk, fingerprint_from_sk): .... and return all zeroes.
1543
1544 2003-12-03  David Shaw  <dshaw@jabberwocky.com>
1545
1546         * g10.c (strusage, main): Show development version warning in
1547         --version output.
1548         (main): Set --bzip2-compress-level to the default value at
1549         startup.  Remove --emulate-checksum-bug noop.
1550
1551         * options.h, g10.c (main), main.h, seskey.c (do_encode_md,
1552         encode_md_value), sig-check.c (do_check), sign.c (do_sign): Remove
1553         --emulate-md-encode-bug as it only applied to Elgamal signatures,
1554         which are going away.
1555
1556 2003-11-30  David Shaw  <dshaw@jabberwocky.com>
1557
1558         * mainproc.c (proc_symkey_enc, proc_encrypted): Add ability to use
1559         --override-session-key on --symmetric messages (new-style or
1560         old-style).
1561         (proc_pubkey_enc): Move code to show session key from here to
1562         proc_encrypted() so it can work with any type of message.
1563         Suggested by Michael Young.
1564
1565 2003-11-29  David Shaw  <dshaw@jabberwocky.com>
1566
1567         * trustdb.c (validate_keys): Reset the trustdb before checking if
1568         we have any ultimately trusted keys.  This ensures that if we lose
1569         all our ultimately trusted keys, we don't leave behind the old
1570         validity calculations.  Noted by Peter Palfrader.
1571
1572         * revoke.c (gen_desig_revoke): Specify in the comment when a
1573         designated revocation is generated.
1574
1575         * getkey.c (merge_selfsigs_main, merge_selfsigs_subkey,
1576         get_seckey_byname2): Remove Elgamal check since we are removing
1577         type 20 keys altogether.
1578
1579 2003-11-27  David Shaw  <dshaw@jabberwocky.com>
1580
1581         * pkclist.c (build_pk_list): Do not allow an empty PK list in
1582         interactive mode.
1583
1584         * keygen.c (ask_algo): Remove ability to generate Elgamal
1585         sign+encrypt keys.
1586
1587         * getkey.c (merge_selfsigs_main, merge_selfsigs_subkey,
1588         get_seckey_byname2): Disallow use of sign+encrypt Elgamal keys.
1589
1590 2003-11-20  David Shaw  <dshaw@jabberwocky.com>
1591
1592         * seskey.c (do_encode_md): Comment about earlier (pre-PGP 2.3)
1593         encodings.
1594
1595         * misc.c (compress_algo_to_string): Translate "Uncompressed".
1596         Requested by Tommi Vainikainen.
1597         (string_to_compress_algo): Include multi-string for
1598         "uncompressed|none".
1599
1600 2003-11-17  David Shaw  <dshaw@jabberwocky.com>
1601
1602         * options.h, g10.c (main), compress-bz2.c (init_uncompress): Add
1603         --bz2-compress-lowmem to set bzlib "small" flag for low memory
1604         (but slow) decompression.
1605
1606 2003-11-15  David Shaw  <dshaw@jabberwocky.com>
1607
1608         * compress.c (init_compress): Remove compress level 10 trick,
1609         since it is no longer needed.
1610
1611         * g10.c: Fix typoed option name.
1612
1613         * compress-bz2.c (init_compress): Compression level 0 is not
1614         meaningful for bzip2.
1615
1616         * options.h, g10.c (main), compress.c (init_compress),
1617         compress-bz2.c (init_compress): Add --compress-level and
1618         --bzip2-compress-level.  -z sets them both.  Change various
1619         callers.
1620
1621         * encode.c (encode_simple), sign.c (sign_symencrypt_file):
1622         Properly use default_compress_algo (--compress-algo, followed by
1623         the highest --personal-compress-preference, followed by ZIP) to
1624         get the algorithm.
1625
1626 2003-11-14  David Shaw  <dshaw@jabberwocky.com>
1627
1628         * options.h, trustdb.c (trust_model_string, init_trustdb): Add
1629         support for "external" trust model, where the user can provide a
1630         pregenerated trustdb.
1631
1632         * keyedit.c (keyedit_menu): Do not allow editing ownertrust with
1633         an external trust model trustdb.
1634
1635 2003-11-13  David Shaw  <dshaw@jabberwocky.com>
1636
1637         * options.h, g10.c, keyedit.c, keylist.c, mainproc.c: Clarify the
1638         plurarility (or not) of various list and verify options.
1639
1640 2003-11-12  David Shaw  <dshaw@jabberwocky.com>
1641
1642         * g10.c (main): Add --symmetric --sign --encrypt.
1643
1644         * main.h, encode.c (setup_symkey): New.  Prompt for a passphrase
1645         and create a DEK for symmetric encryption.
1646         (write_symkey_enc): New.  Write out symmetrically encrypted
1647         session keys.
1648         (encode_crypt, encrypt_filter): Use them here here when creating a
1649         message that can be decrypted with a passphrase or a pk.
1650
1651         * sign.c (sign_file): Call setup_symkey if we are doing a
1652         --symmetric --sign --encrypt.
1653
1654 2003-11-09  David Shaw  <dshaw@jabberwocky.com>
1655
1656         * mainproc.c (proc_symkey_enc): Don't show algorithm information
1657         when --quiet is set.  Suggested by Duncan Harris.  Also don't fail
1658         with BUG() when processing a --symmetric message with a cipher we
1659         don't have.
1660
1661         * g10.c: Alias --personal-xxx-prefs to --personal-xxx-preferences.
1662
1663         * pkclist.c (build_pk_list): When adding recipients interactively,
1664         allow the user to stop at any point.
1665
1666 2003-10-31  David Shaw  <dshaw@jabberwocky.com>
1667
1668         * trustdb.h, trustdb.c (register_trusted_keyid): New.  Adds a
1669         keyid to the list of ultimately trusted keys.
1670
1671         * keygen.c (do_generate_keypair): Use it here so that the ultimate
1672         ownertrust happens before the trustdb (might be) rebuilt.  Also
1673         fix an error where the newly generated pk is thought to be a
1674         subkey by the trustdb.
1675
1676         * g10.c (main): Fix --export-all do actually do something
1677         different than --export.
1678
1679         * pkclist.c (build_pk_list): Show all recipients rather than
1680         showing each recipient as they are added.
1681
1682         * mainproc.c (proc_symkey_enc, proc_encrypted): Keep a count of
1683         the number of passphrases that can decrypt a symmetric or mixed
1684         symmetric/pk message and include it in the list of keys shown to
1685         the user.
1686
1687 2003-10-30  David Shaw  <dshaw@jabberwocky.com>
1688
1689         * misc.c (compress_algo_to_string, string_to_compress_algo,
1690         check_compress_algo): Add bzip2.
1691
1692         * compress.c (compress_filter): Make static to help force the use
1693         of push_compress_filter.  Remove default algorithm setting since
1694         that is done in push_compress_filter now.
1695
1696         * main.h: Use named algorithm.
1697
1698         * filter.h, compress.c (push_compress_filter,
1699         push_compress_filter2): New.  Figure out which is the appropriate
1700         compression filter to use, and push it into place.
1701
1702         * compress.c (handle_compressed), encode.c (encode_simple,
1703         encode_crypt), sign.c (sign_file, sign_symencrypt_file), import.c
1704         (read_block), export.c (do_export): Use push_compress_filter
1705         instead of pushing the compression filter ourselves.
1706
1707         * compress-bz2.c: New.  Bzlib versions of the compression filter
1708         routines.
1709
1710         * Makefile.am: Include compress-bz2.c if bz2lib is available.
1711
1712 2003-10-30  Werner Koch  <wk@gnupg.org>
1713
1714         * apdu.c (close_ct_reader, close_pcsc_reader): Implemented.
1715         (get_ccid_error_string): New.  Not very useful messages, though.
1716
1717 2003-10-29  Werner Koch  <wk@gnupg.org>
1718
1719         * cardglue.c (open_card): Ask for card insertion.
1720         (check_card_serialno): New.
1721         (agent_scd_pksign, agent_scd_pkdecrypt): Use it here.
1722         * cardglue.c (open_card): Issue insertion status message.
1723         * status.h, status.c (STATUS_CARDCTRL): New.
1724
1725         * status.c (cpr_get_answer_okay_cancel): New.
1726
1727 2003-10-28  Werner Koch  <wk@gnupg.org>
1728
1729         * keylist.c (list_keyblock_print): Denote secrets keys stored on a
1730         card with an '>'. Print the '#' also for subkeys.
1731         (list_keyblock_colon): Introduce new field 15 for sec/ssb to print
1732         the serial number.
1733
1734 2003-10-26  David Shaw  <dshaw@jabberwocky.com>
1735
1736         * g10.c (main): Enhance the version-specific config file code to
1737         try for more specific matches before giving up (e.g. 1.3.3-cvs,
1738         1.3.3, 1.3, 1).
1739
1740 2003-10-25  David Shaw  <dshaw@jabberwocky.com>
1741
1742         * g10.c (main): Add --symmetric --encrypt command.  This generates
1743         a message that can be decrypted via a passphrase or public key
1744         system.
1745
1746         * main.h, encode.c (encode_seskey): Allow passing in an
1747         already-created session key dek.
1748         (encode_simple): Use the actual symmetric cipher when encrypting a
1749         session key for a symmetric message.
1750         (encode_crypt): Add a flag to trigger a hybrid mode that can be
1751         decrypted via a passphrase or a pk.  Change all callers.
1752
1753         * mainproc.c (symkey_decrypt_sesskey): There is no way to tell the
1754         difference here between a bad passphrase and a cipher algorithm
1755         that we don't have, so use a error message that makes that clear.
1756         Use the actual list of ciphers when checking whether a cipher is
1757         invalid.  Return error if the decrypted cipher algorithm is
1758         invalid.
1759         (proc_symkey_enc): In a mixed passphrase/pk message, if a valid
1760         dek already exists from decrypting via pk, do not try to process
1761         the passphrase.
1762         (proc_symkey_enc): Indicate when we're decrypting a session key as
1763         opposed to decrypting data.  If a passphrase is invalid, discard
1764         the dek so we'll keep trying.
1765
1766 2003-10-25  Werner Koch  <wk@gnupg.org>
1767
1768         * ccid-driver.c (ccid_open_reader): Return an error if no USB
1769         devices are found.
1770
1771         * Makefile.am: Replaced INTLLIBS by LIBINTL.
1772
1773         * g10.c (main) [ENABLE_CARD_SUPPORT]: Add a default for
1774         --pcsc-driver.
1775
1776         * cardglue.c (learn_status_cb): Fixed faulty use of !space.
1777
1778 2003-10-24  Werner Koch  <wk@gnupg.org>
1779
1780         * apdu.c (apdu_open_reader): Hacks for PC/SC under Windows.
1781
1782 2003-10-21  Werner Koch  <wk@gnupg.org>
1783
1784         * passphrase.c (ask_passphrase): Add optional promptid arg.
1785         Changed all callers.
1786         * cardglue.c (pin_cb): Use it here, so the machine interface can
1787         tell whether the Admin PIN is requested.
1788
1789         * cardglue.c (agent_scd_checkpin): New.
1790
1791         * misc.c (openpgp_pk_algo_usage): Added AUTH usage.
1792
1793         * app-openpgp.c (check_against_given_fingerprint): New. Factored
1794         out that code elsewhere.
1795         (do_check_pin): New.
1796         * card-util.c (card_edit): New command "passwd".  Add logic to
1797         check the PIN in advance.
1798         (card_status): Add new args to return the serial number.  Changed
1799         all callers.
1800
1801 2003-10-14  David Shaw  <dshaw@jabberwocky.com>
1802
1803         * import.c (import_one): Show the keyid when giving the Elgamal
1804         slow import warning.
1805
1806         * g10.c (main): Older versions used --comment "" to indicate no
1807         comment.  Don't add an empty comment.
1808
1809 2003-10-13  David Shaw  <dshaw@jabberwocky.com>
1810
1811         * keyedit.c (show_key_with_all_names): Ownertrust is only
1812         meaningful for the PGP or classic trust models.  Both validity and
1813         ownertrust are not meaningful for the always trust model.
1814
1815 2003-10-11  Werner Koch  <wk@gnupg.org>
1816
1817         * keygen.c: Always enable the gen_card_key prototype.
1818
1819 2003-10-10  Werner Koch  <wk@gnupg.org>
1820
1821         * cardglue.c (card_close): New.
1822         (agent_scd_change_pin): Implemented.
1823
1824         * ccid-driver.c (ccid_close_reader): New.
1825         * apdu.c (close_ccid_reader, close_ct_reader, close_csc_reader)
1826         (close_osc_reader, apdu_close_reader): New.  Not all are properly
1827         implemented yet.
1828         * g10.c (g10_exit): Use close_card.
1829
1830 2003-10-09  David Shaw  <dshaw@jabberwocky.com>
1831
1832         * g10.c (main): Give a deprecated option warning for
1833         --show-keyring, --show-photos, --show-policy-url, --show-notation,
1834         and their respective no- forms.
1835
1836         * options.skel: Remove show-photos and replace with
1837         list/verify-options show-photos.  Remove no-mangle-dos-filenames.
1838
1839         * misc.c (parse_options): Allow for incomplete (but unambiguous)
1840         options.
1841
1842 2003-10-09  Werner Koch  <wk@gnupg.org>
1843
1844         * ccid-driver.c (ccid_transceive): Add T=1 chaining for sending.
1845
1846         * sign.c (do_sign) [!ENABLE_CARD_SUPPORT]: Return an error for
1847         card keys.
1848
1849         * cardglue.c (agent_scd_pkdecrypt): Implemented.
1850         * pubkey-enc.c (get_it) [ENABLE_CARD_SUPPORT]: Divert decryption
1851         to card
1852
1853 2003-10-08  Werner Koch  <wk@gnupg.org>
1854
1855         * cardglue.c (pin_cb): Detect whether an admin or regular PIN is
1856         requested.
1857         (genkey_status_cb): New.
1858         (agent_scd_genkey): Implemented.
1859
1860         * keygen.c (generate_keypair): New arg CARD_SERIALNO and prepare
1861         parameters for on card key generation. Changed all callers.
1862         (do_generate_keypair): Add new arg card and merged casrd specific
1863         changes from 1.9.
1864         (proc_parameter_file): New arg card, apss it down to
1865         do_generate_keypair and changed all callers.
1866         (gen_card_key): New.
1867
1868         * g10.c: Include cardclue.h.
1869         (main): s/app_set_default_reader_port/card_set_reader_port/.
1870         * cardglue.c (card_set_reader_port): New to address include file
1871         issues.
1872
1873 2003-10-02  Werner Koch  <wk@gnupg.org>
1874
1875         * cardglue.c (learn_status_cb): Release values before assignment
1876         so that it can be used by getattr to update the structure.
1877         (agent_scd_getattr): New.
1878
1879         * keylist.c (print_pubkey_info): Add FP arg for optional printing
1880         to a stream.  Changed all callers.
1881
1882 2003-10-01  Werner Koch  <wk@gnupg.org>
1883
1884         * app-common.h, app-openpgp.c, iso7816.c, iso7816.h, apdu.c
1885         * apdu.h, ccid-driver.c, ccid-driver.h, card-util.c: Updated
1886         from current GnuPG 1.9. Changes over there are:
1887         * card-util.c: Tweaked to use this source also under 1.3. 
1888         (card_edit): New command "forcesig".
1889         * card-util.c (print_name, print_isoname): Use 0 and not LF fro
1890         the max_n arg of tty_print_utf8_string2.
1891         * card-util.c (change_pin): Simplified.  We now have only a PIN
1892         and an Admin PIN.
1893         * ccid-driver.c: Detect GnuPG 1.3 and include appropriate files.
1894         * apdu.c: Ditto.
1895         * app-openpgp.c: Ditto.
1896         * iso7816.c: Ditto.
1897         (generate_keypair): Renamed to ..
1898         (do_generate_keypair): .. this.
1899         * app-common.h [GNUPG_MAJOR_VERSION]: New.
1900         * iso7816.h [GNUPG_MAJOR_VERSION]: Include cardglue.h
1901         * app-openpgp.c (do_change_pin): Make sure CVH1 and CHV2 are
1902         always synced.
1903         (verify_chv2, verify_chv3): New. Factored out common code.
1904         (do_setattr, do_sign, do_auth, do_decipher): Change the names of
1905         the prompts to match that we have only 2 different PINs.
1906         (app_select_openpgp): Check whether the card enforced CHV1.
1907         (convert_sig_counter_value): New. Factor out code from
1908         get_sig_counter.
1909
1910         * Makefile.am (card_support_source): Depend on new AM conditional
1911         to get the ifdef ENABLE_CARD_SUPPORT off the way from source
1912         copied files.
1913         (update-source-from-gnupg-2): Maintainer helper.
1914         
1915 2003-10-01  David Shaw  <dshaw@jabberwocky.com>
1916
1917         * g10.c (main): Add --no-groups to zero --group list.
1918
1919         * encode.c (encode_simple): Allow for 32 bytes (256 bits) of
1920         symmetrically encrypted session key.  Use --s2k-cipher-algo to
1921         choose cipher, rather than the default cipher.
1922
1923         * parse-packet.c (parse_subkeyenc): Give a warning if an
1924         symmetrically encrypted session key is seen without salt.  Show in
1925         --list-packets if a symetrically encrypted session key is present.
1926
1927         * pubkey-enc.c (get_it): Always show cipher-not-in-prefs warning
1928         unless --quiet is set.  Use text name of cipher in warning.
1929
1930 2003-09-30  David Shaw  <dshaw@jabberwocky.com>
1931
1932         * options.h, g10.c (main), mainproc.c (check_sig_and_print): Add
1933         --verify-option show-unusable-uids.
1934
1935         * gpgv.c (check_trustdb_stale): Stub.
1936
1937         * trustdb.c (get_validity): Move the up-to-date check to
1938         check_trustdb_stale (new), so that it can be called before
1939         validity is checked.
1940         
1941         * keylist.c (list_keyblock_print): Disable the overall key
1942         validity display until it can be thought about more.  Use
1943         check_trustdb_stale here to avoid putting the check warning in the
1944         middle of a listed key.
1945
1946         * trustdb.c (init_trustdb): Only verify_own_keys() for those trust
1947         models that it applies to (i.e. classic and OpenPGP).
1948
1949 2003-09-29  Werner Koch  <wk@gnupg.org>
1950
1951         * keygen.c (do_add_key_flags, parse_parameter_usage): Add support
1952         the proposed AUTH key flag.
1953         * getkey.c (fixup_uidnode, merge_selfsigs_main) 
1954         (merge_selfsigs_subkey, premerge_public_with_secret): Ditto.
1955         * keylist.c (print_capabilities): Ditto.
1956
1957         * parse-packet.c (parse_key): Allow to parse the divert-to-card
1958         S2K mode.
1959         * build-packet.c (do_secret_key): Handle divert-to-card S2K
1960         * seckey-cert.c (is_secret_key_protected): Ditto.
1961         (check_secret_key): Ditto.
1962
1963         * keygen.c (do_ask_passphrase): Renamed from ask_passphrase.
1964         * passphrase.c (ask_passphrase): New.
1965
1966 2003-09-28  Werner Koch  <wk@gnupg.org>
1967
1968         * g10.c (main): New commands --card-edit, --card-status and
1969         --change-pin.  New options --ctapi-driver, --pcsc-driver and
1970         --disable-ccid
1971         * options.h (DBG_CARD_IO): New.
1972         * cardglue.c, cardclue.h: Enhanced.
1973         * card-util.c: New. Taken from current the gnupg 1.9 branch.
1974         * app-common.h, app-openpgp.c, iso7816.c, iso7816.h, apdu.c
1975         * apdu.h, ccid-driver.c, ccid-driver.h: New.  Takem from the current
1976         gnupg 1.9 branch withy minor changes to include directives.
1977         * Makefile.am: Added these files.
1978         
1979 2003-09-27  Werner Koch  <wk@gnupg.org>
1980
1981         * sign.c (do_sign) [ENABLE_CARD_SUPPORT]: Divert to card.
1982         * cardglue.c, cardglue.h: New.
1983         * Makefile.am (gpg_LDADD): Added.
1984         (card_support_sources): New.
1985         
1986 2003-09-25  David Shaw  <dshaw@jabberwocky.com>
1987
1988         * options.h, g10.c (main), keylist.c (list_keyblock_print): Add
1989         "show-unusable-uids" list-option to show revoked and/or expired
1990         user IDs.
1991
1992 2003-09-24  David Shaw  <dshaw@jabberwocky.com>
1993
1994         * keyedit.c (show_key_with_all_names): Show names a little neater
1995         by putting the [revoked] or [expired] in the space used for the
1996         [validity].  There is also no point in showing "[unknown]
1997         [revoked]".
1998
1999 2003-09-23  David Shaw  <dshaw@jabberwocky.com>
2000
2001         * sign.c (mk_notation_policy_etc): Capitalize "URL".
2002
2003         * trustdb.c (validate_keys): Give a little more information while
2004         rebuilding trustdb.
2005
2006         * pkclist.c (do_edit_ownertrust): Clarify "don't know".
2007
2008         * g10.c (main): Default to --no-mangle-dos-filenames.
2009
2010         * keydb.h, keyring.c (keyring_search), trustdb.c (search_skipfnc):
2011         Expand the skipfnc to include a pointer to the user ID that
2012         matched.
2013
2014         * getkey.c (skip_disabled): Rename to skip_unusable, and add
2015         checks for expired or revoked user IDs.
2016
2017 2003-09-22  David Shaw  <dshaw@jabberwocky.com>
2018
2019         * g10.c (main): Deprecate --default-comment in favor of
2020         --no-comments.
2021
2022         * options.h, g10.c (main), armor.c (armor_filter): Allow using
2023         --comment multiple times to get multiple Comment: header lines.
2024         --no-comments resets list.
2025
2026 2003-09-11  David Shaw  <dshaw@jabberwocky.com>
2027
2028         * g10.c (main): Trim --help to commonly used options.  Remove -f.
2029
2030 2003-09-08  David Shaw  <dshaw@jabberwocky.com>
2031
2032         * g10.c (main): Error out if --multifile is used with the commands
2033         that don't support it yet (--sign, --clearsign, --detach-sign,
2034         --symmetric, and --store).
2035
2036         * g10.c (main): Add --multifile as an alias to turn --encrypt into
2037         --encrypt-files (plus --verify-files, --decrypt-files).
2038
2039         * encode.c (use_mdc), g10.c (main): Use RFC1991 and RFC2440
2040         directly to check for MDC usability.  Do not set the force_mdc or
2041         disable_mdc flags since there is no point any longer.
2042
2043 2003-09-04  David Shaw  <dshaw@jabberwocky.com>
2044
2045         * armor.c (parse_hash_header, armor_filter), g10.c (print_hex,
2046         print_mds), pkclist.c (algo_available): Drop TIGER/192 support.
2047
2048 2003-09-03  David Shaw  <dshaw@jabberwocky.com>
2049
2050         * keyedit.c (show_key_with_all_names): Fix assertion failure when
2051         using toggle to see a secret key.  Reported by Maxim Britov.
2052
2053 2003-08-31  David Shaw  <dshaw@jabberwocky.com>
2054
2055         * g10.c (add_keyserver_url), keyedit.c (keyedit_menu), sign.c
2056         (mk_notation_policy_etc): Clarify a few strings.  It's a
2057         "preferred keyserver URL".
2058
2059         * g10.c (main): Use "keyserver-url" instead of
2060         "preferred-keyserver" for the sake of short and simple commands.
2061
2062 2003-08-30  David Shaw  <dshaw@jabberwocky.com>
2063
2064         * main.h, keygen.c (keygen_add_keyserver_url): Signature callback
2065         for adding a keyserver URL.
2066
2067         * keyedit.c (keyedit_menu, menu_set_keyserver_url): New command to
2068         set preferred keyserver to specified (or all) user IDs.
2069
2070         * build-packet.c (build_sig_subpkt): Set preferred keyserver flag
2071         while building a preferred keyserver subpacket.
2072
2073         * keylist.c (show_policy_url, show_keyserver_url): URLs might be
2074         UTF8.
2075
2076         * keyedit.c (menu_addrevoker): Fix leaking a few bytes.
2077
2078 2003-08-29  David Shaw  <dshaw@jabberwocky.com>
2079
2080         * keyedit.c (show_key_with_all_names): Use list-option
2081         show-long-keyid in main --edit-key display.
2082
2083         * keyedit.c (print_and_check_one_sig): Use list-option
2084         show-long-keyid in --edit-key "check" function.
2085
2086 2003-08-28  David Shaw  <dshaw@jabberwocky.com>
2087
2088         * passphrase.c (agent_send_all_options): Make use of $GPG_TTY.
2089
2090         * g10.c (main): Disable use-agent if passphrase-fd is given
2091         later. Suggested by Kurt Garloff.
2092
2093         * exec.c, g10.c, gpgv.c, passphrase.c, photoid.c:
2094         s/__MINGW32__/_WIN32/ to help building on native Windows
2095         compilers.  Requested by Brian Gladman.  From Werner on stable
2096         branch.
2097
2098 2003-08-25  David Shaw  <dshaw@jabberwocky.com>
2099
2100         * options.h, g10.c (main): Add list-option
2101         list-preferred-keyserver.
2102
2103         * keyedit.c (change_passphrase): When responding 'no' to the blank
2104         passphrase question, re-prompt for a new passphrase.  This is bug
2105         #202.
2106
2107         * mainproc.c (check_sig_and_print): Use two different preferred
2108         keyserver displays - one if the key is not present (to tell the
2109         user where to get the key), the other if it is present (to tell
2110         the user where the key can be refreshed).
2111
2112         * packet.h, parse-packet.c (parse_signature): Set flag if a
2113         preferred keyserver is present.
2114
2115         * keylist.c (list_keyblock_print): Show keyserver url in listings
2116         with list-option show-keyserver-url.
2117
2118 2003-08-24  David Shaw  <dshaw@jabberwocky.com>
2119
2120         * Makefile.am: Use NETLIBS instead of EGDLIBS.
2121
2122         * mainproc.c (check_sig_and_print): Get the uid validity before
2123         printing any sig results to avoid munging the output with trustdb
2124         warnings.
2125
2126         * g10.c (main): Don't include --show-keyring in --help as it is
2127         deprecated.
2128
2129 2003-08-21  David Shaw  <dshaw@jabberwocky.com>
2130
2131         * gpgv.c: Remove extra semicolon (typo).
2132
2133         * options.skel: Note that keyserver.pgp.com isn't synchronized,
2134         and explain the roundrobin a bit better.
2135
2136         * sig-check.c (check_key_signature2), import.c (import_one,
2137         import_revoke_cert, chk_self_sigs, delete_inv_parts,
2138         collapse_uids, merge_blocks): Make much quieter during import of
2139         slightly munged, but recoverable, keys. Use log_error for
2140         unrecoverable import failures.
2141
2142         * keyring.c (keyring_rebuild_cache): Comment.
2143
2144         * sign.c (mk_notation_and_policy): Making a v3 signature with
2145         notations or policy urls is an error, not an info (i.e. increment
2146         the errorcount). Don't print the notation or policy url to stdout
2147         since it can be mixed into the output stream when piping and munge
2148         the stream.
2149
2150 2003-08-12  David Shaw  <dshaw@jabberwocky.com>
2151
2152         * packet.h, sig-check.c (signature_check2, do_check,
2153         do_check_messages): Provide a signing-key-is-revoked flag.  Change
2154         all callers.
2155
2156         * status.h, status.c (get_status_string): New REVKEYSIG status tag
2157         for a good signature from a revoked key.
2158
2159         * mainproc.c (do_check_sig, check_sig_and_print): Use it here.
2160
2161         * import.c (import_revoke_cert, merge_blocks, merge_sigs): Compare
2162         actual signatures on import rather than using keyid or class
2163         matching.  This does not change actual behavior with a key, but
2164         does mean that all sigs are imported whether they will be used or
2165         not.
2166
2167         * parse-packet.c (parse_signature): Don't give "signature packet
2168         without xxxx" warnings for experimental pk algorithms.  An
2169         experimental algorithm may not have a notion of (for example) a
2170         keyid (i.e. PGP's x.509 stuff).
2171
2172 2003-08-02  David Shaw  <dshaw@jabberwocky.com>
2173
2174         * options.h, g10.c (main), keylist.c (list_keyblock_print),
2175         keyedit.c (print_and_check_one_sig): New "show-sig-expire"
2176         list-option to show signature expiration dates (if any).
2177
2178 2003-07-24  David Shaw  <dshaw@jabberwocky.com>
2179
2180         * options.h, g10.c (main, add_keyserver_url): Add
2181         --sig-preferred-keyserver to implant a "where to get my key"
2182         subpacket into a signature.
2183
2184         * sign.c (mk_notation_and_policy): Rename to
2185         mk_notation_policy_etc and add preferred keyserver support for
2186         signatures.
2187
2188 2003-07-21  David Shaw  <dshaw@jabberwocky.com>
2189
2190         * keygen.c (do_add_key_flags): Don't set the certify flag for
2191         subkeys.
2192         (ask_algo): Provide key flags for DSA, Elgamal_e, and Elgamal
2193         subkeys.
2194         (generate_keypair): Provide key flags for the default DSA/Elgamal
2195         keys.
2196
2197         * sig-check.c (signature_check, signature_check2,
2198         check_key_signature, check_key_signature2): Allow passing NULLs
2199         for unused parameters in the x2 form of each function to avoid the
2200         need for dummy variables. getkey.c, mainproc.c: Change all
2201         callers.
2202
2203         * trustdb.h, trustdb.c (read_trust_options): New.  Returns items
2204         from the trustdb version record.
2205
2206         * keylist.c (public_key_list): Use it here for the new "tru"
2207         record.
2208
2209         * gpgv.c (read_trust_options): Stub.
2210
2211 2003-07-20  David Shaw  <dshaw@jabberwocky.com>
2212
2213         * keyedit.c (show_key_with_all_names): Use list-option
2214         show-validity in --edit-key interface as well.
2215
2216 2003-07-19  David Shaw  <dshaw@jabberwocky.com>
2217
2218         * options.h, g10.c (main), mainproc.c (check_sig_and_print): Add
2219         verify-options "show-validity" and "show-long-keyid" to show
2220         trustdb validity and long keyids during (file) signature
2221         verification.
2222
2223         * packet.h, main.h, sig-check.c (signature_check2,
2224         check_key_signature2, do_check): If ret_pk is set, fill in the pk
2225         used to verify the signature.  Change all callers in getkey.c,
2226         mainproc.c, and sig-check.c.
2227
2228         * keylist.c (list_keyblock_colon): Use the ret_pk from above to
2229         put the fingerprint of the signing key in "sig" records during a
2230         --with-colons --check-sigs.  This requires --no-sig-cache as well
2231         since we don't cache fingerprints.
2232
2233 2003-07-10  David Shaw  <dshaw@jabberwocky.com>
2234
2235         * parse-packet.c (parse_signature): No need to reserve 8 bytes for
2236         the unhashed signature cache any longer.
2237
2238         * misc.c (pct_expando): Add two new expandos - signer's
2239         fingerprint (%g), and signer's primary fingerprint (%p).
2240
2241         * Makefile.am: Include W32LIBS where appropriate.
2242
2243         * g10.c (main): Add --rfc2440 alias for --openpgp since in a few
2244         months, they won't be the same thing.
2245
2246         * keyserver.c (parse_keyserver_uri): Accept "http" as an alias for
2247         "hkp", since it is occasionally written that way.
2248         (keyserver_spawn): Use ascii_isspace to avoid locale issues.
2249
2250         * keygen.c (ask_user_id): Make --allow-freeform-uid apply to the
2251         email field as well as the name field, and allow mixing fields
2252         when it is set.
2253
2254         * options.skel: Use subkeys.pgp.net as the default keyserver.
2255
2256         * trustdb.c (validate_one_keyblock): Certifications on revoked or
2257         expired uids do not count in the web of trust.
2258
2259         * signal.c (init_one_signal, pause_on_sigusr, do_block): Only use
2260         sigprocmask() if we have sigset_t, and only use sigaction() if we
2261         have struct sigaction.  This is for Forte c89 on Solaris which
2262         seems to define only the function call half of the two pairs by
2263         default.
2264         (pause_on_sigusr): Typo.
2265         (do_block): If we can't use sigprocmask() and sigset_t, try to get
2266         the number of signals from NSIG as well as MAXSIG, and if we
2267         can't, fail with an explanation.
2268
2269         * signal.c, tdbio.c: Comment out the transaction code.  It was not
2270         used in this version, and was causing some build problems on
2271         quasi-posix platforms (Solaris and Forte c89).
2272
2273         * keylist.c (list_keyblock_colon): Don't include validity values
2274         when listing secret keys since they can be incorrect and/or
2275         misleading.  This is a temporary kludge, and will be handled
2276         properly in 1.9/2.0.
2277
2278         * mainproc.c (check_sig_and_print): Only show the "key available
2279         from" preferred keyserver line if the key is not currently
2280         present.
2281
2282         * keyedit.c (sign_uids): Do not sign expired uids without --expert
2283         (same behavior as revoked uids).  Do not allow signing a user ID
2284         without a self-signature.  --expert overrides.  Add additional
2285         prompt to the signature level question.
2286         (menu_expire): When changing expiration dates, don't replace
2287         selfsigs on revoked uids since this would effectively unrevoke
2288         them. There is also no point in replacing expired selfsigs.  This
2289         is bug #181
2290
2291 2003-07-10  David Shaw  <dshaw@jabberwocky.com> (from Werner on stable branch)
2292
2293         * g10.c (add_notation_data): Make sure that only ascii is passed
2294         to iscntrl.  Noted by Christian Biere.
2295         * getkey.c (classify_user_id2): Replaced isspace by spacep
2296         * keygen.c (ask_user_id): Ditto.
2297         (get_parameter_algo): Ditto.
2298         * keyedit.c (keyedit_menu): Ditto.
2299         * tdbdump.c (import_ownertrust): Ditto.  s/isxdigit/hexdigitp/.
2300         * revoke.c (ask_revocation_reason): 
2301         * keyserver.c (keyserver_spawn): Dito.
2302
2303 2003-06-10  Werner Koch  <wk@gnupg.org>
2304
2305         * parse-packet.c (parse): Disallow old style partial length for
2306         all key material packets to avoid possible corruption of keyrings.
2307
2308 2003-06-08  Werner Koch  <wk@gnupg.org>
2309
2310         * import.c (import_keys_internal): Invalidate the cache so that
2311         the file descriptor gets closed.  Fixes bug reported by Juan
2312         F. Codagnone.
2313
2314 2003-06-04  David Shaw  <dshaw@jabberwocky.com>
2315
2316         * options.skel: Use new hkp://subkeys.pgp.net as sample keyserver
2317         since they at least handle subkeys correctly.
2318
2319         * options.h, g10.c (main), main.h, keylist.c (show_keyserver_url),
2320         mainproc.c (check_sig_and_print), parse-packet.c (dump_sig_subpkt,
2321         parse_one_sig_subpkt, can_handle_critical): Add read-only support
2322         for preferred keyserver subpackets.  They're basically policy URLs
2323         with a different name.  Add a verify-option
2324         "show-preferred-keyserver" to turn them on and off (on by default,
2325         as per stable branch).
2326
2327         * g10.c (main): Add "--set-notation" as alias to "--notation-data"
2328         this is to make things consistent with --set-policy-url meaning
2329         both sigs and certs.
2330
2331 2003-06-03  David Shaw  <dshaw@jabberwocky.com>
2332
2333         * options.h, g10.c (main), keylist.c (list_keyblock_print): Add
2334         "show-validity" and "show-long-keyid" list-options.
2335
2336         * gpgv.c (get_validity, trust_value_to_string): Stubs.
2337
2338         * g10.c (main): Use SAFE_VERSION instead of VERSION in the
2339         version-specific gpg.conf file so it can be overridden on RISCOS.
2340
2341 2003-06-01  David Shaw  <dshaw@jabberwocky.com>
2342
2343         * g10.c (main), keylist.c (show_policy_url, show_notation),
2344         mainproc.c (check_sig_and_print): Emulate the old policy and
2345         notation behavior (display by default).  Send to status-fd whether
2346         it is displayed on the screen or not.
2347
2348         * g10.c (main): Since we now have some options in devel that won't
2349         work in a stable branch gpg.conf file, try for a version-specific
2350         gpg.conf-VERSION file before falling back to gpg.conf.
2351
2352         * main.h, options.h: Move various option flags to options.h.
2353
2354 2003-05-31  David Shaw  <dshaw@jabberwocky.com>
2355
2356         * mainproc.c (check_sig_and_print), main.h, keylist.c
2357         (show_policy, show_notation): Collapse the old print_notation_data
2358         into show_policy() and show_notation() so there is only one
2359         function to print notations and policy URLs.
2360
2361         * options.h, main.h, g10.c (main), keyedit.c
2362         (print_and_check_one_sig), keylist.c (list_one,
2363         list_keyblock_print), pkclist.c (do_edit_ownertrust), sign.c
2364         (mk_notation_and_policy): New "list-options" and "verify-options"
2365         commands.  These replace the existing
2366         --show-photos/--no-show-photos,
2367         --show-notation/--no-show-notation,
2368         --show-policy-url/--no-show-policy-url, and --show-keyring
2369         options.  The new method is more flexible since a user can specify
2370         (for example) showing photos during sig verification, but not in
2371         key listings.  The old options are emulated.
2372
2373         * main.h, misc.c (parse_options): New general option line
2374         parser. Fix the bug in the old version that did not handle report
2375         syntax errors after a valid entry.
2376
2377         * import.c (parse_import_options), export.c
2378         (parse_export_options): Call it here instead of duplicating the
2379         code.
2380
2381 2003-05-30  David Shaw  <dshaw@jabberwocky.com>
2382
2383         * keylist.c (list_one): Don't show the keyring filename when in
2384         --with-colons mode.  Actually translate "Keyring" string.
2385
2386         * mainproc.c (proc_tree): We can't currently handle multiple
2387         signatures of different classes or digests (we'd pretty much have
2388         to run a different hash context for each), but if they are all the
2389         same, make an exception.  This is Debian bug #194292.
2390
2391         * sig-check.c (check_key_signature2): Make string translatable.
2392
2393         * packet.h, getkey.c (fixup_uidnode): Mark real primary uids
2394         differently than assumed primaries.
2395
2396         * keyedit.c (no_primary_warning): Use the differently marked
2397         primaries here in a new function to warn when an --edit-key
2398         command might rearrange the self-sig dates enough to change which
2399         uid is primary.
2400         (menu_expire, menu_set_preferences): Use no_primary_warning()
2401         here.
2402
2403         * Makefile.am: Use @DLLIBS@ for -ldl.
2404
2405 2003-05-26  David Shaw  <dshaw@jabberwocky.com>
2406
2407         * getkey.c (premerge_public_with_secret): Made "no secret subkey
2408         for" warning a verbose item and translatable. (From wk on stable
2409         branch)
2410
2411         * sig-check.c (check_key_signature2): Made "no subkey for subkey
2412         binding packet" a verbose item instead of a !quiet one.  There are
2413         too many garbled keys out in the wild. (From wk on stable branch)
2414
2415         * filter.h: Remove const from WHAT. (From wk on stable branch)
2416
2417         * progress.c (handle_progress): Store a copy of
2418         NAME. (progress_filter): Release WHAT, make sure not to print a
2419         NULL WHAT. (From wk on stable branch)
2420
2421         * openfile.c (open_sigfile): Adjust free for new progress
2422         semantics. (From wk on stable branch)
2423
2424         * plaintext.c (ask_for_detached_datafile): Don't dealloc
2425         pfx->WHAT. (From wk on stable branch)
2426
2427         * seckey-cert.c (do_check): Issue the RSA_OR_IDEA status when the
2428         cipher algo is IDEA to make it easier to track down the
2429         problem. (From twoaday on stable branch)
2430         
2431 2003-05-24  David Shaw  <dshaw@jabberwocky.com>
2432
2433         * armor.c, g10.c, kbnode.c, misc.c, pkclist.c, sign.c,
2434         build-packet.c, getkey.c, keydb.c, openfile.c, plaintext.c,
2435         status.c, gpgv.c, keygen.c, options.h, sig-check.c, tdbio.h,
2436         encode.c, mainproc.c, parse-packet.c, signal.c, textfilter.c: Edit
2437         all preprocessor instructions to remove whitespace before the '#'.
2438         This is not required by C89, but there are some compilers out
2439         there that don't like it.
2440
2441 2003-05-21  David Shaw  <dshaw@jabberwocky.com>
2442
2443         * trustdb.h, trustdb.c (is_disabled), gpgv.c (is_disabled): Rename
2444         is_disabled to cache_disabled_value, which now takes a pk and not
2445         just the keyid. This is for speed since there is no need to
2446         re-fetch a key when we already have that key handy.  Cache the
2447         result of the check so we don't need to hit the trustdb more than
2448         once.
2449         
2450         * getkey.c (skip_disabled): New function to get a pk and call
2451         is_disabled on it. (key_byname): Use it here.
2452         
2453         * packet.h, getkey.c (skip_disabled), keylist.c
2454         (print_capabilities): New "pk_is_disabled" macro to retrieve the
2455         cached disabled value if available, and fill it in via
2456         cache_disabled_value if not available.
2457
2458         * trustdb.c (get_validity): Cache the disabled value since we have
2459         it handy and it might be useful later.
2460
2461         * parse-packet.c (parse_key): Clear disabled flag when parsing a
2462         new key.  Just in case someone forgets to clear the whole key.
2463
2464         * getkey.c (merge_selfsigs_main): Add an "if all else fails" path
2465         for setting a single user ID primary when there are multiple set
2466         primaries all at the same second, or no primaries set and the most
2467         recent user IDs are at the same second, or no signed user IDs at
2468         all. This is arbitrary, but deterministic.
2469
2470         * exec.h, photoid.h: Add copyright message.
2471
2472         * keylist.c (list_keyblock_print): Don't dump attribs for
2473         revoked/expired/etc uids for non-colon key listings.  This is for
2474         consistency with --show-photos.
2475
2476         * main.h, keylist.c (dump_attribs), mainproc.c
2477         (check_sig_and_print): Dump attribs if --attrib-fd is set when
2478         verifying signatures.
2479         
2480         * g10.c (main): New --gnupg option to disable the various
2481         --openpgp, --pgpX, etc. options.  This is the same as --no-XXXX
2482         for those options.
2483
2484         * revoke.c (ask_revocation_reason): Clear old reason if user
2485         elects to repeat question.  This is bug 153.
2486
2487         * keyedit.c (sign_uids): Show keyid of the key making the
2488         signature.
2489
2490 2003-05-21  Werner Koch  <wk@gnupg.org>
2491
2492         * progress.c (handle_progress)
2493         * sign.c (write_plaintext_packet)
2494         * encode.c (encode_simple,encode_crypt): Make sure that a filename
2495         of "-" is considered to be stdin so that iobuf_get_filelength
2496         won't get called.  This fixes bug 156 reported by Gregery Barton.
2497
2498 2003-05-02  David Shaw  <dshaw@jabberwocky.com>
2499
2500         * packet.h, build-packet.c (build_sig_subpkt), export.c
2501         (do_export_stream), import.c (remove_bad_stuff, import),
2502         parse-packet.c (dump_sig_subpkt, parse_one_sig_subpkt): Remove
2503         vestigal code for the old sig cache subpacket.  This wasn't
2504         completely harmless as it caused subpacket 101 to disappear on
2505         import and export.
2506
2507         * options.h, armor.c, cipher.c, g10.c, keyedit.c, pkclist.c,
2508         sign.c, encode.c, getkey.c, revoke.c: The current flags for
2509         different levels of PGP-ness are massively complex.  This is step
2510         one in simplifying them. No functional change yet, just use a
2511         macro to check for compliance level.
2512
2513         * sign.c (sign_file): Fix bug that causes spurious compression
2514         preference warning.
2515
2516         * sign.c (clearsign_file): Fix bug that prevents proper warning
2517         message from appearing when clearsigning in --pgp2 mode with a
2518         non-v3 RSA key.
2519
2520         * main.h, misc.c (compliance_option_string, compliance_string,
2521         compliance_failure), pkclist.c (build_pk_list), sign.c (sign_file,
2522         clearsign_file), encode.c (encode_crypt,
2523         write_pubkey_enc_from_list): New functions to put the "this
2524         message may not be usable...." warning in one place.
2525
2526         * options.h, g10.c (main): Part two of the simplification.  Use a
2527         single enum to indicate what we are compliant to (1991, 2440,
2528         PGPx, etc.)
2529
2530         * g10.c (main): Show errors for failure in export, send-keys,
2531         recv-keys, and refresh-keys.
2532
2533         * options.h, g10.c (main): Give algorithm warnings for algorithms
2534         chosen against the --pgpX and --openpgp rules.
2535
2536         * keydb.h, pkclist.c (algo_available): Make TIGER192 invalid in
2537         --openpgp mode.
2538
2539         * sign.c (sign_file), pkclist.c (algo_available): Allow passing a
2540         hint of 0.
2541
2542 2003-05-01  David Shaw  <dshaw@jabberwocky.com>
2543
2544         * tdbio.c (create_version_record): Only create new trustdbs with
2545         TM_CLASSIC or TM_PGP.
2546
2547         * trustdb.h, trustdb.c (trust_string, get_ownertrust_string,
2548         get_validity_string, ask_ownertrust, validate_keys), pkclist.c
2549         (do_edit_ownertrust): Rename trust_string to trust_value_to_string
2550         for naming consistency.
2551
2552         * trustdb.h, trustdb.c (string_to_trust_value): New function to
2553         translate a string to a trust value.
2554
2555         * g10.c (main): Use string_to_trust_value here for
2556         --force-ownertrust.
2557         
2558         * options.h, g10.c (main), trustdb.c (trust_model_string,
2559         init_trustdb, check_trustdb, update_trustdb, get_validity,
2560         validate_one_keyblock): An "OpenPGP" trust model is misleading
2561         since there is no official OpenPGP trust model.  Use "PGP"
2562         instead.
2563
2564 2003-04-30  David Shaw  <dshaw@jabberwocky.com>
2565
2566         * build-packet.c (build_sig_subpkt): Comments.
2567
2568         * exec.c (exec_write): Cast NULL to void* to properly terminate
2569         varargs list.
2570
2571         * keyedit.c (show_key_with_all_names): Just for safety, catch an
2572         invalid pk algorithm.
2573
2574         * sign.c (make_keysig_packet): Crucial that the call to mksubpkt
2575         comes LAST before the calls to finalize the sig as that makes it
2576         possible for the mksubpkt function to get a reliable pointer to
2577         the subpacket area.
2578
2579         * pkclist.c (do_we_trust_pre): If an untrusted key was chosen by a
2580         particular user ID, use that ID as the one to ask about when
2581         prompting whether to use the key anyway.
2582         (build_pk_list): Similar change here when adding keys to the
2583         recipient list.
2584
2585         * trustdb.c (update_validity): Fix bug that prevented more than
2586         one validity record per trust record.
2587         (get_validity): When retrieving validity for a (user) supplied
2588         user ID, return the validity for that user ID only, and do not
2589         fall back to the general key validity.
2590         (validate_one_keyblock): Some commentary on whether
2591         non-self-signed user IDs belong in the web of trust (arguably,
2592         they do).
2593
2594 2003-04-27  David Shaw  <dshaw@jabberwocky.com>
2595
2596         * g10.c (main): Add --no-textmode.
2597
2598         * export.c (do_export_stream), keyedit.c (show_key_with_all_names,
2599         menu_addrevoker), mainproc.c (check_sig_and_print), photoid.c
2600         (show_photos), sign.c (mk_notation_and_policy), trustdb.c
2601         (get_validity, reset_trust_records, validate_keys): Make some
2602         strings translatable.
2603
2604         * mainproc.c (check_sig_and_print): Show digest algorithm and sig
2605         class when verifying a sig with --verbose on, and add version, pk
2606         and hash algorithms and sig class to VALIDSIG.
2607         
2608         * parse-packet.c (enum_sig_subpkt): Make a warning message a
2609         --verbose warning message since we don't need to warn every time
2610         we see an unknown critical (we only need to invalidate the
2611         signature).
2612
2613         * trustdb.c (init_trustdb): Check the trustdb options even with
2614         TM_AUTO since the auto may become TM_CLASSIC or TM_OPENPGP.
2615
2616 2003-04-26  David Shaw  <dshaw@jabberwocky.com>
2617
2618         * sign.c (do_sign): Show the hash used when making a signature in
2619         verbose mode.
2620
2621         * tdbio.h, tdbio.c (tdbio_read_model): New function to return the
2622         trust model used in a given trustdb.
2623
2624         * options.h, g10.c (main), trustdb.c (init_trustdb, check_trustdb,
2625         update_trustdb): Use tdbio_read_model to implement an "auto" trust
2626         model which is set via the trustdb.
2627
2628 2003-04-23  David Shaw  <dshaw@jabberwocky.com>
2629
2630         * import.c (import_revoke_cert): Remove ultimate trust when
2631         revoking an ultimately trusted key.
2632
2633         * keyedit.c (sign_uids): Allow replacing expired signatures.
2634         Allow duplicate signatures with --expert.
2635
2636         * pkclist.c (check_signatures_trust): Don't display a null
2637         fingerprint when checking a signature with --always-trust enabled.
2638
2639         * filter.h (progress_filter_context_t), progress.c
2640         (handle_progress), plaintext.c (ask_for_detached_datafile,
2641         hash_datafiles): Fix compiler warnings.  Make "what" constant.
2642
2643         * build-packet.c (do_plaintext): Do not create invalid literal
2644         packets with >255-byte names.
2645
2646 2003-04-15  Werner Koch  <wk@gnupg.org>
2647
2648         * Makefile.am (AM_CFLAGS): Make use of AM_CFLAGS and AM_LDFLAGS.
2649
2650         * g10.c, options.h: New option --enable-progress-filter.
2651         * progress.c (handle_progress): Make use of it.
2652
2653 2003-04-15  Marcus Brinkmann  <marcus@g10code.de>
2654
2655         * progress.c: New file.
2656         * Makefile.am (common_source): Add progress.c.
2657         * filter.h (progress_filter_context_t): New type.
2658         (progress_filter, handle_progress): New prototypes.
2659         * main.h (open_sigfile): New argument for prototype.
2660         * openfile.c (open_sigfile): New argument to install progress
2661         filter.
2662         * encode.c (encode_simple): New variable PFX.  Register
2663         progress filter.  Install text_filter after that.
2664         (encode_crypt): Likewise.
2665         * sign.c (sign_file): Likewise.
2666         (clearsign_file): Likewise.
2667         * decrypt.c (decrypt_message): Likewise.
2668         (decrypt_messages): Likewise.
2669         * verify.c (verify_signatures): Likewise.
2670         (verify_one_file): Likewise.
2671         * plaintext.c (hash_datafiles): Likewise.
2672         (ask_for_detached_datafile): Likewise.
2673
2674 2003-04-10  Werner Koch  <wk@gnupg.org>
2675
2676         * passphrase.c (read_passphrase_from_fd): Do a dummy read if the
2677         agent is to be used.  Noted by Ingo Klöcker.
2678         (agent_get_passphrase): Inhibit caching when we have no
2679         fingerprint.  This is required for key generation as well as for
2680         symmetric only encryption.
2681
2682         * passphrase .c (agent_get_passphrase): New arg CANCELED.
2683         (passphrase_to_dek): Ditto.  Passed to above.  Changed all
2684         callers to pass NULL.
2685         * seckey-cert.c (do_check): New arg CANCELED.
2686         (check_secret_key): Terminate loop when canceled.
2687
2688         * keyedit.c (change_passphrase): Pass ERRTEXT untranslated to
2689         passphrase_to_dek and translate where appropriate.
2690         * seckey-cert.c (check_secret_key): Ditto.
2691         * keygen.c (ask_passphrase): Ditto.
2692         * passphrase.c (agent_get_passphrase): Translate the TRYAGAIN_TEXT.
2693         Switch the codeset to utf-8.
2694
2695 2003-04-09  Werner Koch  <wk@gnupg.org>
2696
2697         * decrypt.c (decrypt_messages): Fixed error handling; the function
2698         used to re-loop with same file after an error.  Reported by Joseph
2699         Walton.
2700
2701 2003-04-08  David Shaw  <dshaw@jabberwocky.com>
2702
2703         * main.h, g10.c (main), import.c (parse_import_options,
2704         fix_pks_corruption): It's really PKS corruption, not HKP
2705         corruption.  Keep the old repair-hkp-subkey-bug command as an
2706         alias.
2707
2708         * g10.c (main): Rename --no-version to --no-emit-version for
2709         consistency.  Keep --no-version as an alias.
2710
2711 2003-04-04  David Shaw  <dshaw@jabberwocky.com>
2712
2713         * pkclist.c (algo_available): PGP 8 can use the SHA-256 hash.
2714
2715         * sign.c (sign_file, clearsign_file, sign_symencrypt_file): Remove
2716         unused code.
2717
2718 2003-04-01  Werner Koch  <wk@gnupg.org>
2719
2720         * mainproc.c (check_sig_and_print): Add primary key fpr to VALIDSIG
2721         status.
2722
2723 2003-03-24  David Shaw  <dshaw@jabberwocky.com>
2724
2725         * keydb.h: Err on the side of making an unknown signature a SIG
2726         rather than a CERT.
2727
2728         * import.c (delete_inv_parts): Discard any key signatures that
2729         aren't key types (i.e. 0x00, 0x01, etc.)
2730
2731         * g10.c (main): Add deprecated option warning for
2732         --list-ownertrust.  Add --compression-algo alias for
2733         --compress-algo.  Change --version output strings to match
2734         "showpref" strings, and make translatable.
2735
2736         * status.c (do_get_from_fd): Accept 'y' as well as 'Y' for
2737         --command-fd boolean input.
2738
2739         * trustdb.c: Fix typo (DISABLE_REGEXP -> DISABLE_REGEX)
2740
2741         * keyedit.c (show_key_with_all_names_colon): Show no-ks-modify
2742         flag.
2743
2744 2003-03-11  David Shaw  <dshaw@jabberwocky.com>
2745
2746         * options.h, g10.c (main), keyserver.c (kopts): Add "try-dns-srv"
2747         keyserver option.  Defaults to on.
2748
2749         * passphrase.c (agent_get_passphrase): Fix memory leak with
2750         symmetric messages.  Fix segfault with symmetric messages.  Fix
2751         incorrect prompt with symmetric messages.
2752
2753 2003-03-10  Werner Koch  <wk@gnupg.org>
2754
2755         * compress.c (init_uncompress): Use a 15 bit window size so that
2756         the output of implementations which don't run for PGP 2
2757         compatibility won't get garbled.
2758
2759 2003-03-04  David Shaw  <dshaw@jabberwocky.com>
2760
2761         * trustdb.c (validate_keys): Mask the ownertrust when building the
2762         list of fully valid keys so that disabled keys are still counted
2763         in the web of trust.
2764         (get_ownertrust_with_min): Do the same for the minimum ownertrust
2765         calculation.
2766
2767         * parse-packet.c (dump_sig_subpkt): Show the notation names for
2768         not-human-readable notations.  Fix cosmetic off-by-one length
2769         counter.
2770
2771         * options.skel: Add explantion and commented-out
2772         "no-mangle-dos-filenames".
2773
2774         * mainproc.c (proc_encrypted): Make string translatable.
2775
2776         * keyserver.c (keyserver_spawn): Quote ':', '%', and any 8-bit
2777         characters in the uid strings sent to the keyserver helper.
2778
2779         * keyring.c (keyring_rebuild_cache): Lock the keyring while
2780         rebuilding the signature caches to prevent another gpg from
2781         tampering with the temporary copy.
2782
2783         * keygen.c (keygen_set_std_prefs): Include AES192 and AES256 in
2784         default prefs.
2785
2786         * keyedit.c (show_prefs): Make strings translatable.
2787
2788         * keydb.c: Double the maximum number of keyrings to 40.
2789
2790         * gpgv.c (main): Fix bug #113 - gpgv should accept the
2791         --ignore-time-conflict option.
2792
2793         * g10.c (main): --openpgp disables --pgpX.  Double the amount of
2794         secure memory to 32k (keys are getting bigger these days).
2795
2796         * Makefile.am: Makefile.am: Use @CAPLIBS@ to link in -lcap if we
2797         are using capabilities.
2798
2799 2003-02-26  David Shaw  <dshaw@jabberwocky.com>
2800
2801         * keyserver.c (keyserver_spawn): Include various pieces of
2802         information about the key in the data sent to the keyserver
2803         helper.  This allows the helper to use it in instructing a remote
2804         server which may not have any actual OpenPGP smarts in parsing
2805         keys.
2806
2807         * main.h, export.c (export_pubkeys_stream, do_export_stream): Add
2808         ability to return only the first match in an exported keyblock for
2809         keyserver usage.  This should be replaced at some point with a
2810         more flexible solution where each key can be armored seperately.
2811
2812 2003-02-22  David Shaw  <dshaw@jabberwocky.com>
2813
2814         * sign.c (sign_file): Do not push textmode filter onto an unopened
2815         IOBUF (segfault).  Noted by Marcus Brinkmann.  Push and
2816         reinitialize textmode filter for each file in a multiple file
2817         list.
2818
2819         * packet.h, getkey.c (fixup_uidnode), keyedit.c (show_prefs): Set
2820         and show the keyserver no-modify flag.
2821
2822         * keygen.c (add_keyserver_modify): New.
2823         (keygen_upd_std_prefs): Call it here.
2824         (keygen_set_std_prefs): Accept "ks-modify" and "no-ks-modify" as
2825         prefs to set and unset keyserver modify flag.
2826
2827         * g10.c (main): Accept "s1" in addition to "idea" to match the
2828         other ciphers.
2829
2830         * main.h, misc.c (idea_cipher_warn): We don't need this if IDEA
2831         has been disabled.
2832
2833 2003-02-21  David Shaw  <dshaw@jabberwocky.com>
2834
2835         * keygen.c (keygen_set_std_prefs): Don't put AES or CAST5 in
2836         default prefs if they are disabled.
2837
2838         * g10.c (main): Use 3DES instead of CAST5 if we don't have CAST5
2839         support.  Use 3DES for the s2k cipher in --openpgp mode.
2840         (print_mds): #ifdef all of the optional digest algorithms.
2841
2842 2003-02-12  David Shaw  <dshaw@jabberwocky.com>
2843
2844         * keydb.h, getkey.c (classify_user_id, classify_user_id2): Make
2845         'exact' a per-desc item.  Merge into one function since
2846         'force_exact' is no longer needed.
2847         (key_byname): Use new classify_user_id function, and new exact
2848         flag in KEYDB_SEARCH_DESC.
2849
2850         * keyring.h, keyring.c (keyring_search): Return an optional index
2851         to show which KEYDB_SEARCH_DESC was the matching one.
2852
2853         * keydb.h, keydb.c (keydb_search): Rename to keydb_search2, and
2854         pass the optional index to keyring_search.  Add a macro version of
2855         keydb_search that calls this new function.
2856
2857         * export.c (do_export_stream): If the keyid! syntax is used,
2858         export only that specified key.  If the key in question is a
2859         subkey, export the primary plus that subkey only.
2860
2861 2003-02-11  David Shaw  <dshaw@jabberwocky.com>
2862
2863         * exec.c (set_exec_path): Add debugging line.
2864
2865         * g10.c (print_hex, print_mds): Print long hash strings a lot
2866         neater.  This assumes at least an 80-character display, as there
2867         are a few other similar assumptions here and there.  Users who
2868         need unformatted hashes can still use with-colons.  Check that
2869         SHA384 and 512 are available before using them as they are no
2870         longer always available.
2871
2872         * Makefile.am: Use a local copy of libexecdir along with @PACKAGE@
2873         as GNUPG_LIBEXECDIR so it can be easily overridden at make time.
2874
2875 2003-02-04  David Shaw  <dshaw@jabberwocky.com>
2876
2877         * armor.c (parse_hash_header, armor_filter): Accept the new SHAs
2878         in the armor Hash: header.
2879
2880         * g10.c (print_hex): Print long hash strings a little neater.
2881         (print_mds): Add the new SHAs to the hash list.
2882
2883 2003-02-02  David Shaw  <dshaw@jabberwocky.com>
2884
2885         * keyedit.c (menu_revuid): Properly handle a nonselfsigned uid on
2886         a v4 key (treat as a v4 revocation).
2887
2888         * import.c (print_import_check): Do not re-utf8 convert user IDs.
2889
2890 2003-01-27  David Shaw  <dshaw@jabberwocky.com>
2891
2892         * mainproc.c (list_node): Show signature expiration date in
2893         with-colons sig records.
2894
2895         * keylist.c (list_keyblock_colon), mainproc.c (list_node): Show
2896         trust sig information in with-colons sig records.
2897
2898 2003-01-16  David Shaw  <dshaw@jabberwocky.com>
2899
2900         * g10.c (add_group): Trim whitespace after a group name so it does
2901         not matter where the user puts the = sign.
2902
2903         * options.skel: Comment out the first three lines in case someone
2904         manually copies the skel file to their homedir.
2905
2906         * sign.c (clearsign_file): Only use pgp2mode with v3 keys and
2907         MD5. This matches what we do when decoding such messages and
2908         prevents creating a message (v3+RIPEMD/160) that we can't verify.
2909
2910         * sig-check.c (signature_check2): Use G10ERR_GENERAL as the error
2911         for signature digest conflict.  BAD_SIGN implies that a signature
2912         was checked and we may try and print out a user ID for a key that
2913         doesn't exist.
2914
2915 2003-01-15  David Shaw  <dshaw@jabberwocky.com>
2916
2917         * trustdb.c (init_trustdb, get_validity): Don't use a changed
2918         trust model to indicate a dirty trustdb, and never auto-rebuild a
2919         dirty trustdb with the "always" trust model.
2920
2921         * g10.c (add_group): Last commit missed the \t ;)
2922
2923 2003-01-14  David Shaw  <dshaw@jabberwocky.com>
2924
2925         * packet.h, parse-packet.c (setup_user_id), free-packet.c
2926         (free_user_id), keydb.h, keyid.c (namehash_from_uid): New function
2927         to rmd160-hash the contents of a user ID packet and cache it in
2928         the uid object.
2929
2930         * keylist.c (list_keyblock_colon): Use namehash in field 8 of
2931         uids.  Show dates for creation (selfsig date), and expiration in
2932         fields 6 and 7.
2933
2934         * trustdb.c (get_validity, get_validity_counts, update_validity):
2935         Use new namehash function rather than hashing it locally.
2936
2937 2003-01-14  Werner Koch  <wk@gnupg.org>
2938
2939         * g10.c (add_group): Fixed group parsing to allow more than one
2940         delimiter in a row and also allow tab as delimiter.
2941
2942 2003-01-12  David Shaw  <dshaw@jabberwocky.com>
2943
2944         * tdbio.c (tdbio_set_dbname): Fix assertion failure with
2945         non-fully-qualified trustdb names.
2946
2947 2003-01-11  David Shaw  <dshaw@jabberwocky.com>
2948
2949         * trustdb.c (get_validity_info, get_ownertrust_info,
2950         trust_letter): Simplify by returning a ? for error directly.
2951
2952         * keyedit.c (show_key_with_all_names): Use get_validity_string and
2953         get_ownertrust_string to show full word versions of trust
2954         (i.e. "full" instead of 'f').
2955
2956         * trustdb.h, trustdb.c (get_ownertrust_string,
2957         get_validity_string): Same as get_ownertrust_info, and
2958         get_validity_info, except returns a full string.
2959
2960         * trustdb.c (get_ownertrust_with_min): New.  Same as
2961         'get_ownertrust' but takes the min_ownertrust value into account.
2962
2963 2003-01-10  David Shaw  <dshaw@jabberwocky.com>
2964
2965         * armor.c (armor_filter): Comment about PGP's end of line tab
2966         problem.
2967
2968         * trustdb.h, trustdb.c (trust_letter): Make
2969         static. (get_ownertrust_info, get_validity_info): Don't mask the
2970         trust level twice.
2971
2972         * trustdb.h, gpgv.c, trustdb.c (get_validity, get_validity_info),
2973         keylist.c (list_keyblock_colon), keyedit.c
2974         (show_key_with_all_names_colon, menu_revuid): Pass a user ID in
2975         rather than a namehash, so we only have to do the hashing in one
2976         place.
2977
2978         * packet.h, pkclist.c (build_pk_list), free-packet.c
2979         (release_public_key_parts): Remove unused namehash element for
2980         public keys.
2981
2982 2003-01-07  David Shaw  <dshaw@jabberwocky.com>
2983
2984         * keygen.c (keygen_set_std_prefs): Warn when setting an IDEA
2985         preference when IDEA is not available.
2986
2987 2003-01-06  David Shaw  <dshaw@jabberwocky.com>
2988
2989         * trustdb.c (get_validity_info): 'd' for disabled is not a
2990         validity value any more.
2991
2992         * packet.h, tdbio.h, tdbio.c (tdbio_read_record,
2993         tdbio_write_record), trustdb.c (update_validity): Store temporary
2994         full & marginal counts in the trustdb.
2995         (clear_validity, get_validity_counts): Return and clear temp
2996         counts.
2997         (store_validation_status): Keep track of which keyids have been
2998         stored.
2999         (validate_one_keyblock, validate_key_list): Use per-uid copies of
3000         the full & marginal counts so they can be recalled for multiple
3001         levels.
3002         (validate_keys): Only use unused keys for each new round.
3003         (reset_unconnected_keys): Rename to reset_trust_records, and only
3004         skip specifically excluded records.
3005
3006         * keylist.c (print_capabilities): Show 'D' for disabled keys in
3007         capabilities section.
3008
3009         * trustdb.c (is_disabled): Remove incorrect comment.
3010
3011 2003-01-03  David Shaw  <dshaw@jabberwocky.com>
3012
3013         * import.c (import_one): Only do the work to create the status
3014         display for interactive import if status is enabled.
3015
3016         * keyring.c (keyring_search): skipfnc didn't work properly with
3017         non-keyid searches.  Noted by Stefan Bellon.
3018
3019         * getkey.c (merge_selfsigs_main): Remove some unused code and make
3020         sure that the pk selfsigversion member accounts for 1F direct
3021         sigs.
3022
3023 2003-01-02  Werner Koch  <wk@gnupg.org>
3024
3025         * keydb.c (keydb_add_resource): Don't assume that try_make_homedir
3026         terminates but check again for the existence of the directory and
3027         continue then.
3028         * openfile.c (copy_options_file): Print a warning if the skeleton
3029         file has active options.
3030
3031 2002-12-29  David Shaw  <dshaw@jabberwocky.com>
3032
3033         * getkey.c (merge_selfsigs_main), main.h, sig-check.c
3034         (check_key_signature2): Pass the ultimately trusted pk directly to
3035         check_key_signature2 to avoid going through the key selection
3036         mechanism.  This prevents a deadly embrace when two keys without
3037         selfsigs each sign the other.
3038
3039 2002-12-27  David Shaw  <dshaw@jabberwocky.com>
3040
3041         * keyserver.c (keyserver_refresh): Don't print the "refreshing..."
3042         line if there are no keys to refresh or if there is no keyserver
3043         set.
3044
3045         * getkey.c (merge_selfsigs_main): Any valid user ID should make a
3046         key valid, not just the last one.  This also fixes Debian bug
3047         #174276.
3048
3049 2002-12-27  Stefan Bellon  <sbellon@sbellon.de>
3050
3051         * import.c (print_import_check): Changed int to size_t.
3052
3053 2002-12-27  David Shaw  <dshaw@jabberwocky.com>
3054
3055         * keyedit.c (keyedit_menu, menu_revuid): Add "revuid" feature to
3056         revoke a user ID.  This is the same as issuing a revocation for
3057         the self-signature, but a much simpler interface to do it.
3058
3059 2002-12-26  David Shaw  <dshaw@jabberwocky.com>
3060
3061         * keydb.h, getkey.c (key_byname): Flag to enable or disable
3062         including disabled keys.  Keys specified via keyid (i.e. 0x...)
3063         are always included.
3064
3065         * getkey.c (get_pubkey_byname, get_seckey_byname2,
3066         get_seckey_bynames), keyedit.c (keyedit_menu, menu_addrevoker):
3067         Include disabled keys in these functions.
3068
3069         * pkclist.c (build_pk_list): Do not include disabled keys for -r
3070         or the key prompt.  Do include disabled keys for the default key
3071         and --encrypt-to.
3072
3073         * trustdb.h, trustdb.c (is_disabled): New skipfnc for skipping
3074         disabled keys.
3075
3076         * gpgv.c (is_disabled): Stub.
3077
3078         * keygen.c (keygen_add_key_expire): Properly handle updating a key
3079         expiration to a no-expiration value.
3080
3081         * keyedit.c (enable_disable_key): Comment.
3082
3083         * import.c (import_one): When in interactive mode and --verbose,
3084         don't repeat some key information twice.
3085
3086 2002-12-22  Timo Schulz  <ts@winpt.org>
3087         
3088         * import.c (print_import_check): New.
3089         (import_one): Use it here.
3090         Use merge_keys_and_selfsig in the interactive mode to avoid
3091         wrong key information.
3092         * status.h: Add new status code.
3093         * status.c: Ditto.
3094         
3095 2002-12-13  David Shaw  <dshaw@jabberwocky.com>
3096
3097         * pkclist.c (do_we_trust): Tweak language to refer to the "named
3098         user" rather than "owner".  Noted by Stefan Bellon.
3099
3100         * trustdb.h, trustdb.c (trustdb_pending_check): New function to
3101         check if the trustdb needs a check.
3102
3103         * import.c (import_keys_internal): Used here so we don't rebuild
3104         the trustdb if it is still clean.
3105         (import_one, chk_self_sigs): Only mark trustdb dirty if the key
3106         that is being imported has any sigs other than self-sigs.
3107         Suggested by Adrian von Bidder.
3108
3109         * options.skel: Include the required '=' sign in the sample
3110         'group' option.  Noted by Stefan Bellon.
3111
3112         * import.c (chk_self_sigs): Don't try and check a subkey as if it
3113         was a signature.
3114
3115 2002-12-11  David Shaw  <dshaw@jabberwocky.com>
3116
3117         * tdbio.c (tdbio_read_record, tdbio_write_record): Compact the
3118         RECTYPE_TRUST records a bit.
3119
3120         * g10.c (main): Comment out --list-trust-path until it can be
3121         implemented.
3122
3123         * import.c (import_one): Warn when importing an Elgamal primary
3124         that this may take some time (to verify self-sigs).
3125         (chk_self_sigs): Try and cache all self-sigs so the keyblock is
3126         written to the keyring with a good rich cache.
3127
3128         * keygen.c (ask_algo): Make the Elgamal sign+encrypt warning
3129         stronger, and remove the RSA sign+encrypt warning.
3130
3131 2002-12-06  Stefan Bellon  <sbellon@sbellon.de>
3132
3133         * options.h: Fixed typo (mangle_dos_names instead of
3134         mangle_dos_filenames).
3135
3136 2002-12-05  Werner Koch  <wk@gnupg.org>
3137
3138         * g10.c: New options --[no-]mangle-dos-filenames.
3139         * options.h (opt): Added mangle-dos-filenames.
3140         * openfile.c (open_outfile) [USE_ONLY_8DOT3]: Truncate the
3141         filename only when this option is set; this is the default.
3142
3143 2002-12-04  David Shaw  <dshaw@jabberwocky.com>
3144
3145         * main.h, keyedit.c, keygen.c: Back out previous (2002-12-01)
3146         change.  Minimal isn't always best.
3147
3148         * sign.c (update_keysig_packet): Use the current time rather then
3149         a modification of the original signature time.  Make sure that
3150         this doesn't cause a time warp.
3151
3152         * keygen.c (keygen_add_key_expire): Properly handle a key
3153         expiration date in the past (use a duration of 0).
3154
3155         * keyedit.c (menu_expire): Use update_keysig_packet so any sig
3156         subpackets are maintained during the update.
3157
3158         * build-packet.c (build_sig_subpkt): Mark sig expired or unexpired
3159         when the sig expiration subpacket is added.
3160         (build_sig_subpkt_from_sig): Handle making an expiration subpacket
3161         from a sig that has already expired (use a duration of 0).
3162
3163         * packet.h, sign.c (update_keysig_packet), keyedit.c
3164         (menu_set_primary_uid, menu_set_preferences): Add ability to issue
3165         0x18 subkey binding sigs to update_keysig_packet and change all
3166         callers.
3167
3168         * trustdb.c (validate_keys): Show trust parameters when building
3169         the trustdb, and make sure that the version record update was
3170         successful.
3171         (init_trustdb): If the current parameters aren't what was used for
3172         building the trustdb, the trustdb is invalid.
3173
3174         * tbio.c (tdbio_db_matches_options): Update to work with new
3175         trustdbs.
3176
3177 2002-12-03  David Shaw  <dshaw@jabberwocky.com>
3178
3179         * tdbio.h, tdbio.c (tdbio_read_record, tdbio_write_record): Store
3180         trust model in the trustdb version record.
3181         (tdbio_update_version_record): New function to update version
3182         record values during a trustdb check or update.
3183         (tdbio_dump_record): Show trust model in dump.
3184
3185         * trustdb.c (validate_keys): Call tdbio_update_version_record on
3186         success so that the correct options are stored in the trustdb.
3187
3188         * options.h: rearrange trust models so that CLASSIC is 0 and
3189         OPENPGP is 1.
3190
3191         * options.h, g10.c (main), encode.c (write_pubkey_enc_from_list),
3192         pkclist.c (algo_available), revoke.c (gen_revoke): Add --pgp8
3193         mode.  This is basically identical to --pgp7 in all ways except
3194         that signing subkeys, v4 data sigs (including expiration), and SK
3195         comments are allowed.
3196
3197         * getkey.c (finish_lookup): Comment.
3198
3199         * main.h, keylist.c (reorder_keyblock), keyedit.c (keyedit_menu):
3200         Reorder user ID display in the --edit-key menu to match that of
3201         the --list-keys display.
3202
3203         * g10.c (add_notation_data): Fix initialization.
3204
3205 2002-12-01  David Shaw  <dshaw@jabberwocky.com>
3206
3207         * keyedit.c (menu_expire): Don't lose key flags when changing the
3208         expiration date of a subkey.  This is not the most optimal
3209         solution, but it is minimal change on the stable branch.
3210
3211         * main.h, keygen.c (do_copy_key_flags): New function to copy key
3212         flags, if any, from one sig to another.
3213         (do_add_key_expire): New function to add key expiration to a sig.
3214         (keygen_copy_flags_add_expire): New version of
3215         keygen_add_key_expire that also copies key flags.
3216         (keygen_add_key_flags_and_expire): Use do_add_key_expire.
3217
3218         * import.c (fix_hkp_corruption): Comment.
3219
3220 2002-11-25  Stefan Bellon  <sbellon@sbellon.de>
3221
3222         * plaintext.c (handle_plaintext) [__riscos__]: If nooutput is set,
3223         no filetype is needed obviously.
3224
3225 2002-11-24  David Shaw  <dshaw@jabberwocky.com>
3226
3227         * main.h, misc.c (default_cipher_algo, default_compress_algo):
3228         New.  Return the default algorithm by trying
3229         --cipher-algo/--compress-algo, then the first item in the pref
3230         list, then s2k-cipher-algo or ZIP.
3231
3232         * sign.c (sign_file, sign_symencrypt_file), encode.c
3233         (encode_simple, encode_crypt): Call default_cipher_algo and
3234         default_compress_algo to get algorithms.
3235
3236         * g10.c (main): Allow pref selection for compress algo with
3237         --openpgp.
3238
3239         * mainproc.c (proc_encrypted): Use --s2k-digest-algo for
3240         passphrase mangling rather than --digest-algo.
3241
3242         * sign.c (hash_for): If --digest-algo is not set, but
3243         --personal-digest-preferences is, then use the first hash
3244         algorithm in the personal list.  If the signing algorithm is DSA,
3245         then use the first 160-bit hash algorithm in the personal list.
3246         If --pgp2 is set and it's a v3 RSA key, use MD5.
3247
3248         * g10.c (main), keydb.c (keydb_add_resource,
3249         keydb_locate_writable): Rename --default-keyring as
3250         --primary-keyring.  Stefan wins the naming contest.
3251
3252 2002-11-23  David Shaw  <dshaw@jabberwocky.com>
3253
3254         * g10.c (add_notation_data): Disallow notation names that do not
3255         contain a '@', unless --expert is set.  This is to help prevent
3256         people from polluting the (as yet unused) IETF namespace.
3257
3258         * main.h: Comments about default algorithms.
3259
3260         * photoid.c (image_type_to_string): Comments about 3-letter file
3261         extensions.
3262
3263         * encode.c (encode_simple), passphrase.c (passphrase_to_dek),
3264         sign.c (sign_symencrypt_file): Use --s2k-digest-algo for
3265         passphrase mangling rather than --digest-algo.
3266
3267 2002-11-21  David Shaw  <dshaw@jabberwocky.com>
3268
3269         * keygen.c (keygen_set_std_prefs): Properly handle an empty
3270         preference string.
3271
3272         * misc.c (string_to_compress_algo): "none" is a bad choice since
3273         it conflicts with the "none" in setpref.
3274
3275 2002-11-14  David Shaw  <dshaw@jabberwocky.com>
3276
3277         * g10.c (main): Allow compression algorithm names as the argument
3278         to --compress-algo.  The old algorithm names still work for
3279         backwards compatibility.
3280
3281         * misc.c (string_to_compress_algo): Allow "none" as an alias for
3282         "uncompressed".
3283
3284 2002-11-13  Stefan Bellon  <sbellon@sbellon.de>
3285
3286         * getkey.c (get_pubkey_byfprint_fast): Fixed type incompatibility,
3287         was unsigned char instead of byte.
3288
3289 2002-11-13  David Shaw  <dshaw@jabberwocky.com>
3290
3291         * encode.c (encode_simple): Make sure that files larger than about
3292         4G use partial length encoding.  This is required because OpenPGP
3293         allows only for 32 bit length fields.  From Werner on stable
3294         branch.
3295
3296         * getkey.c (get_pubkey_direct): Renamed to...
3297         (get_pubkey_fast): this and made extern.
3298         (get_pubkey_byfprint_fast): New.  From Werner on stable branch.
3299
3300         * keydb.h, import.c (import_one): Use get_pubkey_fast instead of
3301         get_pubkey.  We don't need a merged key and actually this might
3302         lead to recursions.
3303         (revocation_present): Likewise for search by fingerprint.  From
3304         Werner on stable branch.
3305
3306         * g10.c (main): Try to create the trustdb even for non-colon-mode
3307         list-key operations.  This is required because getkey needs to
3308         know whether a a key is ultimately trusted.  From Werner on stable
3309         branch.
3310         
3311         * exec.c [__CYGWIN32__]: Keep cygwin separate from Mingw32;
3312         we don't need it here as it behaves more like a Posix system.
3313         From Werner on stable branch.
3314
3315         * passphrase.c (agent_get_passphrase): Ditto.  From Werner on
3316         stable branch.
3317
3318         * tdbio.c (MY_O_BINARY): Need binary mode with Cygwin.  From
3319         Werner on stable branch.
3320
3321         * g10.c, gpgv.c (main) [__CYGWIN32__]: Don't get the homedir from
3322         the registry.  From Werner on stable branch.
3323         
3324         * keyedit.c (show_key_with_all_names_colon): Make --with-colons
3325         --edit display match the validity and trust of --with-colons
3326         --list-keys.
3327
3328         * passphrase.c (agent_send_all_options): Fix compile warning.
3329
3330         * keylist.c (list_keyblock_colon): Validity for subkeys should
3331         match that of the primary key, and not that of the last user ID.
3332
3333         * getkey.c (merge_selfsigs): Revoked/expired/invalid primary keys
3334         carry these facts onto all their subkeys, but only after the
3335         subkey has a chance to be marked valid.  This is to fix an
3336         incorrect "invalid public key" error verifying a signature made by
3337         a revoked signing subkey, with a valid unrevoked primary key.
3338
3339 2002-11-09  Werner Koch  <wk@gnupg.org>
3340
3341         * passphrase.c (agent_send_all_options): Use tty_get_ttyname to
3342         get the default ttyname.
3343
3344 2002-11-07  David Shaw  <dshaw@jabberwocky.com>
3345
3346         * keyring.h, keyring.c (keyring_register_filename): Return the
3347         pointer if a given keyring is registered twice.
3348
3349         * keydb.h, keydb.c (keydb_add_resource): Use flags to indicate a
3350         default keyring.
3351         (keydb_locate_writable): Prefer the default keyring if possible.
3352
3353         * g10.c (main): Add --default-keyring option.
3354
3355 2002-11-06  David Shaw  <dshaw@jabberwocky.com>
3356
3357         * options.h, g10.c (main), trustdb.c (ask_ownertrust): Add
3358         --force-ownertrust option for debugging purposes.  This allows
3359         setting a whole keyring to a given trust during an
3360         --update-trustdb.  Not for normal use - it's just easier than
3361         hitting "4" all the time to test a large trustdb.
3362
3363         * pubkey-enc.c (get_session_key): With hidden recipients or try a
3364         given passphrase against all secret keys rather than trying all
3365         secret keys in turn.  Don't if --try-all-secrets or --status-fd is
3366         enabled.
3367
3368         * passphrase.c (passphrase_to_dek): Mode 1 means do a regular
3369         passphrase query, but don't prompt with the key info.
3370
3371         * seckey-cert.c (do_check, check_secret_key): A negative ask count
3372         means to enable passphrase mode 1.
3373
3374         * keydb.h, getkey.c (enum_secret_keys): Add flag to include
3375         secret-parts-missing keys (or not) in the list.
3376
3377 2002-11-05  David Shaw  <dshaw@jabberwocky.com>
3378
3379         * keyserver.c (keyserver_search_prompt): When --with-colons is
3380         enabled, don't try and fit the search output to the screen size -
3381         just dump the whole list.
3382
3383 2002-11-04  David Shaw  <dshaw@jabberwocky.com>
3384
3385         * keyserver.c (keyserver_search_prompt): When --with-colons is
3386         enabled, just dump the raw keyserver protocol to stdout and don't
3387         print the menu.
3388
3389         * keyserver.c (show_prompt): Don't show a prompt when command-fd
3390         is being used.
3391
3392         * trustdb.c (trust_model_string, check_trustdb, update_trustdb,
3393         validate_one_keyblock): It's not clear what a trustdb rebuild or
3394         check means with a trust model other than "classic" or "openpgp",
3395         so disallow this.
3396
3397 2002-11-03  David Shaw  <dshaw@jabberwocky.com>
3398
3399         * options.h, g10.c (main): Add --trust-model option.  Current
3400         models are "openpgp" which is classic+trustsigs, "classic" which
3401         is classic only, and "always" which is the same as the current
3402         option --always-trust (which still works).  Default is "openpgp".
3403
3404         * trustdb.c (validate_one_keyblock): Use "openpgp" trust model to
3405         enable trust sigs.
3406
3407         * gpgv.c (main), mainproc.c (check_sig_and_print), pkclist.c
3408         (do_we_trust, do_we_trust_pre, check_signatures_trust): Use new
3409         --trust-model option in place of --always-trust.
3410
3411         * keyedit.c (sign_mk_attrib, trustsig_prompt, sign_uids,
3412         keyedit_menu): Prompt for and create a trust signature with
3413         "tsign".  This is functional, but needs better UI text.
3414
3415         * build-packet.c (build_sig_subpkt): Able to build trust and
3416         regexp subpackets.
3417
3418         * pkclist.c (do_edit_ownertrust): Comment.
3419
3420 2002-11-02  David Shaw  <dshaw@jabberwocky.com>
3421
3422         * keygen.c (set_one_pref, keygen_set_std_prefs): Allow using the
3423         full algorithm name (CAST5, SHA1) rather than the short form (S3,
3424         H2).
3425
3426         * main.h, keygen.c (keygen_get_std_prefs), keyedit.c
3427         (keyedit_menu): Return and use a fake uid packet rather than a
3428         string since we already have a nice parser/printer in
3429         keyedit.c:show_prefs.
3430
3431         * main.h, misc.c (string_to_compress_algo): New.
3432
3433 2002-11-01  David Shaw  <dshaw@jabberwocky.com>
3434
3435         * g10.c (main): Add --no-throw-keyid.
3436
3437         * keydb.h, encode.c (write_pubkey_enc_from_list), g10.c (main),
3438         pkclist.c (build_pk_list): Add --hidden-recipient (-R) and
3439         --hidden-encrypt-to, which do a single-user variation on
3440         --throw-keyid.  The "hide this key" flag is carried in bit 0 of
3441         the pk_list flags field.
3442
3443         * keyserver.c (parse_keyrec): Fix shadowing warning.
3444
3445 2002-10-31  Stefan Bellon  <sbellon@sbellon.de>
3446
3447         * compress.c (init_compress) [__riscos__]: Use
3448         riscos_load_module() to load ZLib module.
3449
3450         * g10.c (main) [__riscos__]: Renames due to changes in riscos.c
3451         (e.g. prefixes all RISC OS specific functions with riscos_*).
3452         * photoid.c (show_photos) [__riscos__]: Likewise.
3453         * signal.c (got_fatal_signal) [__riscos__]: Likewise.
3454
3455         * trustdb.c (check_regexp) [__riscos__]: Branch to RISC OS RegEx
3456         handling.
3457
3458 2002-10-31  David Shaw  <dshaw@jabberwocky.com>
3459
3460         * build-packet.c (do_plaintext), encode.c (encode_sesskey,
3461         encode_simple, encode_crypt), sign.c (write_plaintext_packet): Use
3462         wipememory() instead of memset() to wipe sensitive memory as the
3463         memset() might be optimized away.
3464
3465 2002-10-30  David Shaw  <dshaw@jabberwocky.com>
3466
3467         * trustdb.c (check_regexp): Modern regexps require REG_EXTENDED.
3468
3469 2002-10-29  David Shaw  <dshaw@jabberwocky.com>
3470
3471         * packet.h, trustdb.h, trustdb.c (trust_string): New.  Return a
3472         string like "fully trusted", "marginally trusted", etc.
3473         (get_min_ownertrust): New.  Return minimum ownertrust.
3474         (update_min_ownertrust): New.  Set minimum ownertrust.
3475         (check_regexp): New.  Check a regular epression against a user ID.
3476         (ask_ownertrust): Allow specifying a minimum value.
3477         (get_ownertrust_info): Follow the minimum ownertrust when
3478         returning a letter.
3479         (clear_validity): Remove minimum ownertrust when a key becomes
3480         invalid.
3481         (release_key_items): Release regexp along with the rest of the
3482         info.
3483         (validate_one_keyblock, validate_keys): Build a trust sig chain
3484         while validating.  Call check_regexp for regexps.  Use the minimum
3485         ownertrust if the user does not specify a genuine ownertrust.
3486
3487         * pkclist.c (do_edit_ownertrust): Only allow user to select a
3488         trust level greater than the minimum value.
3489
3490         * parse-packet.c (can_handle_critical): Can handle critical trust
3491         and regexp subpackets.
3492
3493         * trustdb.h, trustdb.c (clear_ownertrusts), delkey.c
3494         (do_delete_key), import.c (import_one): Rename clear_ownertrust to
3495         clear_ownertrusts and have it clear the min_ownertrust value as
3496         well.
3497
3498         * keylist.c (list_keyblock_print): Indent uid to match pub and
3499         sig.
3500
3501         * keyedit.c (print_and_check_one_sig, show_key_and_fingerprint,
3502         menu_addrevoker), keylist.c (list_keyblock_print,
3503         print_fingerprint): Show "T" or the trust depth for trust
3504         signatures, and add spaces to some strings to make room for it.
3505
3506         * packet.h, parse-packet.c (dump_sig_subpkt, parse_one_sig_subpkt,
3507         parse_signature): Parse trust signature values.
3508
3509         * tdbio.h, tdbio.c (tdbio_read_record, tdbio_write_record):
3510         Reserve a byte for the minimum ownertrust value (for use with
3511         trust signatures).
3512
3513 2002-10-29  Stefan Bellon  <sbellon@sbellon.de>
3514
3515         * build-packet.c (calc_plaintext, do_plaintext): Removed RISC OS
3516         specific filetype parts (it's now done in make_basename()).
3517
3518         * plaintext.c (handle_plaintext): Tidied up RISC OS specific
3519         filetype parts.
3520
3521         * encode.c (encode_simple, encode_crypt): Added argument to
3522         make_basename() call.
3523
3524         * sign.c (write_plaintext_packet): Added argument to
3525         make_basename() call.
3526
3527 2002-10-28  Stefan Bellon  <sbellon@sbellon.de>
3528
3529         * build-packet.c (calc_plaintext, do_plaintext): Added filetype
3530         handling for RISC OS' file types.
3531
3532         * plaintext.c (handle_plaintext) [__riscos__]: Added filetype
3533         handling for RISC OS' file types.
3534
3535 2002-10-23  David Shaw  <dshaw@jabberwocky.com>
3536
3537         * main.h, import.c (sec_to_pub_keyblock, import_secret_one,
3538         parse_import_options), g10.c (main): New import-option
3539         "convert-sk-to-pk" to convert a secret key into a public key
3540         during import.  It is on by default.
3541
3542 2002-10-23  Werner Koch  <wk@gnupg.org>
3543
3544         * pubkey-enc.c (get_it): Fix segv, test for revoked only when PK
3545         has been assigned.
3546
3547 2002-10-18  Timo Schulz  <ts@winpt.org>
3548
3549         * keylist.c: (print_pubkey_info): New.
3550         (print_seckey_info): New.
3551         * main.h: Prototypes for the new functions.       
3552         * delkey.c (do_delete_key): Use it here.
3553         * revoke.c (gen_desig_revoke): Ditto.
3554         
3555 2002-10-17  Werner Koch  <wk@gnupg.org>
3556
3557         * pkclist.c (do_edit_ownertrust): Show all user IDs.  This should
3558         be enhanced to also show the current trust level.  Suggested by
3559         Florian Weimer.
3560
3561 2002-10-17  David Shaw  <dshaw@jabberwocky.com>
3562
3563         * g10.c (main): Handle --strict and --no-strict from the command
3564         line before the options file is loaded.
3565
3566 2002-10-15  David Shaw  <dshaw@jabberwocky.com>
3567
3568         * g10.c (main): Disable --textmode when encrypting (symmetric or
3569         pk) in --pgp2 mode as PGP 2 can't handle the unknown length
3570         literal packet.  Reported by Michael Richardson.
3571
3572 2002-10-14  David Shaw  <dshaw@jabberwocky.com>
3573
3574         * keyserver-internal.h, keyserver.c (print_keyrec, parse_keyrec,
3575         show_prompt, keyserver_search_prompt, keyserver_spawn): Go to
3576         version 1 of the keyserver protocol.  This is a better design,
3577         similar to --with-colons, that allows for keys with multiple user
3578         IDs rather than using multiple keys.  It also matches the machine
3579         readable pksd format.  Also use a prettier --search-keys listing
3580         format that can fill different size windows (currently set at 24
3581         lines).
3582
3583 2002-10-12  Werner Koch  <wk@gnupg.org>
3584
3585         * keygen.c (print_status_key_created): New.
3586         (do_generate_keypair): Use it to print the fingerprint.
3587         (generate_subkeypair): Likewise.
3588
3589 2002-10-11  David Shaw  <dshaw@jabberwocky.com>
3590
3591         * keyedit.c (menu_addrevoker): Properly back out if the signature
3592         fails.  Also, do not allow appointing the same revoker twice, and
3593         report ALREADY_SIGNED if the user tries it.
3594
3595 2002-10-07  David Shaw  <dshaw@jabberwocky.com>
3596
3597         * import.c (import_keys_internal): Missed one s/inp/inp2/.
3598
3599         * keylist.c (print_capabilities): Properly indicate per-key
3600         capabilities of sign&encrypt primary keys that have
3601         secret-parts-missing (i.e. no capabilities at all)
3602
3603         * mainproc.c (symkey_decrypt_sesskey): Fix compiler warning.
3604
3605 2002-10-04  David Shaw  <dshaw@jabberwocky.com>
3606
3607         * getkey.c (get_pubkey_direct): Don't cache keys retrieved via
3608         this function as they may not have all their fields filled in.
3609
3610         * sig-check.c (signature_check2): Use new is_primary flag to check
3611         rather than comparing main_keyid with keyid as this still works in
3612         the case of a not fully filled in pk.
3613
3614 2002-10-04  Werner Koch  <wk@gnupg.org>
3615
3616         * import.c (import_keys_internal): s/inp/inp2/ to avoid shadowing
3617         warning.
3618
3619         * passphrase.c (agent_get_passphrase): Fixed signed/unsigned char
3620         problem in %-escaping.  Noted by Ingo Klöcker.
3621
3622 2002-10-03  David Shaw  <dshaw@jabberwocky.com>
3623
3624         * options.h, g10.c (main): Add --strict and --no-strict to switch
3625         the log_warning severity level from info to error.
3626
3627         * keylist.c (print_capabilities): Secret-parts-missing keys should
3628         show that fact in the capabilities, and only primary signing keys
3629         can certify other keys.
3630
3631         * packet.h, parse_packet.c (parse_key): Add is_primary flag for
3632         public keys (it already exists for secret keys).
3633
3634 2002-10-02  David Shaw  <dshaw@jabberwocky.com>
3635
3636         * import.c (import_secret_one): Check for an illegal (>110)
3637         protection cipher when importing a secret key.
3638
3639         * keylist.c (list_keyblock_print): Show a '#' for a
3640         secret-parts-missing key.
3641
3642         * parse_packet.c (parse_key): Some comments.
3643
3644         * revoke.c (gen_revoke): Remove some debugging code.
3645
3646         * trustdb.c (verify_own_keys): Make trusted-key a non-deprecated
3647         option again.
3648
3649         * seckey-cert.c (do_check): Don't give the IDEA warning unless the
3650         cipher in question is in fact IDEA.
3651
3652 2002-10-01  David Shaw  <dshaw@jabberwocky.com>
3653
3654         * import.c (import_one): Make sure that a newly imported key
3655         starts with a clean ownertrust.
3656
3657 2002-10-01  Werner Koch  <wk@gnupg.org>
3658
3659         * getkey.c (get_pubkey_direct): New.
3660         (merge_selfsigs_main): Use it here to look for an ultimately
3661         trusted key.  Using the full get_pubkey might lead to an
3662         infinitive recursion.
3663
3664 2002-09-29  David Shaw  <dshaw@jabberwocky.com>
3665
3666         * keyserver.c (parse_keyserver_uri): Force the keyserver URI
3667         scheme to lowercase to be case-insensitive.
3668
3669 2002-09-28  David Shaw  <dshaw@jabberwocky.com>
3670
3671         * export.c (do_export_stream): Comment.
3672
3673         * sig-check.c (check_key_signature2): Properly handle a
3674         non-designated revocation import.
3675
3676 2002-09-26  Werner Koch  <wk@gnupg.org>
3677
3678         * g10.c (set_homedir): New. Changed all direct assignments to use
3679         this.
3680         * gpgv.c (set_homedir): Ditto.
3681
3682 2002-09-25  David Shaw  <dshaw@jabberwocky.com>
3683
3684         * Makefile.am: Link gpg with EGDLIBS (i.e. NETLIBS) as EGD uses
3685         sockets.  Remove the old NETLIBS variable since the keyserver
3686         stuff is no longer internal.
3687
3688 2002-09-24  David Shaw  <dshaw@jabberwocky.com>
3689
3690         * import.c (import_keys_stream): Fix compiler type warning.
3691
3692         * keyring.c (keyring_rebuild_cache), sig-check.c
3693         (check_key_signature2), import.c (import, chk_self_sigs): Minor
3694         language cleanups.
3695
3696 2002-09-23  Stefan Bellon  <sbellon@sbellon.de>
3697
3698         * main.h: Introduced fast-import as import option. Removed
3699         fast as separate option from prototypes.
3700         * import.c (parse_import_options): Added fast-import option.
3701         (import_*): Removed fast as separate option.
3702         * g10.c (main): Added option fast-import, removed old fast
3703         as separate argument.
3704         * keyserver.c (keyserver_spawn): Removed old fast as separate
3705         argument.
3706
3707 2002-09-22  Stefan Bellon  <sbellon@sbellon.de>
3708
3709         * import.c (import_keys, import_keys_stream,
3710         import_keys_internal): Added trustdb update/check to key import if
3711         not fast-import and interactive set/no-auto-check-trustdb unset.
3712         Avoided function clone by introducing import_keys_internal.
3713
3714 2002-09-19  David Shaw  <dshaw@jabberwocky.com>
3715
3716         * keyserver.c (keyserver_spawn): Properly handle line truncation.
3717         Don't leak memory (~10-20 bytes) on searches.
3718         (keyserver_search_prompt): Cleanup.
3719
3720         * keylist.c (list_keyblock_colon): Show 1F direct key signatures
3721         in --with-colons listing.
3722
3723 2002-09-16  David Shaw  <dshaw@jabberwocky.com>
3724
3725         * keyedit.c (menu_addrevoker): The direct key signature for
3726         revocation keys must be at least v4 to carry the revocation key
3727         subpacket.  Add a PGP 2.x warning for revocation keys.
3728
3729 2002-09-14  David Shaw  <dshaw@jabberwocky.com>
3730
3731         * g10.c (check_permissions): Rearrange strings to make translating
3732         easier (don't incorporate string parts).
3733
3734         * keyedit.c (sign_uids): Make strings translatable.
3735
3736         * sig-check.c (check_key_signature2): Make string translatable.
3737
3738 2002-09-13  David Shaw  <dshaw@jabberwocky.com>
3739
3740         * getkey.c (check_revocation_keys): Move....
3741         * main.h, sig-check.c (check_revocation_keys): to here.  Also
3742         return the signature_check error code rather than 0/1 and cache
3743         the sig result.
3744
3745         * sig-check.c (check_key_signature2): Divert to
3746         check_revocation_keys if a revocation sig is made by someone other
3747         than the pk owner.
3748
3749         * getkey.c (merge_selfsigs_main): Tidy.
3750
3751 2002-09-13  Werner Koch  <wk@gnupg.org>
3752
3753         * g10.c (main) [__MINGW32__]: Activate oLoadExtension.
3754
3755 2002-09-12  David Shaw  <dshaw@jabberwocky.com>
3756
3757         * Makefile.am, hkp.c, hkp.h, keyserver.c (keyserver_work): Remove
3758         internal HKP support.
3759
3760         * keyserver.c (keyserver_spawn): Remove whitespace after keyserver
3761         commands.
3762
3763 2002-09-10  David Shaw  <dshaw@jabberwocky.com>
3764
3765         * exec.c (expand_args): Remove loop left over from earlier
3766         implementation.
3767         (exec_write): Missed one tick.
3768
3769 2002-09-10  Werner Koch  <wk@gnupg.org>
3770
3771         * g10.c, options.h: Removed option --emulate-checksum-bug.
3772         * misc.c (checksum_u16_nobug): Removed.
3773         (checksum_u16): Removed the bug emulation.
3774         (checksum_mpi): Ditto.
3775         (checksum_mpi_counted_nbits): Removed and replaced all calls
3776         with checksum_mpi.
3777
3778         * parse-packet.c (read_protected_v3_mpi): New.
3779         (parse_key): Use it here to store it as an opaque MPI.
3780         * seckey-cert.c (do_check): Changed the v3 unprotection to the new
3781         why to store these keys.
3782         (protect_secret_key): Likewise.
3783         * build-packet.c (do_secret_key): And changed the writing.
3784
3785         * tdbio.c (tdbio_set_dbname, open_db): Use new macro MY_O_BINARY
3786         to avoid silly ifdefs.
3787         (open_db): Fallback to RDONLY so that gpg may be used from a
3788         RO-medium.
3789
3790         * encode.c (encode_simple): Make sure we don't use an ESK packet
3791         when we don't have a salt in the S2K.
3792
3793         * misc.c (pct_expando) <case f>: Make sure that LEN is initialized.
3794
3795         * exec.c (exec_finish): Use ticks to denote filenames in messages.
3796         (make_tempdir, exec_write): Changed format of messages.
3797
3798         * keyserver.c (print_keyinfo): Release USERID in on error.
3799         (keyserver_work) [!DISABLE_KEYSERVER_HELPERS]: Exclude the unused
3800         code.
3801
3802 2002-09-09  Werner Koch  <wk@gnupg.org>
3803
3804         * parse-packet.c (make_attribute_uidname): Add new ar MAX_NAMELEN
3805         for sanity checks.  Changed both callers. Limit the size of an %s.
3806
3807         * options.skel: Comment lock-once out, so that this file does not
3808         change anything when copied to a new home directory.
3809         * openfile.c (try_make_homedir): Don't exit after copying the
3810         option skeleton.
3811
3812         * options.h: Don't use a comma when declaring variables over more
3813         than one line.
3814
3815         * mainproc.c (symkey_decrypt_sesskey): Check length of the session
3816         key.
3817
3818         * hkp.c (dehtmlize): Use ascii_tolower to protect against weird
3819         locales.  Cast the argument for isspace for the sake of broken
3820         HP/UXes.
3821         (parse_hkp_index): s/ascii_memcasecmp/ascii_strncasecmp/.
3822
3823         * g10.c: Removed option --emulate-3des-s2k-bug.
3824
3825         * passphrase.c (hash_passphrase): Was used here.
3826
3827         * export.c (parse_export_options)
3828         * keyserver.c (parse_keyserver_options)
3829         * import.c (parse_import_options)
3830         * g10.c (check_permissions): s/ascii_memcasecmp/ascii_strncasecmp/.
3831
3832 2002-09-09  David Shaw  <dshaw@jabberwocky.com>
3833
3834         * g10.c (add_group): Use '=' to separate group name from group
3835         members.  Use a better error message for when no = is found.
3836
3837         * hkp.c (hkp_export): Use CRLF in headers.
3838
3839 2002-09-03  David Shaw  <dshaw@jabberwocky.com>
3840
3841         * mainproc.c (print_pkenc_list): Don't increment the error counter
3842         when printing the list of keys a message was encrypted to.  This
3843         would make gpg give a non-zero exit code even for completely valid
3844         messages if the message was encrypted to more than one key that
3845         the user owned.
3846
3847 2002-09-02  Werner Koch  <wk@gnupg.org>
3848
3849         * g10.c (main): Try to set a default character set.  Print the
3850         used one in verbosity level 3.
3851         * gpgv.c (main): Try to set a default character set.
3852
3853         * status.c, status.h (STATUS_IMPORT_OK): New.
3854         * import.c (import_one,import_secret_one): Print new status.
3855
3856 2002-08-30  David Shaw  <dshaw@jabberwocky.com>
3857
3858         * pkclist.c (build_pk_list): Add new status code to indicate an
3859         untrusted user.  This (or a disabled key) fail with "unavailable
3860         pubkey" (G10ERR_UNU_PUBKEY).
3861
3862         * pkclist.c (build_pk_list): Fail if any recipient keys are
3863         unusable.
3864
3865         * options.skel: The PGP LDAP keyserver is back.  Use MIT keyserver
3866         as a sample rather than cryptnet as cryptnet does not support
3867         searching yet.
3868
3869         * keyedit.c (show_key_with_all_names): Fix error message
3870         (preferences are userid/selfsig and not key specific).
3871
3872 2002-08-30  Werner Koch  <wk@gnupg.org>
3873
3874         * pkclist.c (do_we_trust_pre): Changed the wording of a warning.
3875
3876         * encode.c (encode_simple,encode_crypt): Use new style CTB for
3877         compressssed packets when using MDC.  We need to do this so that
3878         concatenated messages are properly decrypted.  Old style
3879         compression assumes that it is the last packet; given that we
3880         can't determine the length in advance, the uncompressor does not
3881         know where to start.  Actually we should use the new CTB always
3882         but this would break PGP 2 compatibility.
3883
3884         * parse-packet.c (parse): Special treatment for new style CTB
3885         compressed packets.
3886
3887         * build-packet.c (do_mdc): Removed. Was not used.
3888         (do_encrypted_mdc): Count in the version number and the MDC packet.
3889
3890 2002-08-28  David Shaw  <dshaw@jabberwocky.com>
3891
3892         * sig-check.c (do_check_messages, do_check): Show keyid in error
3893         messages.
3894
3895         * keyserver.c (print_keyinfo): More readable key listings for
3896         --search-keys responses.
3897
3898 2002-08-26  David Shaw  <dshaw@jabberwocky.com>
3899
3900         * hkp.c (parse_hkp_index, dehtmlize): Move HTML functionality into
3901         new "dehtmlize" function.  Remove HTML before trying to parse each
3902         line from the keyserver.  If the keyserver provides key type
3903         information in the listing, use it.
3904
3905 2002-08-23  David Shaw  <dshaw@jabberwocky.com>
3906
3907         * sig-check.c (do_check, do_check_messages): Emit the usual sig
3908         warnings even for cached sigs.  This also serves to protect
3909         against missing a sig expiring while cached.
3910
3911         * getkey.c (merge_selfsigs_main): Don't check UID self-sigs twice.
3912
3913 2002-08-22  David Shaw  <dshaw@jabberwocky.com>
3914
3915         * import.c (clean_subkeys, chk_self_sigs): Merge clean_subkeys
3916         into chk_self_sigs.  This improves efficiency as the same
3917         signatures are not checked multiple times.  Clarify when a subkey
3918         is revoked (any revocation signature, even if it is dated before
3919         the binding signature).
3920
3921         * getkey.c (merge_selfsigs_subkey): Subkey revocation comments.
3922
3923         * keylist.c (list_one): Stats are only for public key listings.
3924
3925         * g10.c (main), options.skel: Default should be include-revoked
3926         for keyserver operations.
3927
3928 2002-08-21  Werner Koch  <wk@gnupg.org>
3929
3930         * import.c (import_print_stats): Print new non_imported counter
3931         which is currently not used because we terminate on errors.
3932
3933 2002-08-20  David Shaw  <dshaw@jabberwocky.com>
3934
3935         * options.skel: Document no-include-attributes for
3936         keyserver-options.
3937
3938         * keylist.c, keyedit.c, keyserver.c, sign.c: Some TODOs and
3939         comments.
3940
3941         * export.c (do_export_stream): Fix noop bug in exporting sensitive
3942         revocation keys.
3943
3944         * pkclist.c (do_edit_ownertrust): Comment out the option for
3945         showing trust paths until it can be implemented.
3946
3947 2002-08-19  Werner Koch  <wk@gnupg.org>
3948
3949         * getkey.c (get_user_id_native): Renamed to ..
3950         (get_user_id_printable): this.  Filter out all dangerous
3951         characters.  Checked all usages.
3952         (get_user_id_string_native): Renamed to..
3953         (get_user_id_string_printable): this.  Filter out all dangerous
3954         characters.  Checked all usages.
3955         * keyedit.c (show_basic_key_info): New.
3956         * keylist.c (print_fingerprint): New mode 3.
3957         * import.c (import_one): Use new function to display the user ID.
3958
3959 2002-08-16  Timo Schulz  <ts@winpt.org>
3960
3961         * g10.c (main): Enable opt.interactive.
3962
3963         * import.c (import_one): Ask the user if the key shall be
3964         imported when the interactive mode is used. Useful to extract
3965         selected keys from a file.
3966         
3967 2002-08-16  Werner Koch  <wk@gnupg.org>
3968
3969         * seckey-cert.c: Workaround to allow decryption of v3 keys created
3970         with a bug in the mpi_get_secure_buffer.
3971
3972 2002-08-14  David Shaw  <dshaw@jabberwocky.com>
3973
3974         * hkp.c (parse_hkp_index): Properly handle really large keys
3975         (5 digit key length) in HKP searches.
3976
3977 2002-08-13  David Shaw  <dshaw@jabberwocky.com>
3978
3979         * encode.c (encode_simple): Fix problem with using compression
3980         algo 2 and symmetric compressed files.
3981
3982         * encode.c (encode_simple, encode_crypt): If we are not using a
3983         MDC, compress even if a file is already compressed.  This is to
3984         help against the chosen ciphertext attack.
3985
3986         * pkclist.c (select_algo_from_prefs): Fix requested algorithm bug
3987         so the request succeeds even if the requested algorithm is not the
3988         first found.
3989
3990         * cipher.c (write_header), encode.c (use_mdc, encode_simple,
3991         encode_crypt, encrypt_filter), g10.c (main): Be more eager to use
3992         a MDC.  We use a MDC if the keys directly support it, if the keys
3993         list AES (any) or TWOFISH anywhere in the prefs, or if the cipher
3994         chosen does not have a 64 bit blocksize.
3995
3996 2002-08-08  David Shaw  <dshaw@jabberwocky.com>
3997
3998         * options.skel: Some language tweaks, and remove the
3999         load-extension section for random gatherers.
4000
4001         * keyring.c (create_tmp_file, rename_tmp_file): Create tmp files
4002         with user-only permissions, but restore the original permissions
4003         if the user has something special set.
4004
4005         * openfile.c (copy_options_file): Create new options file
4006         (gpg.conf) with user-only permissions.
4007
4008         * keydb.c (keydb_add_resource): Create new keyrings with user-only
4009         permissions.
4010
4011         * tdbio.c (tdbio_set_dbname): Create new trustdbs with user-only
4012         permissions.
4013
4014 2002-08-07  David Shaw  <dshaw@jabberwocky.com>
4015
4016         * sig-check.c (signature_check2): Sanity check that the md has a
4017         context for the hash that the sig is expecting.  This can happen
4018         if a onepass sig header does not match the actual sig, and also if
4019