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