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