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