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