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