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