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