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