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