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