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