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