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