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