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