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