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