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