2002-08-16 Timo Schulz <ts@winpt.org>
[gnupg.git] / g10 / ChangeLog
1 2002-08-16  Timo Schulz  <ts@winpt.org>
2
3         * g10.c (main): enable opt.interactive.
4
5         * import.c (import_one): Ask the user if the key shall be
6         imported when the interactive mode is used. Useful to extract
7         selected keys from a file.
8         
9 2002-08-16  Werner Koch  <wk@gnupg.org>
10
11         * seckey-cert.c: Workaround to allow decryption of v3 keys created
12         with a bug in the mpi_get_secure_buffer.
13
14 2002-08-14  David Shaw  <dshaw@jabberwocky.com>
15
16         * hkp.c (parse_hkp_index): Properly handle really large keys
17         (5 digit key length) in HKP searches.
18
19 2002-08-13  David Shaw  <dshaw@jabberwocky.com>
20
21         * encode.c (encode_simple): Fix problem with using compression
22         algo 2 and symmetric compressed files.
23
24         * encode.c (encode_simple, encode_crypt): If we are not using a
25         MDC, compress even if a file is already compressed.  This is to
26         help against the chosen ciphertext attack.
27
28         * pkclist.c (select_algo_from_prefs): Fix requested algorithm bug
29         so the request succeeds even if the requested algorithm is not the
30         first found.
31
32         * cipher.c (write_header), encode.c (use_mdc, encode_simple,
33         encode_crypt, encrypt_filter), g10.c (main): Be more eager to use
34         a MDC.  We use a MDC if the keys directly support it, if the keys
35         list AES (any) or TWOFISH anywhere in the prefs, or if the cipher
36         chosen does not have a 64 bit blocksize.
37
38 2002-08-08  David Shaw  <dshaw@jabberwocky.com>
39
40         * options.skel: Some language tweaks, and remove the
41         load-extension section for random gatherers.
42
43         * keyring.c (create_tmp_file, rename_tmp_file): Create tmp files
44         with user-only permissions, but restore the original permissions
45         if the user has something special set.
46
47         * openfile.c (copy_options_file): Create new options file
48         (gpg.conf) with user-only permissions.
49
50         * keydb.c (keydb_add_resource): Create new keyrings with user-only
51         permissions.
52
53         * tdbio.c (tdbio_set_dbname): Create new trustdbs with user-only
54         permissions.
55
56 2002-08-07  David Shaw  <dshaw@jabberwocky.com>
57
58         * sig-check.c (signature_check2): Sanity check that the md has a
59         context for the hash that the sig is expecting.  This can happen
60         if a onepass sig header does not match the actual sig, and also if
61         the clearsign "Hash:" header is missing or does not match the
62         actual sig.
63
64         * keyedit.c (menu_revsig): Properly show a uid is revoked without
65         restarting gpg.  This is Debian bug 124219, though their supplied
66         patch will not do the right thing.
67
68         * main.h, tdbio.c (tdbio_set_dbname), misc.c (removed
69         check_permissions), keydb.c (keydb_add_resource), g10.c (main,
70         check_permissions): Significant reworking of the permission check
71         mechanism.  The new behavior is to check everything in the homedir
72         by checking the homedir itself.  If the user wants to put
73         (possibly shared) keyrings outside the homedir, they are not
74         checked.  The options file and any extension files are checked
75         wherever they are, as well as their enclosing directories.  This
76         is Debian bug 147760.
77         
78 2002-08-06  Stefan Bellon  <sbellon@sbellon.de>
79
80         * g10.c (main): Use of EXTSEP_S in new gpg.conf string.
81         * openfile.c (copy_options_file): Ditto.
82
83 2002-08-06  David Shaw  <dshaw@jabberwocky.com>
84
85         * options.h, g10.c (main), mainproc.c (proc_encrypted):
86         --ignore-mdc-error option to turn a MDC check error into a
87         warning.
88
89         * encode.c (encode_crypt), g10.c (main), sign.c (sign_file,
90         clearsign_file): Use the same --pgpX warning string everywhere to
91         ease translations.
92
93         * encode.c (write_pubkey_enc_from_list): Warn when using
94         --throw-keyid with --pgpX.  Noted by Vedaal Nistar.
95
96         * revoke.c (export_minimal_pk, gen_desig_revoke, gen_revoke):
97         Export a minimal pk along with the revocation cert when in --pgpX
98         mode so that PGP can import it.
99
100 2002-08-06  Werner Koch  <wk@gnupg.org>
101
102         * options.skel: Changed comments.
103
104         * g10.c (main): Try to use "gpg.conf" as default option file.
105         * openfile.c (copy_options_file): Changed name of created file.
106
107 2002-08-02  Werner Koch  <wk@gnupg.org>
108
109         * Makefile.am (LDFLAGS): Removed DYNLINK_LDFLAGS.
110
111 2002-07-30  David Shaw  <dshaw@jabberwocky.com>
112
113         * options.h, g10.c (main), mainproc.c (proc_encrypted): Return a
114         decryption failed error if a MDC does not verify.  Warn if a MDC
115         is not present (can disable via --no-mdc-warning).
116
117         * exec.c (exec_write), g10.c (main), keyserver.c
118         (keyserver_spawn): Use new DISABLE_KEYSERVER_PATH rather than
119         FIXED_EXEC_PATH.
120
121 2002-07-28  David Shaw  <dshaw@jabberwocky.com>
122
123         * sig-check.c (do_check): Properly validate v4 sigs with no hashed
124         section at all.
125
126 2002-07-25  Werner Koch  <wk@gnupg.org>
127
128         * delkey.c (do_delete_key): Always allow to delete a key in batch mode
129         when specified by fingerprint.  Suggested by Enzo Michelangeli.
130
131 2002-07-25  David Shaw  <dshaw@jabberwocky.com>
132
133         * keyedit.c (menu_revsig): Change "revsig" to honor selected uids
134         so the user can revoke sigs from particular uids only.
135
136         * keylist.c (list_keyblock_print): Don't display expired uids in
137         --list-keys unless -v and not --list-sigs (just like revoked
138         uids).
139
140         * exec.c, export.c, import.c, keyedit.c, keyserver.c, misc.c:
141         "Warning" -> "WARNING"
142
143 2002-07-24  David Shaw  <dshaw@jabberwocky.com>
144
145         * main.h, import.c (parse_import_options, fix_hkp_corruption,
146         import_one, delete_inv_parts), g10.c (main): New import-option
147         "repair-hkp-subkey-bug", which repairs as much as possible the HKP
148         mangling multiple subkeys bug.  It is on by default for keyserver
149         receives, and off by default for regular --import.
150
151         * main.h, import.c (import, import_one, delete_inv_parts), hkp.c
152         (hkp_ask_import), keyserver.c (keyserver_spawn): Use keyserver
153         import options when doing keyserver receives.
154
155         * options.h, exec.h, exec.c (set_exec_path, exec_write), g10.c
156         (main), keyserver.c (keyserver_spawn): If the user does not use
157         "exec-path", completely replace $PATH with GNUPG_LIBEXECDIR before
158         calling the keyserver helper.  If the user does use "exec-path",
159         append GNUPG_LIBEXECDIR after the specified path.
160
161 2002-07-23  David Shaw  <dshaw@jabberwocky.com>
162
163         * import.c (parse_import_options), export.c
164         (parse_export_options): Fix offset problem with reversed ("no-")
165         meanings.
166
167         * import.c (delete_inv_parts): Discard subkey signatures (0x18 and
168         0x28) if found in the userid section of the key.
169
170         * sig-check.c (signature_check2): Signatures made by invalid
171         subkeys (bad/missing binding sig) are also invalid.
172
173         * keylist.c (print_fingerprint): Show the primary as well as the
174         secondary key fingerprint in modes 1 & 2.
175
176 2002-07-22  David Shaw  <dshaw@jabberwocky.com>
177
178         * options.h, main.h, g10.c (main), import.c
179         (parse_import_options, delete_inv_parts), keyserver.c
180         (parse_keyserver_options): add new --import-options option.  The
181         only current flag is "allow-local-sigs".
182
183         * g10.c (main): Don't disable MDC in pgp7 mode.
184
185         * options.h, g10.c (main), keyserver.c (parse_keyserver_options):
186         Remove old keyserver-option include-attributes now that there is
187         an export-option for the same thing.
188
189         * options.h, main.h, export.c (parse_export_options,
190         do_export_stream), g10.c (main): add new --export-options option.
191         Current flags are "include-non-rfc", "include-local-sigs",
192         "include-attributes", and "include-sensitive-revkeys".
193
194         * options.h, hkp.c (hkp_export), keyserver.c
195         (parse_keyserver_options, keyserver_spawn): try passing unknown
196         keyserver options to export options, and if successful, use them
197         when doing a keyserver --send-key.
198
199         * build-packet.c (build_sig_subpkt): We do not generate
200         SIGSUBPKT_PRIV_VERIFY_CACHE anymore.
201
202         * revoke.c (gen_desig_revoke): Lots more comments about including
203         sensitive revkeys along with the revocation sig itself.
204
205         * keyserver.c (parse_keyserver_options): Simpler implementation
206         that can skip one pass over the options.
207
208 2002-07-18  David Shaw  <dshaw@jabberwocky.com>
209
210         * keyedit.c (keyedit_menu, menu_addrevoker): Allow specifying
211         "sensitive" as an argument to an addrevoker command.  This sets
212         the 0x40 sensitive revoker flag.
213
214         * revoke.c (gen_desig_revoke): When generating a designated
215         revocation, include the direct key sig that contains the
216         designated revoker subpacket.  This allows sensitive designated
217         revocation subpackets to be exported.  Also indicate which
218         revokers are sensitive in the first place.
219
220 2002-07-17  David Shaw  <dshaw@jabberwocky.com>
221
222         * keyedit.c (show_key_with_all_names_colon): The 0x40 class bit in
223         a designated revoker means "sensitive", not "local".  It's
224         exportable under the right circumstances.
225
226         * main.h, options.h, export.c (do_export_stream), g10.c (main),
227         hkp.c (hkp_export), keyserver.c (keyserver_spawn: Add a flag to
228         skip attribute packets and their signatures while exporting.  This
229         is to accomodate keyservers (pksd again) that choke on attributes.
230         Use keyserver-option "include-attributes" to control it.  This
231         defaults to ON (i.e. don't skip).
232
233 2002-07-09  David Shaw  <dshaw@jabberwocky.com>
234
235         * options.h, keyserver.c (parse_keyserver_uri, keyserver_spawn,
236         keyserver_work), hkp.c (hkp_ask_import, hkp_export, hkp_search):
237         Use a much more strict reading of RFC-2396 for the keyserver URIs.
238         Specifically, don't try and be smart about checking the value of
239         ":port" so long as it is all digits, and properly handle opaque
240         data (those scheme specific parts that do not start with "//").
241
242 2002-07-04  David Shaw  <dshaw@jabberwocky.com>
243
244         * photoid.c (get_default_photo_command, show_photos): Honor
245         FIXED_PHOTO_VIEWER and DISABLE_PHOTO_VIEWER.
246
247         * mainproc.c (check_sig_and_print): Use --show-photos to show
248         photos when verifying a sig made by a key with a photo.
249
250         * keyserver.c (parse_keyserver_uri): Properly parse a URI with no
251         :port section and an empty file path, but with a terminating '/'.
252         (keyserver_work): Honor DISABLE_KEYSERVER_HELPERS.
253
254         * hkp.c (hkp_ask_import): Display keyserver URI as a URI, but only
255         if verbose.
256
257         * exec.c, g10.c: USE_EXEC_PATH -> FIXED_EXEC_PATH
258
259 2002-07-03  David Shaw  <dshaw@jabberwocky.com>
260
261         * exec.h, exec.c (set_exec_path, exec_write), g10.c (main): If
262         USE_EXEC_PATH is defined at compile time, use it to lock the
263         exec-path and not allow the user to change it.
264
265 2002-07-02  David Shaw  <dshaw@jabberwocky.com>
266
267         * options.h, g10.c (main), keyserver.c (keyserver_refresh):
268         Maintain and use the original keyserver URI for cosmetics rather
269         than trying to recreate it when needed.
270
271         * mainproc.c (check_sig_and_print): Properly disregard expired
272         uids.  Make sure that the first uid listed is a real uid and not
273         an attribute (attributes should only be listed in the "aka"
274         section).  When there are no valid textual userids, try for an
275         invalid textual userid before using any attribute uid.
276
277 2002-07-01  David Shaw  <dshaw@jabberwocky.com>
278
279         * options.skel: Fix a few typos, clarify "group", and remove
280         sample photo viewers for Win32 since they are the defaults now.
281
282         * parse-packet.c (make_attribute_uidname), keylist.c
283         (dump_attribs): Fix two typecast warnings.
284
285         * packet.h, build-packet.c (build_attribute_subpkt), exec.c
286         (expand_args), mkdtemp.c (mkdtemp), photoid.c
287         (parse_image_header): Fix some signedness compiler warnings.
288
289 2002-07-01  Werner Koch  <wk@gnupg.org>
290
291         * photoid.c (get_default_photo_command): Also use __MINGW32__
292         instead of HAVE_DOSISH_SYSTEM.
293
294         * encode.c (encode_symmetric): Do not use the new encryption code.
295
296 2002-06-30  Werner Koch  <wk@gnupg.org>
297
298         * photoid.c: Use __MINGW32__ to include windows because
299         HAVE_DOSISH_SYSTEM is also set for OS/2 and plain DOS.  Provide
300         constant missing in older mingw installations. 
301
302 2002-06-21  Stefan Bellon  <sbellon@sbellon.de>
303
304         * g10.c [__riscos__]: Moved RISC OS specific stuff to util/riscos.c
305         and include/util.h.
306
307         * gpgv.c [__riscos__]: Likewise.
308
309 2002-06-20  David Shaw  <dshaw@jabberwocky.com>
310
311         * keydb.h, pkclist.c (select_algo_from_prefs): Allow passing a
312         suggested algorithm which will be used if available.
313
314         * encode.c (encode_crypt, encrypt_filter), sign.c (sign_file): Use
315         new select_algo_from_prefs feature to check if forcing an
316         algorithm would violate the recipient preferences.
317
318         * photoid.c (get_default_photo_command, show_photos): Use
319         different default viewers on different platforms.  Currently we
320         have Win 9x, Win NT (2k, xp), Mac OSX, RISC OS, and "everybody
321         else".  These are #ifdefs as much as possible to avoid clutter.
322
323         * g10.c (strusage, build_list), keyedit.c (show_prefs), main.h,
324         misc.c (compress_algo_to_string, check_compress_algo), pkclist.c
325         (algo_available), keygen.c (keygen_set_std_prefs): New
326         algo_to_string and check functions for compress algorithms.
327
328 2002-06-20  Werner Koch  <wk@gnupg.org>
329
330         * misc.c (setsysinfo): Removed a #warning for Alpha's uniligedn
331         trap disabling - it is quite possible that this is a debug relict.
332
333 2002-06-20  Stefan Bellon  <sbellon@sbellon.de>
334
335         * g10.c [__riscos__]: Added image file system feature.
336
337         * gpgv.c [__riscos__]: Added image file system feature.
338
339         * photoid.c (show_photos) [__riscos__]: Set RISC OS filetype of
340         photo id according to MIME type.
341
342 2002-06-19  David Shaw  <dshaw@jabberwocky.com>
343
344         * hkp.c (parse_hkp_index): Don't leak memory when failing out of a
345         bad HKP keyserver.
346
347         * g10.c (add_notation_data): Relax slightly the rules as to what
348         can go into a notation name - 2440 allows "@", for example.
349
350 2002-06-17  David Shaw  <dshaw@jabberwocky.com>
351
352         * import.c (clean_subkeys, import_one): Only allow at most 1
353         binding sig and at most 1 revocation sig on a subkey, as per
354         2440:11.1.
355
356         * hkp.c (parse_hkp_index, hkp_search): Error if the keyserver
357         returns an unparseable HKP response.
358
359 2002-06-15  David Shaw  <dshaw@jabberwocky.com>
360
361         * keyedit.c (show_key_with_all_names), keylist.c
362         (list_keyblock_print): Show "[expired]" before expired uids.
363
364         * keyedit.c (show_key_with_all_names_colon), mainproc.c
365         (list_node), keylist.c (list_keyblock_colon): Show flag 'e' for
366         expired user ids.  Use "uat" for user attribute packets instead of
367         "uid".  Also use '<count> <length>' rather than the fake user id
368         string on attributes.
369
370         * keygen.c (keygen_add_revkey): Remove unused code.
371
372         * misc.c (check_permissions): Check directory permissions
373         properly - they are not special files.
374
375         * pkclist.c (expand_id, expand_group, build_pk_list): When
376         expanding groups before building a pk list, inherit flags from the
377         original pre-expanded string.
378
379         * pubkey-enc.c (is_algo_in_prefs): Don't use prefs from expired
380         uids.
381
382 2002-06-14  David Shaw  <dshaw@jabberwocky.com>
383
384         * free-packet.c (copy_signature): Properly copy a signature that
385         carries a revocation key on it.
386
387         * pkclist.c (expand_id, expand_group, build_pk_list): Groups now
388         work properly when used in the "Enter the user ID" prompt.
389
390 2002-06-14  David Shaw  <dshaw@jabberwocky.com>
391
392         * keyedit.c (show_key_with_all_names): Display warning if a user
393         tries to show prefs on a v3 key with a v3 selfsig.
394
395         * kbnode.c (dump_kbnode): Show if a uid is expired.
396
397         * import.c (merge_blocks, import_revoke_cert): Show user ID
398         receiving a revocation certificate.
399
400         * free-packet.c (cmp_user_ids): Properly compare attribute ids.
401
402         * pkclist.c (expand_groups): Maintain the strlist flags while
403         expanding.  Members of an expansion inherit their flags from the
404         expansion key.
405
406         * options.h, cipher.c (write_header), g10.c (main), keygen.c
407         (keygen_set_std_prefs): remove the personal_mdc flag.  It no
408         longer serves a purpose now that the personal preference lists are
409         split into cipher/digest/zip.
410
411 2002-06-14  Timo Schulz  <ts@winpt.org>
412
413         * skclist.c (is_insecure): Implemented.
414         
415 2002-06-12  David Shaw  <dshaw@jabberwocky.com>
416
417         * keyserver.c (keyserver_spawn): Properly handle PROGRAM responses
418         when they have a CRLF ending.  Noted by Keith Ray.
419
420         * keyserver.c (keyserver_spawn): Handle CRLF endings from
421         keyserver helpers.  Also don't leak the last line worth of memory
422         from the keyserver response.
423
424         * main.h, misc.c (deprecated_warning): New function to warn about
425         deprecated options and commands.
426
427         * g10.c (main), keyserver-internal.h, keyserver.c
428         (parse_keyserver_uri): Use new deprecated function to warn about
429         honor-http-proxy, auto-key-retrieve, and x-broken-hkp.
430
431 2002-06-11  David Shaw  <dshaw@jabberwocky.com>
432
433         * Makefile.am: link gpg with NETLIBS for the built-in HKP access.
434
435 2002-06-10  David Shaw  <dshaw@jabberwocky.com>
436
437         * options.h, keyserver.c (keyserver_opts), g10.c (main): New
438         keyserver option "include-subkeys".  This feature already existed,
439         but now can be turned off.  It defaults to on.
440
441         * options.h, keyserver.c (parse_keyserver_options,
442         keyserver_spawn): There are now enough options to justify making a
443         structure for the keyserver options rather than a page of
444         if-then-else-if-then-etc.
445
446         * getkey.c (merge_keys_and_selfsig, merge_selfsigs_main): Fix bug
447         in calculating key expiration dates.
448
449 2002-06-09  David Shaw  <dshaw@jabberwocky.com>
450
451         * keydb.h, getkey.c (get_user_id_native), import.c (import_one):
452         Display user ID while importing a key.  Note this applies to both
453         --import and keyserver --recv-keys.
454
455         * exec.c (exec_finish): Log unnatural exit (core dump, killed
456         manually, etc) for fork/exec/pipe child processes.
457
458 2002-06-08  Timo Schulz  <ts@winpt.org>
459
460         * encode.c (encode_symmetric): Disable the compat flag
461         when the expert mode is enabled.
462         
463 2002-06-07  David Shaw  <dshaw@jabberwocky.com>
464
465         * options.skel, options.h, main.h, keydb.h, pkclist.c
466         (build_pk_list, expand_groups), g10.c (main, add_group): Add new
467         "group" command to allow one name to expand into multiple keys.
468         For simplicity, and to avoid potential loops, we only expand once
469         - you can't make an alias that points to an alias.
470
471         * main.h, g10.c (main), keygen.c (build_personal_digest_list):
472         Simplify the default digest list - there is really no need for the
473         other hashes since they will never be used after SHA-1 in the
474         list.
475
476         * options.skel, options.h, g10.c (main), hkp.c (hkp_ask_import,
477         hkp_export, hkp_search), keyserver.c (parse_keyserver_options,
478         parse_keyserver_uri, keyserver_work, keyserver_refresh): Make the
479         "x-broken-hkp" keyserver scheme into keyserver-option
480         "broken-http-proxy".  Move honor_http_proxy into
481         keyserver_options.  Canonicalize the three variations of "hkp",
482         "x-hkp", and "x-broken-hkp" into "hkp".
483
484 2002-06-07  Stefan Bellon  <sbellon@sbellon.de>
485
486         * g10.c [__riscos__]: Added --attribute-file to do the same as
487         --attribute-fd, but with a filename not a fd as argument.
488         Added magic symbol for RISC OS to use different memory management.
489
490         * gpgv.c [__riscos__]: Added magic symbol for RISC OS to use
491         different memory management.
492
493 2002-06-06  David Shaw  <dshaw@jabberwocky.com>
494
495         * main.h, g10.c (main), keygen.c (build_personal_digest_list): Put
496         in a default digest preference list consisting of SHA-1, followed
497         by every other installed digest except MD5.  Note this is the same
498         as having no digest preference at all except for SHA-1 being
499         favored.
500
501         * options.h, g10.c (main), keygen.c (keygen_set_std_prefs),
502         pkclist.c (select_algo_from_prefs): Split
503         --personal-preference-list into three:
504         --personal-{cipher|digest|compress}-preferences.  This allows a
505         user to set one without affecting another (i.e. setting only a
506         digest pref doesn't imply an empty cipher pref).
507
508         * exec.c (exec_read): This is a safer way of guessing the return
509         value of system().  Noted by Stefan Bellon.
510
511 2002-06-05  David Shaw  <dshaw@jabberwocky.com>
512
513         * hkp.c (parse_hkp_index): Be more robust with keyservers
514         returning very unparseable responses.
515
516         * exec.c (exec_read): Catch and display an error when the remote
517         process exits unnaturally (i.e. segfault) so the user knows what
518         happened.  Also fix exec_write stub which has a different number
519         of arguments now.
520
521 2002-06-05  Timo Schulz  <ts@winpt.org>
522
523         * encode.c (encode_simple): Ignore the new mode for RFC1991.
524         * mainproc.c (symkey_decrypt_sesskey): Better check for weird
525         keysizes.
526         
527 2002-06-05  Timo Schulz  <ts@winpt.org>
528
529         * encode.c (encode_sesskey): New.
530         (encode_simple): Use it here. But by default we use the compat
531         mode which supress to generate encrypted session keys.
532         
533 2002-06-05  Timo Schulz  <ts@winpt.org>
534
535         * mainproc.c (symkey_decrypt_sesskey): New.
536         (proc_symkey_enc): Support for encrypted session keys.
537         
538 2002-06-04  David Shaw  <dshaw@jabberwocky.com>
539
540         * sign.c (hash_for, sign_file): When encrypting and signing at the
541         same time, consult the various hash prefs to pick a hash algorithm
542         to use.  Pass in a 160-bit hint if any of the signing keys are
543         DSA.
544
545         * keydb.h, pkclist.c (select_algo_from_prefs, algo_available):
546         Pass a "hints" opaque pointer in to let the caller give hints as
547         to what algorithms would be acceptable.  The only current hint is
548         for PREFTYPE_HASH to require a 160-bit hash for DSA.  Change all
549         callers in encode.c (encode_crypt, encrypt_filter) and sign.c
550         (sign_file).  If we settle on MD5 as the best algorithm based
551         solely on recepient keys and SHA1 is also a possibility, use SHA1
552         unless the user intentionally chose MD5.  This is as per 2440:13.
553
554         * exec.c (make_tempdir): Fix duplicated filename problem.
555
556 2002-06-03  David Shaw  <dshaw@jabberwocky.com>
557
558         * packet.h, parse-packet.c (enum_sig_subpkt): Report back from
559         enum_sig_subpkt when a subpacket is critical and change all
560         callers in keylist.c (show_policy_url, show_notation), mainproc.c
561         (print_notation_data), and pkclist.c (do_show_revocation_reason).
562
563         * keylist.c (show_policy_url, show_notation): Display if the
564         policy or notation is critical.
565         
566 2002-06-03  David Shaw  <dshaw@jabberwocky.com>
567
568         * main.h, g10.c (main), keylist.c (dump_attribs, set_attrib_fd,
569         list_keyblock_print, list_keyblock_colon), status.h, status.c
570         (get_status_string): New --attribute-fd feature to dump the
571         contents of attribute subpackets for frontends.  If --status-fd is
572         also used, then a new status tag ATTRIBUTE is provided for each
573         subpacket.
574
575         * packet.h, getkey.c (fixup_uidnode, merge_selfsigs_main,
576         merge_selfsigs_subkey), parse-packet.c (setup_user_id): Keep track
577         of the expiration time of a user ID, and while we're at it, use
578         the expired flag from the selfsig rather than reparsing the
579         SIG_EXPIRE subpacket.
580
581         * photoid.c (generate_photo_id): When adding a new photo ID,
582         showing the photo for confirmation is not safe when noninteractive
583         since the "user" may not be able to dismiss a viewer window.
584         Noted by Timo Schulz.
585         
586 2002-06-03  David Shaw  <dshaw@jabberwocky.com>
587
588         * options.skel: Sample photo viewers for Win32.
589
590         * misc.c (pct_expando): Use the seckey for %k/%K if the pubkey is
591         not available.
592
593         * photoid.h, photoid.c (show_photos): Include the seckey in case a
594         user tries to view a photo on a secret key, and change all callers
595         in keyedit.c (menu_showphoto), keylist.c (list_keyblock_print),
596         and photoid.c (generate_photo_id).
597
598 2002-06-02  David Shaw  <dshaw@jabberwocky.com>
599
600         * photoid.c (show_photos): Work properly when not called with a
601         public key.
602
603 2002-05-31  David Shaw  <dshaw@jabberwocky.com>
604
605         * sign.c (mk_notation_and_policy): Free unneeded buffer.
606
607         * hkp.c (parse_hkp_index): Properly handle the '&' character
608         (i.e. "&amp;") in HKP responses.
609
610         * getkey.c (merge_selfsigs_main): Fix reversed expiration time
611         check with self-sigs.
612
613         * keyedit.c (sign_uids): When making a new self-sig on a v3 key,
614         make a v3 self-sig unless it is currently a v3 self-sig being
615         promoted to v4.
616
617 2002-05-31  Timo Schulz  <ts@winpt.org>
618
619         * pkclist.c (do_show_revocation_reason): Don't use capital
620         letters for non-interactive output.
621         (show_revocation_reason): Now it is global.
622         * pubkey-enc.c (get_it): Show if the key has been revoked.
623         
624 2002-05-30  David Shaw  <dshaw@jabberwocky.com>
625
626         * sign.c (write_signature_packets, sign_file, clearsign_file,
627         sign_symencrypt_file): Make a v4 signature if a policy URL or
628         notation is set, unless v3 sigs are forced via rfc1991 or
629         force-v3-sigs.  Also remove some doubled code and clarify an error
630         message (we don't sign in PGP2 mode - just detach-sign).
631
632         * parse-packet.c (parse_one_sig_subpkt): Add KS_FLAGS to the "any
633         size" section.
634
635 2002-05-29  David Shaw  <dshaw@jabberwocky.com>
636
637         * keygen.c (keygen_set_std_prefs, add_feature_mdc): Use "mdc" and
638         "no-mdc" in the prefs string to allow switching on and off the MDC
639         feature.  This is needed to properly export a key from GnuPG for
640         use on PGP which does not support MDC - without this, MDC-capable
641         implementations will still try and generate MDCs which will break
642         PGP.
643
644         * keygen.c (keygen_get_std_prefs): Show "[mdc]" in prefs string if
645         it is enabled.
646
647         * options.h, g10.c (main), cipher.c (write_header), keygen.c
648         (keygen_set_std_prefs): For consistency, allow the user to specify
649         mdc/no-mdc in the --personal-preference-list.  If disabled, it
650         acts just like --disable-mdc.
651
652 2002-05-29  David Shaw  <dshaw@jabberwocky.com>
653
654         * options.h, exec.c: Add some debugging info, using the 1024 debug
655         flag.
656
657         * exec.c (win_system): New system()-like function for win32 that
658         does not return until the child process terminates.  Of course,
659         this doesn't help if the process itself exits before it is
660         finished.
661
662 2002-05-29  Werner Koch  <wk@gnupg.org>
663
664         * encode.c (encode_simple): Intialize PKT when --no-literal is used.
665
666         * keyedit.c (show_key_with_all_names_colon): Renamed the record
667         for revocation keys to "rvk".
668
669 2002-05-27  Werner Koch  <wk@gnupg.org>
670
671         * keyedit.c (show_key_with_all_names_colon): New.
672         (show_key_with_all_names): Divert to new function when required.
673         Sanitize printing of revoker name.
674
675 2002-05-27  David Shaw  <dshaw@jabberwocky.com>
676
677         * build-packet.c (build_sig_subpkt): Handle setting sig flags for
678         certain subpacket types (notation, policy url, exportable,
679         revocable).  keyedit.c (sign_mk_attrib): Flags no longer need to
680         be set here.
681
682         * packet.h, parse-packet.c (parse_one_sig_subpkt), build-packet.c
683         (build_sig_subpkt): Call parse_one_sig_subpkt to sanity check
684         buffer lengths before building a sig subpacket.
685
686 2002-05-26  David Shaw  <dshaw@jabberwocky.com>
687
688         * sign.c (mk_notation_and_policy): Include secret key to enable %s
689         expandos, and pass notations through pct_expando as well.
690
691         * main.h, misc.c (pct_expando): Add %s and %S expandos for
692         signer's keyid.
693
694 2002-05-25  David Shaw  <dshaw@jabberwocky.com>
695
696         * g10.c (strusage, build_list): Add compress algorithms to
697         --version list.  Show algorithm numbers when --verbose --version
698         is done.
699
700 2002-05-22  David Shaw  <dshaw@jabberwocky.com>
701
702         * options.h, main.h, keygen.c (keygen_set_set_prefs,
703         keygen_get_std_prefs, keygen_upd_std_prefs), keyedit.c
704         (keyedit_menu), g10.c (main), pkclist.c (select_algo_from_prefs):
705         Add --personal-preference-list which allows the user to factor in
706         their own preferred algorithms when the preference lists are
707         consulted.  Obviously, this does not let the user violate a
708         recepient's preferences (and the RFC) - this only influences the
709         ranking of the agreed-on (and available) algorithms from the
710         recepients.  Suggested by David Hollenberg.
711
712         * options.h, keygen.c (keygen_set_std_prefs), g10.c (main): Rename
713         --preference-list to --default-preference-list (as that is what it
714         really is), and make it a true default in that if the user selects
715         "default" they get this list and not the compiled-in list.
716
717 2002-05-22  Werner Koch  <wk@gnupg.org>
718
719         * g10.c (main): Add missing LF in a info printout and made it
720         translatable.  Noted by Michael Tokarev.
721
722 2002-05-21  Werner Koch  <wk@gnupg.org>
723
724         * g10.c (main): Removed the undef of USE_SHM_COPROCESSING which
725         was erroneously introduced on 2002-01-09.
726
727         * signal.c (got_fatal_signal): Don't write the Nul to stderr.
728         Reported by David Hollenberg.
729
730 2002-05-18  David Shaw  <dshaw@jabberwocky.com>
731
732         * main.h, g10.c (main), revoke.c (gen_desig_revoke): Generate a
733         designated revocation via --desig-revoke
734
735         * keyedit.c (keyedit_menu, menu_addrevoker): New "addrevoker"
736         command to add a designated revoker to a key.
737
738 2002-05-17  David Shaw  <dshaw@jabberwocky.com>
739
740         * gpgv.c: Add stub for get_ownertrust().
741
742         * g10.c (main): --allow-freeform-uid should be implied by
743         OpenPGP.  Add --no-allow-freeform-uid.
744
745         * keyedit.c (sign_uids): Issue a warning when signing a
746         non-selfsigned uid.
747
748         * getkey.c (merge_selfsigs_main): If a key has no selfsigs, and
749         allow-non-selfsigned-uid is not set, still try and make the key
750         valid by checking all uids for a signature from an ultimately
751         trusted key.
752
753 2002-05-16  David Shaw  <dshaw@jabberwocky.com>
754
755         * main.h, keygen.c (keygen_add_revkey): Add revocation key
756         subpackets to a signature (callable by
757         make_keysig_packet). (write_direct_sig): Write a 1F direct key
758         signature. (parse_revocation_key): Parse a string in
759         algo:fpr:sensitive format into a revocation
760         key. (get_parameter_revkey, do_generate_keypair): Call above
761         functions when prompted from a batch key generation file.
762
763         * build-packet.c (build_sig_subpkt): Allow multiple revocation key
764         subpackets in a single sig.
765
766         * keydb.h, getkey.c (get_seckey_byfprint): Same as
767         get_pubkey_byfprint, except for secret keys.  We only know the
768         fingerprint of a revocation key, so this is needed to retrieve the
769         secret key needed to issue a revokation.
770
771         * packet.h, parse-packet.c (parse_signature, parse_revkeys): Split
772         revkey parsing off into a new function that can be used to reparse
773         after manipulating the revkey list.
774
775         * sign.c (make_keysig_packet): Ability to make 1F direct key
776         signatures.
777
778 2002-05-15  David Shaw  <dshaw@jabberwocky.com>
779
780         * options.skel: keyserver.pgp.com is gone, so list pgp.surfnet.nl
781         as a sample LDAP server instead.
782
783         * getkey.c (merge_selfsigs_main): Properly handle multiple
784         revocation keys in a single packet.  Properly handle revocation
785         keys that are in out-of-order packets.  Remove duplicates in
786         revocation key list.
787
788 2002-05-14  Timo Schulz   <ts@winpt.org>
789
790         * exec.c (make_tempdir) [MINGW32]: Added missing '\'.
791         
792 2002-05-14  Stefan Bellon  <sbellon@sbellon.de>
793
794         * exec.c (make_tempdir): Make use of EXTSEP_S instead of hardcoded
795         dot as extension separator.
796
797 2002-05-13  David Shaw  <dshaw@jabberwocky.com>
798
799         * photoid.c (show_photos): Use the long keyid as the filename for
800         the photo.  Use the short keyid as the filename on 8.3 systems.
801
802         * exec.h, exec.c (make_tempdir, exec_write, exec_finish): Allow
803         caller to specify filename.  This should make things easier on
804         windows and macs where the file extension is required, but a whole
805         filename is even better.
806
807         * keyedit.c (show_key_with_all_names, show_prefs): Show proper
808         prefs for a v4 key uid with no selfsig at all.
809
810         * misc.c (check_permissions): Don't check permissions on
811         non-normal files (pipes, character devices, etc.)
812
813 2002-05-11  Werner Koch  <wk@gnupg.org>
814
815         * mainproc.c (proc_symkey_enc): Avoid segv in case the parser
816         encountered an invalid packet.
817
818         * keyserver.c (keyserver_export): Get confirmation before sending
819         all keys.
820
821 2002-05-10  Stefan Bellon  <sbellon@sbellon.de>
822
823         * g10.c, hkp.c, keyedit.c, keyserver.c: Replaced all occurrances
824         of strcasecmp with ascii_strcasecmp and all occurrances of
825         strncasecmp with ascii_memcasecmp.
826
827 2002-05-10  David Shaw  <dshaw@jabberwocky.com>
828
829         * packet.h, getkey.c (fixup_uidnode), keyedit.c (show_prefs): Show
830         assumed prefs for hash and compression as well as the cipher pref.
831         Show assumed prefs if there are no prefs at all on a v4
832         self-signed key.
833
834         * options.h, g10.c (main), sign.c (make_keysig_packet): New
835         --cert-digest-algo function to override the default key signing
836         hash algorithm.
837
838 2002-05-09  David Shaw  <dshaw@jabberwocky.com>
839
840         * getkey.c (merge_selfsigs_main): Make sure the revocation key
841         list starts clean as this function may be called more than once
842         (e.g. from functions in --edit).
843
844         * g10.c, encode.c (encode_crypt), sign.c (sign_file,
845         sign_symencrypt_file): Make --compress-algo work like the
846         documentation says.  It should be like --cipher-algo and
847         --digest-algo in that it can override the preferences calculation
848         and impose the setting the user wants.  No --compress-algo setting
849         allows the usual preferences calculation to take place.
850
851         * main.h, compress.c (compress_filter): use new
852         DEFAULT_COMPRESS_ALGO define, and add a sanity check for compress
853         algo value.
854
855 2002-05-08  David Shaw  <dshaw@jabberwocky.com>
856
857         * pkclist.c (select_algo_from_prefs): There is an assumed
858         compression preference for uncompressed data.
859
860 2002-05-07  David Shaw  <dshaw@jabberwocky.com>
861
862         * options.h, g10.c (main), getkey.c (finish_lookup), pkclist.c
863         (algo_available): --pgp7, identical to --pgp6 except that it
864         permits a few algorithms that PGP 7 added: AES128, AES192, AES256,
865         and TWOFISH.  Any more of these --pgpX flags, and it'll be time to
866         start looking at a generic --emulate-pgp X option.
867
868         * export.c (do_export_stream): Warn the user when exporting a
869         secret key if it or any of its secret subkeys are protected with
870         SHA1 while simple_sk_checksum is set.
871
872         * parse-packet.c (parse_key): Show when the SHA1 protection is
873         used in --list-packets.
874
875         * options.h, build-packet.c (do_comment), g10.c (main): Rename
876         --no-comment as --sk-comments/--no-sk-comments (--no-comment still
877         works) and make the default be --no-sk-comments.
878
879 2002-05-07  Werner Koch  <wk@gnupg.org>
880
881         * keygen.c (get_parameter_algo): Never allow generation of the
882         deprecated RSA-E or RSA-S flavors of PGP RSA.
883         (ask_algo): Allow generation of RSA sign and encrypt in expert
884         mode.  Don't allow ElGamal S+E unless in expert mode.
885         * helptext.c: Added entry keygen.algo.rsa_se.
886
887 2002-05-07  David Shaw  <dshaw@jabberwocky.com>
888
889         * keyedit.c (sign_uids): If --expert is set, allow re-signing a
890         uid to promote a v3 self-sig to a v4 one.  This essentially
891         deletes the old v3 self-sig and replaces it with a v4 one.
892
893         * packet.h, parse-packet.c (parse_key), getkey.c
894         (merge_keys_and_selfsig, merge_selfsigs_main): a v3 key with a v4
895         self-sig must never let the v4 self-sig express a key expiration
896         time that extends beyond the original v3 expiration time.
897
898 2002-05-06  David Shaw  <dshaw@jabberwocky.com>
899
900         * keyedit.c (sign_uids): When making a self-signature via "sign"
901         don't ask about sig level or expiration, and include the usual
902         preferences and such for v4 self-sigs.  (menu_set_preferences):
903         Convert uids from UTF8 to native before printing.
904
905         * keyedit.c (sign_uids): Convert uids from UTF8 to native before
906         printing.  (menu_set_primary_uid): Show error if the user tries to
907         make a uid with a v3 self-sig primary.
908
909 2002-05-05  David Shaw  <dshaw@jabberwocky.com>
910
911         * import.c (import_one): When merging with a key we already have,
912         don't let a key conflict (same keyid but different key) stop the
913         import: just skip the bad key and continue.
914
915         * exec.c (make_tempdir): Under Win32, don't try environment
916         variables for temp directories - GetTempDir tries environment
917         variables internally, and it's better not to second-guess it in
918         case MS adds some sort of temp dir handling to Windows at some
919         point.
920
921 2002-05-05  Timo Schulz  <ts@winpt.org>
922
923         * mainproc.c (proc_symkey_enc): Don't ask for a passphrase
924         in the list only mode.
925         
926 2002-05-05  David Shaw  <dshaw@jabberwocky.com>
927
928         * keyserver.c (keyserver_refresh): --refresh-keys implies
929         --merge-only so as not to import keys with keyids that match the
930         ones being refreshed.  Noted by Florian Weimer.
931
932 2002-05-04  Stefan Bellon  <sbellon@sbellon.de>
933
934         * free-packet.c (copy_public_key): Don't call m_alloc(0), therefore
935         added consistency check for revkey and numrefkeys.
936
937         * getkey.c (check_revocation_keys): Added consistency check for
938         revkey and numrefkeys.
939
940         * keyedit.c (show_key_with_all_names): Likewise.
941
942 2002-05-03  David Shaw  <dshaw@jabberwocky.com>
943
944         * photoid.c: Provide default image viewer for Win32.
945
946         * misc.c (pct_expando): %t means extension, not name ("jpg", not
947         "jpeg").
948
949         * keyserver.c (keyserver_spawn), photoid.c (show_photos), exec.h,
950         exec.c: Allow the caller to determine the temp file extension when
951         starting an exec_write and change all callers.
952
953         * keyedit.c (sign_uids): Nonrevocable key signatures cause an
954         automatic promotion to v4.
955
956         * exec.c: Provide stubs for exec_ functions when NO_EXEC is
957         defined.
958
959 2002-05-02  David Shaw  <dshaw@jabberwocky.com>
960
961         * photoid.h, photoid.c (parse_image_header, image_type_to_string):
962         Useful functions to return data about an image.
963
964         * packet.h, parse-packet.c (make_attribute_uidname,
965         parse_attribute_subpkts, parse_attribute), photoid.h, photoid.c
966         (show_photos): Handle multiple images in a single attribute
967         packet.
968
969         * main.h, misc.c (pct_expando), sign.c (mk_notation_and_policy),
970         photoid.c (show_photos): Simpler expando code that does not
971         require using compile-time string sizes.  Call
972         image_type_to_string to get image strings (i.e. "jpg",
973         "image/jpeg").  Change all callers.
974
975         * keyedit.c (menu_showphoto), keylist.c (list_keyblock_print):
976         Allow viewing multiple images within a single attribute packet.
977
978         * gpgv.c: Various stubs for link happiness.
979
980 2002-05-02  David Shaw  <dshaw@jabberwocky.com>
981
982         * build-packet.c (build_sig_subpkt), keyedit.c (sign_uids),
983         options.h, sign.c (mk_notation_and_policy), g10.c (main,
984         add_notation_data, add_policy_url (new), check_policy_url
985         (removed)): Allow multiple policy URLs on a given signature.
986         Split "--notation-data" into "--cert-notation" and
987         "--sig-notation" so the user can set different policies for key
988         and data signing.  For backwards compatibility, "--notation-data"
989         sets both, as before.
990
991 2002-05-02  Werner Koch  <wk@gnupg.org>
992
993         * options.skel: Removed the comment on trusted-keys because this
994         option is now deprecated.
995
996 2002-05-01  David Shaw  <dshaw@jabberwocky.com>
997
998         * keyedit.c (menu_adduid): 2440bis04 says that multiple attribute
999         packets on a given key are legal.
1000
1001         * keyserver.c (keyserver_refresh): the fake v3 keyid hack applies
1002         to "mailto" URLs as well since they are also served by pksd.
1003
1004 2002-04-29  Werner Koch  <wk@gnupg.org>
1005
1006         Added a copyright year for files changed this year.
1007
1008 2002-04-25  Werner Koch  <wk@gnupg.org>
1009
1010         * g10.c, options.h: New options --display, --ttyname, --ttytype,
1011         --lc-ctype, --lc-messages to be used with future versions of the
1012         gpg-agent. 
1013         * passphrase.c (agent_send_option,agent_send_all_options): New.
1014         (agent_open): Send options to the agent.
1015
1016         * trustdb.c (update_ownertrust, clear_ownertrust): Do an explicit
1017         do_sync because revalidation_mark does it only if when the
1018         timestamp actually changes.
1019
1020 2002-04-23  David Shaw  <dshaw@jabberwocky.com>
1021
1022         * main.h, keygen.c (do_generate_keypair), keylist.c
1023         (print_signature_stats, list_all, list_one, list_keyblock,
1024         list_keyblock_print, list_keyblock_colon): After generating a new
1025         key, show the key information (name, keyid, fingerprint, etc.)
1026         Also do not print uncheckable signatures (missing key..) in
1027         --check-sigs.  Print statistics (N missing keys, etc.) after
1028         --check-sigs.
1029
1030         * keyedit.c (sign_uids): When signing a key with an expiration
1031         date on it, the "Do you want your signature to expire at the same
1032         time?" question should default to YES.
1033
1034 2002-04-22  David Shaw  <dshaw@jabberwocky.com>
1035
1036         * parse-packet.c (parse_plaintext), packet.h, plaintext.c
1037         (handle_plaintext): Fix bug in handling literal packets with
1038         zero-length data (no data was being confused with partial body
1039         length).
1040
1041         * misc.c (pct_expando), options.skel: %t means extension ("jpg").
1042         %T means MIME type ("image/jpeg").
1043
1044         * import.c (import_one): Only trigger trust update if the keyring
1045         is actually changed.
1046
1047         * export.c (do_export_stream): Missing a m_free.
1048
1049 2002-04-22  Stefan Bellon  <sbellon@sbellon.de>
1050
1051         * keyid.c (expirestr_from_sk, expirestr_from_sig): Added _() to
1052         string constant.
1053
1054         * exec.c (make_tempdir) [__riscos__]: Better placement of
1055         temporary file.
1056
1057 2002-04-20  David Shaw  <dshaw@jabberwocky.com>
1058
1059         * keygen.c (generate_subkeypair): 2440bis04 adds that creating
1060         subkeys on v3 keys is a MUST NOT.
1061
1062         * getkey.c (finish_lookup): The --pgp6 "use the primary key"
1063         behavior should only apply while data signing and not encryption.
1064         Noted by Roger Sondermann.
1065
1066 2002-04-19  Werner Koch  <wk@gnupg.org>
1067
1068         * keygen.c (keygen_set_std_prefs): Put back 3DES because the RFC
1069         says it is good form to do so.
1070
1071 2002-04-19  David Shaw  <dshaw@jabberwocky.com>
1072
1073         * keyedit.c (menu_deluid): Only cause a trust update if we delete
1074         a non-revoked user id.
1075
1076         * hkp.c (hkp_ask_import), keyserver.c (parse_keyserver_options,
1077         keyserver_spawn), options.h: Remove fast-import keyserver option
1078         (no longer meaningful).
1079
1080         * g10.c (main), keyedit.c (sign_uids), options.h: Change
1081         --default-check-level to --default-cert-check-level as it makes
1082         clear what it operates on.
1083
1084         * g10.c (main): --pgp6 also implies --no-ask-sig-expire.
1085
1086         * delkey.c (do_delete_key): Comment.
1087
1088         * keyedit.c (sign_uids, keyedit_menu, menu_deluid, menu_delsig,
1089         menu_expire, menu_revsig, menu_revkey): Only force a trustdb check
1090         if we did something that changes it.
1091
1092         * g10.c: add "--auto-check-trustdb" to override a
1093         "--no-auto-check-trustdb"
1094
1095 2002-04-19  Werner Koch  <wk@gnupg.org>
1096
1097         * tdbio.c (tdbio_write_nextcheck): Return a status whether the
1098         stamp was actually changed.
1099         * trustdb.c (revalidation_mark): Sync the changes.  Removed the
1100         sync operation done by its callers.
1101         (get_validity): Add logic for maintaining a pending_check flag.
1102         (clear_ownertrust): New.
1103         
1104         * keyedit.c (sign_uids): Don't call revalidation_mark depending on
1105         primary_pk.
1106         (keyedit_menu): Call revalidation_mark after "trust".
1107         (show_key_with_all_names): Print a warning on the wrong listed key
1108         validity.
1109
1110         * delkey.c (do_delete_key): Clear the owenertrust information when
1111         deleting a public key.
1112         
1113 2002-04-18  Werner Koch  <wk@gnupg.org>
1114
1115         * seskey.c (encode_md_value): Print an error message if a wrong
1116         digest algorithm is used with DSA.  Changed all callers to cope
1117         with a NULL return.  Problem noted by Imad R. Faiad.
1118
1119 2002-04-18  David Shaw  <dshaw@jabberwocky.com>
1120
1121         * trustdb.c (mark_usable_uid_certs): Properly handle nonrevocable
1122         signatures that can expire.  In short, the only thing that can
1123         override an unexpired nonrevocable signature is another unexpired
1124         nonrevocable signature.
1125
1126         * getkey.c (finish_lookup): Always use primary signing key for
1127         signatures when --pgp6 is on since pgp6 and 7 do not understand
1128         signatures made by signing subkeys.
1129
1130 2002-04-18  Werner Koch  <wk@gnupg.org>
1131
1132         * trustdb.c (validate_keys): Never schedule a nextcheck into the
1133         past.
1134         (validate_key_list): New arg curtime use it to set next_expire.
1135         (validate_one_keyblock): Take the current time from the caller.
1136         (clear_validity, reset_unconnected_keys): New.
1137         (validate_keys): Reset all unconnected keys.
1138
1139         * getkey.c (premerge_public_with_secret): Fixed 0x12345678! syntax
1140         for use with secret keys.
1141         (lookup): Advance the searchmode after a search FIRST.
1142
1143         * seckey-cert.c (do_check): Always calculate the old checksum for
1144         use after unprotection.
1145
1146         * g10.c, options.skel: New option --no-escape-from.  Made
1147         --escape-from and --force-v3-sigs the default and removed them
1148         from the options skeleton.
1149
1150 2002-04-16  Werner Koch  <wk@gnupg.org>
1151
1152         * parse-packet.c (parse_key): Support a SHA1 checksum as per
1153         draft-rfc2440-bis04.
1154         * packet.h (PKT_secret_key): Add field sha1chk.
1155         * seckey-cert.c (do_check): Check the SHA1 checksum
1156         (protect_secret_key): And create it.
1157         * build-packet.c (do_secret_key): Mark it as sha-1 protected.
1158         * g10.c, options.h: New option --simple-sk-checksum.
1159
1160 2002-04-13  David Shaw  <dshaw@jabberwocky.com>
1161
1162         * parse-packet.c (parse_signature): Minor fix - signatures should
1163         expire at their expiration time and not one second later.
1164
1165         * keygen.c (proc_parameter_file): Allow specifying preferences
1166         string (i.e. "s5 s2 z1 z2", etc) in a batchmode key generation
1167         file.
1168
1169         * keyedit.c (keyedit_menu): Print standard error message when
1170         signing a revoked key (no new translation).
1171
1172         * getkey.c (merge_selfsigs): Get the default set of key prefs from
1173         the real (not attribute) primary uid.
1174
1175 2002-04-12  David Shaw  <dshaw@jabberwocky.com>
1176
1177         * pkclist.c (build_pk_list): Fix bug that allowed a key to be
1178         selected twice in batch mode if one instance was the default
1179         recipient and the other was an encrypt-to.  Noted by Stefan
1180         Bellon.
1181
1182         * parse-packet.c (dump_sig_subpkt): Show data in trust and regexp
1183         sig subpackets.
1184
1185         * keyedit.c (keyedit_menu): Use new function real_uids_left to
1186         prevent deleting the last real (i.e. non-attribute) uid.  Again,
1187         according to the attribute draft. (menu_showphoto): Make another
1188         string translatable.
1189
1190 2002-04-11  David Shaw  <dshaw@jabberwocky.com>
1191
1192         * build-packet.c (build_sig_subpkt): Delete subpackets from both
1193         hashed and unhashed area on update.  (find_subpkt): No longer
1194         needed.
1195
1196         * keyedit.c (sign_uids): With --pgp2 on, refuse to sign a v3 key
1197         with a v4 signature.  As usual, --expert overrides.  Try to tweak
1198         some strings to a closer match so they can all be translated in
1199         one place.  Use different helptext keys to allow different help
1200         text for different questions.
1201
1202         * keygen.c (keygen_upd_std_prefs): Remove preferences from both
1203         hashed and unhashed areas if they are not going to be used.
1204
1205 2002-04-10  David Shaw  <dshaw@jabberwocky.com>
1206
1207         * misc.c (pct_expando), options.skel: Use %t to indicate type of a
1208         photo ID (in this version, it's always "jpeg").  Also tweak string
1209         expansion loop to minimize reallocs.
1210
1211         * mainproc.c (do_check_sig): Variable type fix.
1212
1213         * keyedit.c (menu_set_primary_uid): Differentiate between true
1214         user IDs and attribute user IDs when making one of them primary.
1215         That is, if we are making a user ID primary, we alter user IDs.
1216         If we are making an attribute packet primary, we alter attribute
1217         packets.  This matches the language in the latest attribute packet
1218         draft.
1219
1220         * keyedit.c (sign_uids): No need for the empty string hack.
1221
1222         * getkey.c (fixup_uidnode): Only accept preferences from the
1223         hashed segment of the self-sig.
1224
1225 2002-04-10  Werner Koch  <wk@gnupg.org>
1226
1227         * tdbio.c (migrate_from_v2): Fixed the offset to read the old
1228         ownertrust value and only add entries to the table if we really
1229         have a value.
1230
1231 2002-04-08  David Shaw  <dshaw@jabberwocky.com>
1232
1233         * status.h, status.c (get_status_string): Add KEYEXPIRED, EXPSIG,
1234         and EXPKEYSIG.  Add "deprecated-use-keyexpired-instead" to
1235         SIGEXPIRED.
1236
1237         * sig-check.c (do_check): Start transition from SIGEXPIRED to
1238         KEYEXPIRED, since the actual event is signature verification by an
1239         expired key and not an expired signature. (do_signature_check,
1240         packet.h): Rename as signature_check2, make public, and change all
1241         callers.
1242
1243         * mainproc.c (check_sig_and_print, do_check_sig): Use status
1244         EXPSIG for an expired, but good, signature.  Add the expiration
1245         time (or 0) to the VALIDSIG status line.  Use status KEYEXPSIG for
1246         a good signature from an expired key.
1247
1248         * g10.c (main): remove checks for no arguments now that argparse
1249         does it.
1250
1251 2002-04-06  Werner Koch  <wk@gnupg.org>
1252
1253         * keyring.c (keyring_get_keyblock): Disable the keylist mode here.
1254
1255         * encode.c (encode_simple, encode_crypt): Only test on compressed
1256         files if a compress level was not explicity set.
1257
1258         * keygen.c (keygen_set_std_prefs): Removed Blowfish and Twofish
1259         from the list of default preferences, swapped the preferences of
1260         RMD160 and SHA1.  Don't include a preference to 3DES unless the
1261         IDEA kludge gets used.
1262
1263         * free-packet.c (free_packet): call free_encrypted also for
1264         PKT_ENCRYPTED_MDC.
1265
1266         * compress.c (release_context): New.
1267         (handle_compressed): Allocate the context and setup a closure to
1268         release the context.  This is required because there is no
1269         guarabntee that the filter gets popped from the chain at the end
1270         of the function.  Problem noted by Timo and probably also the
1271         cause for a couple of other reports.
1272         (compress_filter): Use the release function if set.
1273
1274         * tdbio.c [__CYGWIN32__]: Don't rename ftruncate.  Noted by
1275         Disastry.
1276
1277         * parse-packet.c (parse_signature): Put parens around a bit test.
1278
1279         * exec.c (make_tempdir): Double backslash for TMP directory
1280         creation under Windows.  Better strlen the DIRSEP_S constants for
1281         allocation measurements.
1282
1283         * decrypt.c (decrypt_messages): Release the passphrase aquired
1284         by get_last_passphrase.
1285
1286 2002-04-02  Werner Koch  <wk@gnupg.org>
1287
1288         * Makefile.am (EXTRA_DIST): Removed OPTIONS an pubring.asc - they
1289         are no longer of any use. 
1290
1291 2002-04-03  David Shaw  <dshaw@jabberwocky.com>
1292
1293         * keyserver.c (parse_keyserver_options): fix auto-key-retrieve to
1294         actually work as a keyserver-option (noted by Roger Sondermann).
1295
1296         * keylist.c (reorder_keyblock): do not reorder the primary
1297         attribute packet - the first user ID must be a genuine one.
1298
1299 2002-03-31  David Shaw  <dshaw@jabberwocky.com>
1300
1301         * keylist.c (list_keyblock_colon): Fix ownertrust display with
1302         --with-colons.
1303
1304         * keygen.c (generate_user_id), photoid.c (generate_photo_id):
1305         Properly initialize the user ID refcount.  A few more "y/n" ->
1306         "y/N" in photoid.c.
1307
1308         * keyedit.c (ask_revoke_sig): Warn the user if they are about to
1309         revoke an expired sig (not a problem, but they should know).  Also
1310         tweak a few prompts to change "y/n" to "y/N", which is how most
1311         other prompts are written.
1312
1313         * keyserver.c (keyserver_search_prompt): Control-d escapes the
1314         keyserver search prompt.
1315
1316         * pkclist.c (show_revocation_reason & callers): If a subkey is
1317         considered revoked solely because the parent key is revoked, print
1318         the revocation reason from the parent key.
1319
1320         * trustdb.c (get_validity): Allow revocation/expiration to apply
1321         to a uid/key with no entry in the trustdb.
1322
1323 2002-03-29  David Shaw  <dshaw@jabberwocky.com>
1324
1325         * keyserver.c (printunquoted): unquote backslashes from keyserver
1326         searches
1327
1328         * hkp.c (write_quoted): quote backslashes from keyserver searches
1329
1330 2002-03-26  Werner Koch  <wk@gnupg.org>
1331
1332         * keygen.c (ask_keysize): Removed the warning for key sizes > 1536.
1333
1334 2002-03-25  Werner Koch  <wk@gnupg.org>
1335
1336         * keyedit.c (sign_uids): Use 2 strings and not a %s so that
1337         translations can be done the right way.
1338         * helptext.c: Fixed small typo.
1339
1340 2002-03-23  David Shaw  <dshaw@jabberwocky.com>
1341
1342         * import.c (append_uid, merge_sigs): it is okay to import
1343         completely non-signed uids now (with --allow-non-selfsigned-uid).
1344
1345         * getkey.c (get_primary_uid, merge_selfsigs_main): do not choose
1346         an attribute packet (i.e. photo) as primary uid.  This prevents
1347         oddities like "Good signature from [image of size 2671]".  This is
1348         still not perfect (one can still select an attribute packet as
1349         primary in --edit), but is closer to the way the draft is going.
1350
1351         * g10.c (build_list): algorithms should include 110.
1352
1353         * g10.c (main): --pgp2 implies --no-ask-sig-expire and
1354         --no-ask-cert-expire as those would cause a v4 sig/cert.
1355
1356         * armor.c (is_armor_header): be more lenient in what constitutes a
1357         valid armor header (i.e. -----BEGIN blah blah-----) as some
1358         Windows programs seem to add spaces at the end.  --openpgp makes
1359         it strict again.
1360
1361 2002-03-18  David Shaw  <dshaw@jabberwocky.com>
1362
1363         * keyserver.c (keyserver_search_prompt): Properly handle a "no
1364         keys found" case from the internal HKP code (external HKP is ok).
1365         Also, make a COUNT -1 (i.e. streamed) keyserver response a little
1366         more efficient.
1367
1368         * g10.c (main): Add --no-allow-non-selfsigned-uid
1369
1370 2002-03-17  David Shaw  <dshaw@jabberwocky.com>
1371
1372         * g10.c (main): --openpgp implies --allow-non-selfsigned-uid.
1373
1374         * getkey.c (merge_selfsigs_main): If none of the uids are primary
1375         (because none are valid) then pick the first to be primary (but
1376         still invalid).  This is for cosmetics in case some display needs
1377         to print a user ID from a non-selfsigned key.  Also use
1378         --allow-non-selfsigned-uid to make such a key valid and not
1379         --always-trust.  The key is *not* automatically trusted via
1380         --allow-non-selfsigned-uid.
1381
1382         * mainproc.c (check_sig_and_print): Make sure non-selfsigned uids
1383         print [uncertain] on verification even though one is primary now.
1384
1385         * getkey.c (merge_selfsigs): If the main key is not valid, then
1386         neither are the subkeys.
1387
1388         * import.c (import_one): Allow --allow-non-selfsigned-uid to work
1389         on completely unsigned keys.  Print the uids in UTF8.  Remove
1390         mark_non_selfsigned_uids_valid().
1391
1392         * keyedit.c (show_key_with_all_names): Show revocation key as
1393         UTF8.
1394
1395         * sign.c (clearsign_file): Allow --not-dash-escaped to work with
1396         v3 keys.
1397
1398 2002-03-14  Werner Koch  <wk@gnupg.org>
1399
1400         * main.h: Changed the default algorithms to CAST5 and SHA1.
1401
1402 2002-03-13  David Shaw  <dshaw@jabberwocky.com>
1403
1404         * import.c (chk_self_sigs): Show which user ID a bad self-sig
1405         (invald sig or unsupported public key algorithm) resides on.
1406
1407         * import.c (chk_self_sigs): any valid self-sig should mark a user
1408         ID or subkey as valid - otherwise, an attacker could DoS the user
1409         by inventing a bogus invalid self-signature.
1410
1411 2002-03-07  David Shaw  <dshaw@jabberwocky.com>
1412
1413         * g10.c (main): make a few more strings translatable.
1414
1415         * options.h, options.skel, g10.c (main), gpgv.c, mainproc.c
1416         (check_sig_and_print), keyserver.c (parse_keyserver_options):
1417         --auto-key-retrieve should really be a keyserver-option variable.
1418
1419         * import.c (revocation_present): new function to print a warning
1420         if a key is imported that has been revoked by designated revoker,
1421         but the designated revoker is not present to verify the
1422         revocation.  If keyserver-options auto-key-retrieve is set, try
1423         and fetch the designated revoker from the keyserver.
1424
1425         * import.c (import_one): call revocation_present after importing a
1426         new key.  Note that this applies to --import, --recv-keys, and
1427         --search-keys.
1428         
1429         * keyserver-internal.h, keyserver.c (keyserver_import_fprint):
1430         import via fingerprint (for revocation keys).
1431
1432         * keyserver.c (keyserver_import_keyid): much simpler
1433         implementation now that we're using KEYDB_SEARCH_DESC internally.
1434
1435 2002-03-04  David Shaw  <dshaw@jabberwocky.com>
1436
1437         * revoke.c (gen_revoke): do not prompt for revocation reason for
1438         v3 revocations (unless force-v4-certs is on) since they wouldn't
1439         be used anyway.
1440
1441         * keyedit.c (menu_revsig): show the status of the sigs
1442         (exportable? revocable?) to the user before prompting for which
1443         sig to revoke.  Also, make sure that local signatures get local
1444         revocations.
1445
1446         * keyedit.c (ask_revoke_sig): remind the user which sigs are
1447         local.
1448
1449         * g10.c (main): Add "exec-path" variable to override PATH for
1450         execing programs.
1451
1452         * export.c (do_export_stream): properly check return code from
1453         classify_user_id to catch unclassifiable keys.
1454
1455 2002-03-03  David Shaw  <dshaw@jabberwocky.com>
1456
1457         * parse-packet.c (parse_signature): variable type tweak for RISC
1458         OS (from Stefan)
1459
1460 2002-02-28  David Shaw  <dshaw@jabberwocky.com>
1461
1462         * getkey.c (check_revocation_keys): New function to check a
1463         revocation against a list of potential revocation keys.  Note the
1464         loop-breaking code here.  This is to prevent blowing up if A is
1465         B's revocation key, while B is also A's.  Note also that this is
1466         written so that a revoked revoker can still issue revocations:
1467         i.e. If A revokes B, but A is revoked, B is still revoked.  I'm
1468         not completely convinced this is the proper behavior, but it
1469         matches how PGP does it.  It does at least have the advantage of
1470         much simpler code - my first version of this had lots of loop
1471         maintaining code so you could chain revokers many levels deep and
1472         if D was revoked, C was not, which meant that B was, and so on.
1473         It was sort of scary, actually.
1474
1475         * getkey.c (merge_selfsigs_main): Add any revocation keys onto the
1476         pk.  This is particularly interesting since we normally only get
1477         data from the most recent 1F signature, but you need multiple 1F
1478         sigs to properly handle revocation keys (PGP does it this way, and
1479         a revocation key could be marked "sensitive" and hence in a
1480         different signature).  Also, if a pk has a revocation key set,
1481         check for revocation sigs that were not made by us - if made by a
1482         valid revocation key, mark the pk revoked.
1483
1484         * packet.h, getkey.c (cache_public_key): do not cache key if
1485         "dont_cache" is set.  This allows the revocation key code to look
1486         up a key and return information that may be inaccurate to prevent
1487         loops without caching the fake data.
1488
1489         * packet.h, sig-check.c (do_signature_check): Record if a
1490         signature was made by a revoked pk.
1491
1492         * packet.h, parse-packet.c (parse_one_sig_subpkt,
1493         can_handle_critical, parse_signature): Get revocation key
1494         information out of direct sigs.
1495         
1496         * keylist.c (list_keyblock_print): don't assume that the presence
1497         of a 0x20 signature means the key is revoked.  With revocation
1498         keys, this may not be true if the revocation key is not around to
1499         verify it or if verification failed.  Also, 0x1F should get listed
1500         as "sig", and not "unexpected signature class".
1501
1502         * keyedit.c (show_key_with_all_names): Add a flag for printing
1503         revoker information and change all callers.
1504
1505         * import.c (merge_blocks): merge in any new direct key (0x1F)
1506         sigs.
1507
1508         * import.c (import_revoke_cert): don't keep processing after a
1509         revocation is rejected.
1510         
1511         * import.c (delete_inv_parts): Allow importing a revocation
1512         signature even if it was not issued by the key.  This allows a
1513         revocation key to issue it.  Of course, the sig still needs to be
1514         checked before we trust it.
1515
1516         * free-packet.c (copy_public_key): Include a new copy of the
1517         revocation keys when duping a pk.
1518
1519         * free-packet.c (free_seckey_enc, release_public_key_parts): Free
1520         any revocation keys that are attached to a sig or pk.
1521
1522         * export.c (do_export_stream): Do not export signatures with
1523         "sensitive" revocation keys in them.
1524
1525 2002-02-27  David Shaw  <dshaw@jabberwocky.com>
1526
1527         * export.c (do_export_stream): Do not include v3 keys in a
1528         --export-secret-subkeys export.
1529
1530         * getkey.c (merge_selfsigs_main): If a key isn't valid (say,
1531         because of no self-signature), allow --always-trust to force it
1532         valid so it can be trusted.
1533
1534 2002-02-25  David Shaw  <dshaw@jabberwocky.com>
1535
1536         * hkp.c (hkp_ask_import), hkp.h, keyserver.c (all): treat key
1537         lists internally as fingerprints when possible.  All this is via
1538         KEYDB_SEARCH_DESC - no point in reinventing the wheel. This allows
1539         the helper program to search the keyserver by fingerprint if
1540         desired (and the keyserver supports it).  Note that automatic
1541         fingerprint promotion during refresh only applies to v4 keys as a
1542         v4 fingerprint can be easily changed into a long or short key id,
1543         and a v3 cannot.
1544
1545         * pubkey-enc.c, getkey.c, misc.c, main.h: Take two copies of
1546         hextobyte() from pubkey-enc.c and getkey.c and make them into one
1547         copy in misc.c.
1548
1549 2002-02-22  David Shaw  <dshaw@jabberwocky.com>
1550
1551         * keyserver.c (keyserver_search_prompt): Detect a "no keys found"
1552         case even if the helper program does not explicitly say how many
1553         keys were found.
1554
1555         * hkp.c (parse_hkp_index): Bug fix - don't report non-revoked keys
1556         as revoked in HKP key searches.
1557
1558 2002-02-19  Werner Koch  <wk@gnupg.org>
1559
1560         * parse-packet.c (parse_trust): Made parsing more robust.
1561
1562 2002-02-19  David Shaw  <dshaw@jabberwocky.com>
1563
1564         * hkp.c (parse_hkp_index): Catch corruption in HKP index lines
1565         (can be caused by broken or malicious keyservers).
1566
1567         * keyserver.c (keyserver_work): Add KEYSERVER_NOT_SUPPORTED for
1568         unsupported actions (say, a keyserver that has no way to search,
1569         or a readonly keyserver that has no way to add).  Also add a
1570         USE_EXTERNAL_HKP define to disable the internal HKP keyserver
1571         code.
1572
1573 2002-02-14  Werner Koch  <wk@gnupg.org>
1574
1575         * g10.c: New option --no-use-agent. 
1576
1577         * pkclist.c (check_signatures_trust): Always print the warning for
1578         unknown and undefined trust.  Removed the did_add cruft.  Reported
1579         by Janusz A. Urbanowicz.
1580
1581 2002-02-11  David Shaw  <dshaw@jabberwocky.com>
1582
1583         * hkp.c (parse_hkp_index): Bug fix - properly handle user IDs with
1584         colons (":") in them while HKP searching.
1585
1586 2002-02-09  David Shaw  <dshaw@jabberwocky.com>
1587
1588         * misc.c (pct_expando): More comments.
1589
1590         * keydb.h, sign.c (mk_notation_and_policy): Clarify what is a sig
1591         and what is a cert.  A sig has sigclass 0x00, 0x01, 0x02, or 0x40,
1592         and everything else is a cert.
1593
1594         * g10.c (main), keyedit.c (keyedit_menu): Add a "nrlsign" for
1595         nonrevocable and local key signatures.
1596
1597         * g10.c (main): Add a --no-force-mdc to undo --force-mdc.
1598
1599         * options.h, g10.c (main), cipher.c (write_header): Add a knob to
1600         --disable-mdc/--no-disable-mdc.  Off by default, of course, but is
1601         used in --pgp2 and --pgp6 modes.
1602         
1603         * pkclist.c (build_pk_list): Allow specifying multiple users in
1604         the "Enter the user ID" loop.  Enter a blank line to stop.  Show
1605         each key+id as it is added.
1606
1607         * keylist.c (show_policy_url), mainproc.c (print_notation_data):
1608         It is not illegal (though possibly silly) to have multiple policy
1609         URLs in a given signature, so print all that are present.
1610         
1611         * hkp.c (hkp_search): More efficient implementation of URL-ifying
1612         code.
1613
1614 2002-02-04  David Shaw  <dshaw@jabberwocky.com>
1615
1616         * main.h, misc.c (pct_expando): New function to generalize
1617         %-expando processing in any arbitrary string.
1618
1619         * photoid.c (show_photo): Call the new pct_expando function rather
1620         than expand strings internally.
1621         
1622         * sign.c (mk_notation_and_policy): Show policy URLs and notations
1623         when making a signature if show-policy/show-notation is on.
1624         %-expand policy URLs during generation.  This lets the user have
1625         policy URLs of the form "http://notary.jabberwocky.com/keysign/%K"
1626         which will generate a per-signature policy URL.
1627
1628         * main.h, keylist.c (show_policy_url, show_notation): Add amount
1629         to indent so the same function can be used in key listings as well
1630         as during sig generation.  Change all callers.
1631
1632 2002-02-04  David Shaw  <dshaw@jabberwocky.com>
1633
1634         * keyserver.c, options.h (parse_keyserver_options, keyidlist):
1635         Workaround for the pksd and OKS keyserver bug that calculates v4
1636         RSA keyids as if they were v3.  The workaround/hack is to fetch
1637         both the v4 (e.g. 99242560) and v3 (e.g. 68FDDBC7) keyids.  This
1638         only happens for key refresh while using the HKP scheme and the
1639         refresh-add-fake-v3-keyids keyserver option must be set.  This
1640         should stay off by default.
1641
1642 2002-02-03  David Shaw  <dshaw@jabberwocky.com>
1643
1644         * keyserver.c (keyserver_spawn): Bug fix - do not append keys to
1645         each other when --sending more than one.
1646
1647 2002-02-02  David Shaw  <dshaw@jabberwocky.com>
1648
1649         * options.h, g10.c (main), keyedit.c (sign_uids), sign.c
1650         (mk_notation_and_policy): Split "--set-policy-url" into
1651         "--cert-policy-url" and "--sig-policy-url" so the user can set
1652         different policies for key and data signing.  For backwards
1653         compatibility, "--set-policy-url" sets both, as before.
1654
1655 2002-01-30  Werner Koch  <wk@gnupg.org>
1656
1657         * g10.c (main): --gen-random --armor does now output a base64
1658         encoded string.
1659
1660 2002-01-28  David Shaw  <dshaw@jabberwocky.com>
1661
1662         * g10.c (main), options.h, pkclist.c (algo_available): --pgp6
1663         flag.  This is not nearly as involved as --pgp2.  In short, it
1664         turns off force_mdc, turns on no_comment, escape_from, and
1665         force_v3_sigs, and sets compression to 1.  It also restricts the
1666         user to IDEA (if present), 3DES, CAST5, MD5, SHA1, and RIPEMD160.
1667         See the comments above algo_available() for lots of discussion on
1668         why you would want to do this.
1669
1670 2002-01-27  David Shaw  <dshaw@jabberwocky.com>
1671
1672         * keygen.c (keygen_set_std_prefs): Comment
1673
1674         * keyedit.c (sign_uids): Bug fix - when signing with multiple
1675         secret keys at the same time, make sure each key gets the sigclass
1676         prompt.
1677
1678         * exec.c (exec_finish): Close the iobuf and FILE before trying to
1679         waitpid, so the remote process will get a SIGPIPE and exit.  This
1680         is only a factor when using a pipe to communicate.
1681
1682         * exec.c (exec_write): Disable cache-on-close of the fd iobuf (is
1683         this right?  Why is a fd iobuf cached at all?)
1684
1685 2002-01-26  Werner Koch  <wk@gnupg.org>
1686
1687         * g10.c, options.h: New option --gpg-agent-info
1688         * passphrase.c (agent_open): Let it override the environment info.
1689         * seckey-cert.c (check_secret_key): Always try 3 times when the
1690         agent is enabled.
1691         * options.skel: Describe --use-agent.
1692
1693 2002-01-24  David Shaw  <dshaw@jabberwocky.com>
1694
1695         * pubkey-enc.c (is_algo_in_prefs, get_it): Only check preferences
1696         against keys with v4 self sigs - there is really little point in
1697         warning for every single non-IDEA message encrypted to an old key.
1698
1699         * pkclist.c (select_algo_from_prefs): Only put in the fake IDEA
1700         preference if --pgp2 is on.
1701
1702         * mainproc.c (check_sig_and_print): Print "Expired" for expired
1703         but good signatures (this still prints "BAD" for expired but bad
1704         signatures).
1705
1706 2002-01-23  David Shaw  <dshaw@jabberwocky.com>
1707
1708         * keygen.c (ask_keysize): Cosmetic: don't present a RSA signing
1709         key as a "keypair" which can be 768 bits long (as RSA minimum is
1710         1024).
1711
1712         * pubkey-enc.c (is_algo_in_prefs): Allow IDEA as a fake preference
1713         for v3 keys with v3 selfsigs.
1714
1715 2002-01-22  David Shaw  <dshaw@jabberwocky.com>
1716
1717         * packet.h, getkey.c (merge_selfsigs_main), pkclist.c
1718         (select_algo_from_prefs): Implement the fake IDEA preference as
1719         per RFC2440:12.1.  This doesn't mean that IDEA will be used (the
1720         plugin may not be present), but it does mean that a v3 key with a
1721         v3 selfsig has an implicit IDEA preference instead of 3DES.  v3
1722         keys with v4 selfsigs use preferences as normal.
1723
1724         * encode.c (encode_crypt): if select_algo_from_prefs fails, this
1725         means that we could not find a cipher that both keys like.  Since
1726         all v4 keys have an implicit 3DES preference, this means there is
1727         a v3 key with a v3 selfsig in the list.  Use 3DES in this case as
1728         it is the safest option (we know the v4 key can handle it, and
1729         we'll just hope the v3 key is being used in an implementation that
1730         can handle it).  If --pgp2 is on, warn the user what we're doing
1731         since it'll probably break PGP2 compatibility.
1732
1733         * g10.c (main): Do not force using IDEA for encrypted files in
1734         --pgp2 mode - let the fake IDEA preference choose this for us for
1735         better compatibility when encrypting to multiple keys, only some
1736         of which are v3.
1737
1738         * keygen.c (keygen_set_std_prefs): Put 3DES on the end of the
1739         default cipher pref list (RFC2440: "...it is good form to place it
1740         there explicitly.").  If the user has the IDEA plugin installed,
1741         put a preference for IDEA *after* 3DES to effectively disable its
1742         use for everything except encrypting along with v3 keys.
1743
1744         * encode.c, g10.c, sign.c: Change the PGP2 warning line from
1745         "... will not be usable ..." to "... may not be usable ..." as the
1746         user could be using one of the enhanced PGP2 variations.
1747
1748         * helptext.c: Revise the sign_uid.class help text as suggested by
1749         Stefan.
1750         
1751 2002-01-20  Werner Koch  <wk@gnupg.org>
1752
1753         * passphrase.c (passphrase_to_dek): Add tryagain_text arg to be
1754         used with the agent.  Changed all callers.
1755         (agent_get_passphrase): Likewise and send it to the agent
1756         * seckey-cert.c (do_check): New arg tryagain_text.
1757         (check_secret_key): Pass the string to do_check.
1758         * keygen.c (ask_passphrase): Set the error text is required.
1759         * keyedit.c (change_passphrase): Ditto.
1760
1761         * passphrase.c (agent_open): Disable opt.use_agent in case of a
1762         problem with the agent. 
1763         (agent_get_passphrase): Ditto.
1764         (passphrase_clear_cache): Ditto.
1765
1766 2002-01-19  Werner Koch  <wk@gnupg.org>
1767
1768         * passphrase.c (agent_open): Add support for the new Assuan based
1769         gpg-agent.  New arg to return the used protocol version.
1770         (agent_get_passphrase): Implemented new protocol here.
1771         (passphrase_clear_cache): Ditto.
1772         (readline): New.
1773         
1774 2002-01-15  Timo Schulz  <ts@winpt.org>
1775
1776         * encode.c (encode_crypt_files): Fail if --output is used.
1777         
1778         * g10.c: New command --decrypt-files.
1779
1780         * decrypt.c (decrypt_messages): New.
1781         
1782 2002-01-09  David Shaw  <dshaw@jabberwocky.com>
1783
1784         * g10.c, misc.c, gpgv.c: move idea_cipher_warn to misc.c so gpgv.c
1785         doesn't need a stub for it any longer.
1786
1787         * g10.c (get_temp_dir), main.h: no longer used (it's in exec.c now)
1788
1789         * g10.c (main), delkey.c (delete_keys), main.h : Allow
1790         --delete-key (now --delete-keys, though --delete-key still works,
1791         of course) to delete multiple keys in one go.  This applies to
1792         --delete-secret-key(s) and --delete-secret-and-public-key(s) as
1793         well.
1794
1795 2002-01-09  Timo Schulz  <ts@winpt.org>
1796
1797         * encode.c (encode_crypt_files): Now it behaves like verify_files.
1798         
1799         * g10.c (main): We don't need to check argc for encode_crypt_files
1800         any longer.
1801
1802 2002-01-09  Timo Schulz  <ts@winpt.org>
1803
1804         * exec.c: Include windows.h for dosish systems.
1805
1806 2002-01-08  Timo Schulz  <ts@winpt.org>
1807
1808         * g10.c (main): New description for --encrypt-files.
1809
1810 2002-01-08  Werner Koch  <wk@gnupg.org>
1811
1812         * g10.c (main): Must register the secring for encryption because
1813         it is needed to figure out the default recipient.  Reported by
1814         Roger Sondermann.
1815
1816 2002-01-05  David Shaw  <dshaw@jabberwocky.com>
1817
1818         * keyedit.c (menu_adduid): Require --expert before adding a photo
1819         ID to a v3 key, and before adding a second photo ID to any key.
1820
1821         * keyedit.c (keyedit_menu): Don't allow adding photo IDs in
1822         rfc1991 or pgp2 mode.
1823
1824         * getkey.c (merge_selfsigs_subkey): Permit v3 subkeys.  Believe it
1825         or not, this is allowed by rfc 2440, and both PGP 6 and PGP 7 work
1826         fine with them.
1827
1828         * g10.c, options.h, keyedit.c, sign.c: Move the "ask for
1829         expiration" switch off of --expert, which was getting quite
1830         overloaded, and onto ask-sig-expire and ask-cert-expire.  Both
1831         default to off.
1832
1833         * g10.c (main): Change the default compression algo to 1, to be
1834         more OpenPGP compliant (PGP also uses this, so it'll help with
1835         interoperability problems as well).
1836
1837         * encode.c (encode_crypt): Handle compression algo 2, since the
1838         default is now 1.
1839
1840         * build-packet.c (build_attribute_subpkt): Fix off-by-one error.
1841
1842 2002-01-05  Werner Koch  <wk@gnupg.org>
1843
1844         * g10.c (main): Do not register the secret keyrings for certain
1845         commands.
1846
1847         * keydb.c (keydb_add_resource): Use access to test for keyring
1848         existence.  This avoids cached opened files which are bad under
1849         RISC OS.
1850
1851 2002-01-04  David Shaw  <dshaw@jabberwocky.com>
1852
1853         * sign.c (sign_file, sign_symencrypt_file): always use one-pass
1854         packets unless rfc1991 is enabled.  This allows a signature made
1855         with a v3 key to work in PGP 6 and 7.  Signatures made with v4
1856         keys are unchanged.
1857
1858         * g10.c (main): Disallow non-detached signatures in PGP2 mode.
1859         Move the "you must use files and not pipes" PGP2 warning up so all
1860         the PGP2 stuff is together.
1861
1862         * encode.c (encode_simple): Use the actual filesize instead of
1863         partial length packets in the internal literal packet from a
1864         symmetric message.  This breaks PGP5(?), but fixes PGP2, 6, and 7.
1865         It's a decent tradeoff.  Note there was only an issue with
1866         old-style RFC1991 symmetric messages.  2440-style messages in 6
1867         and 7 work with or without partial length packets.
1868
1869 2002-01-03  David Shaw  <dshaw@jabberwocky.com>
1870
1871         * g10.c (main): Removed --no-default-check-level option, as it is
1872         not consistent with other "default" options.  Plus, it is the same
1873         as saying --default-check-level 0.
1874
1875         * exec.c (exec_read): Disallow caching tempfile from child
1876         process, as this keeps the file handle open and can cause unlink
1877         problems on some platforms.
1878
1879         * keyserver.c (keyserver_search_prompt): Minor tweak - don't
1880         bother to transform keyids into textual form if they're just going
1881         to be transformed back to numbers.
1882
1883 2002-01-03  Timo Schulz <ts@winpt.org>
1884
1885         * g10.c: New command --encrypt-files.
1886     
1887         * verify.c (print_file_status): Removed the static because
1888         encode_crypt_files also uses this function.
1889
1890         * main.h (print_files_status): New.
1891         (encode_crypt_files): New.
1892
1893         * encode.c (encode_crypt_files): New.
1894
1895 2002-01-02  Stefan Bellon  <sbellon@sbellon.de>
1896
1897         * keyserver.c: Moved util.h include down in order to avoid
1898         redefinition problems on RISC OS.
1899
1900         * keyring.c (keyring_lock): Only lock keyrings that are writable.
1901
1902         * keyring.c (keyring_update_keyblock): Close unused iobuf.
1903
1904         * hkp.c (parse_hkp_index, hkp_search) [__riscos__]: Changed
1905         unsigned char* to char* because of compiler issues.
1906
1907         * exec.c (exec_finish) [__riscos__]: Invalidate close cache so
1908         that file can be unlinked.
1909
1910 2001-12-28  David Shaw  <dshaw@jabberwocky.com>
1911
1912         * g10.c (main): Use a different strlist to check extensions since
1913         they need to be handled seperately now.
1914
1915         * misc.c,main.h (check_permissions): Properly handle permission
1916         and ownership checks on files in the lib directory
1917         (e.g. /usr/local/lib/gnupg), which are owned by root and are
1918         world-readable, and change all callers to specify extension or
1919         per-user file.
1920
1921         * photoid.c (show_photo), keyserver.c (keyserver_spawn): Bug fix -
1922         don't call exec_finish if exec_write fails.
1923
1924         * keyserver.c (keyserver_spawn): Look for OPTIONS from the
1925         keyserver helper - specifically, a "OUTOFBAND" option for the
1926         email keyserver.
1927
1928         * mainproc.c (list_node), keylist.c (list_keyblock_colon),
1929         import.c (delete_inv_parts), export.c (do_export_stream): Use
1930         signature flags for exportability check rather than re-parsing the
1931         subpacket.
1932
1933         * keyid.c, keydb.h (get_lsign_letter): No longer needed.
1934
1935 2001-12-27  David Shaw  <dshaw@jabberwocky.com>
1936
1937         * exec.c (exec_finish): Show errors when temp files cannot be
1938         deleted for whatever reason.
1939
1940         * exec.c (exec_read): Don't rely on WEXITSTATUS being present.
1941
1942         * exec.c (make_tempdir): Add temp file creator for win32.  Don't
1943         create an incoming temp file if the exec is write-only.
1944
1945         * keyserver.c (keyserver_spawn): Clean up error handling, for when
1946         the spawn fails.
1947
1948         * photoid.c (show_photo): Clean up error handling.
1949
1950         * misc.c (check_permissions): Neaten.
1951
1952 2001-12-25  David Shaw  <dshaw@jabberwocky.com>
1953
1954         * mkdtemp.c (mkdtemp): Add copyleft info and tweak the 'X' counter
1955         to be a bit simpler.
1956
1957         * keyserver.c, photoid.c: Remove unused headers left over from
1958         when the exec functions lived there.
1959
1960 2001-12-23  Timo Schulz <ts@winpt.org>
1961
1962         * misc.c (check_permissions): Do not use it for W32 systems.
1963
1964         * tdbio.c (migrate_from_v2): Define ftruncate as chsize() for W32.
1965
1966         * mkdtemp.c: W32 support.
1967
1968         * photoid.c: Ditto.
1969
1970         * exec.c: Ditto.
1971
1972 2001-12-22  David Shaw  <dshaw@jabberwocky.com>
1973
1974         * exec.c (make_tempdir): avoid compiler warning with const
1975
1976         * mkdtemp.c (mkdtemp): catch the empty ("") string case in case
1977         someone repurposes mkdtemp at some point.
1978
1979         * photoid.c (generate_photo_id, show_photo): some type changes
1980         from Stefan Bellon.
1981
1982         * exec.c (make_tempdir): handle Win32 systems, suggested by Timo
1983         Schulz.
1984
1985 2001-12-22  Werner Koch  <wk@gnupg.org>
1986
1987         * encode.c (encode_simple, encode_crypt): i18n 2 strings.
1988
1989 2001-12-22  Timo Schulz <ts@winpt.org>
1990         
1991         * encode.c (encode_simple, encode_crypt): Use is_file_compressed
1992         to avoid to compress compressed files.
1993
1994 2001-12-22  Werner Koch  <wk@gnupg.org>
1995
1996         * keyserver.c (keyserver_spawn): Removed some variables
1997         declaration due to shadowing warnings.
1998
1999         * build-packet.c (build_attribute_subpkt): s/index/idx/ to avoid
2000         compiler warnig due to index(3).
2001
2002         * getkey.c (get_ctx_handle): Use KEYDB_HANDLE as return value.
2003         * keylist.c (list_one): Made resname const.
2004
2005         * keyedit.c (keyedit_menu): Allow "addphoto" only when --openpgp is
2006         not used.
2007
2008         * options.skel: Changed one example photo viewer to qiv.
2009
2010 2001-12-21  David Shaw  <dshaw@jabberwocky.com>
2011
2012         * Makefile.am: add exec.c, exec.h, photoid.c, and photoid.h
2013
2014         * build-packet.c (build_attribute_subpkt): new function to build
2015         the raw attribute subpacket.  Note that attribute subpackets have
2016         the same format as signature subpackets.
2017
2018         * exec.c: new file with generic exec-a-program functionality.
2019         Used by both photo IDs and keyserver helpers.  This is pretty much
2020         the same code that used to be keyserver specific, with some
2021         changes to be usable generically.
2022
2023         * free-packet.c (free_attributes (new)): function to free an
2024         attribute packet.
2025         
2026         * gpgv.c: added stub show_photo
2027         
2028         * keyedit.c (keyedit_menu, menu_adduid, menu_showphoto): can add a
2029         photo (calls generate_photo_id), or display a photo (calls
2030         show_photo) from the --edit menu.  New commands are "addphoto",
2031         and "delphoto" (same as "deluid").
2032
2033         * keylist.c (list_keyblock_print): show photos during key list if
2034         --show-photos enabled.
2035         
2036         * keyserver.c (keyserver_spawn): use the generic exec_xxx
2037         functions to call keyserver helper.
2038
2039         * g10.c, options.h: three new options - --{no-}show-photos, and
2040         --photo-viewer to give the command line to display a picture.
2041
2042         * options.skel: instructions for the photo viewer
2043         
2044         * parse-packet.c (parse_user_id, setup_user_id (new)): common code
2045         for both user IDs and attribute IDs moved to setup_user_id.
2046
2047         * parse-packet.c (make_attribute_uidname (new)): constructs a fake
2048         "name" for attribute packets (e.g. "[image of size ...]")
2049
2050         * parse-packet.c (parse_attribute (replaces parse_photo_id),
2051         parse_attribute_subpkts): Builds an array of individual
2052         attributes.  Currently only handles attribute image / type jpeg
2053         subpackets.
2054
2055         * sign.c (hash_uid): Fix bug in signing attribute (formerly
2056         photo_id) packets.
2057
2058         * packet.h, and callers: globally change "photo_id" to "attribute"
2059         and add structures for attributes.  The packet format is generic
2060         attributes, even though the only attribute type thus far defined
2061         is jpeg.
2062
2063 2001-12-21  David Shaw  <dshaw@jabberwocky.com>
2064
2065         * parse-packet.c (can_handle_critical): Can handle critical
2066         revocation subpackets now.
2067
2068         * trustdb.c (mark_usable_uid_certs): Disregard revocations for
2069         nonrevocable sigs.  Note that this allows a newer revocable
2070         signature to override an older nonrevocable signature.
2071
2072         * sign.c (make_keysig_packet): add a duration field and change all
2073         callers.  This makes make_keysig_packet closer to
2074         write_signature_packets and removes some duplicated expiration
2075         code.
2076
2077         * keyedit.c (keyedit_menu, menu_revsig, sign_uids,
2078         sign_mk_attrib): Add nrsign command, don't allow revoking a
2079         nonrevocable signature,
2080
2081         * g10.c (main): Add --nrsign option to nonrevocably sign a key
2082         from the command line.
2083
2084         * build-packet.c (build_sig_subpkt_from_sig): Comment to explain
2085         the use of CRITICAL.
2086
2087 2001-12-21  Werner Koch  <wk@gnupg.org>
2088
2089         * g10.c. options.h : New option --show-keyring
2090         * getkey.c (get_ctx_handle): New.
2091         * keylist.c (list_one): Implement option here.  By David Champion. 
2092
2093 2001-12-20  David Shaw  <dshaw@jabberwocky.com>
2094
2095         * keyserver.c (keyserver_spawn): Use mkdtemp() to make temp
2096         directory.
2097
2098         * mkdtemp.c: replacement function for those platforms that don't
2099         have mkdtemp (make a temp directory securely).
2100
2101 2001-12-19  David Shaw  <dshaw@jabberwocky.com>
2102
2103         * misc.c (check_permissions): New function to stat() and ensure
2104         the permissions of GNUPGHOME and the files have safe permissions.
2105
2106         * keydb.c (keydb_add_resource): Check keyring permissions.
2107
2108         * tdbio.c (tdbio_set_dbname): Check permissions of trustdb.gpg
2109
2110         * keyserver.c (keyserver_spawn): Disable keyserver schemes that
2111         involve running external programs if the options file has unsafe
2112         permissions or ownership.
2113
2114         * g10.c, options.h: New option --no-permission-warning to disable
2115         the permission warning message(s).  This also permits use of the
2116         keyserver if it had been disabled (see above).  Also check the
2117         permissions/ownership of random_seed.
2118         
2119         * keyserver.c (keyserver_spawn): The new glibc prints a warning
2120         when using mktemp() (the code was already secure, but the warning
2121         was bound to cause confusion).  Use a different implementation
2122         based on get_random_bits() instead.  Also try a few times to get
2123         the temp dir before giving up.
2124
2125 2001-12-19  Werner Koch  <wk@gnupg.org>
2126
2127         * g10.c, passphrase.c [CYGWIN32]: Allow this as an alias for MINGW32.
2128
2129 2001-12-18  David Shaw  <dshaw@jabberwocky.com>
2130
2131         * g10.c (idea_cipher_warn): Add a flag to show the warning always
2132         or once per session and change all callers (show always except for
2133         the secret key protection and unknown cipher from an encrypted
2134         message errors).  Also make the strings translatable.
2135
2136         * pubkey-enc.c (get_it): Add the IDEA cipher warning if the user
2137         tries to decrypt an IDEA encrypted message without the IDEA
2138         plugin.
2139
2140         * keyserver.c (parse_keyserver_uri): More strict checking of the
2141         keyserver URI.  Specifically, fail if the ":port" section is
2142         anything except a number between 1 and 65535.
2143
2144 2001-12-17  David Shaw  <dshaw@jabberwocky.com>
2145
2146         * keyserver.c (print_keyinfo): No need to check for
2147         control/illegal characters, as utf8_to_native does this for us.
2148
2149         * mainproc.c (proc_encrypted): Use generic IDEA warning.
2150
2151         * gpgv.c: add stub for idea_cipher_warn
2152
2153         * g10.c, hkp.c, keyserver.c: Fix capitalization and plural issues.
2154
2155         * encode.c (encode_crypt), sign.c (sign_file, clearsign_file):
2156         disable pgp2 mode after the message is no longer pgp2 compatible.
2157
2158         * g10.c (main): Tweak the PGP2.x IDEA warning to use the generic
2159         warning, and not merely fail if the IDEA plugin isn't there.
2160
2161         * g10.c (main, idea_cipher_warn), keygen.c (set_one_pref),
2162         seckey-cert.c (do_check): Add a generic IDEA warning for when the
2163         IDEA plugin is not present.  This pops up when the user uses
2164         "--cipher-algo idea", when setpref is used to set a "S1"
2165         preference, and when a secret key protected with IDEA is used.
2166
2167 2001-12-15  Werner Koch  <wk@gnupg.org>
2168
2169         * keyserver.c (keyserver_spawn): Assert that we have dropped privs.
2170
2171 2001-12-13  Werner Koch  <wk@gnupg.org>
2172
2173         * pubkey-enc.c (get_session_key): Check that the public key
2174         algorithm is indeed usable for en/decryption.  This avoid a
2175         strange error message from pubkey_decrypt if for some reasons a
2176         bad algorithm indentifier is passed.
2177
2178 2001-12-12  David Shaw  <dshaw@jabberwocky.com>
2179
2180         * Fixed some types for portability.  Noted by Stefan Bellon.
2181
2182 2001-12-11  Werner Koch  <wk@gnupg.org>
2183
2184         * hkp.c (hkp_export): Do not print possible control characters
2185         from a keyserver response.
2186         (parse_hkp_index): Made uid an unsigned char* because it is passed to
2187         isspace().
2188         (hkp_search): Ditto for the char* vars.
2189
2190         * g10.c (main): Print the IDEA warning also for -c and -se.
2191         
2192         * g10.c (get_temp_dir): Assert that we have dropped privs
2193
2194         * encode.c (encode_crypt): Include the first key into the --pgp2
2195         check.
2196
2197 2001-12-07  David Shaw  <dshaw@jabberwocky.com>
2198
2199         * g10.c, options.h: New option --pgp2.  This is identical to
2200         "--rfc1991 --cipher-algo idea --compress-algo 1 --digest-algo md5
2201         --force_v3_sigs" with the addition of an warning to advise the
2202         user not to use a pipe (which would break pgp2 compatibility).
2203
2204         * encode.c (encode_crypt): warn if the user tries to encrypt to
2205         any key that is not RSA and <= 2048 bits when the --pgp2 option is
2206         used.
2207
2208         * sign.c (sign_file, clearsign_file): When using --pgp2, make a v3
2209         sig, and warn if the signature is made with a non-v3 key.
2210
2211 2001-12-05  David Shaw  <dshaw@jabberwocky.com>
2212
2213         * sign.c (sign_file, clearsign_file, sign_symencrypt_file): Prompt
2214         for sig expiration if --expert is set and --force-v3-sigs is not
2215         set (v3 sigs cannot expire).
2216
2217         * mainproc.c (check_sig_and_print): After checking a sig, print
2218         expiration status.  This causes a error return if the sig is
2219         expired.
2220
2221         * build-packet.c (build_sig_subpkt_from_sig): Include a critical
2222         sig expiration subpacket if the sig is to expire.
2223
2224         * keyedit.c (sign_uids): Do not sign an expired key unless
2225         --expert is set, in which case prompt.  Also, offer to expire a
2226         signature when the key the user is signing expires.
2227
2228         * keygen.c (ask_expire_interval): Add a value to determine whether
2229         to prompt for a key or sig expiration and change all callers.
2230
2231         * keyid.c: New functions: expirestr_from_sig and
2232         colon_expirestr_from_sig.
2233
2234         * keylist.c (list_keyblock_colon): Show sig expiration date in the
2235         --with-colons listing.
2236
2237         * sign.c (make_keysig_packet, write_signature_packets): Pass in an
2238         optional timestamp for the signature packet, and change all
2239         callers.
2240
2241         * keyedit.c (sign_mk_attrib): Include a critical expiration
2242         subpacket in the signature if an expiration date is given.
2243
2244 2001-12-04  David Shaw  <dshaw@jabberwocky.com>
2245
2246         * keyedit.c (sign_uids): If the user tries to sign a
2247         locally-signed key, allow the cert to be promoted to a full
2248         exportable signature.  This essentially deletes the old
2249         non-exportable sig, and replaces it with a new exportable one.
2250
2251 2001-12-04  David Shaw  <dshaw@jabberwocky.com>
2252
2253         * keyedit.c (keyedit_menu): Do not allow signing a revoked key
2254         unless --expert is set, and ask even then.
2255
2256         * keyedit.c (sign_uids): Do not allow signing a revoked UID unless
2257         --expert is set, and ask even then.
2258
2259         * g10.c, options.h : New option --expert
2260
2261 2001-11-16  David Shaw  <dshaw@jabberwocky.com>
2262
2263         * Allow the user to select no compression via "--compress-algo 0"
2264         on the command line.
2265
2266         * keyedit.c (show_prefs): Show compression preferences in the
2267         long-form "showpref" style.
2268
2269         * keygen.c (set_one_pref): Permit setting a no-compression ("Z0")
2270         preference.
2271
2272         * getkey.c (fixup_uidnode): Fix compression preference corruption
2273         bug.
2274
2275 2001-12-02  David Shaw  <dshaw@jabberwocky.com>
2276
2277         * g10.c: Add advisory --for-your-eyes-only option as per section
2278         5.9 of 2440.
2279
2280 2001-12-05  David Shaw  <dshaw@jabberwocky.com>
2281
2282         * Force a V4 sig if the user has a notation or policy URL set.
2283
2284 2001-12-04  David Shaw  <dshaw@jabberwocky.com>
2285
2286         * g10.c: Add options --keyserver-options, --temp-directory, and
2287         auto-key-retrieve (the opposite of no-auto-key-retrieve).
2288
2289         * hkp.c (hkp_search): New function to handle searching a HKP
2290         keyserver for a key
2291
2292         * hkp.c (hkp_ask_import, hkp_export): Pretty large changes to make
2293         them communicate via the generic functions in keyserver.c
2294
2295         * keyserver.c: new file with generic keyserver routines for
2296         getting keys from a keyserver, sending keys to a keyserver, and
2297         searching for keys on a keyserver.  Calls the internal HKP stuff
2298         in hkp.c for HKP keyserver functions.  Other calls are handled by
2299         an external program which is spawned and written to and read from
2300         via pipes.  Platforms that don't have pipes use temp files.
2301
2302 2001-11-20  David Shaw  <dshaw@jabberwocky.com>
2303
2304         * options.h, g10.c: New options show-notation, no-show-notation,
2305         default-check-level, no-default-check-level, show-policy-url,
2306         no-show-policy-url.
2307
2308         * packet.h, sign.c (make_keysig_packet), parse-packet.c
2309         (parse_signature), free-packet.c (free_seckey_enc): Fill in
2310         structures for notation, policy, sig class, exportability, etc.
2311
2312         * keyedit.c, keylist.c (print_and_check_one_sig,
2313         list_keyblock_print): Show flags in signature display for cert
2314         details (class, local, notation, policy, revocable).  If selected,
2315         show the notation and policy url.
2316
2317         * keyedit.c (sign_uids): Prompt for and use different key sig
2318         classes.
2319
2320         * helptext.c (helptexts): Add help text to explain different
2321         key signature classes
2322
2323 2001-11-26  David Shaw  <dshaw@jabberwocky.com>
2324
2325         * trustdb.c (mark_usable_uid_certs): Fix segfault from bad
2326         initialization and fix reversed key signature expiration check.
2327
2328 2001-11-09  Werner Koch  <wk@gnupg.org>
2329
2330         * export.c (do_export_stream): Put all given names into a search
2331         description and change the loop so that all matching names are
2332         returned.
2333
2334 2001-11-08  Werner Koch  <wk@gnupg.org>
2335
2336         * pubkey-enc.c (get_it): To reduce the number of questions on the
2337         MLs print the the name of cipher algorithm 1 with the error message.
2338
2339         * mainproc.c: Changed the way old rfc1991 encryption cipher is
2340         selected. Based on a patch by W Lewis.
2341
2342         * pkclist.c (do_edit_ownertrust): Allow to skip over keys, the non
2343         working "show info" is now assigned to "i" 
2344         * trustdb.c (ask_ownertrust, validate_keys): Implement a real quit
2345         here.  Both are by David Shaw.
2346         
2347         * trustdb.c (validate_keys): Make sure next_exipire is initialized.
2348
2349         * sign.c (make_keysig_packet): Use SHA-1 with v4 RSA keys.
2350
2351         * g10.c, options.h : New option --[no-]froce-v4-certs.
2352         * sign.c (make_keysig_packet): Create v4 sigs on v4 keys even with
2353         a v3 key.  Use that new option.  By David Shaw
2354
2355         * revoke.c (ask_revocation_reason): Allow to select "no reason".
2356         By David Shaw.
2357
2358         * keyid.c (fingerprint_from_sk): Calculation of an v3 fpr was
2359         plain wrong - nearly the same code in fingerprint_from_pk is correct.
2360
2361         * build-packet.c (do_secret_key): Added a few comments to the code.
2362
2363 2001-11-07  Werner Koch  <wk@gnupg.org>
2364
2365         * g10.c (main): Print a warning when -r is used w/o encryption.
2366         Suggested by Pascal Scheffers.
2367
2368 2001-10-23  Werner Koch  <wk@gnupg.org>
2369
2370         * keyedit.c (keyedit_menu): Changed helptext for showpref
2371         command.  Suggested by Reinhard Wobst.
2372
2373         * keyring.c (keyring_search): When marking the offtbl ready, take
2374         into account that we may have more than one keyring.
2375
2376 2001-10-22  Werner Koch  <wk@gnupg.org>
2377
2378         * Makefile.am: Do not use OMIT_DEPENDENCIES
2379
2380         * build-packet.c (build_sig_subpkt): Default is now to put all
2381         types of subpackets into the hashed area and only list those which
2382         should go into the unhashed area.
2383
2384 2001-10-18  Werner Koch  <wk@gnupg.org>
2385
2386         * keydb.c (keydb_add_resource): Rearranged the way we keep track
2387         of the resource. There will now be an entry for each keyring here
2388         and not in keyring.c itself.  Store a token to allow creation of a
2389         keyring handle.  Changed all functions to utilize this new design.
2390         (keydb_locate_writable): Make a real implementation.
2391         * keyring.c (next_kr): Removed and changed all callers to set the
2392         resource directly from the one given with the handle.
2393         (keyring_is_writable): New. 
2394         (keyring_rebuild_cache): Add an arg to pass the token from keydb.
2395
2396 2001-10-17  Werner Koch  <wk@gnupg.org>
2397
2398         * keyring.c (keyring_search): Enabled word search mode but print a
2399         warning that it is buggy.
2400         
2401 2001-10-11  Werner Koch  <wk@gnupg.org>
2402
2403         * hkp.c (hkp_ask_import): No more need to set the port number for
2404         the x-hkp scheme. 
2405         (hkp_export): Ditto.
2406
2407 2001-10-06  Stefan Bellon  <sbellon@sbellon.de>
2408
2409         * passphrase.c [__riscos__]: Disabled agent specific stuff.
2410         * g10.c: New option --no-force-v3-sigs.
2411
2412 2001-10-04  Werner Koch  <wk@gnupg.org>
2413
2414         * export.c (do_export_stream): Do not push the compress filter
2415         here because the context would run out of scope due to the
2416         iobuf_close done by the caller.
2417         (do_export): Do it here instead. 
2418
2419 2001-09-28  Werner Koch  <wk@gnupg.org>
2420
2421         * keyedit.c (sign_uids): Always use the primary key to sign keys.
2422         * getkey.c (finish_lookup): Hack to return only the primary key if
2423         a certification key has been requested.
2424
2425         * trustdb.c (cmp_kid_for_make_key_array): Renamed to
2426         (validate_one_keyblock): this and changed arg for direct calling.
2427         (make_key_array): Renamed to
2428         (validate_one_keyblock): this and changed args for direct calling.
2429         (mark_usable_uid_certs, validate_one_keyblock)
2430         (validate_key_list): Add next_expire arg to keep track of
2431         expiration times.  
2432         (validate_keys): Ditto for UTKs and write the stamp.
2433
2434         * tdbio.c (migrate_from_v2): Check return code of tbdio_sync.
2435
2436         * tdbdump.c (import_ownertrust): Do a tdbio_sync().
2437
2438         * keyring.c: Made the offtbl an global object.
2439
2440 2001-09-27  Werner Koch  <wk@gnupg.org>
2441
2442         * pkclist.c (do_edit_ownertrust): Allow settin of ultimate trust.
2443
2444         * trustdb.c (mark_keyblock_seen): New.
2445         (make_key_array): Use it to mark the subkeys too.
2446         (validate_keys): Store validity for ultimatly trusted keys.
2447
2448 2001-09-26  Werner Koch  <wk@gnupg.org>
2449
2450         * pkclist.c (check_signatures_trust, do_we_trust): Removed the
2451         invocation of add_ownertrust. Minor changes to the wording.
2452         (add_ownertrust, add_ownertrust_cb): Removed.
2453
2454         * trustdb.c (get_validity): Allow to lookup the validity using a
2455         subkey.
2456
2457         * trustdb.c (new_key_hash_table): Increased the table size to 1024
2458         and changed the masks accordingly.
2459         (validate): Changed stats printing.
2460         (mark_usable_uid_certs): New.
2461         (cmp_kid_for_make_key_array): Does now check the signatures and
2462         figures out a usable one.
2463
2464 2001-09-25  Werner Koch  <wk@gnupg.org>
2465
2466         * keyring.c (new_offset_item,release_offset_items)
2467         (new_offset_hash_table, lookup_offset_hash_table)
2468         (update_offset_hash_table, update_offset_hash_table_from_kb): New.
2469         (keyring_search): Use a offset table to optimize search for
2470         unknown keys.
2471         (keyring_update_keyblock, keyring_insert_keyblock): Insert new
2472         offsets.
2473         * getkey.c (MAX_UNK_CACHE_ENTRIES): Removed the unknown keys
2474         caching code.
2475
2476         * g10.c, options.h, import.c: Removed the entire
2477         allow-secret-key-import stuff because the validity is now
2478         controlled by other means.
2479
2480         * g10.c: New command --rebuild-keydb-caches.
2481         * keydb.c (keydb_rebuild_caches): New.
2482         * keyring.c (do_copy): Moved some code to
2483         (create_tmp_file, rename_tmp_file, write_keyblock): new functions.
2484         (keyring_rebuild_cache): New.
2485
2486         * packet.h (PKT_ring_trust): Add sigcache field.
2487         * parse-packet.c (parse_trust): Parse sigcache.
2488         * keyring.c (do_copy): Always insert a sigcache packet.
2489         (keyring_get_keyblock): Copy the sigcache packet to the signature.
2490         * sig-check.c (cache_sig_result): Renamed from
2491         cache_selfsig_result. Changed implementation to use the flag bits
2492         and changed all callers.
2493         (mdc_kludge_check): Removed this unused code.
2494         (do_check): Do not set the sig flags here.
2495
2496         * import.c (read_block): Make sure that ring_trust packets are
2497         never imported.
2498         * export.c (do_export_stream): and never export them.
2499
2500         * trustdb.c (make_key_array): Skip revoked and expired keys.
2501
2502 2001-09-24  Werner Koch  <wk@gnupg.org>
2503
2504         * g10.c, options.h: New option --no-auto-check-trustdb.
2505
2506         * keygen.c (do_generate_keypair): Set newly created keys to
2507         ultimately trusted.
2508
2509         * tdbio.h, tdbio.c: Removed all support for records DIR, KEY, UID,
2510         PREF, SIG, SDIR and CACH. Changed migration function to work
2511         direct on the file.
2512         (tdbio_read_nextcheck): New.
2513         (tdbio_write_nextcheck): New. 
2514
2515 2001-09-21  Werner Koch  <wk@gnupg.org>
2516
2517         Revamped the entire key validation system.
2518         * trustdb.c: Complete rewrite. No more validation on demand,
2519         removed some functions, adjusted to all callers to use the new 
2520         and much simpler interface. Does not use the LID anymore.
2521         * tdbio.c, tdbio.h: Add new record types trust and valid. Wrote a
2522         migration function to convert to the new trustdb layout.
2523         * getkey.c (classify_user_id2): Do not allow the use of the "#"
2524         prefix. 
2525         * keydb.h: Removed the TDBIDX mode add a skipfnc to the
2526         descriptor.
2527         * keyring.c (keyring_search): Implemented skipfnc.
2528
2529         * passphrase.c (agent_open): Add missing bracket.  Include windows.h.
2530
2531 2001-09-19  Werner Koch  <wk@gnupg.org>
2532
2533         * keylist.c (print_fingerprint): Renamed from fingerprint, made
2534         global available. Added new arg to control the print style.
2535         * mainproc.c (print_fingerprint): Removed. 
2536         * pkclist.c (print_fpr, fpr_info): Removed and changed callers to
2537         use print_fingerprint.
2538         * keyedit.c (show_fingerprint): Ditto.
2539
2540         * passphrase.c (writen, readn)
2541         (agent_open, agent_close)
2542         (agent_get_passphrase)
2543         (passphrase_clear_cache): Support for W32.  Contributed by Timo.
2544
2545         * import.c (import_one): Release keydb handles at 2 more places.
2546
2547         * keyring.c (keyring_release): Close the iobuf.
2548         (keyring_get_keyblock): Init ret_kb to NULL and store error contidion.
2549
2550         * import.c (import_new_stats_handle): New. 
2551         (import_release_stats_handle): New.
2552         (import_print_stats): Renamed from static fnc print_stats.
2553         (import_keys, import_keys_stream): Add an optional status handle
2554         arg and changed all callers.
2555         * hkp.c (hkp_ask_import): Add an stats_handle arg and changed all
2556         callers.
2557
2558         * mainproc.c (print_pkenc_list): Use print_utf8_string2().
2559
2560 2001-09-18  Werner Koch  <wk@gnupg.org>
2561
2562         * g10.c: New command --refresh-keys.
2563         * hkp.c (hkp_refresh_keys): New. Contributed by Timo Schulz.
2564
2565         * parse-packet.c (parse): Stop on impossible packet lengths.
2566
2567 2001-09-17  Werner Koch  <wk@gnupg.org>
2568
2569         * mainproc.c (print_notation_data): Wrap notation data status lines
2570         after 50 chars.
2571         
2572         * mainproc.c (proc_pubkey_enc): Make option try-all-secrets work.
2573         By disastry@saiknes.lv.
2574
2575 2001-09-14  Werner Koch  <wk@gnupg.org>
2576
2577         * parse-packet.c (dump_sig_subpkt): List key server preferences
2578         and show the revocable flag correctly. Contributed by David Shaw.
2579
2580 2001-09-09  Werner Koch  <wk@gnupg.org>
2581
2582         * keyedit.c (keyedit_menu): No need to define another p.
2583
2584         * keylist.c (print_capabilities): s/used/use/ so that it
2585         does not shadow a global.
2586         * sign.c (sign_file): Renamed arg encrypt to encryptflag
2587         * keygen.c: Replaced all "usage" by "use".
2588         * misc.c (openpgp_pk_algo_usage): Ditto.
2589
2590         * pubkey-enc.c (get_it): Renamed arg k to enc so that the later
2591         defined k does not shadow it.
2592
2593         * parse-packet.c (parse_gpg_control): No need to define another i.
2594
2595         * getkey.c (get_pubkey_byfprint): Must use the enum values and not
2596         the fprint_len.
2597         * keyring.c (keyring_search): Removed a non-sense break.  Both
2598         bugs pointed out by Stefan.
2599
2600 2001-09-07  Werner Koch  <wk@gnupg.org>
2601
2602         * status.c, status.h: Added NO_RECP and ALREADY_SIGNED.
2603         * pkclist.c (build_pk_list): Issue NO_RECP.
2604         * keyedit.c (sign_uids): Added experimental ALREADY_SIGNED
2605
2606         * hkp.c (hkp_import): Use log_error. Bug reported by Neal H
2607         Walfield. 
2608
2609         * getkey.c (classify_user_id2): Change args to take the desc union
2610         direct.  It was a stupid idea to pass the individual fields of an
2611         union to this function. Changed all callers.
2612         (classify_user_id): Ditto and allow to pass NULL as the description.
2613
2614 2001-09-06  Werner Koch  <wk@gnupg.org>
2615
2616         * getkey.c (fixup_uidnode): Features flag is now a bit vector.
2617         * keygen.c (add_feature_mdc): Ditto.
2618
2619         Revamped the entire key I/O code to be prepared for other ways of
2620         key storages and to get rid of the existing shit.  GDBM support has
2621         gone.
2622         * keydb.c: New
2623         * keyring.c, keyring.h: New.
2624         * ringedit.c: Removed.  Moved some stuff to keyring.c
2625         * getkey.c: Changed everything related to the key retrieving
2626         functions which are now using the keydb_ functions.  
2627         (prepare_search, word_match_chars, word_match)
2628         (prepare_word_match, compare_name): Moved to keyring.c
2629         (get_pubkey_byname): Removed ctx arg and add ret_kdbhd
2630         arg.  Changed all callers.
2631         (key_byname): Use get_pubkey_end to release the context and take
2632         new ret_kbdhd arg.  Changed all callers.
2633         (classify_user_id2): Fill the 16 byte fingerprint up with 4 null
2634         bytes not with zero bytes of value 4, tsss.
2635         * import.c (import_one): Updated to use the new keydb interface.
2636         (import_secret_one): Ditto.
2637         (import_revoke_cert): Ditto.
2638         * delkey.c (do_delete_key): Ditto. 
2639         * keyedit.c (keyedit_menu): Ditto.
2640         (get_keyblock_byname): Removed.
2641         * revoke.c (gen_revoke): Ditto. 
2642         * export.c (do_export_stream): Ditto.
2643         * trustdb.c (update_trustdb): Ditto.
2644         * g10.c, gpgv.c (main): Renamed add_keyblock_resource to
2645         keydb_add_resource. 
2646         * Makefile.am:  Added and removed files.
2647
2648         * keydb.h: Moved KBNODE typedef and MAX_FINGERPRINT_LEN to
2649         * global.h: this new header.
2650         
2651 2001-09-03  Werner Koch  <wk@gnupg.org>
2652
2653         * passphrase.c (agent_get_passphrase): Changed nread to size_t.
2654         (passphrase_clear_cache): Ditto.
2655
2656         * keyid.c (mk_datestr): Avoid trigraphs.
2657         (fingerprint_from_pk): Cache the keyid in the pk.
2658
2659         * options.h: Add opt.with_fingerprint so that we know whether the
2660         corresponding options was used.
2661         * g10.c (main): Set it here.
2662         * pkclist.c (check_signatures_trust): Always print fingerprint
2663         when this option is used.  Mixed a minor memory leak.
2664
2665         * status.c, status.h: New status INV_RECP.
2666         * pkclist.c (build_pk_list): Issue this status.
2667
2668 2001-08-31  Werner Koch  <wk@gnupg.org>
2669
2670         * parse-packet.c (parse_key,parse_pubkeyenc)
2671         (parse_signature): Return error on reading bad MPIs.
2672         
2673         * mainproc.c (check_sig_and_print): Always print the user ID even
2674         if it is not bound by a signature.  Use the primary UID in the
2675         status messages and encode them in UTF-8
2676         * status.c (write_status_text_and_buffer): New.
2677
2678 2001-08-30  Werner Koch  <wk@gnupg.org>
2679
2680         * packet.h (sigsubpkttype_t): Add SIGSUBPKT_FEATURES.
2681         (PKT_public_key, PKT_user_id): Add a flag for it.
2682         * parse-packet.c, build-packet.c: Add support for them.
2683         * getkey.c (fixup_uidnode, merge_selfsigs): Set the MDC flags.
2684         * keygen.c (add_feature_mdc): New.
2685         (keygen_upd_std_prefs): Always set the MDC feature.
2686         * keyedit.c (show_prefs): List the MDC flag
2687         * pkclist.c (select_mdc_from_pklist): New.
2688         * encode.c (encode_crypt, encrypt_filter): Test whether MDC
2689         should be used.
2690         * cipher.c (write_header): Set MDC use depending on the above test.
2691         Print more status info.
2692
2693         * delkey.c (do_delete_key): Kludge to delete a secret key with no
2694         public key available.
2695
2696         * ringedit.c (find_secret_keyblock_direct): New.
2697         * getkey.c (seckey_available): Simplified.
2698
2699         * ringedit.c (cmp_seckey): Now compares the secret key against the
2700         public key while ignoring all secret parts.
2701         (keyring_search): Use a public key packet as arg.  Allow to search
2702         for subnkeys
2703         (search): Likewise. Changed all callers.
2704         (find_secret_keyblock_bypk): New.
2705         (find_secret_keyblock_byname): First locate the pubkey and then
2706         find the correponding secret key.
2707         * parse-packet.c (parse): Renamed pkttype arg to onlykeypkts and
2708         changed code accordingly.  Changed all callers.
2709         (search_packet): Removed pkttype arg.
2710         * keyedit.c (keyedit_menu): First locate the public key and then
2711         try to locate a secret key.
2712
2713         * ringedit.c (locate_keyblock_by_fpr): Removed.
2714         (locate_keyblock_by_keyid): Removed.
2715         (find_keyblock_bysk): Removed.
2716
2717         * sig-check.c (check_key_signature2): Print the keyid along with
2718         the wrong sig class errors.
2719
2720 2001-08-24  Werner Koch  <wk@gnupg.org>
2721
2722         * sign.c (sign_file): Stripped the disabled comment packet code.
2723         (sign_file, sign_symencrypt_file): Moved common code to ..
2724         (write_onepass_sig_packets): .. this new function.
2725         (sign_file, clearsign_file, sign_symencrypt_file): Moved common
2726         code to 
2727         (write_signature_packets): this new function.
2728         (write_signature_packets, make_keysig_packet)
2729         (update_keysig_packet): Moved common code to 
2730         (hash_uid, hash_sigclass_to_magic): these new functions
2731         (sign_file, sign_symencrypt_file): Moved common code to 
2732         (write_plaintext_packet):  this new function.
2733
2734 2001-08-21  Stefan Bellon  <sbellon@sbellon.de>
2735
2736         * trustdb.c (query_trust_info): Changed trustlevel to signed int.
2737         * g10.c [__riscos__]: Fixed handling of --use-agent --lock-multiple.
2738
2739 2001-08-20  Werner Koch  <wk@gnupg.org>
2740
2741         * encr-data.c (decrypt_data): Keep track on whether we already
2742         printed information about the used algorithm.
2743         * mainproc.c (proc_encrypted): Removed the non-working IDEA hack
2744         and print a message about the assumed algorithm.
2745         * passphrase.c (passphrase_to_dek): Use the same algorithm as above.
2746         (proc_symkey_enc): Print the algorithm, so that the user knows it
2747         before entering the passphrase.
2748         (proc_pubkey_enc, proc_pubkey_enc): Zero the DEK out.
2749         * encode.c (encode_crypt, encrypt_filter): Ditto.
2750
2751         * g10.c: Allow for --sign --symmetric.
2752         * sign.c (sign_and_symencrypt): New.
2753
2754         Applied patches from Stefan Bellon <sbellon@sbellon.de> to support
2755         RISC OS.  Nearly all of these patches are identified by the
2756         __riscos__ macro.
2757         * compress.c: Added a couple of casts.
2758         * g10.c [__riscos__]: Some patches and new options foo-file similar
2759         to all foo-fd options.
2760         * gpgv.c, openfile.c, ringedit.c, tdbio.c: Minor fixes.  Mainly
2761         replaced hardcoded path separators with EXTSEP_S like macros.  
2762         * passprase.c [__riscos__]: Disabled agent stuff
2763         * trustdb.c (check_trust): Changed r_trustlevel to signed int to
2764         avoid mismatch problems in pkclist.c
2765         * pkclist.c (add_ownertrust): Ditto.
2766         * plaintext.c (handle_plaintext) [__riscos__]: Print a note when
2767         file can't be created.
2768         * options.h [__riscos__]: Use an extern unless included from the
2769         main module.
2770         * signal.c (got_fatal_signal) [__riscos__]: Close all files.
2771         
2772 2001-08-14  Werner Koch  <wk@gnupg.org>
2773
2774         * keygen.c (ask_algo): New arg r_usage.  Allow for RSA keys.
2775         (gen_rsa): Enabled the code.
2776         (do_create): Enabled RSA branch.
2777         (parse_parameter_usage): New.
2778         (proc_parameter_file): Handle usage parameter.
2779         (read_parameter_file): Ditto.
2780         (generate_keypair): Ditto.
2781         (generate_subkeypair): Ditto.
2782         (do_generate_keypair): Ditto.
2783         (do_add_key_flags): New.
2784         (keygen_add_std_prefs): Use the new function.
2785         (keygen_add_key_flags_and_expire): New.
2786         (write_selfsig, write_keybinding): Handle new usage arg.
2787         * build-packet.c (build_sig_subpkt): Make sure that key flags go
2788         into the hashed area.
2789         
2790         * keygen.c (write_uid): Initialize the reference cunter.
2791
2792         * keyedit.c (keyedit_menu): No more need to update the trustdb for
2793         preferences.  Added calls to merge keblock.
2794
2795         * kbnode.c (dump_kbnode): Print some more flags.
2796
2797 2001-08-10  Werner Koch  <wk@gnupg.org>
2798
2799         Revamped the preference handling.
2800
2801         * packet.h (prefitem_t, preftype_t): New.
2802         (PKT_public_key): Added a uid field.
2803         (PKT_user_id): Added field to store preferences and a reference
2804         counter.
2805         * parse-packet.c (parse_user_id,parse_photo_id): Initialize them
2806         * free-packet.c (free_user_id): Free them.
2807         (copy_user_id): Removed.
2808         (scopy_user_id): New. 
2809         (cmp_user_ids): Optimized for identical pointers.
2810         (release_public_key_parts): Release the uid.
2811         (copy_public_key_with_new_namehash): Removed.
2812         (copy_prefs): New.
2813         * keyedit.c (menu_adduid): Use the new shallow copy user id.
2814         (show_prefs): Adjusted implementation.
2815         (keyedit_menu): No more need to update the trustdb after changing
2816         preferences.
2817         * getkey.c (fixup_uidnode): Store preferences.
2818         (find_by_name): Return a user id packet and remove namehash stuff.
2819         (lookup): Removed the unused namehash stuff.
2820         (finish_lookup): Added foundu arg.
2821         (pk_from_block): Removed the namehash arg and changed all callers.
2822         (merge_selfsigs): Copy prefs to all keys.
2823         * trustdb.c (get_pref_data): Removed.
2824         (is_algo_in_prefs): Removed.
2825         (make_pref_record): Deleted and removed all class.
2826         * pkclist.c (select_algo_from_prefs): Adjusted for the new
2827         preference implementation.
2828         * pubkey-enc.c (is_algo_in_prefs): New.
2829         (get_it): Use that new function. 
2830
2831 2001-08-09  Werner Koch  <wk@gnupg.org>
2832
2833         * build-packet.c (build_sig_subpkt): Fixed calculation of
2834         newarea->size.
2835
2836         * g10.c (main): New option "--preference-list"
2837         * keyedit.c (keyedit_menu): New commands "setpref" and "updpref".
2838         (menu_set_preferences): New.
2839         * keygen.c (keygen_set_std_prefs): New.
2840         (set_one_pref): New.
2841         (check_zip_algo): New.
2842         (keygen_get_std_prefs): New.
2843         (keygen_upd_std_prefs): New
2844         (keygen_add_std_prefs): Move the pref setting code into the above fnc.
2845         * build-packet.c (build_sig_subpkt): Updated the list of allowed
2846         to update subpackets.
2847
2848 2001-08-08  Werner Koch  <wk@gnupg.org>
2849
2850         * packet.h (subpktarea_t): New.
2851         (PKT_signature): Use that type for hashed_data and unhashed_data and
2852         removed the _data prefix from those fields.  Changed all users.
2853         * parse-packet.c (parse_signature): Changed allocation for that.
2854         (parse_sig_subpkt): Changed declaration
2855         (enum_sig_subpkt): Ditto and changed implementation accordingly.
2856         * free-packet.c (cp_subpktarea): Renamed from cp_data_block and
2857         adjusted implementation. Changed caller.
2858         * sig-check.c (mdc_kludge_check): Adjusted the hashing.
2859         (do_check): Ditto.
2860         * sign.c (sign_file, clearsign_file, make_keysig_packet,
2861         update_keysig_packet): Ditto.
2862         * build-packet.c (build_sig_subpkt): Partial rewrite.
2863         (find_subpkt): Adjusted and made static.
2864         (delete_sig_subpkt): Adjusted.
2865         (do_signature): Ditto.
2866
2867         * keygen.c (ask_keysize): Do not print the notes about suggested
2868         key sizes if just a DSA key is generated.
2869
2870         * trustdb.c (add_ultimate_key): s/log_error/log_info/ for
2871         duplicated inserted trusted keys.
2872
2873 2001-08-07  Werner Koch  <wk@gnupg.org>
2874
2875         * sign.c (sleep): Redefine for W32.
2876
2877         * g10.c, options.h: Set new flag opt.no_homedir_creation when
2878         --no-options is given.
2879         * openfile.c (try_make_homedir): Don't create the homedir in that case.
2880
2881 2001-08-03  Werner Koch  <wk@gnupg.org>
2882
2883         * armor.c (armor_filter): Removed the default comment string
2884         because it could get us in trouble due to translations using non
2885         ascii characters.
2886
2887 2001-08-01  Werner Koch  <wk@gnupg.org>
2888
2889         * keylist.c (list_keyblock_print): Do not list revoked UIDs unless
2890         in verbose mode and we do no signature listing.
2891
2892         * getkey.c (finish_lookup): Skip subkeys which are not yet valid.
2893         * g10.c, options.h: New option --ignore-valid-from.
2894
2895         * sign.c (make_keysig_packet): Added new sigversion argument to
2896         allow the caller to force generation of required signature
2897         version. Changed all callers. Suggested by Thomas Roessler.
2898
2899         * keyedit.c (sign_uids): Force v4 signature generation for local
2900         sigs.  Removed the check for local signature and pre-v4 keys.
2901
2902 2001-07-27  Werner Koch  <wk@gnupg.org>
2903
2904         * keyedit.c (sign_uids): Check that we are not trying to to a
2905         lsign with a pre-v4 key.  Bug noticed by Thomas Roessler.
2906
2907 2001-07-26  Werner Koch  <wk@gnupg.org>
2908
2909         * parse-packet.c (parse_photo_id): Reset all variables.
2910         * getkey.c (merge_selfsigs_main): Removed checks on PHOTO_ID
2911         because this is handled identically to a user ID.
2912
2913 2001-07-06  Werner Koch  <wk@gnupg.org>
2914
2915         * cipher.c (write_header): Don't use MDC with --rfc1991.  Suggested
2916         by disastry@saiknes.lv.
2917
2918 2001-07-05  Werner Koch  <wk@gnupg.org>
2919
2920         * g10.c, options.h: New option --preserve-permissions.
2921         * ringedit.c (add_keyblock_resource): Use it here
2922         (keyring_copy): and here.
2923
2924         * trustdb.c (verify_own_keys): Be more silent on --quiet.
2925         Suggested by Thomas Roessler.
2926         * sig-check.c (check_key_signature2): Ditto.
2927         * mainproc.c (proc_encrypted, proc_tree): Ditto
2928         * getkey.c (lookup): Ditto.
2929
2930 2001-07-04  Werner Koch  <wk@gnupg.org>
2931
2932         * ringedit.c (add_keyblock_resource): Restore filename in case of error.
2933
2934 2001-06-25  Werner Koch  <wk@gnupg.org>
2935
2936         * kbnode.c (dump_kbnode): Print the signature timestamp.
2937
2938         * keyedit.c (keyedit_menu): New menu point "primary".
2939         (change_primary_uid_cb): New.
2940         (menu_set_primary_uid): New.
2941         * sign.c (update_keysig_packet): New.
2942         * build-packet.c (build_sig_subpkt): Put the primary UID flag into
2943         the hashed area. Allow update of some more packets.
2944
2945 2001-06-15  Werner Koch  <wk@gnupg.org>
2946
2947         * getkey.c (merge_selfsigs): Exit gracefully when a secret key is
2948         encountered.  May happen if a secret key is in public keyring.
2949         Reported by Francesco Potorti.
2950         
2951 2001-06-12  Werner Koch  <wk@gnupg.org>
2952
2953         * getkey.c (compare_name): Use ascii_memistr(), ascii_memcasecmp()
2954         * keyedit.c (keyedit_menu): Use ascii_strcasecmp().
2955         * armor.c (radix64_read): Use ascii_toupper().  
2956         * ringedit.c (do_bm_search): Ditto.
2957         * keygen.c (read_parameter_file): Ditto.
2958         * openfile.c (CMP_FILENAME): Ditto.
2959         * g10.c (i18n_init): We can now use just LC_ALL.
2960
2961 2001-05-29  Werner Koch  <wk@gnupg.org>
2962
2963         * keygen.c (generate_subkeypair): Print a warning if a subkey is
2964         created on a v3 key. Suggested by Brian M. Carlson.
2965
2966 2001-05-27  Werner Koch  <wk@gnupg.org>
2967
2968         * keyid.c (get_lsign_letter): New.
2969         * keylist.c (list_keyblock_colon): Use it here.
2970         * mainproc.c (list_node): and here.
2971
2972         * getkey.c, packet.h, free-packet.c: Removed that useless key
2973         created field; I dunno why I introducded this at all - the
2974         creation time is always bound to the key packet and subject to
2975         fingerprint calculation etc.
2976
2977         * getkey.c (fixup_uidnode): Add keycreated arg and use this
2978         instead of the signature timestamp to calculate the
2979         help_key_expire.  Bug reported by David R. Bergstein.
2980         (merge_selfsigs_main): Correct key expiration time calculation.
2981         (merge_selfsigs_subkey): Ditto.
2982
2983 2001-05-25  Werner Koch  <wk@gnupg.org>
2984
2985         * revoke.c (gen_revoke): Add a cast to a tty_printf arg.
2986         * delkey.c (do_delete_key): Ditto.
2987         * keyedit.c (print_and_check_one_sig): Ditto.
2988         (ask_revoke_sig): Ditto.
2989         (menu_revsig): Ditto.
2990         (check_all_keysigs): Removed unused arg.
2991
2992 2001-05-23  Werner Koch  <wk@gnupg.org>
2993
2994         * g10.c (opts): Typo fix by Robert C. Ames.
2995
2996 2001-05-06  Werner Koch  <wk@gnupg.org>
2997
2998         * revoke.c: Small typo fix
2999
3000 2001-05-04  Werner Koch  <wk@gnupg.org>
3001
3002         * passphrase.c (passphrase_clear_cache): Shortcut if agent usage
3003         is not enabled.
3004
3005 2001-05-01  Werner Koch  <wk@gnupg.org>
3006
3007         * passphrase.c (writen): Replaced ssize_t by int.  Thanks to 
3008         to Robert Joop for reporting that SunOS 4.1.4 does not have it.
3009
3010 2001-04-28  Werner Koch  <wk@gnupg.org>
3011
3012         * getkey.c (merge_public_with_secret): pkttype was not set to subkey.
3013
3014 2001-04-27  Werner Koch  <wk@gnupg.org>
3015
3016         * skclist.c (build_sk_list): Changed one log_debug to log_info.
3017
3018 2001-04-25  Werner Koch  <wk@gnupg.org>
3019
3020         * keyedit.c (show_prefs): Add a verbose mode.
3021         (show_key_with_all_names): Pass verbose flag for special value of
3022         with_pref.
3023         (keyedit_menu): New command "showpref"
3024         (show_key_with_all_names): Mark revoked uids and the primary key.
3025
3026 2001-04-24  Werner Koch  <wk@gnupg.org>
3027
3028         * getkey.c (get_primary_uid): Return a different string in case of
3029         error and made it translatable.
3030
3031         * build-packet.c (do_secret_key): Ugly, we wrote a zero
3032         instead of the computed ndays.  Thanks to M Taylor for complaining
3033         about a secret key import problem.
3034
3035 2001-04-23  Werner Koch  <wk@gnupg.org>
3036
3037         * hkp.c (hkp_ask_import): Allow to specify a port number for the 
3038         keyserver.  Add a kudge to set the no_shutdown flag.
3039         (hkp_export): Ditto.
3040         * options.skel: Document the changes 
3041
3042 2001-04-20  Werner Koch  <wk@gnupg.org>
3043
3044         * options.skel: Add some more comments.
3045
3046 2001-04-19  Werner Koch  <wk@gnupg.org>
3047
3048         * keyid.c (mk_datestr): New.  Handles negative times.  We must do
3049         this because Windoze segvs on negative times passed to gmtime().
3050         Changed all datestr_from function to use this one.
3051
3052         * keyid.c, keyid.h (colon_strtime): New. To implement the
3053         fixed-list-mode.
3054         (colon_datestr_from_pk): New.
3055         (colon_datestr_from_sk): New.
3056         (colon_datestr_from_sig): New.
3057         * keylist.c (list_keyblock_colon): Use these functions here.
3058         * mainproc.c (list_node): Ditto.
3059
3060 2001-04-18  Werner Koch  <wk@gnupg.org>
3061
3062         * openfile.c (open_sigfile): Fixed the handling of ".sign".
3063         * mainproc.c (proc_tree): Use iobuf_get_real_fname.
3064         Both are by Vincent Broman.
3065
3066 2001-04-14  Werner Koch  <wk@gnupg.org>
3067
3068         * getkey.c (fixup_uidnode): Removed check for !sig which is
3069         pointless here.  Thanks to Jan Niehusmann.
3070
3071 2001-04-10  Werner Koch  <wk@gnupg.org>
3072
3073         * sig-check.c (check_key_signature2): Use log_info instead of
3074         log_error so that messed up keys do not let gpg return an error.
3075         Suggested by Christian Kurz.
3076
3077         * getkey.c (merge_selfsigs_main): Do a fixup_uidnode only if we
3078         have both, uid and sig.  Thanks to M Taylor.
3079
3080 2001-04-05  Werner Koch  <wk@gnupg.org>
3081
3082         * armor.c (unarmor_pump_new,unarmor_pump_release): New.
3083         (unarmor_pump): New. 
3084         * pipemode.c (pipemode_filter): Use the unarmor_pump to handle
3085         armored or non-armored detached signatures.  We can't use the
3086         regular armor_filter becuase this does only chack for armored
3087         signatures the very first time.  In pipemode we may have a mix of
3088         armored and binary detached signatures.
3089         * mainproc.c (proc_tree): Do not print the "old style" notice when
3090         this is a pipemode processes detached signature.
3091         (proc_plaintext): Special handling of pipemode detached sigs.
3092
3093         * packet.h (CTRLPKT_PLAINTEXT_MARK): New.
3094         * parse-packet.c (create_gpg_control): New.
3095         * kbnode.c (dump_kbnode): Support it here.
3096         * mainproc.c (check_sig_and_print): Fixed the check for bad
3097         sequences of multiple signatures.
3098         (proc_plaintext): Add the marker packet.
3099         (proc_tree): We can now check multiple detached signatures.
3100
3101 2001-04-02  Werner Koch  <wk@gnupg.org>
3102
3103         The length of encrypted packets for blocksizes != 8 was not
3104         correct encoded.  I think this is a minor problem, because we
3105         usually use partial length packets.  Kudos to Kahil D. Jallad for
3106         pointing this out.
3107         * packet.h: Add extralen to PKT_encrypted.
3108         * cipher.c (write_header): Set extralen.
3109         * build-packet.c (do_encrypted): Use extralen instead of const 10.
3110         (do_encrypted_mdc): Ditto.
3111         * parse-packet.c (parse_encrypted): Set extralen to 0 because we
3112         don't know it here.
3113
3114 2001-03-30  Werner Koch  <wk@gnupg.org>
3115
3116         * getkey.c (premerge_public_with_secret): Changed wording an add
3117         the keyID to the info message.
3118
3119 2001-03-29  Werner Koch  <wk@gnupg.org>
3120
3121         * getkey.c (premerge_public_with_secret): Use log_info instead of
3122         log_error when no secret key was found for a public one.
3123         Fix the usage if the secret parts of a key are not available.
3124
3125         * openfile.c (ask_outfile_name): Trim spaces.
3126         (open_outfile): Allow to enter an alternate filename.  Thanks to
3127         Stefan Bellon.
3128         * plaintext.c (handle_plaintext): Ditto.
3129
3130 2001-03-28  Werner Koch  <wk@gnupg.org>
3131
3132         * mainproc.c (do_check_sig): Allow direct key and subkey
3133         revocation signature.
3134         * sig-check.c (check_key_signature2): Check direct key signatures.
3135         Print the signature class along with an error.
3136
3137 2001-03-27  Werner Koch  <wk@gnupg.org>
3138
3139         * packet.h: Add a missing typedef to an enum.  Thanks to Stefan Bellon.
3140
3141         * g10.c: New option --no-sig-create-check.
3142         * sign.c (do_sign): Implement it here.
3143         * g10.c: New option --no-sig-cache.
3144         * sig-check.c (check_key_signature2): Implement it here.
3145         (cache_selfsig_result): and here.
3146
3147         * keylist.c (list_keyblock): Removed debugging stuff.
3148
3149         * getkey.c (cache_public_key): Made global.
3150         * keygen.c (write_selfsig, write_keybinding): Cache the new key.
3151
3152         * getkey.c (key_byname): Add new arg secmode and changed all
3153         callers to request explicitly the mode.  Deriving this information
3154         from the other supplied parameters does not work if neither pk nor
3155         sk are supplied.
3156
3157 2001-03-25  Werner Koch  <wk@gnupg.org>
3158
3159         * packet.h (ctrlpkttype_t): New.
3160         * mainproc.c (add_gpg_control,proc_plaintext,proc_tree): Use the
3161         new enum values.
3162         * pipemode.c (make_control): Ditto.
3163         * armor.c (armor_filter): Ditto.
3164
3165 2001-03-24  Werner Koch  <wk@gnupg.org>
3166
3167         * sign.c (do_sign): Verify the signature right after creation.
3168
3169 2001-03-23  Werner Koch  <wk@gnupg.org>
3170
3171         * status.c, status.h (STATUS_UNEXPECTED): New.
3172         * mainproc.c (do_proc_packets): And emit it here.
3173
3174 2001-03-21  Werner Koch  <wk@gnupg.org>
3175
3176         * status.c: Add sys/types.h so that it runs on Ultrix.  Reported
3177         by Georg Schwarz.x
3178
3179         * build-packet.c (build_sig_subpkt): Fixed generaton of packet
3180         length header in case where 2 bytes headers are needed.  Thanks to
3181         Piotr Krukowiecki.
3182
3183 2001-03-19  Werner Koch  <wk@gnupg.org>
3184
3185         * g10.c (main): the default keyring is no always used unless
3186         --no-default-keyring is given.  
3187
3188         * ringedit.c (add_keyblock_resource): invalidate cache after file
3189         creation.
3190
3191 2001-03-15  Werner Koch  <wk@gnupg.org>
3192
3193         * keygen.c (ask_algo): Changed the warning of the ElGamal S+E Algo.
3194
3195         * keylist.c (print_capabilities): New.
3196         (list_keyblock_colon): and use it here.
3197
3198 2001-03-13  Werner Koch  <wk@gnupg.org>
3199
3200         * main.c, options.h: New option --fixed_list_mode.
3201         * keylist.c (list_keyblock_colon): use it here.
3202
3203         * getkey.c (merge_keys_and_selfsig): Divert merging of public keys
3204         to the function used in key selection..
3205         * keylist.c (is_uid_valid): Removed.
3206         (list_keyblock): Splitted into ..
3207         (list_keyblock_print, list_keyblock_colon): .. these.
3208         functions.  Changed them to use the flags set in the key lookup code.
3209         (reorder_keyblock): New, so that primary user IDs are listed first.
3210
3211         * ringedit.c (keyring_copy): flush the new iobuf chaces before
3212         rename or remove operations.  This is mainly needed for W32.
3213
3214         * hkp.c [HAVE_DOSISH_SYSTEM]: Removed the disabled code because we
3215         have now W32 socket support in ../util/http.c
3216
3217         * skclist.c (key_present_in_sk_list): New.
3218         (is_duplicated_entry): New.
3219         (build_sk_list): Check for duplicates and do that before unlocking.
3220
3221 2001-03-12  Werner Koch  <wk@gnupg.org>
3222
3223         * armor.c (parse_header_line): Removed double empty line check.
3224         (parse_header_line): Replaced trim_trailing_ws with a counting
3225         function so that we can adjust for the next read.
3226
3227         * options.skel: Fixed 3 typos. By Thomas Klausner. Replaced the
3228         keyserver example by a better working server. 
3229
3230         * parse-packet.c (parse_symkeyenc): Return Invalid_Packet on error.
3231         (parse_pubkeyenc): Ditto.
3232         (parse_onepass_sig): Ditto.
3233         (parse_plaintext): Ditto.
3234         (parse_encrypted): Ditto.
3235         (parse_signature): Return error at other places too.
3236         (parse_key): Ditto.
3237         * g10.c (main): Set opt.list_packets to another value when invoked
3238         with the --list-packets command.
3239         * mainproc.c (do_proc_packets): Don's stop processing when running
3240         under --list-packets command.
3241
3242         * signal.c (do_sigaction): Removed.
3243         (init_one_signal): New to replace the above.  Needed to support
3244         systems without sigactions. Suggested by Dave Dykstra.
3245         (got_fatal_signal,init_signals): Use the above here. 
3246         (do_block): Use sigset() if sigprocmask() is not available.
3247
3248         * armor.c (parse_hash_header): Test on TIGER192, which is the
3249         correct value as per rfc2440.  By Edwin Woudt.
3250
3251 2001-03-08  Werner Koch  <wk@gnupg.org>
3252
3253         * misc.c: Include time.h. By James Troup.
3254
3255         * getkey.c: Re-enabled the unknown user Id and PK caches and
3256         increased their sizes.
3257
3258         * getkey.c (merge_selfsigs_main): Set expire date and continue
3259         processing even if we found a revoked key.
3260         (merge_selfsigs_subkeys): Ditto.
3261         
3262         * packet.h: Add an is_revoked flag to the user_id packet.
3263         * getkey.c (fixup_uidnode): Set that flag here.
3264         (merge_selfsigs_main): Fix so that the latest signature is used to
3265         find the self-signature for an UID.
3266         * parse-packet.c (parse_user_id): Zero out all fields.
3267         * mainproc.c (check_sig_and_print): Print the primary user ID
3268         according the the node flag and then all other non-revoked user IDs.
3269         (is_uid_revoked): Removed; it is now handled by the key selection code.
3270         
3271         Changed the year list of all copyright notices.
3272         
3273 2001-03-07  Werner Koch  <wk@gnupg.org>
3274
3275         * getkey.c (finish_lookup): Print an info message only in verbose mode.
3276
3277 2001-03-05  Werner Koch  <wk@gnupg.org>
3278
3279         * packet.h: Replaced sigsubpkt_t value 101 by PRIV_VERIFY_CACHE.
3280         We have never used the old value, so we can do this without any harm.
3281         * parse-packet.c (dump_sig_subpkt): Ditto.
3282         (parse_one_sig_subpkt): Parse that new sub packet.
3283         * build-packet.c (build_sig_subpkt): Removed the old one from the
3284         hashed area.
3285         (delete_sig_subpkt): New.
3286         (build_sig_subpkt): Allow an update of that new subpkt.
3287         * sig-check.c (check_key_signature2): Add verification caching
3288         (cache_selfsig_result): New.
3289         * export.c (do_export_stream): Delete that sig subpkt before exporting.
3290         * import.c (remove_bad_stuff): New.
3291         (import): Apply that function to all imported data 
3292
3293 2001-03-03  Werner Koch  <wk@gnupg.org>
3294
3295         * getkey.c: Introduced a new lookup context flag "exact" and used 
3296         it in all place where we once used primary.
3297         (classify_user_id2): Replaced the old function and add an extra
3298         argument to return whether an exact keyID has been requested.
3299         (key_byname): Removed the unused ctx.primary flag
3300         (get_seckey_byname2): Ditto.
3301         (finish_lookup): Changed debugging output.
3302
3303 2001-03-02  Werner Koch  <wk@gnupg.org>
3304
3305         * keylist.c (list_one): Remove the merge key calls. 
3306
3307 2001-03-01  Werner Koch  <wk@gnupg.org>
3308
3309         * getkey.c (finish_lookup): Don't use it if we no specific usage
3310         has been requested.
3311         (merge_selfsigs_main): fix UID only if we have an signature.
3312         (lookup): Return UNU_PUBKEY etc. instead of NO_PUBKEY if we found
3313         a key but the requested usage does not allow this key.
3314         * import.c (import_one): Take UNU_PUBKEY into account.
3315         * mainproc.c (list_node): Ditto.
3316         * keylist.c (list_keyblock): Ditto.
3317         * keyedit.c (print_and_check_one_sig): Ditto. 
3318
3319 2001-02-09  Werner Koch  <wk@gnupg.org>
3320
3321         * delkey.c (delete_key): Removed that silly assert which rendered
3322         the whole new stuff meaningless.
3323
3324 2001-02-08  Werner Koch  <wk@gnupg.org>
3325
3326         * getkey.c (key_byname): It can happen that we have both, sk and pk
3327         NULL, fix for that.
3328
3329         * parse-packet.c (parse_one_sig_subpkt): Add support for
3330         primary_uid and key_flags.
3331         (can_handle_critical): Ditto
3332
3333         * parse-packet.c (parse_encrypted): Fixed listing of pktlen for
3334         MDC packets.
3335
3336         * getkey.c: Backported the version of this file from gpg 1.1. this
3337         involved some changes in other files too.
3338         * parse-packet.c (parse_key): Clear req_usage.
3339         * skclist.c (build_sk_list): Use req_usage to pass the usage
3340         information to the lookup function.
3341         * pkclist.c (build_pk_list): Ditto.
3342         * free-packet.c (copy_public_parts_to_secret_key): New.
3343         * keydb.h: Add IS_* macros to check the sig_class.
3344         * misc.c (openpgp_cipher_test_algo): New.
3345         (openpgp_pk_test_algo): New.
3346         (openpgp_pk_algo_usage): New.
3347         (openpgp_md_test_algo): New.
3348         * packet.h: Add a few fields to PKT_{public,secret}_key and
3349         PKT_user_id.
3350         * seckey-cert.c (do_check): Use the new main_keyid field.
3351
3352 2001-02-04  Werner Koch  <wk@gnupg.org>
3353
3354         * encr-data.c (decrypt_data): Catch error when we had problems to
3355         parse the encrypted packet. By Timo.
3356
3357 2001-01-29  Werner Koch  <wk@gnupg.org>
3358
3359         * g10.c (main): --batch does now set nogreeting.
3360
3361         * delkey.c (do_delete_key): Fixed delete-both functionality.
3362
3363 2001-01-22  Werner Koch  <wk@gnupg.org>
3364
3365         * g10.c: New command --delete-secret-and-public-key.
3366         * delkey.c (delete_key): Add new arg allow_both.
3367         (do_delete_key): Move most stuff from above to this new function.
3368
3369 2001-01-12  Werner Koch  <wk@gnupg.org>
3370
3371         * passphrase.c (passphrase_to_dek): Use MD5 when IDEA is installed
3372         and we have no S2K.
3373         * mainproc.c (proc_encrypted): Likewise
3374
3375 2001-01-11  Werner Koch  <wk@gnupg.org>
3376
3377         * sig-check.c (do_check): Print the signature key expire message
3378         only in verbose mode and added the keyID.
3379
3380 2001-01-09  Werner Koch  <wk@gnupg.org>
3381
3382         * status.c, status.h: New status USERID_HINT. 
3383         (write_status_text): Replace LF and CR int text by C-escape sequence.
3384
3385         * passphrase.c (passphrase_to_dek): Fixed the NEED_PASSPHRASE
3386         output.  It does now always print 2 keyIDs.  Emit the new
3387         USERID_HINT.
3388
3389 2001-01-08  Werner Koch  <wk@gnupg.org>
3390
3391         * g10.c, options.h: New option --no-expensive-trust-checks.
3392         * keylist.c (list_keyblock): Act on this option.
3393
3394 2001-01-04  Werner Koch  <wk@gnupg.org>
3395
3396         * g10.c (main): Set homedir only in the pre-parsing phase and
3397         replace backslashes in the W32 version.
3398
3399 2001-01-03  Werner Koch  <wk@gnupg.org>
3400
3401         * status.c, status.h : New status KEY_CREATED
3402         * keygen.c (do_generate_keypair,generate_subkeypair): Emit it.
3403
3404 2000-12-28  Werner Koch  <wk@gnupg.org>
3405
3406         * signal.c (got_fatal_signal): Remove lockfiles here because the
3407         atexit stuff does not work due to the use of raise. Suggested by
3408         Peter Fales.
3409         * gpgv.c (remove_lockfiles): New stub.
3410         
3411 2000-12-19  Werner Koch  <wk@gnupg.org>
3412
3413         * status.c, status.h (cpr_get_no_help): New.
3414         * keyedit.c (keyedit_menu): Use it here because we have our own
3415         help list here.
3416
3417 2000-12-18  Werner Koch  <wk@gnupg.org>
3418
3419         * mainproc.c (print_failed_pkenc): Don't print the sometimes
3420         confusing message about unavailabe secret key.  Renamed ...
3421         (print_pkenc_list): ... to this and introduced failed arg.
3422         (proc_encrypted): Print the failed encryption keys and then
3423         the one to be used.
3424         (proc_pubkey_enc): Store also the key we are going to use.
3425
3426         * mainproc.c (check_sig_and_print): Don't list revoked user IDs.
3427         (is_uid_revoked): New.
3428
3429 2000-12-08  Werner Koch  <wk@gnupg.org>
3430
3431         * pipemode.c: Made the command work.  Currently only for
3432         non-armored detached signatures.
3433         * mainproc.c (release_list): Reset the new pipemode vars.
3434         (add_gpg_control): Handle the control packets for pipemode
3435         * status.c, status.h: New stati {BEGIN,END}_STREAM.
3436
3437 2000-12-07  Werner Koch  <wk@gnupg.org>
3438
3439         * g10.c: New option --allow-secret-key-import.
3440         * import.c (import_keys,import_keys_stream): Honor this option.
3441         (import): New arg allow_secret and pass that arg down to ...
3442         (import_secret_one): to this and print a warning if secret key
3443         importing is not allowed.
3444
3445 2000-12-05  Werner Koch  <wk@gnupg.org>
3446
3447         * cipher.c (cipher_filter): Moved the end_encryption status ...
3448         * encode.c (encode_simple,encode_crypt): to here
3449         * sign.c (sign_file): and here.
3450
3451         * status.c (mywrite): Removed.
3452         (get_status_string): Removed the LFs from the strings.
3453         (set_status_fd,is_status_enabed,write_status_text,
3454         write_status_buffer): Replaced all mywrite by stdio calls and use
3455         fdopen to create a strem.  This is needed to make things smoother
3456         in the W32 version.
3457
3458 2000-12-04  Werner Koch  <wk@gnupg.org>
3459
3460         * import.c (merge_blocks): Increment n_sigs for revocations.
3461
3462 2000-11-30  Werner Koch  <wk@gnupg.org>
3463
3464         * g10.c (main): Use iobuf_translate_file_handle for all options
3465         with filehandles as arguments.  This is function does some magic
3466         for the W32 API.
3467
3468         * verify.c (verify_signatures): Add a comment rant about the
3469         detached signature problem.
3470         * mainproc.c (proc_tree): Issue an error if a detached signature
3471         is assumed but a standard one was found.
3472         * plaintext.c (hash_datafiles): Don't fall back to read signature
3473         from stdin.
3474         * openfile.c (open_sigfile): Print verbose message only if the
3475         file could be accessed.
3476
3477 2000-11-24  Werner Koch  <wk@gnupg.org>
3478
3479         * passphrase.c [HAVE_DOSISH_SYSTEM]: Disabled all the agent stuff.
3480
3481 2000-11-16  Werner Koch  <wk@gnupg.org>
3482
3483         * g10.c: New option --use-agent
3484         * passphrase.c (agent_open,agent_close): New.
3485         (agent_get_passphrase,agent_clear_passphrase): New.
3486         (passphrase_clear_cache): New.
3487         (passphrase_to_dek): Use the agent here.
3488         * seckey-cert.c (do_check): Clear cached passphrases.
3489
3490 2000-11-15  Werner Koch  <wk@gnupg.org>
3491
3492         * status.c (write_status_text): Moved the big switch to ...
3493         (get_status_string): ... new function.
3494         (write_status_buffer): New.
3495
3496         * status.c (mywrite): New and replaced all write() by this.
3497
3498         * status.c, status.h: Add 3 status lcodes for notaions and policy.
3499         * mainproc.c (print_notation_data): Do status output of notations.
3500         
3501 2000-11-13  Werner Koch  <wk@gnupg.org>
3502
3503         * sign.c (clearsign_file): Use LF macro to print linefeed.
3504         
3505 2000-11-11  Paul Eggert  <eggert@twinsun.com>
3506
3507         Clean up the places in the code that incorrectly use "long" or
3508         "unsigned long" for file offsets.  The correct type to use is
3509         "off_t".  The difference is important on large-file hosts,
3510         where "off_t" is longer than "long".
3511
3512         * keydb.h (struct keyblock_pos_struct.offset):
3513         Use off_t, not ulong, for file offsets.
3514         * packet.h (dbg_search_packet, dbg_copy_some_packets,
3515         search_packet, copy_some_packets): Likewise.
3516         * parse-packet.c (parse, dbg_search_packet, search_packet,
3517         dbg_copy_some_packets, copy_some_packets): Likewise.
3518         * ringedit.c (keyring_search): Likewise.
3519
3520         * parse-packet.c (parse): Do not use %lu to report file
3521         offsets in error diagnostics; it's not portable.
3522         * ringedit.c (keyring_search): Likewise.
3523
3524 2000-11-09  Werner Koch  <wk@gnupg.org>
3525
3526         * g10.c (main): New option --enable-special-filenames.
3527
3528 2000-11-07  Werner Koch  <wk@gnupg.org>
3529  
3530         * g10.c (main): New command --pipemode.
3531         * pipemode.c: New.
3532
3533 2000-10-23  Werner Koch  <wk@gnupg.org>
3534
3535         * armor.c (armor_filter): Changed output of hdrlines, so that a CR
3536         is emitted for DOS systems.
3537
3538         * keygen.c (read_parameter_file): Add a cast for isspace().
3539
3540         * status.c (myread): Use SIGINT instead of SIGHUP for DOS. 
3541
3542 2000-10-19  Werner Koch  <wk@gnupg.org>
3543
3544         * g10.c: New option --ignore-crc-error
3545         * armor.c (invalid_crc): New.
3546         (radix64_read): Act on new option.
3547
3548         * openfile.c (try_make_homedir): Klaus Singvogel fixed a stupid
3549         error introduced on Sep 6th. 
3550
3551 2000-10-18  Werner Koch  <wk@gnupg.org>
3552
3553         * misc.c (print_cipher_algo_note): Don't print the note for AES.
3554         Changed wording.
3555
3556 2000-10-16  Werner Koch  <wk@gnupg.org>
3557
3558         * mainproc.c (do_proc_packets): Hack to fix the problem that
3559         signatures are not detected when there is a MDC packet but no
3560         compression packet.
3561         
3562         * g10.c (print_hashline): New.
3563         (print_mds): Use above func with --with-colons.
3564
3565         * mainproc.c (check_sig_and_print): Detect multiple signatures
3566         and don't verify them.
3567
3568 2000-10-14  Werner Koch  <wk@gnupg.org>
3569
3570         * mainproc.c (add_onepass_sig): There is an easier solution to the
3571         error fixed yesterday; just check that we only have onepass
3572         packets.  However, the other solution provides an cleaner
3573         interface and opens the path to get access to other information
3574         from the armore headers.
3575         (release_list): Reset some more variables.
3576
3577 2000-10-13  Werner Koch  <wk@gnupg.org>
3578
3579         * mainproc.c (add_gpg_control): New.
3580         (do_proc_packets): use it.
3581         (proc_plaintext): Changed logic to detect clearsigns.
3582         (proc_tree): Check the cleartext sig with some new code.
3583
3584         * packet.h: New packet PKT_GPG_CONTROL.
3585         * parse-packet.c (parse_gpg_control): New.
3586         * misc.c (get_session_marker): New.
3587         * armor.c (armor_filter): Replaced the faked 1-pass packet by the
3588         new control packet.
3589
3590         * keyedit.c (keyedit_menu): Allow batchmode with a command_fd. 
3591         * status.c (my_read): New.
3592         (do_get_from_fd): use it.
3593
3594 2000-10-12  Werner Koch  <wk@gnupg.org>
3595
3596         * keygen.c (keygen_add_std_prefs): Add Rijndael to the prefs.
3597
3598 2000-10-07  Werner Koch  <wk@gnupg.org>
3599
3600         * gpgv.c: Add more stubs for ununsed code to make the binary smaller.
3601
3602 Wed Oct  4 15:50:18 CEST 2000  Werner Koch  <wk@openit.de>
3603
3604         * sign.c (hash_for): New arg to take packet version in account, changed
3605         call callers.
3606
3607         * gpgv.c: New.
3608         * Makefile.am: Rearranged source files so that gpgv can be build with
3609         at least files as possible.
3610
3611 Mon Sep 18 12:13:52 CEST 2000  Werner Koch  <wk@openit.de>
3612
3613         * hkp.c (not_implemented): Print a notice for W32
3614
3615 Fri Sep 15 18:40:36 CEST 2000  Werner Koch  <wk@openit.de>
3616
3617         * keygen.c (keygen_add_std_prefs): Changed order of preferences to
3618         twofish, cast5, blowfish.
3619
3620         * pkclist.c (algo_available): Removed hack to disable Twofish.
3621
3622 Thu Sep 14 17:45:11 CEST 2000  Werner Koch  <wk@openit.de>
3623
3624         * parse-packet.c (dump_sig_subpkt): Dump key flags. Print special
3625         warning in case of faked ARRs.
3626
3627         * getkey.c (finsih_lookup): Hack so that for v4 RSA keys the subkey
3628         is used for encryption.
3629
3630 Thu Sep 14 14:20:38 CEST 2000  Werner Koch  <wk@openit.de>
3631
3632         * g10.c (main): Default S2K algorithms are now SHA1 and CAST5 - this
3633         should solve a lot of compatibility problems with other OpenPGP
3634         apps because those algorithms are SHOULD and not optional.  The old
3635         way to force it was by using the --openpgp option whith the drawback 
3636         that this would disable a couple of workarounds for PGP.
3637
3638         * g10.c (main): Don't set --quite along with --no-tty.  By Frank Tobin.
3639
3640         * misc.c (disable_core_dump): Don't display a warning here but a return
3641         a status value and ...
3642         * g10.c (main): ...print warnining here. Suggested by Sam Roberts.
3643
3644 Wed Sep 13 18:12:34 CEST 2000  Werner Koch  <wk@openit.de>
3645
3646         * keyedit.c (keyedit_menu): Allow to use "debug" on the secret key.
3647
3648         * ringedit.c (cmp_seckey): Fix for v4 RSA keys.
3649         * seckey-cert.c (do_check): Workaround for PGP 7 bug.
3650
3651 Wed Sep  6 17:55:47 CEST 2000  Werner Koch  <wk@openit.de>
3652
3653         * misc.c (print_pubkey_algo_note): Do not print the RSA notice.
3654         * sig-check.c (do_signature_check): Do not emit the RSA status message.
3655         * pubkey-enc.c (get_session_key): Ditto.
3656
3657         * encode.c (encode_simple, encode_crypt): Fix for large files.
3658         * sign.c (sign_file): Ditto.
3659
3660 Wed Sep  6 14:59:09 CEST 2000  Werner Koch  <wk@openit.de>
3661
3662         * passphrase.c (hash_passphrase): Removed funny assert.  Reported by
3663         David Mathog.
3664
3665         * openfile.c (try_make_homedir): Changes for non-Posix systems.
3666         * g10.c (main): Take the default homedir from macro.
3667
3668         * g10.c: The --trusted-key option is back.
3669         * trustdb.c (verify_own_key): Handle this option.
3670         (add_ultimate_key): Moved stuff from verify_own_key to this new func.
3671         (register_trusted_key): New.
3672
3673 Fri Aug 25 16:05:38 CEST 2000  Werner Koch  <wk@openit.de>
3674
3675         * parse-packet.c (dump_sig_subpkt): Print info about the ARR.
3676
3677         * openfile.c (overwrite_filep): Always return okay if the file is
3678         called /dev/null. 
3679         (make_outfile_name): Add ".sign" to the list of know extensions.
3680         (open_sigfile): Ditto.
3681
3682 Wed Aug 23 19:52:51 CEST 2000  Werner Koch  <wk@openit.de>
3683
3684         * g10.c: New option --allow-freeform-uid. By Jeroen C. van Gelderen.
3685         * keygen.c (ask_user_id): Implemented here.
3686
3687 Fri Aug  4 14:23:05 CEST 2000  Werner Koch  <wk@openit.de>
3688
3689   * status.c (do_get_from_fd): Ooops, we used fd instead of opt.command_fd.
3690   Thanks to Michael Tokarev.
3691
3692 Tue Aug  1 20:06:23 CEST 2000  Werner Koch  <wk@openit.de>
3693
3694   * g10.c: New opttion --try-all-secrets on suggestion from Matthias Urlichs.
3695   * pubkey-enc.c (get_session_key): Quite easy to implement here.
3696
3697 Thu Jul 27 17:33:04 CEST 2000  Werner Koch  <wk@openit.de>
3698
3699   * g10.c: New option --merge-only.  Suggested by Brendan O'Dea.
3700   * import.c (import_one): Implemented it here
3701   (import_secret_one): Ditto.
3702   (print_stats): and give some stats.
3703
3704 Thu Jul 27 12:01:00 CEST 2000  Werner Koch  <wk@openit.de>
3705
3706   * g10.c: New options --show-session-key and --override-session-key
3707   * pubkey-enc.c (hextobyte): New.
3708   (get_override_session_key): New.
3709   * mainproc.c (proc_pubkey_enc): Add session-key stuff.
3710   * status.h, status.c (STATUS_SESSION_KEY): New.
3711
3712 Thu Jul 27 10:02:38 CEST 2000  Werner Koch  <wk@openit.de>
3713
3714   * g10.c (main): Use setmode(O_BINARY) for MSDOS while generating random bytes
3715   (print_mds): Likewise for stdin.
3716   * plaintext.c (handle_plaintext): Likewise for stdout.
3717
3718 Mon Jul 24 10:30:17 CEST 2000  Werner Koch  <wk@openit.de>
3719
3720   * keyedit.c (menu_expire): expire date for primary key can be set again.
3721
3722 Wed Jul 19 11:26:43 CEST 2000  Werner Koch  <wk@openit.de>
3723
3724   * keylist.c (is_uid_valid): New.
3725   (list_keyblock): Print validity information for all user IDs.  Note, this
3726   has to be done at other places too; for now we have only minimal support.
3727
3728 Wed Jul 12 13:32:06 CEST 2000  Werner Koch  <wk@openit.de>
3729
3730   * helptext.c, pkclist.c: s/superseeded/superseded/
3731
3732 Mon Jul 10 16:08:57 CEST 2000  Werner Koch  <wk@openit.de>
3733
3734   * parse-packet.c (enum_sig_subpkt): Fixed testing on crtitical bit in case
3735   of a NULL buffer.  Reported by Peter Marschall.
3736
3737 Wed Jul  5 13:28:45 CEST 2000  Werner Koch  <wk@openit.de>
3738
3739   * keyedit.c, keyid.c: Add some _()
3740
3741   * argparse.c:  Changed the flag to suppress --version handling to also
3742   suppress --help.
3743
3744 Wed Jun 28 11:54:44 CEST 2000  Werner Koch  <wk@openit.de>
3745
3746   * armor.c (armor_filter): Set sigclass to 0 in case of non-dash-escaped
3747   clearsig.  This makes this mode work again.
3748
3749   * mainproc.c (proc_tree): Fixed handling of one-pass-sig packets in textmode.
3750   Disabled the ugly workaround for PGP 5 - let's see whether thi breaks less
3751   cases. Found by Ted Cabeen.
3752
3753   * options.h (DBG_HASHING): New.  All commented md_start_debug are now
3754   controlled by this debug option.
3755
3756   * sign.c (print_status_sig_created): New and called from 2 places.
3757
3758   * keygen.c (gen_rsa): New, but commented.
3759   (ask_algo): Commented support for RSA.
3760
3761   * seckey-cert.c (protect_secret_key): Started to fix the code for v4 RSA
3762   keys - it is not solved yet. However, we have time until, Sep 20th ;)
3763
3764 Wed Jun 14 12:27:09 CEST 2000  Werner Koch  <wk@openit.de>
3765
3766   * status.c (init_shm_coprocessing): Changed the sequence of the get,attach
3767   to cope with the changes in newer Linux kernels.  This bug has been found
3768   by <dmitri@advantrix.com> who also proposed this solution.  Hopefully
3769   this does not break gpg on to many systems.
3770
3771   * cipher.c (write_header): Protect the IV with the MDC too.
3772   * encr-data.c (decrypt_data): Likewise.
3773
3774 Fri Jun  9 10:09:52 CEST 2000  Werner Koch  <wk@openit.de>
3775
3776   * g10.c: New options --no-auto-key-retrieve
3777   * options.h (auto_key_retrieve): New.
3778   * mainproc.c (check_sig_and_print): Implemented that.
3779
3780 Wed Jun  7 19:19:09 CEST 2000  Werner Koch  <wk@openit.de>
3781
3782   * sig-check.c (do_check): Use EMULATE_MDENCODE also on v4 packets.
3783
3784 Wed Jun  7 17:25:38 CEST 2000  Werner Koch  <wk@openit.de>
3785
3786   * cipher.c (write_header): Use plain CFB mode for MDC encrypted packets.
3787   * encr-data.c (decrypt_data): Ditto.
3788
3789 Mon Jun  5 23:41:54 CEST 2000  Werner Koch  <wk@openit.de>
3790
3791   * seskey.c (do_encode_md, encode_md_value): Add new arg v3compathack to work
3792   around a bug in old versions.
3793   * sig-check.c (do_check): use the aboved workaround when enabled.
3794   * g10.c: New option --emulate-md-decode-bug
3795
3796 Mon Jun  5 12:37:43 CEST 2000  Werner Koch  <wk@openit.de>
3797
3798   * build-packet.c (do_mdc): New.
3799   (do_encrypted_mdc): Changed for the new proposal.
3800   * parse-packet.c (parse_mdc): New.
3801   (parse_encrypted): Fixed for the new proposal.
3802   * packet.h (PKT_MDC): New.
3803   * cipher.c (cipher_filter): Build the MDC packet here.
3804   * g10.c (main): Enable --force-mdc.
3805   * encr-data.c (mdc_decode_filter): Fixed for new MDC method
3806
3807   * options.h(rfc2440): New.
3808   * g10.c (main): Changed the selected values for --openpgp to not include
3809   optional algorithms.
3810
3811 Thu May 18 11:38:54 CEST 2000  Werner Koch  <wk@openit.de>
3812
3813         * keyedit.c (keyedit_menu): Add a keyword arg to the prompt.
3814
3815         * status.c, status.h: Added 3 new status tokens.
3816         * status.c (do_get_from_fd): New.
3817         (cpr_enabled,cpr_get,cpr_get_hidden,cpr_kill_prompt,
3818          cpr_get_answer_is_yes,cpr_get_answer_yes_no_quit): Modified to work
3819          with the new function.
3820         * g10.c: Add new option --command-fd.
3821
3822         * status.c (progress_cb): New.
3823         (set_status_fd): Register progress functions
3824
3825 Fri May 12 14:01:20 CEST 2000  Werner Koch  <wk@openit.de>
3826
3827         * delkey.c (delete_key): Add 2 new status messages
3828         * status.c, status.h (STATUS_DELETE_PROBLEM): New.
3829
3830         Fixed years of copyright in all source files.
3831
3832 Mon May  1 17:08:14 CEST 2000  Werner Koch  <wk@openit.de>
3833
3834         * trustdb.c (propagate_validity): Fixed the bug that only one uid
3835         gets fully trusted even when all are signed by an ultimate key.
3836
3837 Mon May  1 15:38:04 CEST 2000  Werner Koch  <wk@openit.de>
3838
3839         * getkey.c (key_byname): Always returned a defined context.  Fixed
3840         a segv for invalid user id specifications. Reported by Walter Koch.
3841
3842         * getkey.c (get_user_id): I18ned "no user id" string. By Walter.
3843
3844         * pkclist.c (do_show_revocation_reason): Typo fixes.
3845         * helptext.c: Ditto.
3846
3847         * armor.c (armor_filter): Fixed some CRLF issues.  By Mike McEwan.
3848
3849 Fri Apr 14 19:37:08 CEST 2000  Werner Koch  <wk@openit.de>
3850
3851         * pkclist.c (do_show_revocation_reason): New.
3852         (show_revocation_reason): New and called at various places.
3853
3854         * g10.c (main): Fixed small typo.
3855
3856         * pkclist.c (do_we_trust): Act on always_trust but not for revoked
3857         keys. Suggested by Chip Salzenberg.
3858
3859         * g10.c: New option --lock-never.
3860
3861         * ringedit.c (get_writable_keyblock_file): New.
3862         * keygen.c (do_generate_keypair): Use this instead of the hardwired one.
3863
3864         * keygen.c (ask_user_id): Check that the email address is in the
3865         correct field.  Suggested by Christian Kurz.
3866
3867 Mon Apr 10 13:34:19 CEST 2000  Werner Koch  <wk@openit.de>
3868
3869         * keyedit.c (show_key_with_all_names): s/sbb/ssb/
3870
3871 Tue Mar 28 14:26:58 CEST 2000  Werner Koch  <wk@openit.de>
3872
3873         * trustdb.c (verify_own_keys): Do not print warning about unprotected
3874         key when in quiet mode.
3875
3876 Wed Mar 22 13:50:24 CET 2000  Werner Koch  <wk@openit.de>
3877
3878         * mainproc.c (print_userid): Do UTF8 conversion before printing.
3879         * import.c (import_one): Ditto.
3880         (import_secret_one): Ditto.
3881         (delete_inv_parts): Ditto.
3882
3883 Thu Mar 16 16:20:23 CET 2000  Werner Koch  <wk@openit.de>
3884
3885         * keylist.c (print_key_data): Handle a NULL pk gracefully.
3886
3887         * getkey.c (merge_one_pk_and_selfsig): Fixed silly code for
3888         getting the primary keys keyID but kept using the one from the
3889         subkey.
3890         * pubkey-enc.c (get_it): Print a note for expired subkeys.
3891
3892         * getkey.c (has_expired): New.
3893         (subkeys_expiretime): New.
3894         (finish_lookup): Check for expired subkeys needed for encryption.
3895         (merge_keys_and_selfsig): Fixed expiration date merging for subkeys.
3896
3897         * keylist.c (list_keyblock): Print expiration time for "sub".
3898         (list_one): Add missing merging for public keys.
3899         * mainproc.c (list_node): Ditto.
3900
3901 2000-03-14 13:49:38  Werner Koch  (wk@habibti.openit.de)
3902
3903         * keygen.c (keyedit_menu): Do not allow to use certain commands
3904         while the secret key is selected.
3905
3906 2000-03-09 12:53:09  Werner Koch  (wk@habibti.openit.de)
3907
3908         * keygen.c (ask_expire_interval): Movede parsig to ...
3909         (parse_expire_string): ... this new function. And some new control
3910         commands.
3911         (proc_parameter_file): Add expire date parsing.
3912         (do_generate_keypair): Allow the use of specified output files.
3913
3914 2000-03-08 10:38:38  Werner Koch  (wk@habibti.openit.de)
3915
3916         * keygen.c (ask_algo): Removed is_v4 return value and the commented
3917         code to create Elg keys in a v3 packet. Removed the rounding
3918         of key sizes here.
3919         (do_create): Likewise removed arg v4_packet.
3920         (gen_elg): Likewise removed arg version. Now rounding keysizes here.
3921         (gen_dsa): Rounding keysize now here.
3922         (release_parameter_list): New
3923         (get_parameter*): New.
3924         (proc_parameter_file): New.
3925         (read_parameter_file): New.
3926         (generate_keypair): Splitted. Now uses read_parameter_file when in
3927         batch mode.  Additional argument to specify a parameter file.
3928         (do_generate_keypair): Main bulk of above fucntion and uses the
3929         parameter list.
3930         (do_create): Don't print long notice in batch mode.
3931         * g10.c (main): Allow batched key generation.
3932
3933 Thu Mar  2 15:37:46 CET 2000  Werner Koch  <wk@gnupg.de>
3934
3935         * pubkey-enc.c (get_it): Print a note about unknown cipher algos.
3936
3937         * g10.c (opts): Add a note to the help listing about the man page
3938         and removed some options from the help listing.
3939
3940         * keyedit.c (print_and_check_one_sig): Use a new function to truncate
3941         the output of the user ID.  Suggested by Jan-Benedict Glaw.
3942
3943 Wed Feb 23 10:07:57 CET 2000  Werner Koch  <wk@gnupg.de>
3944
3945         * helptext.c: typo fix.
3946
3947 Thu Feb 17 13:39:32 CET 2000  Werner Koch  <wk@gnupg.de>
3948
3949         * revoke.c: Removed a bunch of commented code.
3950
3951         * packet.h (SIGSUBPKT_REVOC_REASON): New.
3952         * build-packet.c (build_sig_subpkt): Support new sub packet.
3953         * parse-packet.c (parse_one_sig_subpkt): Ditto.
3954         (dump_sig_subpkt): Ditto.
3955         * revoke.c (ask_revocation_reason): New.
3956         (release_revocation_reason_info): New.
3957         (revocation_reason_build_cb): New.
3958         (gen_revoke): Ask for reason.
3959         * main.h (struct revocation_reason_info): Add declaration.
3960         * keyedit.c (menu_revsig): Add support for revocation reason.
3961         (menu_revkey): Ditto.
3962         (sign_uid_mk_attrib): Renamed to ...
3963         (sign_mk_attrib): ... this, made static and add support for reasons.
3964
3965 Tue Feb 15 08:48:13 CET 2000  Werner Koch  <wk@gnupg.de>
3966
3967         * build-packet.c (build_packet): Fixed fixing of old comment packets.
3968
3969         * import.c (import_keys): Fixed importing from stdin when called with
3970         nnames set to zero as it normally happens.
3971
3972 Mon Feb 14 14:30:20 CET 2000  Werner Koch  <wk@gnupg.de>
3973
3974         * sig-check.c (check_key_signature2): Add new arg r_expired.
3975         (do_signature_check): New arg to pass it down to ...
3976         (do_check): New arg r-expire which is set when the signature
3977         has expired.
3978         * trustdb.c (check_sig_record): Set SIGF_EXPIRED flag and set
3979         the expiretime to zero so that thi signature will not be checked
3980         anymore.
3981
3982 Fri Feb 11 17:44:40 CET 2000  Werner Koch  <wk@gnupg.de>
3983
3984         * g10.c (g10_exit): Update the random seed_file.
3985         (main): Set the random seed file.  New option --no-random-seed-file.
3986
3987 Thu Feb 10 17:39:44 CET 2000  Werner Koch  <wk@gnupg.de>
3988
3989         * keyedit.c (menu_expire): Fixed segv due to unitialized sub_pk.
3990         By Rémi.
3991
3992 Thu Feb 10 11:39:41 CET 2000  Werner Koch  <wk@gnupg.de>
3993
3994         * keylist.c (list_keyblock): Don't print warnings in the middle of
3995         regulat output lines.  By Rémi.
3996
3997         * sig-check.c: Include options.h
3998
3999 Wed Feb  9 15:33:44 CET 2000  Werner Koch  <wk@gnupg.de>
4000
4001         * gpg.c: New option --ignore-time-conflict
4002         * sig-check.c (do_check): Implemented this option.
4003         * trustdb.c (check_trust): Ditto.
4004         * sign.c (do_sign): Ditto.
4005         * keygen.c (generate_subkeypair): Ditto.
4006
4007         * encode.c (encode_simple): use iobuf_cancel after open failure.
4008         Reported by Huy Le.
4009
4010 Fri Jan 14 18:32:01 CET 2000  Werner Koch  <wk@gnupg.de>
4011
4012         * packet.h (STRING2KEY): Changed mode from byte to int.