* keydb.h, getkey.c (key_byname): Flag to enable or disable including
[gnupg.git] / g10 / ChangeLog
1 2002-12-26  David Shaw  <dshaw@jabberwocky.com>
2
3         * keydb.h, getkey.c (key_byname): Flag to enable or disable
4         including disabled keys.  Keys specified via keyid (i.e. 0x...)
5         are always included.
6
7         * getkey.c (get_pubkey_byname, get_seckey_byname2,
8         get_seckey_bynames), keyedit.c (keyedit_menu, menu_addrevoker):
9         Include disabled keys in these functions.
10
11         * pkclist.c (build_pk_list): Do not include disabled keys for -r
12         or the key prompt.  Do include disabled keys for the default key
13         and --encrypt-to.
14
15         * trustdb.h, trustdb.c (is_disabled): New skipfnc for skipping
16         disabled keys.
17
18         * gpgv.c (is_disabled): Stub.
19
20         * keygen.c (keygen_add_key_expire): Properly handle updating a key
21         expiration to a no-expiration value.
22
23         * keyedit.c (enable_disable_key): Comment.
24
25         * import.c (import_one): When in interactive mode and --verbose,
26         don't repeat some key information twice.
27
28 2002-12-22  Timo Schulz  <ts@winpt.org>
29         
30         * import.c (print_import_check): New.
31         (import_one): Use it here.
32         Use merge_keys_and_selfsig in the interactive mode to avoid
33         wrong key information.
34         * status.h: Add new status code.
35         * status.c: Ditto.
36         
37 2002-12-13  David Shaw  <dshaw@jabberwocky.com>
38
39         * pkclist.c (do_we_trust): Tweak language to refer to the "named
40         user" rather than "owner".  Noted by Stefan Bellon.
41
42         * trustdb.h, trustdb.c (trustdb_pending_check): New function to
43         check if the trustdb needs a check.
44
45         * import.c (import_keys_internal): Used here so we don't rebuild
46         the trustdb if it is still clean.
47         (import_one, chk_self_sigs): Only mark trustdb dirty if the key
48         that is being imported has any sigs other than self-sigs.
49         Suggested by Adrian von Bidder.
50
51         * options.skel: Include the required '=' sign in the sample
52         'group' option.  Noted by Stefan Bellon.
53
54         * import.c (chk_self_sigs): Don't try and check a subkey as if it
55         was a signature.
56
57 2002-12-11  David Shaw  <dshaw@jabberwocky.com>
58
59         * tdbio.c (tdbio_read_record, tdbio_write_record): Compact the
60         RECTYPE_TRUST records a bit.
61
62         * g10.c (main): Comment out --list-trust-path until it can be
63         implemented.
64
65         * import.c (import_one): Warn when importing an Elgamal primary
66         that this may take some time (to verify self-sigs).
67         (chk_self_sigs): Try and cache all self-sigs so the keyblock is
68         written to the keyring with a good rich cache.
69
70         * keygen.c (ask_algo): Make the Elgamal sign+encrypt warning
71         stronger, and remove the RSA sign+encrypt warning.
72
73 2002-12-06  Stefan Bellon  <sbellon@sbellon.de>
74
75         * options.h: Fixed typo (mangle_dos_names instead of
76         mangle_dos_filenames).
77
78 2002-12-05  Werner Koch  <wk@gnupg.org>
79
80         * g10.c: New options --[no-]mangle-dos-filenames.
81         * options.h (opt): Added mangle-dos-filenames.
82         * openfile.c (open_outfile) [USE_ONLY_8DOT3]: Truncate the
83         filename only when this option is set; this is the default.
84
85 2002-12-04  David Shaw  <dshaw@jabberwocky.com>
86
87         * main.h, keyedit.c, keygen.c: Back out previous (2002-12-01)
88         change.  Minimal isn't always best.
89
90         * sign.c (update_keysig_packet): Use the current time rather then
91         a modification of the original signature time.  Make sure that
92         this doesn't cause a time warp.
93
94         * keygen.c (keygen_add_key_expire): Properly handle a key
95         expiration date in the past (use a duration of 0).
96
97         * keyedit.c (menu_expire): Use update_keysig_packet so any sig
98         subpackets are maintained during the update.
99
100         * build-packet.c (build_sig_subpkt): Mark sig expired or unexpired
101         when the sig expiration subpacket is added.
102         (build_sig_subpkt_from_sig): Handle making an expiration subpacket
103         from a sig that has already expired (use a duration of 0).
104
105         * packet.h, sign.c (update_keysig_packet), keyedit.c
106         (menu_set_primary_uid, menu_set_preferences): Add ability to issue
107         0x18 subkey binding sigs to update_keysig_packet and change all
108         callers.
109
110         * trustdb.c (validate_keys): Show trust parameters when building
111         the trustdb, and make sure that the version record update was
112         successful.
113         (init_trustdb): If the current parameters aren't what was used for
114         building the trustdb, the trustdb is invalid.
115
116         * tbio.c (tdbio_db_matches_options): Update to work with new
117         trustdbs.
118
119 2002-12-03  David Shaw  <dshaw@jabberwocky.com>
120
121         * tdbio.h, tdbio.c (tdbio_read_record, tdbio_write_record): Store
122         trust model in the trustdb version record.
123         (tdbio_update_version_record): New function to update version
124         record values during a trustdb check or update.
125         (tdbio_dump_record): Show trust model in dump.
126
127         * trustdb.c (validate_keys): Call tdbio_update_version_record on
128         success so that the correct options are stored in the trustdb.
129
130         * options.h: rearrange trust models so that CLASSIC is 0 and
131         OPENPGP is 1.
132
133         * options.h, g10.c (main), encode.c (write_pubkey_enc_from_list),
134         pkclist.c (algo_available), revoke.c (gen_revoke): Add --pgp8
135         mode.  This is basically identical to --pgp7 in all ways except
136         that signing subkeys, v4 data sigs (including expiration), and SK
137         comments are allowed.
138
139         * getkey.c (finish_lookup): Comment.
140
141         * main.h, keylist.c (reorder_keyblock), keyedit.c (keyedit_menu):
142         Reorder user ID display in the --edit-key menu to match that of
143         the --list-keys display.
144
145         * g10.c (add_notation_data): Fix initialization.
146
147 2002-12-01  David Shaw  <dshaw@jabberwocky.com>
148
149         * keyedit.c (menu_expire): Don't lose key flags when changing the
150         expiration date of a subkey.  This is not the most optimal
151         solution, but it is minimal change on the stable branch.
152
153         * main.h, keygen.c (do_copy_key_flags): New function to copy key
154         flags, if any, from one sig to another.
155         (do_add_key_expire): New function to add key expiration to a sig.
156         (keygen_copy_flags_add_expire): New version of
157         keygen_add_key_expire that also copies key flags.
158         (keygen_add_key_flags_and_expire): Use do_add_key_expire.
159
160         * import.c (fix_hkp_corruption): Comment.
161
162 2002-11-25  Stefan Bellon  <sbellon@sbellon.de>
163
164         * plaintext.c (handle_plaintext) [__riscos__]: If nooutput is set,
165         no filetype is needed obviously.
166
167 2002-11-24  David Shaw  <dshaw@jabberwocky.com>
168
169         * main.h, misc.c (default_cipher_algo, default_compress_algo):
170         New.  Return the default algorithm by trying
171         --cipher-algo/--compress-algo, then the first item in the pref
172         list, then s2k-cipher-algo or ZIP.
173
174         * sign.c (sign_file, sign_symencrypt_file), encode.c
175         (encode_simple, encode_crypt): Call default_cipher_algo and
176         default_compress_algo to get algorithms.
177
178         * g10.c (main): Allow pref selection for compress algo with
179         --openpgp.
180
181         * mainproc.c (proc_encrypted): Use --s2k-digest-algo for
182         passphrase mangling rather than --digest-algo.
183
184         * sign.c (hash_for): If --digest-algo is not set, but
185         --personal-digest-preferences is, then use the first hash
186         algorithm in the personal list.  If the signing algorithm is DSA,
187         then use the first 160-bit hash algorithm in the personal list.
188         If --pgp2 is set and it's a v3 RSA key, use MD5.
189
190         * g10.c (main), keydb.c (keydb_add_resource,
191         keydb_locate_writable): Rename --default-keyring as
192         --primary-keyring.  Stefan wins the naming contest.
193
194 2002-11-23  David Shaw  <dshaw@jabberwocky.com>
195
196         * g10.c (add_notation_data): Disallow notation names that do not
197         contain a '@', unless --expert is set.  This is to help prevent
198         people from polluting the (as yet unused) IETF namespace.
199
200         * main.h: Comments about default algorithms.
201
202         * photoid.c (image_type_to_string): Comments about 3-letter file
203         extensions.
204
205         * encode.c (encode_simple), passphrase.c (passphrase_to_dek),
206         sign.c (sign_symencrypt_file): Use --s2k-digest-algo for
207         passphrase mangling rather than --digest-algo.
208
209 2002-11-21  David Shaw  <dshaw@jabberwocky.com>
210
211         * keygen.c (keygen_set_std_prefs): Properly handle an empty
212         preference string.
213
214         * misc.c (string_to_compress_algo): "none" is a bad choice since
215         it conflicts with the "none" in setpref.
216
217 2002-11-14  David Shaw  <dshaw@jabberwocky.com>
218
219         * g10.c (main): Allow compression algorithm names as the argument
220         to --compress-algo.  The old algorithm names still work for
221         backwards compatibility.
222
223         * misc.c (string_to_compress_algo): Allow "none" as an alias for
224         "uncompressed".
225
226 2002-11-13  Stefan Bellon  <sbellon@sbellon.de>
227
228         * getkey.c (get_pubkey_byfprint_fast): Fixed type incompatibility,
229         was unsigned char instead of byte.
230
231 2002-11-13  David Shaw  <dshaw@jabberwocky.com>
232
233         * encode.c (encode_simple): Make sure that files larger than about
234         4G use partial length encoding.  This is required because OpenPGP
235         allows only for 32 bit length fields.  From Werner on stable
236         branch.
237
238         * getkey.c (get_pubkey_direct): Renamed to...
239         (get_pubkey_fast): this and made extern.
240         (get_pubkey_byfprint_fast): New.  From Werner on stable branch.
241
242         * keydb.h, import.c (import_one): Use get_pubkey_fast instead of
243         get_pubkey.  We don't need a merged key and actually this might
244         lead to recursions.
245         (revocation_present): Likewise for search by fingerprint.  From
246         Werner on stable branch.
247
248         * g10.c (main): Try to create the trustdb even for non-colon-mode
249         list-key operations.  This is required because getkey needs to
250         know whether a a key is ultimately trusted.  From Werner on stable
251         branch.
252         
253         * exec.c [__CYGWIN32__]: Keep cygwin separate from Mingw32;
254         we don't need it here as it behaves more like a Posix system.
255         From Werner on stable branch.
256
257         * passphrase.c (agent_get_passphrase): Ditto.  From Werner on
258         stable branch.
259
260         * tdbio.c (MY_O_BINARY): Need binary mode with Cygwin.  From
261         Werner on stable branch.
262
263         * g10.c, gpgv.c (main) [__CYGWIN32__]: Don't get the homedir from
264         the registry.  From Werner on stable branch.
265         
266         * keyedit.c (show_key_with_all_names_colon): Make --with-colons
267         --edit display match the validity and trust of --with-colons
268         --list-keys.
269
270         * passphrase.c (agent_send_all_options): Fix compile warning.
271
272         * keylist.c (list_keyblock_colon): Validity for subkeys should
273         match that of the primary key, and not that of the last user ID.
274
275         * getkey.c (merge_selfsigs): Revoked/expired/invalid primary keys
276         carry these facts onto all their subkeys, but only after the
277         subkey has a chance to be marked valid.  This is to fix an
278         incorrect "invalid public key" error verifying a signature made by
279         a revoked signing subkey, with a valid unrevoked primary key.
280
281 2002-11-09  Werner Koch  <wk@gnupg.org>
282
283         * passphrase.c (agent_send_all_options): Use tty_get_ttyname to
284         get the default ttyname.
285
286 2002-11-07  David Shaw  <dshaw@jabberwocky.com>
287
288         * keyring.h, keyring.c (keyring_register_filename): Return the
289         pointer if a given keyring is registered twice.
290
291         * keydb.h, keydb.c (keydb_add_resource): Use flags to indicate a
292         default keyring.
293         (keydb_locate_writable): Prefer the default keyring if possible.
294
295         * g10.c (main): Add --default-keyring option.
296
297 2002-11-06  David Shaw  <dshaw@jabberwocky.com>
298
299         * options.h, g10.c (main), trustdb.c (ask_ownertrust): Add
300         --force-ownertrust option for debugging purposes.  This allows
301         setting a whole keyring to a given trust during an
302         --update-trustdb.  Not for normal use - it's just easier than
303         hitting "4" all the time to test a large trustdb.
304
305         * pubkey-enc.c (get_session_key): With hidden recipients or try a
306         given passphrase against all secret keys rather than trying all
307         secret keys in turn.  Don't if --try-all-secrets or --status-fd is
308         enabled.
309
310         * passphrase.c (passphrase_to_dek): Mode 1 means do a regular
311         passphrase query, but don't prompt with the key info.
312
313         * seckey-cert.c (do_check, check_secret_key): A negative ask count
314         means to enable passphrase mode 1.
315
316         * keydb.h, getkey.c (enum_secret_keys): Add flag to include
317         secret-parts-missing keys (or not) in the list.
318
319 2002-11-05  David Shaw  <dshaw@jabberwocky.com>
320
321         * keyserver.c (keyserver_search_prompt): When --with-colons is
322         enabled, don't try and fit the search output to the screen size -
323         just dump the whole list.
324
325 2002-11-04  David Shaw  <dshaw@jabberwocky.com>
326
327         * keyserver.c (keyserver_search_prompt): When --with-colons is
328         enabled, just dump the raw keyserver protocol to stdout and don't
329         print the menu.
330
331         * keyserver.c (show_prompt): Don't show a prompt when command-fd
332         is being used.
333
334         * trustdb.c (trust_model_string, check_trustdb, update_trustdb,
335         validate_one_keyblock): It's not clear what a trustdb rebuild or
336         check means with a trust model other than "classic" or "openpgp",
337         so disallow this.
338
339 2002-11-03  David Shaw  <dshaw@jabberwocky.com>
340
341         * options.h, g10.c (main): Add --trust-model option.  Current
342         models are "openpgp" which is classic+trustsigs, "classic" which
343         is classic only, and "always" which is the same as the current
344         option --always-trust (which still works).  Default is "openpgp".
345
346         * trustdb.c (validate_one_keyblock): Use "openpgp" trust model to
347         enable trust sigs.
348
349         * gpgv.c (main), mainproc.c (check_sig_and_print), pkclist.c
350         (do_we_trust, do_we_trust_pre, check_signatures_trust): Use new
351         --trust-model option in place of --always-trust.
352
353         * keyedit.c (sign_mk_attrib, trustsig_prompt, sign_uids,
354         keyedit_menu): Prompt for and create a trust signature with
355         "tsign".  This is functional, but needs better UI text.
356
357         * build-packet.c (build_sig_subpkt): Able to build trust and
358         regexp subpackets.
359
360         * pkclist.c (do_edit_ownertrust): Comment.
361
362 2002-11-02  David Shaw  <dshaw@jabberwocky.com>
363
364         * keygen.c (set_one_pref, keygen_set_std_prefs): Allow using the
365         full algorithm name (CAST5, SHA1) rather than the short form (S3,
366         H2).
367
368         * main.h, keygen.c (keygen_get_std_prefs), keyedit.c
369         (keyedit_menu): Return and use a fake uid packet rather than a
370         string since we already have a nice parser/printer in
371         keyedit.c:show_prefs.
372
373         * main.h, misc.c (string_to_compress_algo): New.
374
375 2002-11-01  David Shaw  <dshaw@jabberwocky.com>
376
377         * g10.c (main): Add --no-throw-keyid.
378
379         * keydb.h, encode.c (write_pubkey_enc_from_list), g10.c (main),
380         pkclist.c (build_pk_list): Add --hidden-recipient (-R) and
381         --hidden-encrypt-to, which do a single-user variation on
382         --throw-keyid.  The "hide this key" flag is carried in bit 0 of
383         the pk_list flags field.
384
385         * keyserver.c (parse_keyrec): Fix shadowing warning.
386
387 2002-10-31  Stefan Bellon  <sbellon@sbellon.de>
388
389         * compress.c (init_compress) [__riscos__]: Use
390         riscos_load_module() to load ZLib module.
391
392         * g10.c (main) [__riscos__]: Renames due to changes in riscos.c
393         (e.g. prefixes all RISC OS specific functions with riscos_*).
394         * photoid.c (show_photos) [__riscos__]: Likewise.
395         * signal.c (got_fatal_signal) [__riscos__]: Likewise.
396
397         * trustdb.c (check_regexp) [__riscos__]: Branch to RISC OS RegEx
398         handling.
399
400 2002-10-31  David Shaw  <dshaw@jabberwocky.com>
401
402         * build-packet.c (do_plaintext), encode.c (encode_sesskey,
403         encode_simple, encode_crypt), sign.c (write_plaintext_packet): Use
404         wipememory() instead of memset() to wipe sensitive memory as the
405         memset() might be optimized away.
406
407 2002-10-30  David Shaw  <dshaw@jabberwocky.com>
408
409         * trustdb.c (check_regexp): Modern regexps require REG_EXTENDED.
410
411 2002-10-29  David Shaw  <dshaw@jabberwocky.com>
412
413         * packet.h, trustdb.h, trustdb.c (trust_string): New.  Return a
414         string like "fully trusted", "marginally trusted", etc.
415         (get_min_ownertrust): New.  Return minimum ownertrust.
416         (update_min_ownertrust): New.  Set minimum ownertrust.
417         (check_regexp): New.  Check a regular epression against a user ID.
418         (ask_ownertrust): Allow specifying a minimum value.
419         (get_ownertrust_info): Follow the minimum ownertrust when
420         returning a letter.
421         (clear_validity): Remove minimum ownertrust when a key becomes
422         invalid.
423         (release_key_items): Release regexp along with the rest of the
424         info.
425         (validate_one_keyblock, validate_keys): Build a trust sig chain
426         while validating.  Call check_regexp for regexps.  Use the minimum
427         ownertrust if the user does not specify a genuine ownertrust.
428
429         * pkclist.c (do_edit_ownertrust): Only allow user to select a
430         trust level greater than the minimum value.
431
432         * parse-packet.c (can_handle_critical): Can handle critical trust
433         and regexp subpackets.
434
435         * trustdb.h, trustdb.c (clear_ownertrusts), delkey.c
436         (do_delete_key), import.c (import_one): Rename clear_ownertrust to
437         clear_ownertrusts and have it clear the min_ownertrust value as
438         well.
439
440         * keylist.c (list_keyblock_print): Indent uid to match pub and
441         sig.
442
443         * keyedit.c (print_and_check_one_sig, show_key_and_fingerprint,
444         menu_addrevoker), keylist.c (list_keyblock_print,
445         print_fingerprint): Show "T" or the trust depth for trust
446         signatures, and add spaces to some strings to make room for it.
447
448         * packet.h, parse-packet.c (dump_sig_subpkt, parse_one_sig_subpkt,
449         parse_signature): Parse trust signature values.
450
451         * tdbio.h, tdbio.c (tdbio_read_record, tdbio_write_record):
452         Reserve a byte for the minimum ownertrust value (for use with
453         trust signatures).
454
455 2002-10-29  Stefan Bellon  <sbellon@sbellon.de>
456
457         * build-packet.c (calc_plaintext, do_plaintext): Removed RISC OS
458         specific filetype parts (it's now done in make_basename()).
459
460         * plaintext.c (handle_plaintext): Tidied up RISC OS specific
461         filetype parts.
462
463         * encode.c (encode_simple, encode_crypt): Added argument to
464         make_basename() call.
465
466         * sign.c (write_plaintext_packet): Added argument to
467         make_basename() call.
468
469 2002-10-28  Stefan Bellon  <sbellon@sbellon.de>
470
471         * build-packet.c (calc_plaintext, do_plaintext): Added filetype
472         handling for RISC OS' file types.
473
474         * plaintext.c (handle_plaintext) [__riscos__]: Added filetype
475         handling for RISC OS' file types.
476
477 2002-10-23  David Shaw  <dshaw@jabberwocky.com>
478
479         * main.h, import.c (sec_to_pub_keyblock, import_secret_one,
480         parse_import_options), g10.c (main): New import-option
481         "convert-sk-to-pk" to convert a secret key into a public key
482         during import.  It is on by default.
483
484 2002-10-23  Werner Koch  <wk@gnupg.org>
485
486         * pubkey-enc.c (get_it): Fix segv, test for revoked only when PK
487         has been assigned.
488
489 2002-10-18  Timo Schulz  <ts@winpt.org>
490
491         * keylist.c: (print_pubkey_info): New.
492         (print_seckey_info): New.
493         * main.h: Prototypes for the new functions.       
494         * delkey.c (do_delete_key): Use it here.
495         * revoke.c (gen_desig_revoke): Ditto.
496         
497 2002-10-17  Werner Koch  <wk@gnupg.org>
498
499         * pkclist.c (do_edit_ownertrust): Show all user IDs.  This should
500         be enhanced to also show the current trust level.  Suggested by
501         Florian Weimer.
502
503 2002-10-17  David Shaw  <dshaw@jabberwocky.com>
504
505         * g10.c (main): Handle --strict and --no-strict from the command
506         line before the options file is loaded.
507
508 2002-10-15  David Shaw  <dshaw@jabberwocky.com>
509
510         * g10.c (main): Disable --textmode when encrypting (symmetric or
511         pk) in --pgp2 mode as PGP 2 can't handle the unknown length
512         literal packet.  Reported by Michael Richardson.
513
514 2002-10-14  David Shaw  <dshaw@jabberwocky.com>
515
516         * keyserver-internal.h, keyserver.c (print_keyrec, parse_keyrec,
517         show_prompt, keyserver_search_prompt, keyserver_spawn): Go to
518         version 1 of the keyserver protocol.  This is a better design,
519         similar to --with-colons, that allows for keys with multiple user
520         IDs rather than using multiple keys.  It also matches the machine
521         readable pksd format.  Also use a prettier --search-keys listing
522         format that can fill different size windows (currently set at 24
523         lines).
524
525 2002-10-12  Werner Koch  <wk@gnupg.org>
526
527         * keygen.c (print_status_key_created): New.
528         (do_generate_keypair): Use it to print the fingerprint.
529         (generate_subkeypair): Likewise.
530
531 2002-10-11  David Shaw  <dshaw@jabberwocky.com>
532
533         * keyedit.c (menu_addrevoker): Properly back out if the signature
534         fails.  Also, do not allow appointing the same revoker twice, and
535         report ALREADY_SIGNED if the user tries it.
536
537 2002-10-07  David Shaw  <dshaw@jabberwocky.com>
538
539         * import.c (import_keys_internal): Missed one s/inp/inp2/.
540
541         * keylist.c (print_capabilities): Properly indicate per-key
542         capabilities of sign&encrypt primary keys that have
543         secret-parts-missing (i.e. no capabilities at all)
544
545         * mainproc.c (symkey_decrypt_sesskey): Fix compiler warning.
546
547 2002-10-04  David Shaw  <dshaw@jabberwocky.com>
548
549         * getkey.c (get_pubkey_direct): Don't cache keys retrieved via
550         this function as they may not have all their fields filled in.
551
552         * sig-check.c (signature_check2): Use new is_primary flag to check
553         rather than comparing main_keyid with keyid as this still works in
554         the case of a not fully filled in pk.
555
556 2002-10-04  Werner Koch  <wk@gnupg.org>
557
558         * import.c (import_keys_internal): s/inp/inp2/ to avoid shadowing
559         warning.
560
561         * passphrase.c (agent_get_passphrase): Fixed signed/unsigned char
562         problem in %-escaping.  Noted by Ingo Klöcker.
563
564 2002-10-03  David Shaw  <dshaw@jabberwocky.com>
565
566         * options.h, g10.c (main): Add --strict and --no-strict to switch
567         the log_warning severity level from info to error.
568
569         * keylist.c (print_capabilities): Secret-parts-missing keys should
570         show that fact in the capabilities, and only primary signing keys
571         can certify other keys.
572
573         * packet.h, parse_packet.c (parse_key): Add is_primary flag for
574         public keys (it already exists for secret keys).
575
576 2002-10-02  David Shaw  <dshaw@jabberwocky.com>
577
578         * import.c (import_secret_one): Check for an illegal (>110)
579         protection cipher when importing a secret key.
580
581         * keylist.c (list_keyblock_print): Show a '#' for a
582         secret-parts-missing key.
583
584         * parse_packet.c (parse_key): Some comments.
585
586         * revoke.c (gen_revoke): Remove some debugging code.
587
588         * trustdb.c (verify_own_keys): Make trusted-key a non-deprecated
589         option again.
590
591         * seckey-cert.c (do_check): Don't give the IDEA warning unless the
592         cipher in question is in fact IDEA.
593
594 2002-10-01  David Shaw  <dshaw@jabberwocky.com>
595
596         * import.c (import_one): Make sure that a newly imported key
597         starts with a clean ownertrust.
598
599 2002-10-01  Werner Koch  <wk@gnupg.org>
600
601         * getkey.c (get_pubkey_direct): New.
602         (merge_selfsigs_main): Use it here to look for an ultimately
603         trusted key.  Using the full get_pubkey might lead to an
604         infinitive recursion.
605
606 2002-09-29  David Shaw  <dshaw@jabberwocky.com>
607
608         * keyserver.c (parse_keyserver_uri): Force the keyserver URI
609         scheme to lowercase to be case-insensitive.
610
611 2002-09-28  David Shaw  <dshaw@jabberwocky.com>
612
613         * export.c (do_export_stream): Comment.
614
615         * sig-check.c (check_key_signature2): Properly handle a
616         non-designated revocation import.
617
618 2002-09-26  Werner Koch  <wk@gnupg.org>
619
620         * g10.c (set_homedir): New. Changed all direct assignments to use
621         this.
622         * gpgv.c (set_homedir): Ditto.
623
624 2002-09-25  David Shaw  <dshaw@jabberwocky.com>
625
626         * Makefile.am: Link gpg with EGDLIBS (i.e. NETLIBS) as EGD uses
627         sockets.  Remove the old NETLIBS variable since the keyserver
628         stuff is no longer internal.
629
630 2002-09-24  David Shaw  <dshaw@jabberwocky.com>
631
632         * import.c (import_keys_stream): Fix compiler type warning.
633
634         * keyring.c (keyring_rebuild_cache), sig-check.c
635         (check_key_signature2), import.c (import, chk_self_sigs): Minor
636         language cleanups.
637
638 2002-09-23  Stefan Bellon  <sbellon@sbellon.de>
639
640         * main.h: Introduced fast-import as import option. Removed
641         fast as separate option from prototypes.
642         * import.c (parse_import_options): Added fast-import option.
643         (import_*): Removed fast as separate option.
644         * g10.c (main): Added option fast-import, removed old fast
645         as separate argument.
646         * keyserver.c (keyserver_spawn): Removed old fast as separate
647         argument.
648
649 2002-09-22  Stefan Bellon  <sbellon@sbellon.de>
650
651         * import.c (import_keys, import_keys_stream,
652         import_keys_internal): Added trustdb update/check to key import if
653         not fast-import and interactive set/no-auto-check-trustdb unset.
654         Avoided function clone by introducing import_keys_internal.
655
656 2002-09-19  David Shaw  <dshaw@jabberwocky.com>
657
658         * keyserver.c (keyserver_spawn): Properly handle line truncation.
659         Don't leak memory (~10-20 bytes) on searches.
660         (keyserver_search_prompt): Cleanup.
661
662         * keylist.c (list_keyblock_colon): Show 1F direct key signatures
663         in --with-colons listing.
664
665 2002-09-16  David Shaw  <dshaw@jabberwocky.com>
666
667         * keyedit.c (menu_addrevoker): The direct key signature for
668         revocation keys must be at least v4 to carry the revocation key
669         subpacket.  Add a PGP 2.x warning for revocation keys.
670
671 2002-09-14  David Shaw  <dshaw@jabberwocky.com>
672
673         * g10.c (check_permissions): Rearrange strings to make translating
674         easier (don't incorporate string parts).
675
676         * keyedit.c (sign_uids): Make strings translatable.
677
678         * sig-check.c (check_key_signature2): Make string translatable.
679
680 2002-09-13  David Shaw  <dshaw@jabberwocky.com>
681
682         * getkey.c (check_revocation_keys): Move....
683         * main.h, sig-check.c (check_revocation_keys): to here.  Also
684         return the signature_check error code rather than 0/1 and cache
685         the sig result.
686
687         * sig-check.c (check_key_signature2): Divert to
688         check_revocation_keys if a revocation sig is made by someone other
689         than the pk owner.
690
691         * getkey.c (merge_selfsigs_main): Tidy.
692
693 2002-09-13  Werner Koch  <wk@gnupg.org>
694
695         * g10.c (main) [__MINGW32__]: Activate oLoadExtension.
696
697 2002-09-12  David Shaw  <dshaw@jabberwocky.com>
698
699         * Makefile.am, hkp.c, hkp.h, keyserver.c (keyserver_work): Remove
700         internal HKP support.
701
702         * keyserver.c (keyserver_spawn): Remove whitespace after keyserver
703         commands.
704
705 2002-09-10  David Shaw  <dshaw@jabberwocky.com>
706
707         * exec.c (expand_args): Remove loop left over from earlier
708         implementation.
709         (exec_write): Missed one tick.
710
711 2002-09-10  Werner Koch  <wk@gnupg.org>
712
713         * g10.c, options.h: Removed option --emulate-checksum-bug.
714         * misc.c (checksum_u16_nobug): Removed.
715         (checksum_u16): Removed the bug emulation.
716         (checksum_mpi): Ditto.
717         (checksum_mpi_counted_nbits): Removed and replaced all calls
718         with checksum_mpi.
719
720         * parse-packet.c (read_protected_v3_mpi): New.
721         (parse_key): Use it here to store it as an opaque MPI.
722         * seckey-cert.c (do_check): Changed the v3 unprotection to the new
723         why to store these keys.
724         (protect_secret_key): Likewise.
725         * build-packet.c (do_secret_key): And changed the writing.
726
727         * tdbio.c (tdbio_set_dbname, open_db): Use new macro MY_O_BINARY
728         to avoid silly ifdefs.
729         (open_db): Fallback to RDONLY so that gpg may be used from a
730         RO-medium.
731
732         * encode.c (encode_simple): Make sure we don't use an ESK packet
733         when we don't have a salt in the S2K.
734
735         * misc.c (pct_expando) <case f>: Make sure that LEN is initialized.
736
737         * exec.c (exec_finish): Use ticks to denote filenames in messages.
738         (make_tempdir, exec_write): Changed format of messages.
739
740         * keyserver.c (print_keyinfo): Release USERID in on error.
741         (keyserver_work) [!DISABLE_KEYSERVER_HELPERS]: Exclude the unused
742         code.
743
744 2002-09-09  Werner Koch  <wk@gnupg.org>
745
746         * parse-packet.c (make_attribute_uidname): Add new ar MAX_NAMELEN
747         for sanity checks.  Changed both callers. Limit the size of an %s.
748
749         * options.skel: Comment lock-once out, so that this file does not
750         change anything when copied to a new home directory.
751         * openfile.c (try_make_homedir): Don't exit after copying the
752         option skeleton.
753
754         * options.h: Don't use a comma when declaring variables over more
755         than one line.
756
757         * mainproc.c (symkey_decrypt_sesskey): Check length of the session
758         key.
759
760         * hkp.c (dehtmlize): Use ascii_tolower to protect against weird
761         locales.  Cast the argument for isspace for the sake of broken
762         HP/UXes.
763         (parse_hkp_index): s/ascii_memcasecmp/ascii_strncasecmp/.
764
765         * g10.c: Removed option --emulate-3des-s2k-bug.
766
767         * passphrase.c (hash_passphrase): Was used here.
768
769         * export.c (parse_export_options)
770         * keyserver.c (parse_keyserver_options)
771         * import.c (parse_import_options)
772         * g10.c (check_permissions): s/ascii_memcasecmp/ascii_strncasecmp/.
773
774 2002-09-09  David Shaw  <dshaw@jabberwocky.com>
775
776         * g10.c (add_group): Use '=' to separate group name from group
777         members.  Use a better error message for when no = is found.
778
779         * hkp.c (hkp_export): Use CRLF in headers.
780
781 2002-09-03  David Shaw  <dshaw@jabberwocky.com>
782
783         * mainproc.c (print_pkenc_list): Don't increment the error counter
784         when printing the list of keys a message was encrypted to.  This
785         would make gpg give a non-zero exit code even for completely valid
786         messages if the message was encrypted to more than one key that
787         the user owned.
788
789 2002-09-02  Werner Koch  <wk@gnupg.org>
790
791         * g10.c (main): Try to set a default character set.  Print the
792         used one in verbosity level 3.
793         * gpgv.c (main): Try to set a default character set.
794
795         * status.c, status.h (STATUS_IMPORT_OK): New.
796         * import.c (import_one,import_secret_one): Print new status.
797
798 2002-08-30  David Shaw  <dshaw@jabberwocky.com>
799
800         * pkclist.c (build_pk_list): Add new status code to indicate an
801         untrusted user.  This (or a disabled key) fail with "unavailable
802         pubkey" (G10ERR_UNU_PUBKEY).
803
804         * pkclist.c (build_pk_list): Fail if any recipient keys are
805         unusable.
806
807         * options.skel: The PGP LDAP keyserver is back.  Use MIT keyserver
808         as a sample rather than cryptnet as cryptnet does not support
809         searching yet.
810
811         * keyedit.c (show_key_with_all_names): Fix error message
812         (preferences are userid/selfsig and not key specific).
813
814 2002-08-30  Werner Koch  <wk@gnupg.org>
815
816         * pkclist.c (do_we_trust_pre): Changed the wording of a warning.
817
818         * encode.c (encode_simple,encode_crypt): Use new style CTB for
819         compressssed packets when using MDC.  We need to do this so that
820         concatenated messages are properly decrypted.  Old style
821         compression assumes that it is the last packet; given that we
822         can't determine the length in advance, the uncompressor does not
823         know where to start.  Actually we should use the new CTB always
824         but this would break PGP 2 compatibility.
825
826         * parse-packet.c (parse): Special treatment for new style CTB
827         compressed packets.
828
829         * build-packet.c (do_mdc): Removed. Was not used.
830         (do_encrypted_mdc): Count in the version number and the MDC packet.
831
832 2002-08-28  David Shaw  <dshaw@jabberwocky.com>
833
834         * sig-check.c (do_check_messages, do_check): Show keyid in error
835         messages.
836
837         * keyserver.c (print_keyinfo): More readable key listings for
838         --search-keys responses.
839
840 2002-08-26  David Shaw  <dshaw@jabberwocky.com>
841
842         * hkp.c (parse_hkp_index, dehtmlize): Move HTML functionality into
843         new "dehtmlize" function.  Remove HTML before trying to parse each
844         line from the keyserver.  If the keyserver provides key type
845         information in the listing, use it.
846
847 2002-08-23  David Shaw  <dshaw@jabberwocky.com>
848
849         * sig-check.c (do_check, do_check_messages): Emit the usual sig
850         warnings even for cached sigs.  This also serves to protect
851         against missing a sig expiring while cached.
852
853         * getkey.c (merge_selfsigs_main): Don't check UID self-sigs twice.
854
855 2002-08-22  David Shaw  <dshaw@jabberwocky.com>
856
857         * import.c (clean_subkeys, chk_self_sigs): Merge clean_subkeys
858         into chk_self_sigs.  This improves efficiency as the same
859         signatures are not checked multiple times.  Clarify when a subkey
860         is revoked (any revocation signature, even if it is dated before
861         the binding signature).
862
863         * getkey.c (merge_selfsigs_subkey): Subkey revocation comments.
864
865         * keylist.c (list_one): Stats are only for public key listings.
866
867         * g10.c (main), options.skel: Default should be include-revoked
868         for keyserver operations.
869
870 2002-08-21  Werner Koch  <wk@gnupg.org>
871
872         * import.c (import_print_stats): Print new non_imported counter
873         which is currently not used because we terminate on errors.
874
875 2002-08-20  David Shaw  <dshaw@jabberwocky.com>
876
877         * options.skel: Document no-include-attributes for
878         keyserver-options.
879
880         * keylist.c, keyedit.c, keyserver.c, sign.c: Some TODOs and
881         comments.
882
883         * export.c (do_export_stream): Fix noop bug in exporting sensitive
884         revocation keys.
885
886         * pkclist.c (do_edit_ownertrust): Comment out the option for
887         showing trust paths until it can be implemented.
888
889 2002-08-19  Werner Koch  <wk@gnupg.org>
890
891         * getkey.c (get_user_id_native): Renamed to ..
892         (get_user_id_printable): this.  Filter out all dangerous
893         characters.  Checked all usages.
894         (get_user_id_string_native): Renamed to..
895         (get_user_id_string_printable): this.  Filter out all dangerous
896         characters.  Checked all usages.
897         * keyedit.c (show_basic_key_info): New.
898         * keylist.c (print_fingerprint): New mode 3.
899         * import.c (import_one): Use new function to display the user ID.
900
901 2002-08-16  Timo Schulz  <ts@winpt.org>
902
903         * g10.c (main): Enable opt.interactive.
904
905         * import.c (import_one): Ask the user if the key shall be
906         imported when the interactive mode is used. Useful to extract
907         selected keys from a file.
908         
909 2002-08-16  Werner Koch  <wk@gnupg.org>
910
911         * seckey-cert.c: Workaround to allow decryption of v3 keys created
912         with a bug in the mpi_get_secure_buffer.
913
914 2002-08-14  David Shaw  <dshaw@jabberwocky.com>
915
916         * hkp.c (parse_hkp_index): Properly handle really large keys
917         (5 digit key length) in HKP searches.
918
919 2002-08-13  David Shaw  <dshaw@jabberwocky.com>
920
921         * encode.c (encode_simple): Fix problem with using compression
922         algo 2 and symmetric compressed files.
923
924         * encode.c (encode_simple, encode_crypt): If we are not using a
925         MDC, compress even if a file is already compressed.  This is to
926         help against the chosen ciphertext attack.
927
928         * pkclist.c (select_algo_from_prefs): Fix requested algorithm bug
929         so the request succeeds even if the requested algorithm is not the
930         first found.
931
932         * cipher.c (write_header), encode.c (use_mdc, encode_simple,
933         encode_crypt, encrypt_filter), g10.c (main): Be more eager to use
934         a MDC.  We use a MDC if the keys directly support it, if the keys
935         list AES (any) or TWOFISH anywhere in the prefs, or if the cipher
936         chosen does not have a 64 bit blocksize.
937
938 2002-08-08  David Shaw  <dshaw@jabberwocky.com>
939
940         * options.skel: Some language tweaks, and remove the
941         load-extension section for random gatherers.
942
943         * keyring.c (create_tmp_file, rename_tmp_file): Create tmp files
944         with user-only permissions, but restore the original permissions
945         if the user has something special set.
946
947         * openfile.c (copy_options_file): Create new options file
948         (gpg.conf) with user-only permissions.
949
950         * keydb.c (keydb_add_resource): Create new keyrings with user-only
951         permissions.
952
953         * tdbio.c (tdbio_set_dbname): Create new trustdbs with user-only
954         permissions.
955
956 2002-08-07  David Shaw  <dshaw@jabberwocky.com>
957
958         * sig-check.c (signature_check2): Sanity check that the md has a
959         context for the hash that the sig is expecting.  This can happen
960         if a onepass sig header does not match the actual sig, and also if
961         the clearsign "Hash:" header is missing or does not match the
962         actual sig.
963
964         * keyedit.c (menu_revsig): Properly show a uid is revoked without
965         restarting gpg.  This is Debian bug 124219, though their supplied
966         patch will not do the right thing.
967
968         * main.h, tdbio.c (tdbio_set_dbname), misc.c (removed
969         check_permissions), keydb.c (keydb_add_resource), g10.c (main,
970         check_permissions): Significant reworking of the permission check
971         mechanism.  The new behavior is to check everything in the homedir
972         by checking the homedir itself.  If the user wants to put
973         (possibly shared) keyrings outside the homedir, they are not
974         checked.  The options file and any extension files are checked
975         wherever they are, as well as their enclosing directories.  This
976         is Debian bug 147760.
977         
978 2002-08-06  Stefan Bellon  <sbellon@sbellon.de>
979
980         * g10.c (main): Use of EXTSEP_S in new gpg.conf string.
981         * openfile.c (copy_options_file): Ditto.
982
983 2002-08-06  David Shaw  <dshaw@jabberwocky.com>
984
985         * options.h, g10.c (main), mainproc.c (proc_encrypted):
986         --ignore-mdc-error option to turn a MDC check error into a
987         warning.
988
989         * encode.c (encode_crypt), g10.c (main), sign.c (sign_file,
990         clearsign_file): Use the same --pgpX warning string everywhere to
991         ease translations.
992
993         * encode.c (write_pubkey_enc_from_list): Warn when using
994         --throw-keyid with --pgpX.  Noted by Vedaal Nistar.
995
996         * revoke.c (export_minimal_pk, gen_desig_revoke, gen_revoke):
997         Export a minimal pk along with the revocation cert when in --pgpX
998         mode so that PGP can import it.
999
1000 2002-08-06  Werner Koch  <wk@gnupg.org>
1001
1002         * options.skel: Changed comments.
1003
1004         * g10.c (main): Try to use "gpg.conf" as default option file.
1005         * openfile.c (copy_options_file): Changed name of created file.
1006
1007 2002-08-02  Werner Koch  <wk@gnupg.org>
1008
1009         * Makefile.am (LDFLAGS): Removed DYNLINK_LDFLAGS.
1010
1011 2002-07-30  David Shaw  <dshaw@jabberwocky.com>
1012
1013         * options.h, g10.c (main), mainproc.c (proc_encrypted): Return a
1014         decryption failed error if a MDC does not verify.  Warn if a MDC
1015         is not present (can disable via --no-mdc-warning).
1016
1017         * exec.c (exec_write), g10.c (main), keyserver.c
1018         (keyserver_spawn): Use new DISABLE_KEYSERVER_PATH rather than
1019         FIXED_EXEC_PATH.
1020
1021 2002-07-28  David Shaw  <dshaw@jabberwocky.com>
1022
1023         * sig-check.c (do_check): Properly validate v4 sigs with no hashed
1024         section at all.
1025
1026 2002-07-25  Werner Koch  <wk@gnupg.org>
1027
1028         * delkey.c (do_delete_key): Always allow to delete a key in batch mode
1029         when specified by fingerprint.  Suggested by Enzo Michelangeli.
1030
1031 2002-07-25  David Shaw  <dshaw@jabberwocky.com>
1032
1033         * keyedit.c (menu_revsig): Change "revsig" to honor selected uids
1034         so the user can revoke sigs from particular uids only.
1035
1036         * keylist.c (list_keyblock_print): Don't display expired uids in
1037         --list-keys unless -v and not --list-sigs (just like revoked
1038         uids).
1039
1040         * exec.c, export.c, import.c, keyedit.c, keyserver.c, misc.c:
1041         "Warning" -> "WARNING"
1042
1043 2002-07-24  David Shaw  <dshaw@jabberwocky.com>
1044
1045         * main.h, import.c (parse_import_options, fix_hkp_corruption,
1046         import_one, delete_inv_parts), g10.c (main): New import-option
1047         "repair-hkp-subkey-bug", which repairs as much as possible the HKP
1048         mangling multiple subkeys bug.  It is on by default for keyserver
1049         receives, and off by default for regular --import.
1050
1051         * main.h, import.c (import, import_one, delete_inv_parts), hkp.c
1052         (hkp_ask_import), keyserver.c (keyserver_spawn): Use keyserver
1053         import options when doing keyserver receives.
1054
1055         * options.h, exec.h, exec.c (set_exec_path, exec_write), g10.c
1056         (main), keyserver.c (keyserver_spawn): If the user does not use
1057         "exec-path", completely replace $PATH with GNUPG_LIBEXECDIR before
1058         calling the keyserver helper.  If the user does use "exec-path",
1059         append GNUPG_LIBEXECDIR after the specified path.
1060
1061 2002-07-23  David Shaw  <dshaw@jabberwocky.com>
1062
1063         * import.c (parse_import_options), export.c
1064         (parse_export_options): Fix offset problem with reversed ("no-")
1065         meanings.
1066
1067         * import.c (delete_inv_parts): Discard subkey signatures (0x18 and
1068         0x28) if found in the userid section of the key.
1069
1070         * sig-check.c (signature_check2): Signatures made by invalid
1071         subkeys (bad/missing binding sig) are also invalid.
1072
1073         * keylist.c (print_fingerprint): Show the primary as well as the
1074         secondary key fingerprint in modes 1 & 2.
1075
1076 2002-07-22  David Shaw  <dshaw@jabberwocky.com>
1077
1078         * options.h, main.h, g10.c (main), import.c
1079         (parse_import_options, delete_inv_parts), keyserver.c
1080         (parse_keyserver_options): add new --import-options option.  The
1081         only current flag is "allow-local-sigs".
1082
1083         * g10.c (main): Don't disable MDC in pgp7 mode.
1084
1085         * options.h, g10.c (main), keyserver.c (parse_keyserver_options):
1086         Remove old keyserver-option include-attributes now that there is
1087         an export-option for the same thing.
1088
1089         * options.h, main.h, export.c (parse_export_options,
1090         do_export_stream), g10.c (main): add new --export-options option.
1091         Current flags are "include-non-rfc", "include-local-sigs",
1092         "include-attributes", and "include-sensitive-revkeys".
1093
1094         * options.h, hkp.c (hkp_export), keyserver.c
1095         (parse_keyserver_options, keyserver_spawn): try passing unknown
1096         keyserver options to export options, and if successful, use them
1097         when doing a keyserver --send-key.
1098
1099         * build-packet.c (build_sig_subpkt): We do not generate
1100         SIGSUBPKT_PRIV_VERIFY_CACHE anymore.
1101
1102         * revoke.c (gen_desig_revoke): Lots more comments about including
1103         sensitive revkeys along with the revocation sig itself.
1104
1105         * keyserver.c (parse_keyserver_options): Simpler implementation
1106         that can skip one pass over the options.
1107
1108 2002-07-18  David Shaw  <dshaw@jabberwocky.com>
1109
1110         * keyedit.c (keyedit_menu, menu_addrevoker): Allow specifying
1111         "sensitive" as an argument to an addrevoker command.  This sets
1112         the 0x40 sensitive revoker flag.
1113
1114         * revoke.c (gen_desig_revoke): When generating a designated
1115         revocation, include the direct key sig that contains the
1116         designated revoker subpacket.  This allows sensitive designated
1117         revocation subpackets to be exported.  Also indicate which
1118         revokers are sensitive in the first place.
1119
1120 2002-07-17  David Shaw  <dshaw@jabberwocky.com>
1121
1122         * keyedit.c (show_key_with_all_names_colon): The 0x40 class bit in
1123         a designated revoker means "sensitive", not "local".  It's
1124         exportable under the right circumstances.
1125
1126         * main.h, options.h, export.c (do_export_stream), g10.c (main),
1127         hkp.c (hkp_export), keyserver.c (keyserver_spawn: Add a flag to
1128         skip attribute packets and their signatures while exporting.  This
1129         is to accomodate keyservers (pksd again) that choke on attributes.
1130         Use keyserver-option "include-attributes" to control it.  This
1131         defaults to ON (i.e. don't skip).
1132
1133 2002-07-09  David Shaw  <dshaw@jabberwocky.com>
1134
1135         * options.h, keyserver.c (parse_keyserver_uri, keyserver_spawn,
1136         keyserver_work), hkp.c (hkp_ask_import, hkp_export, hkp_search):
1137         Use a much more strict reading of RFC-2396 for the keyserver URIs.
1138         Specifically, don't try and be smart about checking the value of
1139         ":port" so long as it is all digits, and properly handle opaque
1140         data (those scheme specific parts that do not start with "//").
1141
1142 2002-07-04  David Shaw  <dshaw@jabberwocky.com>
1143
1144         * photoid.c (get_default_photo_command, show_photos): Honor
1145         FIXED_PHOTO_VIEWER and DISABLE_PHOTO_VIEWER.
1146
1147         * mainproc.c (check_sig_and_print): Use --show-photos to show
1148         photos when verifying a sig made by a key with a photo.
1149
1150         * keyserver.c (parse_keyserver_uri): Properly parse a URI with no
1151         :port section and an empty file path, but with a terminating '/'.
1152         (keyserver_work): Honor DISABLE_KEYSERVER_HELPERS.
1153
1154         * hkp.c (hkp_ask_import): Display keyserver URI as a URI, but only
1155         if verbose.
1156
1157         * exec.c, g10.c: USE_EXEC_PATH -> FIXED_EXEC_PATH
1158
1159 2002-07-03  David Shaw  <dshaw@jabberwocky.com>
1160
1161         * exec.h, exec.c (set_exec_path, exec_write), g10.c (main): If
1162         USE_EXEC_PATH is defined at compile time, use it to lock the
1163         exec-path and not allow the user to change it.
1164
1165 2002-07-02  David Shaw  <dshaw@jabberwocky.com>
1166
1167         * options.h, g10.c (main), keyserver.c (keyserver_refresh):
1168         Maintain and use the original keyserver URI for cosmetics rather
1169         than trying to recreate it when needed.
1170
1171         * mainproc.c (check_sig_and_print): Properly disregard expired
1172         uids.  Make sure that the first uid listed is a real uid and not
1173         an attribute (attributes should only be listed in the "aka"
1174         section).  When there are no valid textual userids, try for an
1175         invalid textual userid before using any attribute uid.
1176
1177 2002-07-01  David Shaw  <dshaw@jabberwocky.com>
1178
1179         * options.skel: Fix a few typos, clarify "group", and remove
1180         sample photo viewers for Win32 since they are the defaults now.
1181
1182         * parse-packet.c (make_attribute_uidname), keylist.c
1183         (dump_attribs): Fix two typecast warnings.
1184
1185         * packet.h, build-packet.c (build_attribute_subpkt), exec.c
1186         (expand_args), mkdtemp.c (mkdtemp), photoid.c
1187         (parse_image_header): Fix some signedness compiler warnings.
1188
1189 2002-07-01  Werner Koch  <wk@gnupg.org>
1190
1191         * photoid.c (get_default_photo_command): Also use __MINGW32__
1192         instead of HAVE_DOSISH_SYSTEM.
1193
1194         * encode.c (encode_symmetric): Do not use the new encryption code.
1195
1196 2002-06-30  Werner Koch  <wk@gnupg.org>
1197
1198         * photoid.c: Use __MINGW32__ to include windows because
1199         HAVE_DOSISH_SYSTEM is also set for OS/2 and plain DOS.  Provide
1200         constant missing in older mingw installations. 
1201
1202 2002-06-21  Stefan Bellon  <sbellon@sbellon.de>
1203
1204         * g10.c [__riscos__]: Moved RISC OS specific stuff to util/riscos.c
1205         and include/util.h.
1206
1207         * gpgv.c [__riscos__]: Likewise.
1208
1209 2002-06-20  David Shaw  <dshaw@jabberwocky.com>
1210
1211         * keydb.h, pkclist.c (select_algo_from_prefs): Allow passing a
1212         suggested algorithm which will be used if available.
1213
1214         * encode.c (encode_crypt, encrypt_filter), sign.c (sign_file): Use
1215         new select_algo_from_prefs feature to check if forcing an
1216         algorithm would violate the recipient preferences.
1217
1218         * photoid.c (get_default_photo_command, show_photos): Use
1219         different default viewers on different platforms.  Currently we
1220         have Win 9x, Win NT (2k, xp), Mac OSX, RISC OS, and "everybody
1221         else".  These are #ifdefs as much as possible to avoid clutter.
1222
1223         * g10.c (strusage, build_list), keyedit.c (show_prefs), main.h,
1224         misc.c (compress_algo_to_string, check_compress_algo), pkclist.c
1225         (algo_available), keygen.c (keygen_set_std_prefs): New
1226         algo_to_string and check functions for compress algorithms.
1227
1228 2002-06-20  Werner Koch  <wk@gnupg.org>
1229
1230         * misc.c (setsysinfo): Removed a #warning for Alpha's uniligedn
1231         trap disabling - it is quite possible that this is a debug relict.
1232
1233 2002-06-20  Stefan Bellon  <sbellon@sbellon.de>
1234
1235         * g10.c [__riscos__]: Added image file system feature.
1236
1237         * gpgv.c [__riscos__]: Added image file system feature.
1238
1239         * photoid.c (show_photos) [__riscos__]: Set RISC OS filetype of
1240         photo id according to MIME type.
1241
1242 2002-06-19  David Shaw  <dshaw@jabberwocky.com>
1243
1244         * hkp.c (parse_hkp_index): Don't leak memory when failing out of a
1245         bad HKP keyserver.
1246
1247         * g10.c (add_notation_data): Relax slightly the rules as to what
1248         can go into a notation name - 2440 allows "@", for example.
1249
1250 2002-06-17  David Shaw  <dshaw@jabberwocky.com>
1251
1252         * import.c (clean_subkeys, import_one): Only allow at most 1
1253         binding sig and at most 1 revocation sig on a subkey, as per
1254         2440:11.1.
1255
1256         * hkp.c (parse_hkp_index, hkp_search): Error if the keyserver
1257         returns an unparseable HKP response.
1258
1259 2002-06-15  David Shaw  <dshaw@jabberwocky.com>
1260
1261         * keyedit.c (show_key_with_all_names), keylist.c
1262         (list_keyblock_print): Show "[expired]" before expired uids.
1263
1264         * keyedit.c (show_key_with_all_names_colon), mainproc.c
1265         (list_node), keylist.c (list_keyblock_colon): Show flag 'e' for
1266         expired user ids.  Use "uat" for user attribute packets instead of
1267         "uid".  Also use '<count> <length>' rather than the fake user id
1268         string on attributes.
1269
1270         * keygen.c (keygen_add_revkey): Remove unused code.
1271
1272         * misc.c (check_permissions): Check directory permissions
1273         properly - they are not special files.
1274
1275         * pkclist.c (expand_id, expand_group, build_pk_list): When
1276         expanding groups before building a pk list, inherit flags from the
1277         original pre-expanded string.
1278
1279         * pubkey-enc.c (is_algo_in_prefs): Don't use prefs from expired
1280         uids.
1281
1282 2002-06-14  David Shaw  <dshaw@jabberwocky.com>
1283
1284         * free-packet.c (copy_signature): Properly copy a signature that
1285         carries a revocation key on it.
1286
1287         * pkclist.c (expand_id, expand_group, build_pk_list): Groups now
1288         work properly when used in the "Enter the user ID" prompt.
1289
1290 2002-06-14  David Shaw  <dshaw@jabberwocky.com>
1291
1292         * keyedit.c (show_key_with_all_names): Display warning if a user
1293         tries to show prefs on a v3 key with a v3 selfsig.
1294
1295         * kbnode.c (dump_kbnode): Show if a uid is expired.
1296
1297         * import.c (merge_blocks, import_revoke_cert): Show user ID
1298         receiving a revocation certificate.
1299
1300         * free-packet.c (cmp_user_ids): Properly compare attribute ids.
1301
1302         * pkclist.c (expand_groups): Maintain the strlist flags while
1303         expanding.  Members of an expansion inherit their flags from the
1304         expansion key.
1305
1306         * options.h, cipher.c (write_header), g10.c (main), keygen.c
1307         (keygen_set_std_prefs): remove the personal_mdc flag.  It no
1308         longer serves a purpose now that the personal preference lists are
1309         split into cipher/digest/zip.
1310
1311 2002-06-14  Timo Schulz  <ts@winpt.org>
1312
1313         * skclist.c (is_insecure): Implemented.
1314         
1315 2002-06-12  David Shaw  <dshaw@jabberwocky.com>
1316
1317         * keyserver.c (keyserver_spawn): Properly handle PROGRAM responses
1318         when they have a CRLF ending.  Noted by Keith Ray.
1319
1320         * keyserver.c (keyserver_spawn): Handle CRLF endings from
1321         keyserver helpers.  Also don't leak the last line worth of memory
1322         from the keyserver response.
1323
1324         * main.h, misc.c (deprecated_warning): New function to warn about
1325         deprecated options and commands.
1326
1327         * g10.c (main), keyserver-internal.h, keyserver.c
1328         (parse_keyserver_uri): Use new deprecated function to warn about
1329         honor-http-proxy, auto-key-retrieve, and x-broken-hkp.
1330
1331 2002-06-11  David Shaw  <dshaw@jabberwocky.com>
1332
1333         * Makefile.am: link gpg with NETLIBS for the built-in HKP access.
1334
1335 2002-06-10  David Shaw  <dshaw@jabberwocky.com>
1336
1337         * options.h, keyserver.c (keyserver_opts), g10.c (main): New
1338         keyserver option "include-subkeys".  This feature already existed,
1339         but now can be turned off.  It defaults to on.
1340
1341         * options.h, keyserver.c (parse_keyserver_options,
1342         keyserver_spawn): There are now enough options to justify making a
1343         structure for the keyserver options rather than a page of
1344         if-then-else-if-then-etc.
1345
1346         * getkey.c (merge_keys_and_selfsig, merge_selfsigs_main): Fix bug
1347         in calculating key expiration dates.
1348
1349 2002-06-09  David Shaw  <dshaw@jabberwocky.com>
1350
1351         * keydb.h, getkey.c (get_user_id_native), import.c (import_one):
1352         Display user ID while importing a key.  Note this applies to both
1353         --import and keyserver --recv-keys.
1354
1355         * exec.c (exec_finish): Log unnatural exit (core dump, killed
1356         manually, etc) for fork/exec/pipe child processes.
1357
1358 2002-06-08  Timo Schulz  <ts@winpt.org>
1359
1360         * encode.c (encode_symmetric): Disable the compat flag
1361         when the expert mode is enabled.
1362         
1363 2002-06-07  David Shaw  <dshaw@jabberwocky.com>
1364
1365         * options.skel, options.h, main.h, keydb.h, pkclist.c
1366         (build_pk_list, expand_groups), g10.c (main, add_group): Add new
1367         "group" command to allow one name to expand into multiple keys.
1368         For simplicity, and to avoid potential loops, we only expand once
1369         - you can't make an alias that points to an alias.
1370
1371         * main.h, g10.c (main), keygen.c (build_personal_digest_list):
1372         Simplify the default digest list - there is really no need for the
1373         other hashes since they will never be used after SHA-1 in the
1374         list.
1375
1376         * options.skel, options.h, g10.c (main), hkp.c (hkp_ask_import,
1377         hkp_export, hkp_search), keyserver.c (parse_keyserver_options,
1378         parse_keyserver_uri, keyserver_work, keyserver_refresh): Make the
1379         "x-broken-hkp" keyserver scheme into keyserver-option
1380         "broken-http-proxy".  Move honor_http_proxy into
1381         keyserver_options.  Canonicalize the three variations of "hkp",
1382         "x-hkp", and "x-broken-hkp" into "hkp".
1383
1384 2002-06-07  Stefan Bellon  <sbellon@sbellon.de>
1385
1386         * g10.c [__riscos__]: Added --attribute-file to do the same as
1387         --attribute-fd, but with a filename not a fd as argument.
1388         Added magic symbol for RISC OS to use different memory management.
1389
1390         * gpgv.c [__riscos__]: Added magic symbol for RISC OS to use
1391         different memory management.
1392
1393 2002-06-06  David Shaw  <dshaw@jabberwocky.com>
1394
1395         * main.h, g10.c (main), keygen.c (build_personal_digest_list): Put
1396         in a default digest preference list consisting of SHA-1, followed
1397         by every other installed digest except MD5.  Note this is the same
1398         as having no digest preference at all except for SHA-1 being
1399         favored.
1400
1401         * options.h, g10.c (main), keygen.c (keygen_set_std_prefs),
1402         pkclist.c (select_algo_from_prefs): Split
1403         --personal-preference-list into three:
1404         --personal-{cipher|digest|compress}-preferences.  This allows a
1405         user to set one without affecting another (i.e. setting only a
1406         digest pref doesn't imply an empty cipher pref).
1407
1408         * exec.c (exec_read): This is a safer way of guessing the return
1409         value of system().  Noted by Stefan Bellon.
1410
1411 2002-06-05  David Shaw  <dshaw@jabberwocky.com>
1412
1413         * hkp.c (parse_hkp_index): Be more robust with keyservers
1414         returning very unparseable responses.
1415
1416         * exec.c (exec_read): Catch and display an error when the remote
1417         process exits unnaturally (i.e. segfault) so the user knows what
1418         happened.  Also fix exec_write stub which has a different number
1419         of arguments now.
1420
1421 2002-06-05  Timo Schulz  <ts@winpt.org>
1422
1423         * encode.c (encode_simple): Ignore the new mode for RFC1991.
1424         * mainproc.c (symkey_decrypt_sesskey): Better check for weird
1425         keysizes.
1426         
1427 2002-06-05  Timo Schulz  <ts@winpt.org>
1428
1429         * encode.c (encode_sesskey): New.
1430         (encode_simple): Use it here. But by default we use the compat
1431         mode which supress to generate encrypted session keys.
1432         
1433 2002-06-05  Timo Schulz  <ts@winpt.org>
1434
1435         * mainproc.c (symkey_decrypt_sesskey): New.
1436         (proc_symkey_enc): Support for encrypted session keys.
1437         
1438 2002-06-04  David Shaw  <dshaw@jabberwocky.com>
1439
1440         * sign.c (hash_for, sign_file): When encrypting and signing at the
1441         same time, consult the various hash prefs to pick a hash algorithm
1442         to use.  Pass in a 160-bit hint if any of the signing keys are
1443         DSA.
1444
1445         * keydb.h, pkclist.c (select_algo_from_prefs, algo_available):
1446         Pass a "hints" opaque pointer in to let the caller give hints as
1447         to what algorithms would be acceptable.  The only current hint is
1448         for PREFTYPE_HASH to require a 160-bit hash for DSA.  Change all
1449         callers in encode.c (encode_crypt, encrypt_filter) and sign.c
1450         (sign_file).  If we settle on MD5 as the best algorithm based
1451         solely on recepient keys and SHA1 is also a possibility, use SHA1
1452         unless the user intentionally chose MD5.  This is as per 2440:13.
1453
1454         * exec.c (make_tempdir): Fix duplicated filename problem.
1455
1456 2002-06-03  David Shaw  <dshaw@jabberwocky.com>
1457
1458         * packet.h, parse-packet.c (enum_sig_subpkt): Report back from
1459         enum_sig_subpkt when a subpacket is critical and change all
1460         callers in keylist.c (show_policy_url, show_notation), mainproc.c
1461         (print_notation_data), and pkclist.c (do_show_revocation_reason).
1462
1463         * keylist.c (show_policy_url, show_notation): Display if the
1464         policy or notation is critical.
1465         
1466 2002-06-03  David Shaw  <dshaw@jabberwocky.com>
1467
1468         * main.h, g10.c (main), keylist.c (dump_attribs, set_attrib_fd,
1469         list_keyblock_print, list_keyblock_colon), status.h, status.c
1470         (get_status_string): New --attribute-fd feature to dump the
1471         contents of attribute subpackets for frontends.  If --status-fd is
1472         also used, then a new status tag ATTRIBUTE is provided for each
1473         subpacket.
1474
1475         * packet.h, getkey.c (fixup_uidnode, merge_selfsigs_main,
1476         merge_selfsigs_subkey), parse-packet.c (setup_user_id): Keep track
1477         of the expiration time of a user ID, and while we're at it, use
1478         the expired flag from the selfsig rather than reparsing the
1479         SIG_EXPIRE subpacket.
1480
1481         * photoid.c (generate_photo_id): When adding a new photo ID,
1482         showing the photo for confirmation is not safe when noninteractive
1483         since the "user" may not be able to dismiss a viewer window.
1484         Noted by Timo Schulz.
1485         
1486 2002-06-03  David Shaw  <dshaw@jabberwocky.com>
1487
1488         * options.skel: Sample photo viewers for Win32.
1489
1490         * misc.c (pct_expando): Use the seckey for %k/%K if the pubkey is
1491         not available.
1492
1493         * photoid.h, photoid.c (show_photos): Include the seckey in case a
1494         user tries to view a photo on a secret key, and change all callers
1495         in keyedit.c (menu_showphoto), keylist.c (list_keyblock_print),
1496         and photoid.c (generate_photo_id).
1497
1498 2002-06-02  David Shaw  <dshaw@jabberwocky.com>
1499
1500         * photoid.c (show_photos): Work properly when not called with a
1501         public key.
1502
1503 2002-05-31  David Shaw  <dshaw@jabberwocky.com>
1504
1505         * sign.c (mk_notation_and_policy): Free unneeded buffer.
1506
1507         * hkp.c (parse_hkp_index): Properly handle the '&' character
1508         (i.e. "&amp;") in HKP responses.
1509
1510         * getkey.c (merge_selfsigs_main): Fix reversed expiration time
1511         check with self-sigs.
1512
1513         * keyedit.c (sign_uids): When making a new self-sig on a v3 key,
1514         make a v3 self-sig unless it is currently a v3 self-sig being
1515         promoted to v4.
1516
1517 2002-05-31  Timo Schulz  <ts@winpt.org>
1518
1519         * pkclist.c (do_show_revocation_reason): Don't use capital
1520         letters for non-interactive output.
1521         (show_revocation_reason): Now it is global.
1522         * pubkey-enc.c (get_it): Show if the key has been revoked.
1523         
1524 2002-05-30  David Shaw  <dshaw@jabberwocky.com>
1525
1526         * sign.c (write_signature_packets, sign_file, clearsign_file,
1527         sign_symencrypt_file): Make a v4 signature if a policy URL or
1528         notation is set, unless v3 sigs are forced via rfc1991 or
1529         force-v3-sigs.  Also remove some doubled code and clarify an error
1530         message (we don't sign in PGP2 mode - just detach-sign).
1531
1532         * parse-packet.c (parse_one_sig_subpkt): Add KS_FLAGS to the "any
1533         size" section.
1534
1535 2002-05-29  David Shaw  <dshaw@jabberwocky.com>
1536
1537         * keygen.c (keygen_set_std_prefs, add_feature_mdc): Use "mdc" and
1538         "no-mdc" in the prefs string to allow switching on and off the MDC
1539         feature.  This is needed to properly export a key from GnuPG for
1540         use on PGP which does not support MDC - without this, MDC-capable
1541         implementations will still try and generate MDCs which will break
1542         PGP.
1543
1544         * keygen.c (keygen_get_std_prefs): Show "[mdc]" in prefs string if
1545         it is enabled.
1546
1547         * options.h, g10.c (main), cipher.c (write_header), keygen.c
1548         (keygen_set_std_prefs): For consistency, allow the user to specify
1549         mdc/no-mdc in the --personal-preference-list.  If disabled, it
1550         acts just like --disable-mdc.
1551
1552 2002-05-29  David Shaw  <dshaw@jabberwocky.com>
1553
1554         * options.h, exec.c: Add some debugging info, using the 1024 debug
1555         flag.
1556
1557         * exec.c (win_system): New system()-like function for win32 that
1558         does not return until the child process terminates.  Of course,
1559         this doesn't help if the process itself exits before it is
1560         finished.
1561
1562 2002-05-29  Werner Koch  <wk@gnupg.org>
1563
1564         * encode.c (encode_simple): Intialize PKT when --no-literal is used.
1565
1566         * keyedit.c (show_key_with_all_names_colon): Renamed the record
1567         for revocation keys to "rvk".
1568
1569 2002-05-27  Werner Koch  <wk@gnupg.org>
1570
1571         * keyedit.c (show_key_with_all_names_colon): New.
1572         (show_key_with_all_names): Divert to new function when required.
1573         Sanitize printing of revoker name.
1574
1575 2002-05-27  David Shaw  <dshaw@jabberwocky.com>
1576
1577         * build-packet.c (build_sig_subpkt): Handle setting sig flags for
1578         certain subpacket types (notation, policy url, exportable,
1579         revocable).  keyedit.c (sign_mk_attrib): Flags no longer need to
1580         be set here.
1581
1582         * packet.h, parse-packet.c (parse_one_sig_subpkt), build-packet.c
1583         (build_sig_subpkt): Call parse_one_sig_subpkt to sanity check
1584         buffer lengths before building a sig subpacket.
1585
1586 2002-05-26  David Shaw  <dshaw@jabberwocky.com>
1587
1588         * sign.c (mk_notation_and_policy): Include secret key to enable %s
1589         expandos, and pass notations through pct_expando as well.
1590
1591         * main.h, misc.c (pct_expando): Add %s and %S expandos for
1592         signer's keyid.
1593
1594 2002-05-25  David Shaw  <dshaw@jabberwocky.com>
1595
1596         * g10.c (strusage, build_list): Add compress algorithms to
1597         --version list.  Show algorithm numbers when --verbose --version
1598         is done.
1599
1600 2002-05-22  David Shaw  <dshaw@jabberwocky.com>
1601
1602         * options.h, main.h, keygen.c (keygen_set_set_prefs,
1603         keygen_get_std_prefs, keygen_upd_std_prefs), keyedit.c
1604         (keyedit_menu), g10.c (main), pkclist.c (select_algo_from_prefs):
1605         Add --personal-preference-list which allows the user to factor in
1606         their own preferred algorithms when the preference lists are
1607         consulted.  Obviously, this does not let the user violate a
1608         recepient's preferences (and the RFC) - this only influences the
1609         ranking of the agreed-on (and available) algorithms from the
1610         recepients.  Suggested by David Hollenberg.
1611
1612         * options.h, keygen.c (keygen_set_std_prefs), g10.c (main): Rename
1613         --preference-list to --default-preference-list (as that is what it
1614         really is), and make it a true default in that if the user selects
1615         "default" they get this list and not the compiled-in list.
1616
1617 2002-05-22  Werner Koch  <wk@gnupg.org>
1618
1619         * g10.c (main): Add missing LF in a info printout and made it
1620         translatable.  Noted by Michael Tokarev.
1621
1622 2002-05-21  Werner Koch  <wk@gnupg.org>
1623
1624         * g10.c (main): Removed the undef of USE_SHM_COPROCESSING which
1625         was erroneously introduced on 2002-01-09.
1626
1627         * signal.c (got_fatal_signal): Don't write the Nul to stderr.
1628         Reported by David Hollenberg.
1629
1630 2002-05-18  David Shaw  <dshaw@jabberwocky.com>
1631
1632         * main.h, g10.c (main), revoke.c (gen_desig_revoke): Generate a
1633         designated revocation via --desig-revoke
1634
1635         * keyedit.c (keyedit_menu, menu_addrevoker): New "addrevoker"
1636         command to add a designated revoker to a key.
1637
1638 2002-05-17  David Shaw  <dshaw@jabberwocky.com>
1639
1640         * gpgv.c: Add stub for get_ownertrust().
1641
1642         * g10.c (main): --allow-freeform-uid should be implied by
1643         OpenPGP.  Add --no-allow-freeform-uid.
1644
1645         * keyedit.c (sign_uids): Issue a warning when signing a
1646         non-selfsigned uid.
1647
1648         * getkey.c (merge_selfsigs_main): If a key has no selfsigs, and
1649         allow-non-selfsigned-uid is not set, still try and make the key
1650         valid by checking all uids for a signature from an ultimately
1651         trusted key.
1652
1653 2002-05-16  David Shaw  <dshaw@jabberwocky.com>
1654
1655         * main.h, keygen.c (keygen_add_revkey): Add revocation key
1656         subpackets to a signature (callable by
1657         make_keysig_packet). (write_direct_sig): Write a 1F direct key
1658         signature. (parse_revocation_key): Parse a string in
1659         algo:fpr:sensitive format into a revocation
1660         key. (get_parameter_revkey, do_generate_keypair): Call above
1661         functions when prompted from a batch key generation file.
1662
1663         * build-packet.c (build_sig_subpkt): Allow multiple revocation key
1664         subpackets in a single sig.
1665
1666         * keydb.h, getkey.c (get_seckey_byfprint): Same as
1667         get_pubkey_byfprint, except for secret keys.  We only know the
1668         fingerprint of a revocation key, so this is needed to retrieve the
1669         secret key needed to issue a revokation.
1670
1671         * packet.h, parse-packet.c (parse_signature, parse_revkeys): Split
1672         revkey parsing off into a new function that can be used to reparse
1673         after manipulating the revkey list.
1674
1675         * sign.c (make_keysig_packet): Ability to make 1F direct key
1676         signatures.
1677
1678 2002-05-15  David Shaw  <dshaw@jabberwocky.com>
1679
1680         * options.skel: keyserver.pgp.com is gone, so list pgp.surfnet.nl
1681         as a sample LDAP server instead.
1682
1683         * getkey.c (merge_selfsigs_main): Properly handle multiple
1684         revocation keys in a single packet.  Properly handle revocation
1685         keys that are in out-of-order packets.  Remove duplicates in
1686         revocation key list.
1687
1688 2002-05-14  Timo Schulz   <ts@winpt.org>
1689
1690         * exec.c (make_tempdir) [MINGW32]: Added missing '\'.
1691         
1692 2002-05-14  Stefan Bellon  <sbellon@sbellon.de>
1693
1694         * exec.c (make_tempdir): Make use of EXTSEP_S instead of hardcoded
1695         dot as extension separator.
1696
1697 2002-05-13  David Shaw  <dshaw@jabberwocky.com>
1698
1699         * photoid.c (show_photos): Use the long keyid as the filename for
1700         the photo.  Use the short keyid as the filename on 8.3 systems.
1701
1702         * exec.h, exec.c (make_tempdir, exec_write, exec_finish): Allow
1703         caller to specify filename.  This should make things easier on
1704         windows and macs where the file extension is required, but a whole
1705         filename is even better.
1706
1707         * keyedit.c (show_key_with_all_names, show_prefs): Show proper
1708         prefs for a v4 key uid with no selfsig at all.
1709
1710         * misc.c (check_permissions): Don't check permissions on
1711         non-normal files (pipes, character devices, etc.)
1712
1713 2002-05-11  Werner Koch  <wk@gnupg.org>
1714
1715         * mainproc.c (proc_symkey_enc): Avoid segv in case the parser
1716         encountered an invalid packet.
1717
1718         * keyserver.c (keyserver_export): Get confirmation before sending
1719         all keys.
1720
1721 2002-05-10  Stefan Bellon  <sbellon@sbellon.de>
1722
1723         * g10.c, hkp.c, keyedit.c, keyserver.c: Replaced all occurrances
1724         of strcasecmp with ascii_strcasecmp and all occurrances of
1725         strncasecmp with ascii_memcasecmp.
1726
1727 2002-05-10  David Shaw  <dshaw@jabberwocky.com>
1728
1729         * packet.h, getkey.c (fixup_uidnode), keyedit.c (show_prefs): Show
1730         assumed prefs for hash and compression as well as the cipher pref.
1731         Show assumed prefs if there are no prefs at all on a v4
1732         self-signed key.
1733
1734         * options.h, g10.c (main), sign.c (make_keysig_packet): New
1735         --cert-digest-algo function to override the default key signing
1736         hash algorithm.
1737
1738 2002-05-09  David Shaw  <dshaw@jabberwocky.com>
1739
1740         * getkey.c (merge_selfsigs_main): Make sure the revocation key
1741         list starts clean as this function may be called more than once
1742         (e.g. from functions in --edit).
1743
1744         * g10.c, encode.c (encode_crypt), sign.c (sign_file,
1745         sign_symencrypt_file): Make --compress-algo work like the
1746         documentation says.  It should be like --cipher-algo and
1747         --digest-algo in that it can override the preferences calculation
1748         and impose the setting the user wants.  No --compress-algo setting
1749         allows the usual preferences calculation to take place.
1750
1751         * main.h, compress.c (compress_filter): use new
1752         DEFAULT_COMPRESS_ALGO define, and add a sanity check for compress
1753         algo value.
1754
1755 2002-05-08  David Shaw  <dshaw@jabberwocky.com>
1756
1757         * pkclist.c (select_algo_from_prefs): There is an assumed
1758         compression preference for uncompressed data.
1759
1760 2002-05-07  David Shaw  <dshaw@jabberwocky.com>
1761
1762         * options.h, g10.c (main), getkey.c (finish_lookup), pkclist.c
1763         (algo_available): --pgp7, identical to --pgp6 except that it
1764         permits a few algorithms that PGP 7 added: AES128, AES192, AES256,
1765         and TWOFISH.  Any more of these --pgpX flags, and it'll be time to
1766         start looking at a generic --emulate-pgp X option.
1767
1768         * export.c (do_export_stream): Warn the user when exporting a
1769         secret key if it or any of its secret subkeys are protected with
1770         SHA1 while simple_sk_checksum is set.
1771
1772         * parse-packet.c (parse_key): Show when the SHA1 protection is
1773         used in --list-packets.
1774
1775         * options.h, build-packet.c (do_comment), g10.c (main): Rename
1776         --no-comment as --sk-comments/--no-sk-comments (--no-comment still
1777         works) and make the default be --no-sk-comments.
1778
1779 2002-05-07  Werner Koch  <wk@gnupg.org>
1780
1781         * keygen.c (get_parameter_algo): Never allow generation of the
1782         deprecated RSA-E or RSA-S flavors of PGP RSA.
1783         (ask_algo): Allow generation of RSA sign and encrypt in expert
1784         mode.  Don't allow ElGamal S+E unless in expert mode.
1785         * helptext.c: Added entry keygen.algo.rsa_se.
1786
1787 2002-05-07  David Shaw  <dshaw@jabberwocky.com>
1788
1789         * keyedit.c (sign_uids): If --expert is set, allow re-signing a
1790         uid to promote a v3 self-sig to a v4 one.  This essentially
1791         deletes the old v3 self-sig and replaces it with a v4 one.
1792
1793         * packet.h, parse-packet.c (parse_key), getkey.c
1794         (merge_keys_and_selfsig, merge_selfsigs_main): a v3 key with a v4
1795         self-sig must never let the v4 self-sig express a key expiration
1796         time that extends beyond the original v3 expiration time.
1797
1798 2002-05-06  David Shaw  <dshaw@jabberwocky.com>
1799
1800         * keyedit.c (sign_uids): When making a self-signature via "sign"
1801         don't ask about sig level or expiration, and include the usual
1802         preferences and such for v4 self-sigs.  (menu_set_preferences):
1803         Convert uids from UTF8 to native before printing.
1804
1805         * keyedit.c (sign_uids): Convert uids from UTF8 to native before
1806         printing.  (menu_set_primary_uid): Show error if the user tries to
1807         make a uid with a v3 self-sig primary.
1808
1809 2002-05-05  David Shaw  <dshaw@jabberwocky.com>
1810
1811         * import.c (import_one): When merging with a key we already have,
1812         don't let a key conflict (same keyid but different key) stop the
1813         import: just skip the bad key and continue.
1814
1815         * exec.c (make_tempdir): Under Win32, don't try environment
1816         variables for temp directories - GetTempDir tries environment
1817         variables internally, and it's better not to second-guess it in
1818         case MS adds some sort of temp dir handling to Windows at some
1819         point.
1820
1821 2002-05-05  Timo Schulz  <ts@winpt.org>
1822
1823         * mainproc.c (proc_symkey_enc): Don't ask for a passphrase
1824         in the list only mode.
1825         
1826 2002-05-05  David Shaw  <dshaw@jabberwocky.com>
1827
1828         * keyserver.c (keyserver_refresh): --refresh-keys implies
1829         --merge-only so as not to import keys with keyids that match the
1830         ones being refreshed.  Noted by Florian Weimer.
1831
1832 2002-05-04  Stefan Bellon  <sbellon@sbellon.de>
1833
1834         * free-packet.c (copy_public_key): Don't call m_alloc(0), therefore
1835         added consistency check for revkey and numrefkeys.
1836
1837         * getkey.c (check_revocation_keys): Added consistency check for
1838         revkey and numrefkeys.
1839
1840         * keyedit.c (show_key_with_all_names): Likewise.
1841
1842 2002-05-03  David Shaw  <dshaw@jabberwocky.com>
1843
1844         * photoid.c: Provide default image viewer for Win32.
1845
1846         * misc.c (pct_expando): %t means extension, not name ("jpg", not
1847         "jpeg").
1848
1849         * keyserver.c (keyserver_spawn), photoid.c (show_photos), exec.h,
1850         exec.c: Allow the caller to determine the temp file extension when
1851         starting an exec_write and change all callers.
1852
1853         * keyedit.c (sign_uids): Nonrevocable key signatures cause an
1854         automatic promotion to v4.
1855
1856         * exec.c: Provide stubs for exec_ functions when NO_EXEC is
1857         defined.
1858
1859 2002-05-02  David Shaw  <dshaw@jabberwocky.com>
1860
1861         * photoid.h, photoid.c (parse_image_header, image_type_to_string):
1862         Useful functions to return data about an image.
1863
1864         * packet.h, parse-packet.c (make_attribute_uidname,
1865         parse_attribute_subpkts, parse_attribute), photoid.h, photoid.c
1866         (show_photos): Handle multiple images in a single attribute
1867         packet.
1868
1869         * main.h, misc.c (pct_expando), sign.c (mk_notation_and_policy),
1870         photoid.c (show_photos): Simpler expando code that does not
1871         require using compile-time string sizes.  Call
1872         image_type_to_string to get image strings (i.e. "jpg",
1873         "image/jpeg").  Change all callers.
1874
1875         * keyedit.c (menu_showphoto), keylist.c (list_keyblock_print):
1876         Allow viewing multiple images within a single attribute packet.
1877
1878         * gpgv.c: Various stubs for link happiness.
1879
1880 2002-05-02  David Shaw  <dshaw@jabberwocky.com>
1881
1882         * build-packet.c (build_sig_subpkt), keyedit.c (sign_uids),
1883         options.h, sign.c (mk_notation_and_policy), g10.c (main,
1884         add_notation_data, add_policy_url (new), check_policy_url
1885         (removed)): Allow multiple policy URLs on a given signature.
1886         Split "--notation-data" into "--cert-notation" and
1887         "--sig-notation" so the user can set different policies for key
1888         and data signing.  For backwards compatibility, "--notation-data"
1889         sets both, as before.
1890
1891 2002-05-02  Werner Koch  <wk@gnupg.org>
1892
1893         * options.skel: Removed the comment on trusted-keys because this
1894         option is now deprecated.
1895
1896 2002-05-01  David Shaw  <dshaw@jabberwocky.com>
1897
1898         * keyedit.c (menu_adduid): 2440bis04 says that multiple attribute
1899         packets on a given key are legal.
1900
1901         * keyserver.c (keyserver_refresh): the fake v3 keyid hack applies
1902         to "mailto" URLs as well since they are also served by pksd.
1903
1904 2002-04-29  Werner Koch  <wk@gnupg.org>
1905
1906         Added a copyright year for files changed this year.
1907
1908 2002-04-25  Werner Koch  <wk@gnupg.org>
1909
1910         * g10.c, options.h: New options --display, --ttyname, --ttytype,
1911         --lc-ctype, --lc-messages to be used with future versions of the
1912         gpg-agent. 
1913         * passphrase.c (agent_send_option,agent_send_all_options): New.
1914         (agent_open): Send options to the agent.
1915
1916         * trustdb.c (update_ownertrust, clear_ownertrust): Do an explicit
1917         do_sync because revalidation_mark does it only if when the
1918         timestamp actually changes.
1919
1920 2002-04-23  David Shaw  <dshaw@jabberwocky.com>
1921
1922         * main.h, keygen.c (do_generate_keypair), keylist.c
1923         (print_signature_stats, list_all, list_one, list_keyblock,
1924         list_keyblock_print, list_keyblock_colon): After generating a new
1925         key, show the key information (name, keyid, fingerprint, etc.)
1926         Also do not print uncheckable signatures (missing key..) in
1927         --check-sigs.  Print statistics (N missing keys, etc.) after
1928         --check-sigs.
1929
1930         * keyedit.c (sign_uids): When signing a key with an expiration
1931         date on it, the "Do you want your signature to expire at the same
1932         time?" question should default to YES.
1933
1934 2002-04-22  David Shaw  <dshaw@jabberwocky.com>
1935
1936         * parse-packet.c (parse_plaintext), packet.h, plaintext.c
1937         (handle_plaintext): Fix bug in handling literal packets with
1938         zero-length data (no data was being confused with partial body
1939         length).
1940
1941         * misc.c (pct_expando), options.skel: %t means extension ("jpg").
1942         %T means MIME type ("image/jpeg").
1943
1944         * import.c (import_one): Only trigger trust update if the keyring
1945         is actually changed.
1946
1947         * export.c (do_export_stream): Missing a m_free.
1948
1949 2002-04-22  Stefan Bellon  <sbellon@sbellon.de>
1950
1951         * keyid.c (expirestr_from_sk, expirestr_from_sig): Added _() to
1952         string constant.
1953
1954         * exec.c (make_tempdir) [__riscos__]: Better placement of
1955         temporary file.
1956
1957 2002-04-20  David Shaw  <dshaw@jabberwocky.com>
1958
1959         * keygen.c (generate_subkeypair): 2440bis04 adds that creating
1960         subkeys on v3 keys is a MUST NOT.
1961
1962         * getkey.c (finish_lookup): The --pgp6 "use the primary key"
1963         behavior should only apply while data signing and not encryption.
1964         Noted by Roger Sondermann.
1965
1966 2002-04-19  Werner Koch  <wk@gnupg.org>
1967
1968         * keygen.c (keygen_set_std_prefs): Put back 3DES because the RFC
1969         says it is good form to do so.
1970
1971 2002-04-19  David Shaw  <dshaw@jabberwocky.com>
1972
1973         * keyedit.c (menu_deluid): Only cause a trust update if we delete
1974         a non-revoked user id.
1975
1976         * hkp.c (hkp_ask_import), keyserver.c (parse_keyserver_options,
1977         keyserver_spawn), options.h: Remove fast-import keyserver option
1978         (no longer meaningful).
1979
1980         * g10.c (main), keyedit.c (sign_uids), options.h: Change
1981         --default-check-level to --default-cert-check-level as it makes
1982         clear what it operates on.
1983
1984         * g10.c (main): --pgp6 also implies --no-ask-sig-expire.
1985
1986         * delkey.c (do_delete_key): Comment.
1987
1988         * keyedit.c (sign_uids, keyedit_menu, menu_deluid, menu_delsig,
1989         menu_expire, menu_revsig, menu_revkey): Only force a trustdb check
1990         if we did something that changes it.
1991
1992         * g10.c: add "--auto-check-trustdb" to override a
1993         "--no-auto-check-trustdb"
1994
1995 2002-04-19  Werner Koch  <wk@gnupg.org>
1996
1997         * tdbio.c (tdbio_write_nextcheck): Return a status whether the
1998         stamp was actually changed.
1999         * trustdb.c (revalidation_mark): Sync the changes.  Removed the
2000         sync operation done by its callers.
2001         (get_validity): Add logic for maintaining a pending_check flag.
2002         (clear_ownertrust): New.
2003         
2004         * keyedit.c (sign_uids): Don't call revalidation_mark depending on
2005         primary_pk.
2006         (keyedit_menu): Call revalidation_mark after "trust".
2007         (show_key_with_all_names): Print a warning on the wrong listed key
2008         validity.
2009
2010         * delkey.c (do_delete_key): Clear the owenertrust information when
2011         deleting a public key.
2012         
2013 2002-04-18  Werner Koch  <wk@gnupg.org>
2014
2015         * seskey.c (encode_md_value): Print an error message if a wrong
2016         digest algorithm is used with DSA.  Changed all callers to cope
2017         with a NULL return.  Problem noted by Imad R. Faiad.
2018
2019 2002-04-18  David Shaw  <dshaw@jabberwocky.com>
2020
2021         * trustdb.c (mark_usable_uid_certs): Properly handle nonrevocable
2022         signatures that can expire.  In short, the only thing that can
2023         override an unexpired nonrevocable signature is another unexpired
2024         nonrevocable signature.
2025
2026         * getkey.c (finish_lookup): Always use primary signing key for
2027         signatures when --pgp6 is on since pgp6 and 7 do not understand
2028         signatures made by signing subkeys.
2029
2030 2002-04-18  Werner Koch  <wk@gnupg.org>
2031
2032         * trustdb.c (validate_keys): Never schedule a nextcheck into the
2033         past.
2034         (validate_key_list): New arg curtime use it to set next_expire.
2035         (validate_one_keyblock): Take the current time from the caller.
2036         (clear_validity, reset_unconnected_keys): New.
2037         (validate_keys): Reset all unconnected keys.
2038
2039         * getkey.c (premerge_public_with_secret): Fixed 0x12345678! syntax
2040         for use with secret keys.
2041         (lookup): Advance the searchmode after a search FIRST.
2042
2043         * seckey-cert.c (do_check): Always calculate the old checksum for
2044         use after unprotection.
2045
2046         * g10.c, options.skel: New option --no-escape-from.  Made
2047         --escape-from and --force-v3-sigs the default and removed them
2048         from the options skeleton.
2049
2050 2002-04-16  Werner Koch  <wk@gnupg.org>
2051
2052         * parse-packet.c (parse_key): Support a SHA1 checksum as per
2053         draft-rfc2440-bis04.
2054         * packet.h (PKT_secret_key): Add field sha1chk.
2055         * seckey-cert.c (do_check): Check the SHA1 checksum
2056         (protect_secret_key): And create it.
2057         * build-packet.c (do_secret_key): Mark it as sha-1 protected.
2058         * g10.c, options.h: New option --simple-sk-checksum.
2059
2060 2002-04-13  David Shaw  <dshaw@jabberwocky.com>
2061
2062         * parse-packet.c (parse_signature): Minor fix - signatures should
2063         expire at their expiration time and not one second later.
2064
2065         * keygen.c (proc_parameter_file): Allow specifying preferences
2066         string (i.e. "s5 s2 z1 z2", etc) in a batchmode key generation
2067         file.
2068
2069         * keyedit.c (keyedit_menu): Print standard error message when
2070         signing a revoked key (no new translation).
2071
2072         * getkey.c (merge_selfsigs): Get the default set of key prefs from
2073         the real (not attribute) primary uid.
2074
2075 2002-04-12  David Shaw  <dshaw@jabberwocky.com>
2076
2077         * pkclist.c (build_pk_list): Fix bug that allowed a key to be
2078         selected twice in batch mode if one instance was the default
2079         recipient and the other was an encrypt-to.  Noted by Stefan
2080         Bellon.
2081
2082         * parse-packet.c (dump_sig_subpkt): Show data in trust and regexp
2083         sig subpackets.
2084
2085         * keyedit.c (keyedit_menu): Use new function real_uids_left to
2086         prevent deleting the last real (i.e. non-attribute) uid.  Again,
2087         according to the attribute draft. (menu_showphoto): Make another
2088         string translatable.
2089
2090 2002-04-11  David Shaw  <dshaw@jabberwocky.com>
2091
2092         * build-packet.c (build_sig_subpkt): Delete subpackets from both
2093         hashed and unhashed area on update.  (find_subpkt): No longer
2094         needed.
2095
2096         * keyedit.c (sign_uids): With --pgp2 on, refuse to sign a v3 key
2097         with a v4 signature.  As usual, --expert overrides.  Try to tweak
2098         some strings to a closer match so they can all be translated in
2099         one place.  Use different helptext keys to allow different help
2100         text for different questions.
2101
2102         * keygen.c (keygen_upd_std_prefs): Remove preferences from both
2103         hashed and unhashed areas if they are not going to be used.
2104
2105 2002-04-10  David Shaw  <dshaw@jabberwocky.com>
2106
2107         * misc.c (pct_expando), options.skel: Use %t to indicate type of a
2108         photo ID (in this version, it's always "jpeg").  Also tweak string
2109         expansion loop to minimize reallocs.
2110
2111         * mainproc.c (do_check_sig): Variable type fix.
2112
2113         * keyedit.c (menu_set_primary_uid): Differentiate between true
2114         user IDs and attribute user IDs when making one of them primary.
2115         That is, if we are making a user ID primary, we alter user IDs.
2116         If we are making an attribute packet primary, we alter attribute
2117         packets.  This matches the language in the latest attribute packet
2118         draft.
2119
2120         * keyedit.c (sign_uids): No need for the empty string hack.
2121
2122         * getkey.c (fixup_uidnode): Only accept preferences from the
2123         hashed segment of the self-sig.
2124
2125 2002-04-10  Werner Koch  <wk@gnupg.org>
2126
2127         * tdbio.c (migrate_from_v2): Fixed the offset to read the old
2128         ownertrust value and only add entries to the table if we really
2129         have a value.
2130
2131 2002-04-08  David Shaw  <dshaw@jabberwocky.com>
2132
2133         * status.h, status.c (get_status_string): Add KEYEXPIRED, EXPSIG,
2134         and EXPKEYSIG.  Add "deprecated-use-keyexpired-instead" to
2135         SIGEXPIRED.
2136
2137         * sig-check.c (do_check): Start transition from SIGEXPIRED to
2138         KEYEXPIRED, since the actual event is signature verification by an
2139         expired key and not an expired signature. (do_signature_check,
2140         packet.h): Rename as signature_check2, make public, and change all
2141         callers.
2142
2143         * mainproc.c (check_sig_and_print, do_check_sig): Use status
2144         EXPSIG for an expired, but good, signature.  Add the expiration
2145         time (or 0) to the VALIDSIG status line.  Use status KEYEXPSIG for
2146         a good signature from an expired key.
2147
2148         * g10.c (main): remove checks for no arguments now that argparse
2149         does it.
2150
2151 2002-04-06  Werner Koch  <wk@gnupg.org>
2152
2153         * keyring.c (keyring_get_keyblock): Disable the keylist mode here.
2154
2155         * encode.c (encode_simple, encode_crypt): Only test on compressed
2156         files if a compress level was not explicity set.
2157
2158         * keygen.c (keygen_set_std_prefs): Removed Blowfish and Twofish
2159         from the list of default preferences, swapped the preferences of
2160         RMD160 and SHA1.  Don't include a preference to 3DES unless the
2161         IDEA kludge gets used.
2162
2163         * free-packet.c (free_packet): call free_encrypted also for
2164         PKT_ENCRYPTED_MDC.
2165
2166         * compress.c (release_context): New.
2167         (handle_compressed): Allocate the context and setup a closure to
2168         release the context.  This is required because there is no
2169         guarabntee that the filter gets popped from the chain at the end
2170         of the function.  Problem noted by Timo and probably also the
2171         cause for a couple of other reports.
2172         (compress_filter): Use the release function if set.
2173
2174         * tdbio.c [__CYGWIN32__]: Don't rename ftruncate.  Noted by
2175         Disastry.
2176
2177         * parse-packet.c (parse_signature): Put parens around a bit test.
2178
2179         * exec.c (make_tempdir): Double backslash for TMP directory
2180         creation under Windows.  Better strlen the DIRSEP_S constants for
2181         allocation measurements.
2182
2183         * decrypt.c (decrypt_messages): Release the passphrase aquired
2184         by get_last_passphrase.
2185
2186 2002-04-02  Werner Koch  <wk@gnupg.org>
2187
2188         * Makefile.am (EXTRA_DIST): Removed OPTIONS an pubring.asc - they
2189         are no longer of any use. 
2190
2191 2002-04-03  David Shaw  <dshaw@jabberwocky.com>
2192
2193         * keyserver.c (parse_keyserver_options): fix auto-key-retrieve to
2194         actually work as a keyserver-option (noted by Roger Sondermann).
2195
2196         * keylist.c (reorder_keyblock): do not reorder the primary
2197         attribute packet - the first user ID must be a genuine one.
2198
2199 2002-03-31  David Shaw  <dshaw@jabberwocky.com>
2200
2201         * keylist.c (list_keyblock_colon): Fix ownertrust display with
2202         --with-colons.
2203
2204         * keygen.c (generate_user_id), photoid.c (generate_photo_id):
2205         Properly initialize the user ID refcount.  A few more "y/n" ->
2206         "y/N" in photoid.c.
2207
2208         * keyedit.c (ask_revoke_sig): Warn the user if they are about to
2209         revoke an expired sig (not a problem, but they should know).  Also
2210         tweak a few prompts to change "y/n" to "y/N", which is how most
2211         other prompts are written.
2212
2213         * keyserver.c (keyserver_search_prompt): Control-d escapes the
2214         keyserver search prompt.
2215
2216         * pkclist.c (show_revocation_reason & callers): If a subkey is
2217         considered revoked solely because the parent key is revoked, print
2218         the revocation reason from the parent key.
2219
2220         * trustdb.c (get_validity): Allow revocation/expiration to apply
2221         to a uid/key with no entry in the trustdb.
2222
2223 2002-03-29  David Shaw  <dshaw@jabberwocky.com>
2224
2225         * keyserver.c (printunquoted): unquote backslashes from keyserver
2226         searches
2227
2228         * hkp.c (write_quoted): quote backslashes from keyserver searches
2229
2230 2002-03-26  Werner Koch  <wk@gnupg.org>
2231
2232         * keygen.c (ask_keysize): Removed the warning for key sizes > 1536.
2233
2234 2002-03-25  Werner Koch  <wk@gnupg.org>
2235
2236         * keyedit.c (sign_uids): Use 2 strings and not a %s so that
2237         translations can be done the right way.
2238         * helptext.c: Fixed small typo.
2239
2240 2002-03-23  David Shaw  <dshaw@jabberwocky.com>
2241
2242         * import.c (append_uid, merge_sigs): it is okay to import
2243         completely non-signed uids now (with --allow-non-selfsigned-uid).
2244
2245         * getkey.c (get_primary_uid, merge_selfsigs_main): do not choose
2246         an attribute packet (i.e. photo) as primary uid.  This prevents
2247         oddities like "Good signature from [image of size 2671]".  This is
2248         still not perfect (one can still select an attribute packet as
2249         primary in --edit), but is closer to the way the draft is going.
2250
2251         * g10.c (build_list): algorithms should include 110.
2252
2253         * g10.c (main): --pgp2 implies --no-ask-sig-expire and
2254         --no-ask-cert-expire as those would cause a v4 sig/cert.
2255
2256         * armor.c (is_armor_header): be more lenient in what constitutes a
2257         valid armor header (i.e. -----BEGIN blah blah-----) as some
2258         Windows programs seem to add spaces at the end.  --openpgp makes
2259         it strict again.
2260
2261 2002-03-18  David Shaw  <dshaw@jabberwocky.com>
2262
2263         * keyserver.c (keyserver_search_prompt): Properly handle a "no
2264         keys found" case from the internal HKP code (external HKP is ok).
2265         Also, make a COUNT -1 (i.e. streamed) keyserver response a little
2266         more efficient.
2267
2268         * g10.c (main): Add --no-allow-non-selfsigned-uid
2269
2270 2002-03-17  David Shaw  <dshaw@jabberwocky.com>
2271
2272         * g10.c (main): --openpgp implies --allow-non-selfsigned-uid.
2273
2274         * getkey.c (merge_selfsigs_main): If none of the uids are primary
2275         (because none are valid) then pick the first to be primary (but
2276         still invalid).  This is for cosmetics in case some display needs
2277         to print a user ID from a non-selfsigned key.  Also use
2278         --allow-non-selfsigned-uid to make such a key valid and not
2279         --always-trust.  The key is *not* automatically trusted via
2280         --allow-non-selfsigned-uid.
2281
2282         * mainproc.c (check_sig_and_print): Make sure non-selfsigned uids
2283         print [uncertain] on verification even though one is primary now.
2284
2285         * getkey.c (merge_selfsigs): If the main key is not valid, then
2286         neither are the subkeys.
2287
2288         * import.c (import_one): Allow --allow-non-selfsigned-uid to work
2289         on completely unsigned keys.  Print the uids in UTF8.  Remove
2290         mark_non_selfsigned_uids_valid().
2291
2292         * keyedit.c (show_key_with_all_names): Show revocation key as
2293         UTF8.
2294
2295         * sign.c (clearsign_file): Allow --not-dash-escaped to work with
2296         v3 keys.
2297
2298 2002-03-14  Werner Koch  <wk@gnupg.org>
2299
2300         * main.h: Changed the default algorithms to CAST5 and SHA1.
2301
2302 2002-03-13  David Shaw  <dshaw@jabberwocky.com>
2303
2304         * import.c (chk_self_sigs): Show which user ID a bad self-sig
2305         (invald sig or unsupported public key algorithm) resides on.
2306
2307         * import.c (chk_self_sigs): any valid self-sig should mark a user
2308         ID or subkey as valid - otherwise, an attacker could DoS the user
2309         by inventing a bogus invalid self-signature.
2310
2311 2002-03-07  David Shaw  <dshaw@jabberwocky.com>
2312
2313         * g10.c (main): make a few more strings translatable.
2314
2315         * options.h, options.skel, g10.c (main), gpgv.c, mainproc.c
2316         (check_sig_and_print), keyserver.c (parse_keyserver_options):
2317         --auto-key-retrieve should really be a keyserver-option variable.
2318
2319         * import.c (revocation_present): new function to print a warning
2320         if a key is imported that has been revoked by designated revoker,
2321         but the designated revoker is not present to verify the
2322         revocation.  If keyserver-options auto-key-retrieve is set, try
2323         and fetch the designated revoker from the keyserver.
2324
2325         * import.c (import_one): call revocation_present after importing a
2326         new key.  Note that this applies to --import, --recv-keys, and
2327         --search-keys.
2328         
2329         * keyserver-internal.h, keyserver.c (keyserver_import_fprint):
2330         import via fingerprint (for revocation keys).
2331
2332         * keyserver.c (keyserver_import_keyid): much simpler
2333         implementation now that we're using KEYDB_SEARCH_DESC internally.
2334
2335 2002-03-04  David Shaw  <dshaw@jabberwocky.com>
2336
2337         * revoke.c (gen_revoke): do not prompt for revocation reason for
2338         v3 revocations (unless force-v4-certs is on) since they wouldn't
2339         be used anyway.
2340
2341         * keyedit.c (menu_revsig): show the status of the sigs
2342         (exportable? revocable?) to the user before prompting for which
2343         sig to revoke.  Also, make sure that local signatures get local
2344         revocations.
2345
2346         * keyedit.c (ask_revoke_sig): remind the user which sigs are
2347         local.
2348
2349         * g10.c (main): Add "exec-path" variable to override PATH for
2350         execing programs.
2351
2352         * export.c (do_export_stream): properly check return code from
2353         classify_user_id to catch unclassifiable keys.
2354
2355 2002-03-03  David Shaw  <dshaw@jabberwocky.com>
2356
2357         * parse-packet.c (parse_signature): variable type tweak for RISC
2358         OS (from Stefan)
2359
2360 2002-02-28  David Shaw  <dshaw@jabberwocky.com>
2361
2362         * getkey.c (check_revocation_keys): New function to check a
2363         revocation against a list of potential revocation keys.  Note the
2364         loop-breaking code here.  This is to prevent blowing up if A is
2365         B's revocation key, while B is also A's.  Note also that this is
2366         written so that a revoked revoker can still issue revocations:
2367         i.e. If A revokes B, but A is revoked, B is still revoked.  I'm
2368         not completely convinced this is the proper behavior, but it
2369         matches how PGP does it.  It does at least have the advantage of
2370         much simpler code - my first version of this had lots of loop
2371         maintaining code so you could chain revokers many levels deep and
2372         if D was revoked, C was not, which meant that B was, and so on.
2373         It was sort of scary, actually.
2374
2375         * getkey.c (merge_selfsigs_main): Add any revocation keys onto the
2376         pk.  This is particularly interesting since we normally only get
2377         data from the most recent 1F signature, but you need multiple 1F
2378         sigs to properly handle revocation keys (PGP does it this way, and
2379         a revocation key could be marked "sensitive" and hence in a
2380         different signature).  Also, if a pk has a revocation key set,
2381         check for revocation sigs that were not made by us - if made by a
2382         valid revocation key, mark the pk revoked.
2383
2384         * packet.h, getkey.c (cache_public_key): do not cache key if
2385         "dont_cache" is set.  This allows the revocation key code to look
2386         up a key and return information that may be inaccurate to prevent
2387         loops without caching the fake data.
2388
2389         * packet.h, sig-check.c (do_signature_check): Record if a
2390         signature was made by a revoked pk.
2391
2392         * packet.h, parse-packet.c (parse_one_sig_subpkt,
2393         can_handle_critical, parse_signature): Get revocation key
2394         information out of direct sigs.
2395         
2396         * keylist.c (list_keyblock_print): don't assume that the presence
2397         of a 0x20 signature means the key is revoked.  With revocation
2398         keys, this may not be true if the revocation key is not around to
2399         verify it or if verification failed.  Also, 0x1F should get listed
2400         as "sig", and not "unexpected signature class".
2401
2402         * keyedit.c (show_key_with_all_names): Add a flag for printing
2403         revoker information and change all callers.
2404
2405         * import.c (merge_blocks): merge in any new direct key (0x1F)
2406         sigs.
2407
2408         * import.c (import_revoke_cert): don't keep processing after a
2409         revocation is rejected.
2410         
2411         * import.c (delete_inv_parts): Allow importing a revocation
2412         signature even if it was not issued by the key.  This allows a
2413         revocation key to issue it.  Of course, the sig still needs to be
2414         checked before we trust it.
2415
2416         * free-packet.c (copy_public_key): Include a new copy of the
2417         revocation keys when duping a pk.
2418
2419         * free-packet.c (free_seckey_enc, release_public_key_parts): Free
2420         any revocation keys that are attached to a sig or pk.
2421
2422         * export.c (do_export_stream): Do not export signatures with
2423         "sensitive" revocation keys in them.
2424
2425 2002-02-27  David Shaw  <dshaw@jabberwocky.com>
2426
2427         * export.c (do_export_stream): Do not include v3 keys in a
2428         --export-secret-subkeys export.
2429
2430         * getkey.c (merge_selfsigs_main): If a key isn't valid (say,
2431         because of no self-signature), allow --always-trust to force it
2432         valid so it can be trusted.
2433
2434 2002-02-25  David Shaw  <dshaw@jabberwocky.com>
2435
2436         * hkp.c (hkp_ask_import), hkp.h, keyserver.c (all): treat key
2437         lists internally as fingerprints when possible.  All this is via
2438         KEYDB_SEARCH_DESC - no point in reinventing the wheel. This allows
2439         the helper program to search the keyserver by fingerprint if
2440         desired (and the keyserver supports it).  Note that automatic
2441         fingerprint promotion during refresh only applies to v4 keys as a
2442         v4 fingerprint can be easily changed into a long or short key id,
2443         and a v3 cannot.
2444
2445         * pubkey-enc.c, getkey.c, misc.c, main.h: Take two copies of
2446         hextobyte() from pubkey-enc.c and getkey.c and make them into one
2447         copy in misc.c.
2448
2449 2002-02-22  David Shaw  <dshaw@jabberwocky.com>
2450
2451         * keyserver.c (keyserver_search_prompt): Detect a "no keys found"
2452         case even if the helper program does not explicitly say how many
2453         keys were found.
2454
2455         * hkp.c (parse_hkp_index): Bug fix - don't report non-revoked keys
2456         as revoked in HKP key searches.
2457
2458 2002-02-19  Werner Koch  <wk@gnupg.org>
2459
2460         * parse-packet.c (parse_trust): Made parsing more robust.
2461
2462 2002-02-19  David Shaw  <dshaw@jabberwocky.com>
2463
2464         * hkp.c (parse_hkp_index): Catch corruption in HKP index lines
2465         (can be caused by broken or malicious keyservers).
2466
2467         * keyserver.c (keyserver_work): Add KEYSERVER_NOT_SUPPORTED for
2468         unsupported actions (say, a keyserver that has no way to search,
2469         or a readonly keyserver that has no way to add).  Also add a
2470         USE_EXTERNAL_HKP define to disable the internal HKP keyserver
2471         code.
2472
2473 2002-02-14  Werner Koch  <wk@gnupg.org>
2474
2475         * g10.c: New option --no-use-agent. 
2476
2477         * pkclist.c (check_signatures_trust): Always print the warning for
2478         unknown and undefined trust.  Removed the did_add cruft.  Reported
2479         by Janusz A. Urbanowicz.
2480
2481 2002-02-11  David Shaw  <dshaw@jabberwocky.com>
2482
2483         * hkp.c (parse_hkp_index): Bug fix - properly handle user IDs with
2484         colons (":") in them while HKP searching.
2485
2486 2002-02-09  David Shaw  <dshaw@jabberwocky.com>
2487
2488         * misc.c (pct_expando): More comments.
2489
2490         * keydb.h, sign.c (mk_notation_and_policy): Clarify what is a sig
2491         and what is a cert.  A sig has sigclass 0x00, 0x01, 0x02, or 0x40,
2492         and everything else is a cert.
2493
2494         * g10.c (main), keyedit.c (keyedit_menu): Add a "nrlsign" for
2495         nonrevocable and local key signatures.
2496
2497         * g10.c (main): Add a --no-force-mdc to undo --force-mdc.
2498
2499         * options.h, g10.c (main), cipher.c (write_header): Add a knob to
2500         --disable-mdc/--no-disable-mdc.  Off by default, of course, but is
2501         used in --pgp2 and --pgp6 modes.
2502         
2503         * pkclist.c (build_pk_list): Allow specifying multiple users in
2504         the "Enter the user ID" loop.  Enter a blank line to stop.  Show
2505         each key+id as it is added.
2506
2507         * keylist.c (show_policy_url), mainproc.c (print_notation_data):
2508         It is not illegal (though possibly silly) to have multiple policy
2509         URLs in a given signature, so print all that are present.
2510         
2511         * hkp.c (hkp_search): More efficient implementation of URL-ifying
2512         code.
2513
2514 2002-02-04  David Shaw  <dshaw@jabberwocky.com>
2515
2516         * main.h, misc.c (pct_expando): New function to generalize
2517         %-expando processing in any arbitrary string.
2518
2519         * photoid.c (show_photo): Call the new pct_expando function rather
2520         than expand strings internally.
2521         
2522         * sign.c (mk_notation_and_policy): Show policy URLs and notations
2523         when making a signature if show-policy/show-notation is on.
2524         %-expand policy URLs during generation.  This lets the user have
2525         policy URLs of the form "http://notary.jabberwocky.com/keysign/%K"
2526         which will generate a per-signature policy URL.
2527
2528         * main.h, keylist.c (show_policy_url, show_notation): Add amount
2529         to indent so the same function can be used in key listings as well
2530         as during sig generation.  Change all callers.
2531
2532 2002-02-04  David Shaw  <dshaw@jabberwocky.com>
2533
2534         * keyserver.c, options.h (parse_keyserver_options, keyidlist):
2535         Workaround for the pksd and OKS keyserver bug that calculates v4
2536         RSA keyids as if they were v3.  The workaround/hack is to fetch
2537         both the v4 (e.g. 99242560) and v3 (e.g. 68FDDBC7) keyids.  This
2538         only happens for key refresh while using the HKP scheme and the
2539         refresh-add-fake-v3-keyids keyserver option must be set.  This
2540         should stay off by default.
2541
2542 2002-02-03  David Shaw  <dshaw@jabberwocky.com>
2543
2544         * keyserver.c (keyserver_spawn): Bug fix - do not append keys to
2545         each other when --sending more than one.
2546
2547 2002-02-02  David Shaw  <dshaw@jabberwocky.com>
2548
2549         * options.h, g10.c (main), keyedit.c (sign_uids), sign.c
2550         (mk_notation_and_policy): Split "--set-policy-url" into
2551         "--cert-policy-url" and "--sig-policy-url" so the user can set
2552         different policies for key and data signing.  For backwards
2553         compatibility, "--set-policy-url" sets both, as before.
2554
2555 2002-01-30  Werner Koch  <wk@gnupg.org>
2556
2557         * g10.c (main): --gen-random --armor does now output a base64
2558         encoded string.
2559
2560 2002-01-28  David Shaw  <dshaw@jabberwocky.com>
2561
2562         * g10.c (main), options.h, pkclist.c (algo_available): --pgp6
2563         flag.  This is not nearly as involved as --pgp2.  In short, it
2564         turns off force_mdc, turns on no_comment, escape_from, and
2565         force_v3_sigs, and sets compression to 1.  It also restricts the
2566         user to IDEA (if present), 3DES, CAST5, MD5, SHA1, and RIPEMD160.
2567         See the comments above algo_available() for lots of discussion on
2568         why you would want to do this.
2569
2570 2002-01-27  David Shaw  <dshaw@jabberwocky.com>
2571
2572         * keygen.c (keygen_set_std_prefs): Comment
2573
2574         * keyedit.c (sign_uids): Bug fix - when signing with multiple
2575         secret keys at the same time, make sure each key gets the sigclass
2576         prompt.
2577
2578         * exec.c (exec_finish): Close the iobuf and FILE before trying to
2579         waitpid, so the remote process will get a SIGPIPE and exit.  This
2580         is only a factor when using a pipe to communicate.
2581
2582         * exec.c (exec_write): Disable cache-on-close of the fd iobuf (is
2583         this right?  Why is a fd iobuf cached at all?)
2584
2585 2002-01-26  Werner Koch  <wk@gnupg.org>
2586
2587         * g10.c, options.h: New option --gpg-agent-info
2588         * passphrase.c (agent_open): Let it override the environment info.
2589         * seckey-cert.c (check_secret_key): Always try 3 times when the
2590         agent is enabled.
2591         * options.skel: Describe --use-agent.
2592
2593 2002-01-24  David Shaw  <dshaw@jabberwocky.com>
2594
2595         * pubkey-enc.c (is_algo_in_prefs, get_it): Only check preferences
2596         against keys with v4 self sigs - there is really little point in
2597         warning for every single non-IDEA message encrypted to an old key.
2598
2599         * pkclist.c (select_algo_from_prefs): Only put in the fake IDEA
2600         preference if --pgp2 is on.
2601
2602         * mainproc.c (check_sig_and_print): Print "Expired" for expired
2603         but good signatures (this still prints "BAD" for expired but bad
2604         signatures).
2605
2606 2002-01-23  David Shaw  <dshaw@jabberwocky.com>
2607
2608         * keygen.c (ask_keysize): Cosmetic: don't present a RSA signing
2609         key as a "keypair" which can be 768 bits long (as RSA minimum is
2610         1024).
2611
2612         * pubkey-enc.c (is_algo_in_prefs): Allow IDEA as a fake preference
2613         for v3 keys with v3 selfsigs.
2614
2615 2002-01-22  David Shaw  <dshaw@jabberwocky.com>
2616
2617         * packet.h, getkey.c (merge_selfsigs_main), pkclist.c
2618         (select_algo_from_prefs): Implement the fake IDEA preference as
2619         per RFC2440:12.1.  This doesn't mean that IDEA will be used (the
2620         plugin may not be present), but it does mean that a v3 key with a
2621         v3 selfsig has an implicit IDEA preference instead of 3DES.  v3
2622         keys with v4 selfsigs use preferences as normal.
2623
2624         * encode.c (encode_crypt): if select_algo_from_prefs fails, this
2625         means that we could not find a cipher that both keys like.  Since
2626         all v4 keys have an implicit 3DES preference, this means there is
2627         a v3 key with a v3 selfsig in the list.  Use 3DES in this case as
2628         it is the safest option (we know the v4 key can handle it, and
2629         we'll just hope the v3 key is being used in an implementation that
2630         can handle it).  If --pgp2 is on, warn the user what we're doing
2631         since it'll probably break PGP2 compatibility.
2632
2633         * g10.c (main): Do not force using IDEA for encrypted files in
2634         --pgp2 mode - let the fake IDEA preference choose this for us for
2635         better compatibility when encrypting to multiple keys, only some
2636         of which are v3.
2637
2638         * keygen.c (keygen_set_std_prefs): Put 3DES on the end of the
2639         default cipher pref list (RFC2440: "...it is good form to place it
2640         there explicitly.").  If the user has the IDEA plugin installed,
2641         put a preference for IDEA *after* 3DES to effectively disable its
2642         use for everything except encrypting along with v3 keys.
2643
2644         * encode.c, g10.c, sign.c: Change the PGP2 warning line from
2645         "... will not be usable ..." to "... may not be usable ..." as the
2646         user could be using one of the enhanced PGP2 variations.
2647
2648         * helptext.c: Revise the sign_uid.class help text as suggested by
2649         Stefan.
2650         
2651 2002-01-20  Werner Koch  <wk@gnupg.org>
2652
2653         * passphrase.c (passphrase_to_dek): Add tryagain_text arg to be
2654         used with the agent.  Changed all callers.
2655         (agent_get_passphrase): Likewise and send it to the agent
2656         * seckey-cert.c (do_check): New arg tryagain_text.
2657         (check_secret_key): Pass the string to do_check.
2658         * keygen.c (ask_passphrase): Set the error text is required.
2659         * keyedit.c (change_passphrase): Ditto.
2660
2661         * passphrase.c (agent_open): Disable opt.use_agent in case of a
2662         problem with the agent. 
2663         (agent_get_passphrase): Ditto.
2664         (passphrase_clear_cache): Ditto.
2665
2666 2002-01-19  Werner Koch  <wk@gnupg.org>
2667
2668         * passphrase.c (agent_open): Add support for the new Assuan based
2669         gpg-agent.  New arg to return the used protocol version.
2670         (agent_get_passphrase): Implemented new protocol here.
2671         (passphrase_clear_cache): Ditto.
2672         (readline): New.
2673         
2674 2002-01-15  Timo Schulz  <ts@winpt.org>
2675
2676         * encode.c (encode_crypt_files): Fail if --output is used.
2677         
2678         * g10.c: New command --decrypt-files.
2679
2680         * decrypt.c (decrypt_messages): New.
2681         
2682 2002-01-09  David Shaw  <dshaw@jabberwocky.com>
2683
2684         * g10.c, misc.c, gpgv.c: move idea_cipher_warn to misc.c so gpgv.c
2685         doesn't need a stub for it any longer.
2686
2687         * g10.c (get_temp_dir), main.h: no longer used (it's in exec.c now)
2688
2689         * g10.c (main), delkey.c (delete_keys), main.h : Allow
2690         --delete-key (now --delete-keys, though --delete-key still works,
2691         of course) to delete multiple keys in one go.  This applies to
2692         --delete-secret-key(s) and --delete-secret-and-public-key(s) as
2693         well.
2694
2695 2002-01-09  Timo Schulz  <ts@winpt.org>
2696
2697         * encode.c (encode_crypt_files): Now it behaves like verify_files.
2698         
2699         * g10.c (main): We don't need to check argc for encode_crypt_files
2700         any longer.
2701
2702 2002-01-09  Timo Schulz  <ts@winpt.org>
2703
2704         * exec.c: Include windows.h for dosish systems.
2705
2706 2002-01-08  Timo Schulz  <ts@winpt.org>
2707
2708         * g10.c (main): New description for --encrypt-files.
2709
2710 2002-01-08  Werner Koch  <wk@gnupg.org>
2711
2712         * g10.c (main): Must register the secring for encryption because
2713         it is needed to figure out the default recipient.  Reported by
2714         Roger Sondermann.
2715
2716 2002-01-05  David Shaw  <dshaw@jabberwocky.com>
2717
2718         * keyedit.c (menu_adduid): Require --expert before adding a photo
2719         ID to a v3 key, and before adding a second photo ID to any key.
2720
2721         * keyedit.c (keyedit_menu): Don't allow adding photo IDs in
2722         rfc1991 or pgp2 mode.
2723
2724         * getkey.c (merge_selfsigs_subkey): Permit v3 subkeys.  Believe it
2725         or not, this is allowed by rfc 2440, and both PGP 6 and PGP 7 work
2726         fine with them.
2727
2728         * g10.c, options.h, keyedit.c, sign.c: Move the "ask for
2729         expiration" switch off of --expert, which was getting quite
2730         overloaded, and onto ask-sig-expire and ask-cert-expire.  Both
2731         default to off.
2732
2733         * g10.c (main): Change the default compression algo to 1, to be
2734         more OpenPGP compliant (PGP also uses this, so it'll help with
2735         interoperability problems as well).
2736
2737         * encode.c (encode_crypt): Handle compression algo 2, since the
2738         default is now 1.
2739
2740         * build-packet.c (build_attribute_subpkt): Fix off-by-one error.
2741
2742 2002-01-05  Werner Koch  <wk@gnupg.org>
2743
2744         * g10.c (main): Do not register the secret keyrings for certain
2745         commands.
2746
2747         * keydb.c (keydb_add_resource): Use access to test for keyring
2748         existence.  This avoids cached opened files which are bad under
2749         RISC OS.
2750
2751 2002-01-04  David Shaw  <dshaw@jabberwocky.com>
2752
2753         * sign.c (sign_file, sign_symencrypt_file): always use one-pass
2754         packets unless rfc1991 is enabled.  This allows a signature made
2755         with a v3 key to work in PGP 6 and 7.  Signatures made with v4
2756         keys are unchanged.
2757
2758         * g10.c (main): Disallow non-detached signatures in PGP2 mode.
2759         Move the "you must use files and not pipes" PGP2 warning up so all
2760         the PGP2 stuff is together.
2761
2762         * encode.c (encode_simple): Use the actual filesize instead of
2763         partial length packets in the internal literal packet from a
2764         symmetric message.  This breaks PGP5(?), but fixes PGP2, 6, and 7.
2765         It's a decent tradeoff.  Note there was only an issue with
2766         old-style RFC1991 symmetric messages.  2440-style messages in 6
2767         and 7 work with or without partial length packets.
2768
2769 2002-01-03  David Shaw  <dshaw@jabberwocky.com>
2770
2771         * g10.c (main): Removed --no-default-check-level option, as it is
2772         not consistent with other "default" options.  Plus, it is the same
2773         as saying --default-check-level 0.
2774
2775         * exec.c (exec_read): Disallow caching tempfile from child
2776         process, as this keeps the file handle open and can cause unlink
2777         problems on some platforms.
2778
2779         * keyserver.c (keyserver_search_prompt): Minor tweak - don't
2780         bother to transform keyids into textual form if they're just going
2781         to be transformed back to numbers.
2782
2783 2002-01-03  Timo Schulz <ts@winpt.org>
2784
2785         * g10.c: New command --encrypt-files.
2786     
2787         * verify.c (print_file_status): Removed the static because
2788         encode_crypt_files also uses this function.
2789
2790         * main.h (print_files_status): New.
2791         (encode_crypt_files): New.
2792
2793         * encode.c (encode_crypt_files): New.
2794
2795 2002-01-02  Stefan Bellon  <sbellon@sbellon.de>
2796
2797         * keyserver.c: Moved util.h include down in order to avoid
2798         redefinition problems on RISC OS.
2799
2800         * keyring.c (keyring_lock): Only lock keyrings that are writable.
2801
2802         * keyring.c (keyring_update_keyblock): Close unused iobuf.
2803
2804         * hkp.c (parse_hkp_index, hkp_search) [__riscos__]: Changed
2805         unsigned char* to char* because of compiler issues.
2806
2807         * exec.c (exec_finish) [__riscos__]: Invalidate close cache so
2808         that file can be unlinked.
2809
2810 2001-12-28  David Shaw  <dshaw@jabberwocky.com>
2811
2812         * g10.c (main): Use a different strlist to check extensions since
2813         they need to be handled seperately now.
2814
2815         * misc.c,main.h (check_permissions): Properly handle permission
2816         and ownership checks on files in the lib directory
2817         (e.g. /usr/local/lib/gnupg), which are owned by root and are
2818         world-readable, and change all callers to specify extension or
2819         per-user file.
2820
2821         * photoid.c (show_photo), keyserver.c (keyserver_spawn): Bug fix -
2822         don't call exec_finish if exec_write fails.
2823
2824         * keyserver.c (keyserver_spawn): Look for OPTIONS from the
2825         keyserver helper - specifically, a "OUTOFBAND" option for the
2826         email keyserver.
2827
2828         * mainproc.c (list_node), keylist.c (list_keyblock_colon),
2829         import.c (delete_inv_parts), export.c (do_export_stream): Use
2830         signature flags for exportability check rather than re-parsing the
2831         subpacket.
2832
2833         * keyid.c, keydb.h (get_lsign_letter): No longer needed.
2834
2835 2001-12-27  David Shaw  <dshaw@jabberwocky.com>
2836
2837         * exec.c (exec_finish): Show errors when temp files cannot be
2838         deleted for whatever reason.
2839
2840         * exec.c (exec_read): Don't rely on WEXITSTATUS being present.
2841
2842         * exec.c (make_tempdir): Add temp file creator for win32.  Don't
2843         create an incoming temp file if the exec is write-only.
2844
2845         * keyserver.c (keyserver_spawn): Clean up error handling, for when
2846         the spawn fails.
2847
2848         * photoid.c (show_photo): Clean up error handling.
2849
2850         * misc.c (check_permissions): Neaten.
2851
2852 2001-12-25  David Shaw  <dshaw@jabberwocky.com>
2853
2854         * mkdtemp.c (mkdtemp): Add copyleft info and tweak the 'X' counter
2855         to be a bit simpler.
2856
2857         * keyserver.c, photoid.c: Remove unused headers left over from
2858         when the exec functions lived there.
2859
2860 2001-12-23  Timo Schulz <ts@winpt.org>
2861
2862         * misc.c (check_permissions): Do not use it for W32 systems.
2863
2864         * tdbio.c (migrate_from_v2): Define ftruncate as chsize() for W32.
2865
2866         * mkdtemp.c: W32 support.
2867
2868         * photoid.c: Ditto.
2869
2870         * exec.c: Ditto.
2871
2872 2001-12-22  David Shaw  <dshaw@jabberwocky.com>
2873
2874         * exec.c (make_tempdir): avoid compiler warning with const
2875
2876         * mkdtemp.c (mkdtemp): catch the empty ("") string case in case
2877         someone repurposes mkdtemp at some point.
2878
2879         * photoid.c (generate_photo_id, show_photo): some type changes
2880         from Stefan Bellon.
2881
2882         * exec.c (make_tempdir): handle Win32 systems, suggested by Timo
2883         Schulz.
2884
2885 2001-12-22  Werner Koch  <wk@gnupg.org>
2886
2887         * encode.c (encode_simple, encode_crypt): i18n 2 strings.
2888
2889 2001-12-22  Timo Schulz <ts@winpt.org>
2890         
2891         * encode.c (encode_simple, encode_crypt): Use is_file_compressed
2892         to avoid to compress compressed files.
2893
2894 2001-12-22  Werner Koch  <wk@gnupg.org>
2895
2896         * keyserver.c (keyserver_spawn): Removed some variables
2897         declaration due to shadowing warnings.
2898
2899         * build-packet.c (build_attribute_subpkt): s/index/idx/ to avoid
2900         compiler warnig due to index(3).
2901
2902         * getkey.c (get_ctx_handle): Use KEYDB_HANDLE as return value.
2903         * keylist.c (list_one): Made resname const.
2904
2905         * keyedit.c (keyedit_menu): Allow "addphoto" only when --openpgp is
2906         not used.
2907
2908         * options.skel: Changed one example photo viewer to qiv.
2909
2910 2001-12-21  David Shaw  <dshaw@jabberwocky.com>
2911
2912         * Makefile.am: add exec.c, exec.h, photoid.c, and photoid.h
2913
2914         * build-packet.c (build_attribute_subpkt): new function to build
2915         the raw attribute subpacket.  Note that attribute subpackets have
2916         the same format as signature subpackets.
2917
2918         * exec.c: new file with generic exec-a-program functionality.
2919         Used by both photo IDs and keyserver helpers.  This is pretty much
2920         the same code that used to be keyserver specific, with some
2921         changes to be usable generically.
2922
2923         * free-packet.c (free_attributes (new)): function to free an
2924         attribute packet.
2925         
2926         * gpgv.c: added stub show_photo
2927         
2928         * keyedit.c (keyedit_menu, menu_adduid, menu_showphoto): can add a
2929         photo (calls generate_photo_id), or display a photo (calls
2930         show_photo) from the --edit menu.  New commands are "addphoto",
2931         and "delphoto" (same as "deluid").
2932
2933         * keylist.c (list_keyblock_print): show photos during key list if
2934         --show-photos enabled.
2935         
2936         * keyserver.c (keyserver_spawn): use the generic exec_xxx
2937         functions to call keyserver helper.
2938
2939         * g10.c, options.h: three new options - --{no-}show-photos, and
2940         --photo-viewer to give the command line to display a picture.
2941
2942         * options.skel: instructions for the photo viewer
2943         
2944         * parse-packet.c (parse_user_id, setup_user_id (new)): common code
2945         for both user IDs and attribute IDs moved to setup_user_id.
2946
2947         * parse-packet.c (make_attribute_uidname (new)): constructs a fake
2948         "name" for attribute packets (e.g. "[image of size ...]")
2949
2950         * parse-packet.c (parse_attribute (replaces parse_photo_id),
2951         parse_attribute_subpkts): Builds an array of individual
2952         attributes.  Currently only handles attribute image / type jpeg
2953         subpackets.
2954
2955         * sign.c (hash_uid): Fix bug in signing attribute (formerly
2956         photo_id) packets.
2957
2958         * packet.h, and callers: globally change "photo_id" to "attribute"
2959         and add structures for attributes.  The packet format is generic
2960         attributes, even though the only attribute type thus far defined
2961         is jpeg.
2962
2963 2001-12-21  David Shaw  <dshaw@jabberwocky.com>
2964
2965         * parse-packet.c (can_handle_critical): Can handle critical
2966         revocation subpackets now.
2967
2968         * trustdb.c (mark_usable_uid_certs): Disregard revocations for
2969         nonrevocable sigs.  Note that this allows a newer revocable
2970         signature to override an older nonrevocable signature.
2971
2972         * sign.c (make_keysig_packet): add a duration field and change all
2973         callers.  This makes make_keysig_packet closer to
2974         write_signature_packets and removes some duplicated expiration
2975         code.
2976
2977         * keyedit.c (keyedit_menu, menu_revsig, sign_uids,
2978         sign_mk_attrib): Add nrsign command, don't allow revoking a
2979         nonrevocable signature,
2980
2981         * g10.c (main): Add --nrsign option to nonrevocably sign a key
2982         from the command line.
2983
2984         * build-packet.c (build_sig_subpkt_from_sig): Comment to explain
2985         the use of CRITICAL.
2986
2987 2001-12-21  Werner Koch  <wk@gnupg.org>
2988
2989         * g10.c. options.h : New option --show-keyring
2990         * getkey.c (get_ctx_handle): New.
2991         * keylist.c (list_one): Implement option here.  By David Champion. 
2992
2993 2001-12-20  David Shaw  <dshaw@jabberwocky.com>
2994
2995         * keyserver.c (keyserver_spawn): Use mkdtemp() to make temp
2996         directory.
2997
2998         * mkdtemp.c: replacement function for those platforms that don't
2999         have mkdtemp (make a temp directory securely).
3000
3001 2001-12-19  David Shaw  <dshaw@jabberwocky.com>
3002
3003         * misc.c (check_permissions): New function to stat() and ensure
3004         the permissions of GNUPGHOME and the files have safe permissions.
3005
3006         * keydb.c (keydb_add_resource): Check keyring permissions.
3007
3008         * tdbio.c (tdbio_set_dbname): Check permissions of trustdb.gpg
3009
3010         * keyserver.c (keyserver_spawn): Disable keyserver schemes that
3011         involve running external programs if the options file has unsafe
3012         permissions or ownership.
3013
3014         * g10.c, options.h: New option --no-permission-warning to disable
3015         the permission warning message(s).  This also permits use of the
3016         keyserver if it had been disabled (see above).  Also check the
3017         permissions/ownership of random_seed.
3018         
3019         * keyserver.c (keyserver_spawn): The new glibc prints a warning
3020         when using mktemp() (the code was already secure, but the warning
3021         was bound to cause confusion).  Use a different implementation
3022         based on get_random_bits() instead.  Also try a few times to get
3023         the temp dir before giving up.
3024
3025 2001-12-19  Werner Koch  <wk@gnupg.org>
3026
3027         * g10.c, passphrase.c [CYGWIN32]: Allow this as an alias for MINGW32.
3028
3029 2001-12-18  David Shaw  <dshaw@jabberwocky.com>
3030
3031         * g10.c (idea_cipher_warn): Add a flag to show the warning always
3032         or once per session and change all callers (show always except for
3033         the secret key protection and unknown cipher from an encrypted
3034         message errors).  Also make the strings translatable.
3035
3036         * pubkey-enc.c (get_it): Add the IDEA cipher warning if the user
3037         tries to decrypt an IDEA encrypted message without the IDEA
3038         plugin.
3039
3040         * keyserver.c (parse_keyserver_uri): More strict checking of the
3041         keyserver URI.  Specifically, fail if the ":port" section is
3042         anything except a number between 1 and 65535.
3043
3044 2001-12-17  David Shaw  <dshaw@jabberwocky.com>
3045
3046         * keyserver.c (print_keyinfo): No need to check for
3047         control/illegal characters, as utf8_to_native does this for us.
3048
3049         * mainproc.c (proc_encrypted): Use generic IDEA warning.
3050
3051         * gpgv.c: add stub for idea_cipher_warn
3052
3053         * g10.c, hkp.c, keyserver.c: Fix capitalization and plural issues.
3054
3055         * encode.c (encode_crypt), sign.c (sign_file, clearsign_file):
3056         disable pgp2 mode after the message is no longer pgp2 compatible.
3057
3058         * g10.c (main): Tweak the PGP2.x IDEA warning to use the generic
3059         warning, and not merely fail if the IDEA plugin isn't there.
3060
3061         * g10.c (main, idea_cipher_warn), keygen.c (set_one_pref),
3062         seckey-cert.c (do_check): Add a generic IDEA warning for when the
3063         IDEA plugin is not present.  This pops up when the user uses
3064         "--cipher-algo idea", when setpref is used to set a "S1"
3065         preference, and when a secret key protected with IDEA is used.
3066
3067 2001-12-15  Werner Koch  <wk@gnupg.org>
3068
3069         * keyserver.c (keyserver_spawn): Assert that we have dropped privs.
3070
3071 2001-12-13  Werner Koch  <wk@gnupg.org>
3072
3073         * pubkey-enc.c (get_session_key): Check that the public key
3074         algorithm is indeed usable for en/decryption.  This avoid a
3075         strange error message from pubkey_decrypt if for some reasons a
3076         bad algorithm indentifier is passed.
3077
3078 2001-12-12  David Shaw  <dshaw@jabberwocky.com>
3079
3080         * Fixed some types for portability.  Noted by Stefan Bellon.
3081
3082 2001-12-11  Werner Koch  <wk@gnupg.org>
3083
3084         * hkp.c (hkp_export): Do not print possible control characters
3085         from a keyserver response.
3086         (parse_hkp_index): Made uid an unsigned char* because it is passed to
3087         isspace().
3088         (hkp_search): Ditto for the char* vars.
3089
3090         * g10.c (main): Print the IDEA warning also for -c and -se.
3091         
3092         * g10.c (get_temp_dir): Assert that we have dropped privs
3093
3094         * encode.c (encode_crypt): Include the first key into the --pgp2
3095         check.
3096
3097 2001-12-07  David Shaw  <dshaw@jabberwocky.com>
3098
3099         * g10.c, options.h: New option --pgp2.  This is identical to
3100         "--rfc1991 --cipher-algo idea --compress-algo 1 --digest-algo md5
3101         --force_v3_sigs" with the addition of an warning to advise the
3102         user not to use a pipe (which would break pgp2 compatibility).
3103
3104         * encode.c (encode_crypt): warn if the user tries to encrypt to
3105         any key that is not RSA and <= 2048 bits when the --pgp2 option is
3106         used.
3107
3108         * sign.c (sign_file, clearsign_file): When using --pgp2, make a v3
3109         sig, and warn if the signature is made with a non-v3 key.
3110
3111 2001-12-05  David Shaw  <dshaw@jabberwocky.com>
3112
3113         * sign.c (sign_file, clearsign_file, sign_symencrypt_file): Prompt
3114         for sig expiration if --expert is set and --force-v3-sigs is not
3115         set (v3 sigs cannot expire).
3116
3117         * mainproc.c (check_sig_and_print): After checking a sig, print
3118         expiration status.  This causes a error return if the sig is
3119         expired.
3120
3121         * build-packet.c (build_sig_subpkt_from_sig): Include a critical
3122         sig expiration subpacket if the sig is to expire.
3123
3124         * keyedit.c (sign_uids): Do not sign an expired key unless
3125         --expert is set, in which case prompt.  Also, offer to expire a
3126         signature when the key the user is signing expires.
3127
3128         * keygen.c (ask_expire_interval): Add a value to determine whether
3129         to prompt for a key or sig expiration and change all callers.
3130
3131         * keyid.c: New functions: expirestr_from_sig and
3132         colon_expirestr_from_sig.
3133
3134         * keylist.c (list_keyblock_colon): Show sig expiration date in the
3135         --with-colons listing.
3136
3137         * sign.c (make_keysig_packet, write_signature_packets): Pass in an
3138         optional timestamp for the signature packet, and change all
3139         callers.
3140
3141         * keyedit.c (sign_mk_attrib): Include a critical expiration
3142         subpacket in the signature if an expiration date is given.
3143
3144 2001-12-04  David Shaw  <dshaw@jabberwocky.com>
3145
3146         * keyedit.c (sign_uids): If the user tries to sign a
3147         locally-signed key, allow the cert to be promoted to a full
3148         exportable signature.  This essentially deletes the old
3149         non-exportable sig, and replaces it with a new exportable one.
3150
3151 2001-12-04  David Shaw  <dshaw@jabberwocky.com>
3152
3153         * keyedit.c (keyedit_menu): Do not allow signing a revoked key
3154         unless --expert is set, and ask even then.
3155
3156         * keyedit.c (sign_uids): Do not allow signing a revoked UID unless
3157         --expert is set, and ask even then.
3158
3159         * g10.c, options.h : New option --expert
3160
3161 2001-11-16  David Shaw  <dshaw@jabberwocky.com>
3162
3163         * Allow the user to select no compression via "--compress-algo 0"
3164         on the command line.
3165
3166         * keyedit.c (show_prefs): Show compression preferences in the
3167         long-form "showpref" style.
3168
3169         * keygen.c (set_one_pref): Permit setting a no-compression ("Z0")
3170         preference.
3171
3172         * getkey.c (fixup_uidnode): Fix compression preference corruption
3173         bug.
3174
3175 2001-12-02  David Shaw  <dshaw@jabberwocky.com>
3176
3177         * g10.c: Add advisory --for-your-eyes-only option as per section
3178         5.9 of 2440.
3179
3180 2001-12-05  David Shaw  <dshaw@jabberwocky.com>
3181
3182         * Force a V4 sig if the user has a notation or policy URL set.
3183
3184 2001-12-04  David Shaw  <dshaw@jabberwocky.com>
3185
3186         * g10.c: Add options --keyserver-options, --temp-directory, and
3187         auto-key-retrieve (the opposite of no-auto-key-retrieve).
3188
3189         * hkp.c (hkp_search): New function to handle searching a HKP
3190         keyserver for a key
3191
3192         * hkp.c (hkp_ask_import, hkp_export): Pretty large changes to make
3193         them communicate via the generic functions in keyserver.c
3194
3195         * keyserver.c: new file with generic keyserver routines for
3196         getting keys from a keyserver, sending keys to a keyserver, and
3197         searching for keys on a keyserver.  Calls the internal HKP stuff
3198         in hkp.c for HKP keyserver functions.  Other calls are handled by
3199         an external program which is spawned and written to and read from
3200         via pipes.  Platforms that don't have pipes use temp files.
3201
3202 2001-11-20  David Shaw  <dshaw@jabberwocky.com>
3203
3204         * options.h, g10.c: New options show-notation, no-show-notation,
3205         default-check-level, no-default-check-level, show-policy-url,
3206         no-show-policy-url.
3207
3208         * packet.h, sign.c (make_keysig_packet), parse-packet.c
3209         (parse_signature), free-packet.c (free_seckey_enc): Fill in
3210         structures for notation, policy, sig class, exportability, etc.
3211
3212         * keyedit.c, keylist.c (print_and_check_one_sig,
3213         list_keyblock_print): Show flags in signature display for cert
3214         details (class, local, notation, policy, revocable).  If selected,
3215         show the notation and policy url.
3216
3217         * keyedit.c (sign_uids): Prompt for and use different key sig
3218         classes.
3219
3220         * helptext.c (helptexts): Add help text to explain different
3221         key signature classes
3222
3223 2001-11-26  David Shaw  <dshaw@jabberwocky.com>
3224
3225         * trustdb.c (mark_usable_uid_certs): Fix segfault from bad
3226         initialization and fix reversed key signature expiration check.
3227
3228 2001-11-09  Werner Koch  <wk@gnupg.org>
3229
3230         * export.c (do_export_stream): Put all given names into a search
3231         description and change the loop so that all matching names are
3232         returned.
3233
3234 2001-11-08  Werner Koch  <wk@gnupg.org>
3235
3236         * pubkey-enc.c (get_it): To reduce the number of questions on the
3237         MLs print the the name of cipher algorithm 1 with the error message.
3238
3239         * mainproc.c: Changed the way old rfc1991 encryption cipher is
3240         selected. Based on a patch by W Lewis.
3241
3242         * pkclist.c (do_edit_ownertrust): Allow to skip over keys, the non
3243         working "show info" is now assigned to "i" 
3244         * trustdb.c (ask_ownertrust, validate_keys): Implement a real quit
3245         here.  Both are by David Shaw.
3246         
3247         * trustdb.c (validate_keys): Make sure next_exipire is initialized.
3248
3249         * sign.c (make_keysig_packet): Use SHA-1 with v4 RSA keys.
3250
3251         * g10.c, options.h : New option --[no-]froce-v4-certs.
3252         * sign.c (make_keysig_packet): Create v4 sigs on v4 keys even with
3253         a v3 key.  Use that new option.  By David Shaw
3254
3255         * revoke.c (ask_revocation_reason): Allow to select "no reason".
3256         By David Shaw.
3257
3258         * keyid.c (fingerprint_from_sk): Calculation of an v3 fpr was
3259         plain wrong - nearly the same code in fingerprint_from_pk is correct.
3260
3261         * build-packet.c (do_secret_key): Added a few comments to the code.
3262
3263 2001-11-07  Werner Koch  <wk@gnupg.org>
3264
3265         * g10.c (main): Print a warning when -r is used w/o encryption.
3266         Suggested by Pascal Scheffers.
3267
3268 2001-10-23  Werner Koch  <wk@gnupg.org>
3269
3270         * keyedit.c (keyedit_menu): Changed helptext for showpref
3271         command.  Suggested by Reinhard Wobst.
3272
3273         * keyring.c (keyring_search): When marking the offtbl ready, take
3274         into account that we may have more than one keyring.
3275
3276 2001-10-22  Werner Koch  <wk@gnupg.org>
3277
3278         * Makefile.am: Do not use OMIT_DEPENDENCIES
3279
3280         * build-packet.c (build_sig_subpkt): Default is now to put all
3281         types of subpackets into the hashed area and only list those which
3282         should go into the unhashed area.
3283
3284 2001-10-18  Werner Koch  <wk@gnupg.org>
3285
3286         * keydb.c (keydb_add_resource): Rearranged the way we keep track
3287         of the resource. There will now be an entry for each keyring here
3288         and not in keyring.c itself.  Store a token to allow creation of a
3289         keyring handle.  Changed all functions to utilize this new design.
3290         (keydb_locate_writable): Make a real implementation.
3291         * keyring.c (next_kr): Removed and changed all callers to set the
3292         resource directly from the one given with the handle.
3293         (keyring_is_writable): New. 
3294         (keyring_rebuild_cache): Add an arg to pass the token from keydb.
3295
3296 2001-10-17  Werner Koch  <wk@gnupg.org>
3297
3298         * keyring.c (keyring_search): Enabled word search mode but print a
3299         warning that it is buggy.
3300         
3301 2001-10-11  Werner Koch  <wk@gnupg.org>
3302
3303         * hkp.c (hkp_ask_import): No more need to set the port number for
3304         the x-hkp scheme. 
3305         (hkp_export): Ditto.
3306
3307 2001-10-06  Stefan Bellon  <sbellon@sbellon.de>
3308
3309         * passphrase.c [__riscos__]: Disabled agent specific stuff.
3310         * g10.c: New option --no-force-v3-sigs.
3311
3312 2001-10-04  Werner Koch  <wk@gnupg.org>
3313
3314         * export.c (do_export_stream): Do not push the compress filter
3315         here because the context would run out of scope due to the
3316         iobuf_close done by the caller.
3317         (do_export): Do it here instead. 
3318
3319 2001-09-28  Werner Koch  <wk@gnupg.org>
3320
3321         * keyedit.c (sign_uids): Always use the primary key to sign keys.
3322         * getkey.c (finish_lookup): Hack to return only the primary key if
3323         a certification key has been requested.
3324
3325         * trustdb.c (cmp_kid_for_make_key_array): Renamed to
3326         (validate_one_keyblock): this and changed arg for direct calling.
3327         (make_key_array): Renamed to
3328         (validate_one_keyblock): this and changed args for direct calling.
3329         (mark_usable_uid_certs, validate_one_keyblock)
3330         (validate_key_list): Add next_expire arg to keep track of
3331         expiration times.  
3332         (validate_keys): Ditto for UTKs and write the stamp.
3333
3334         * tdbio.c (migrate_from_v2): Check return code of tbdio_sync.
3335
3336         * tdbdump.c (import_ownertrust): Do a tdbio_sync().
3337
3338         * keyring.c: Made the offtbl an global object.
3339
3340 2001-09-27  Werner Koch  <wk@gnupg.org>
3341
3342         * pkclist.c (do_edit_ownertrust): Allow settin of ultimate trust.
3343
3344         * trustdb.c (mark_keyblock_seen): New.
3345         (make_key_array): Use it to mark the subkeys too.
3346         (validate_keys): Store validity for ultimatly trusted keys.
3347
3348 2001-09-26  Werner Koch  <wk@gnupg.org>
3349
3350         * pkclist.c (check_signatures_trust, do_we_trust): Removed the
3351         invocation of add_ownertrust. Minor changes to the wording.
3352         (add_ownertrust, add_ownertrust_cb): Removed.
3353
3354         * trustdb.c (get_validity): Allow to lookup the validity using a
3355         subkey.
3356
3357         * trustdb.c (new_key_hash_table): Increased the table size to 1024
3358         and changed the masks accordingly.
3359         (validate): Changed stats printing.
3360         (mark_usable_uid_certs): New.
3361         (cmp_kid_for_make_key_array): Does now check the signatures and
3362         figures out a usable one.
3363
3364 2001-09-25  Werner Koch  <wk@gnupg.org>
3365
3366         * keyring.c (new_offset_item,release_offset_items)
3367         (new_offset_hash_table, lookup_offset_hash_table)
3368         (update_offset_hash_table, update_offset_hash_table_from_kb): New.
3369         (keyring_search): Use a offset table to optimize search for
3370         unknown keys.
3371         (keyring_update_keyblock, keyring_insert_keyblock): Insert new
3372         offsets.
3373         * getkey.c (MAX_UNK_CACHE_ENTRIES): Removed the unknown keys
3374         caching code.
3375
3376         * g10.c, options.h, import.c: Removed the entire
3377         allow-secret-key-import stuff because the validity is now
3378         controlled by other means.
3379
3380         * g10.c: New command --rebuild-keydb-caches.
3381         * keydb.c (keydb_rebuild_caches): New.
3382         * keyring.c (do_copy): Moved some code to
3383         (create_tmp_file, rename_tmp_file, write_keyblock): new functions.
3384         (keyring_rebuild_cache): New.
3385
3386         * packet.h (PKT_ring_trust): Add sigcache field.
3387         * parse-packet.c (parse_trust): Parse sigcache.
3388         * keyring.c (do_copy): Always insert a sigcache packet.
3389         (keyring_get_keyblock): Copy the sigcache packet to the signature.
3390         * sig-check.c (cache_sig_result): Renamed from
3391         cache_selfsig_result. Changed implementation to use the flag bits
3392         and changed all callers.
3393         (mdc_kludge_check): Removed this unused code.
3394         (do_check): Do not set the sig flags here.
3395
3396         * import.c (read_block): Make sure that ring_trust packets are
3397         never imported.
3398         * export.c (do_export_stream): and never export them.
3399
3400         * trustdb.c (make_key_array): Skip revoked and expired keys.
3401
3402 2001-09-24  Werner Koch  <wk@gnupg.org>
3403
3404         * g10.c, options.h: New option --no-auto-check-trustdb.
3405
3406         * keygen.c (do_generate_keypair): Set newly created keys to
3407         ultimately trusted.
3408
3409         * tdbio.h, tdbio.c: Removed all support for records DIR, KEY, UID,
3410         PREF, SIG, SDIR and CACH. Changed migration function to work
3411         direct on the file.
3412         (tdbio_read_nextcheck): New.
3413         (tdbio_write_nextcheck): New. 
3414
3415 2001-09-21  Werner Koch  <wk@gnupg.org>
3416
3417         Revamped the entire key validation system.
3418         * trustdb.c: Complete rewrite. No more validation on demand,
3419         removed some functions, adjusted to all callers to use the new 
3420         and much simpler interface. Does not use the LID anymore.
3421         * tdbio.c, tdbio.h: Add new record types trust and valid. Wrote a
3422         migration function to convert to the new trustdb layout.
3423         * getkey.c (classify_user_id2): Do not allow the use of the "#"
3424         prefix. 
3425         * keydb.h: Removed the TDBIDX mode add a skipfnc to the
3426         descriptor.
3427         * keyring.c (keyring_search): Implemented skipfnc.
3428
3429         * passphrase.c (agent_open): Add missing bracket.  Include windows.h.
3430
3431 2001-09-19  Werner Koch  <wk@gnupg.org>
3432
3433         * keylist.c (print_fingerprint): Renamed from fingerprint, made
3434         global available. Added new arg to control the print style.
3435         * mainproc.c (print_fingerprint): Removed. 
3436         * pkclist.c (print_fpr, fpr_info): Removed and changed callers&