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