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