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