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