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