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