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