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