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