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