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