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