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