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