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