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