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