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