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