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