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