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