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