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