Make gpg not depend on the RIPE-MD160 implementaion in Libgcrypt.
[gnupg.git] / g10 / ChangeLog
1 2008-12-11  Werner Koch  <wk@g10code.com>
2
3         * sig-check.c (signature_check2): Change algorithm used to compute
4         the SIG_ID.
5         (check_revocation_keys): Close message digest.
6
7         * rmd160.c, rmd160.h: New.  Based on code from GnuPG-1.4.
8         * t-rmd160.c: New.
9         * Makefile.am: Add support to run tests.
10         * keyid.c (namehash_from_uid): Use rmd160_hash_buffer.
11
12 2008-12-10  Werner Koch  <wk@g10code.com>
13
14         * trustdb.h (NAMEHASH_HASH): Remove unsued constant.
15
16         * gpg.c (print_mds): Print RMD160 only is enabled.
17
18         * keygen.c (keygen_set_std_prefs): Include RMD160 only if
19         available.
20
21 2008-12-09  Werner Koch  <wk@g10code.com>
22
23         * gpg.c (main) [IS_DEVELOPMENT_VERSION]: Fix strusage use.
24
25 2008-12-09  Werner Koch  <wk@g10code.com>
26
27         * keygen.c (proc_parameter_file): Check that key and subkey usages
28         are allowed.
29
30 2008-12-09  David Shaw  <dshaw@jabberwocky.com>  (wk)
31
32         * trustdb.c (validate_one_keyblock): Fix the trust signature
33         calculations so that we lower the trust depth of signatures to fit
34         within the current chain, rather than discarding any signature
35         that does not fit within the trust depth.
36
37 2008-12-09  Werner Koch  <wk@g10code.com>
38
39         * keyserver.c (show_prompt): Flush stdout.
40
41         * gpg.c (open_info_file): Add arg BINARY and adjust callers.
42
43         * gpg.c (main): Call i18n_init before init_common_subsystems.
44         * gpgv.c (main): Ditto.
45
46         * keylist.c (set_attrib_fd): Do not close ATTRIB_FP if it is the
47         log stream. 
48         (set_attrib_fd) [W32]: Set to binary mode.
49         (dump_attribs): Flush the stream after writing.
50
51 2008-12-05  Werner Koch  <wk@g10code.com>
52
53         * call-agent.c (percent_plus_escape): Rename to
54         my_percent_plus_escape and also escape the percent character.
55         Change all callers.
56
57 2008-11-18  Werner Koch  <wk@g10code.com>
58
59         * gpg.c (build_lib_list): Remove.
60         (make_libversion): New.
61         (my_strusage): Use it.
62         * gpgv.c (make_libversion): New.
63         (my_strusage): Print libgcrypt version.
64
65 2008-11-13  Werner Koch  <wk@g10code.com>
66
67         * gpgv.c: Use new ARGPARSE macros and re-indent.
68
69 2008-11-11  Werner Koch  <wk@g10code.com>
70
71         * gpg.c (opts): Use new ARGPARSE macros for clarity.
72
73 2008-10-24  Werner Koch  <wk@g10code.com>
74
75         * keyedit.c (change_passphrase): Clear passphrase cache.
76
77 2008-10-20  Werner Koch  <wk@g10code.com>
78
79         * gpgv.c: Mark all args of the stub fucntions as unused.
80
81         * card-util.c (generate_card_keys): Remove unused arg SERIALNO and
82         adjust caller.
83         
84         * build-packet.c (write_sign_packet_header): Mark unused arg.
85         * gpg.c (gpg_init_default_ctrl, gpg_deinit_default_ctrl): Ditto.
86         * getkey.c (skip_unusable): Ditto.
87         (write_version): Ditto.
88         * keydb.c (keydb_locate_writable): Ditto.
89         * keyring.c (update_offset_hash_table): Ditto.
90         (keyring_lock): Ditto.
91         * misc.c (register_secured_file): Ditto.
92         (unregister_secured_file): Ditto.
93         (is_secured_file): Ditto.
94         (is_secured_filename): Ditto.
95         * parse-packet.c (parse_marker): Ditto.
96         (parse_key, parse_attribute): Ditto.
97         (parse_trust, parse_compressed, parse_mdc, parse_gpg_control): Ditto.
98         * cpr.c (progress_cb): Ditto.
99         * passphrase.c (passphrase_clear_cache): Ditto.
100         (ask_passphrase): Ditto.
101         * keyedit.c (keyedit_completion): Ditto.
102         * import.c (import_revoke_cert): Ditto.
103         (chk_self_sigs, delete_inv_parts, append_uid): Ditto.
104         (merge_sigs, merge_keysigs, append_key): Ditto.
105         * trustdb.c (list_trust_path): Ditto.
106         (enum_cert_paths, enum_cert_paths_print): Ditto.
107         * tdbdump.c (list_trustdb): Ditto.
108         * keygen.c (keygen_upd_std_prefs): Ditto.
109         (genhelp_factors): Ditto.
110         * call-agent.c (agent_scd_setattr): Ditto.
111         (agent_scd_writekey, agent_scd_change_pin, agent_scd_genkey): Ditto.
112         (agent_clear_pin_cache): Ditto.
113
114         * server.c (option_handler): Mark non yet used arg.
115         (input_notify, output_notify): Ditto.
116         (cmd_recipient, cmd_signer, cmd_encrypt, cmd_decrypt, cmd_verify) 
117         (cmd_sign, cmd_import, cmd_export, cmd_delkeys, do_listkeys) 
118         (cmd_genkey): Ditto.
119         * verify.c (gpg_verify): Ditto.
120
121 2008-10-17  Werner Koch  <wk@g10code.com>
122
123         * main.h (idea_cipher_warn): Use do while construct in place of an
124         empty definition.
125
126 2008-10-03  David Shaw  <dshaw@jabberwocky.com>
127
128         * main.h, mainproc.c (check_sig_and_print)
129         * keylist.c (list_keyblock_print)
130         * pkclist.c (do_edit_ownertrust)
131         * keyedit.c (menu_showphoto)
132         * photoid.c (generate_photo_id, show_photos)
133         * misc.c (pct_expando): Add %v and %V expandos so
134          that displaying photo IDs can show the attribute validity
135          tag (%v) and string (%V).  Originally by Daniel Gillmor.
136
137 2008-09-29  Werner Koch  <wk@g10code.com>
138
139         * gpg.c (main): Remove -sat kludge.  Note that we printed a
140         warning for two years.
141
142         * seskey.c (encode_md_value): Remove extra gcry_md_test_algo since
143         it is not needed with Libgcrypt 1.4.
144         * skclist.c (random_is_faked): Simplify.
145         * sign.c (match_dsa_hash): Remove runtime check for SHA224.
146         * gpg.c (print_mds): Use GCRY_MD_SHA224 constant.
147
148 2008-09-25  David Shaw  <dshaw@jabberwocky.com>
149
150         * keyedit.c (keyedit_menu): Fix bug where a modified keyring loses
151         its modified status after a "clean" or "minimize" that doesn't
152         need to do anything.
153
154 2008-09-25  Werner Koch  <wk@g10code.com>
155
156         * parse-packet.c (parse): Remove special treatment for compressed
157         new style packets.  Fixes bug#931.
158         
159         * card-util.c (change_pin): Support setting of the reset code.
160
161 2008-09-24  Werner Koch  <wk@g10code.com>
162
163         * call-agent.h (struct agent_card_info_s): Add field IS_V2.
164         * call-agent.c (learn_status_cb): That that field.
165
166         * card-util.c (change_pin): Rename first arg to UNBLOCK_v2 and use
167         it this way.
168         (card_edit): Add new command UNBLOCK.
169
170 2008-09-23  David Shaw  <dshaw@jabberwocky.com>
171
172         * pkclist.c (select_algo_from_prefs): Redo function to rank prefs
173         and pick a consensus winner across all keys.
174
175 2008-09-16  Werner Koch  <wk@g10code.com>
176
177         * card-util.c (fpr_is_ff): New.
178         (card_status): Do not print general key info for an all-ff fpr.
179         (change_login, change_private_do): Factor common code out to ...
180         (get_data_from_file): .. new.
181         (change_cert): New.
182         (card_edit): Add command "writecert".
183         * call-agent.c (writecert_parm_s): New.
184         (inq_writecert_parms, agent_scd_writecert): New.
185
186 2008-09-04  David Shaw  <dshaw@jabberwocky.com>
187
188         * keyserver.c (keyserver_import_cert): Allow keyserver URLs in
189         addition to full URLs in CERT records.
190
191 2008-08-11  Werner Koch  <wk@g10code.com>
192
193         * keygen.c (ask_expire_interval): Check for time overflow of an
194         u32.  Fixes bug #947.
195
196 2008-08-01  Werner Koch  <wk@g10code.com>
197
198         * tdbio.c (open_db) [!EROFS]: Move closing parens out of the
199         ifdef.  Reported by Ken Takusagawa.
200
201 2008-06-25  Marcus Brinkmann  <marcus@g10code.de>
202
203         * gpg.c (enum cmd_and_opt_values): Remove option
204         oEnableW32HandleTranslation.
205         (opts): Remove option --enable-w32-handle-translation.
206         (main): Remove variable w32_handle_translation.
207
208 2008-06-19  Werner Koch  <wk@g10code.com>
209
210         * gpg.c (gpgconf_list): Add "group".
211
212 2008-06-18  Marcus Brinkmann  <marcus@g10code.de>
213
214         * gpg.c (enum cmd_and_opt_values): New option
215         oEnableW32HandleTranslation.
216         (opts): New option --enable-w32-handle-translation.
217         (main): New variable w32_handle_translation to keep track of
218         option.
219
220 2008-06-16  Werner Koch  <wk@g10code.com>
221
222         * keygen.c (output_control_s): Add ASK_PASSPHRASE.
223         (read_parameter_file): Add commands %ask-passphrase and
224         %no-ask-passphrase.
225
226 2008-06-11  Werner Koch  <wk@g10code.com>
227
228         * gpg.c: Make --fixed-list-mode a dummy.
229         * options.h (struct): Removed FIXED_LIST_MODE.
230         * keyid.c (colon_strtime, colon_datestr_from_pk) 
231         (colon_datestr_from_sk, colon_datestr_from_sig) 
232         (colon_expirestr_from_sig): Remove fixed_list_mode case.
233         * keylist.c (list_keyblock_colon): Ditto.  Remove all now unsed
234         code and reindent.
235
236 2008-05-31  Werner Koch  <wk@g10code.com>
237
238         * keygen.c (ask_user_id): Change the string printed as header of
239         the user ID generation.  Use code to not break existing
240         translations.  Suggested by Eric Tetz.
241
242 2008-05-08  Werner Koch  <wk@g10code.com>
243
244         * sig-check.c (do_check_messages): Print a revocation diagnostic
245         in verbose mode.
246
247 2008-05-07  Werner Koch  <wk@g10code.com>
248
249         * gpg.c: New command --locate-keys.  New options --with-sig-list
250         and --with-sig-check.
251         * keylist.c (locate_one): New.
252         (public_key_list): Add arg LOCATE_MODE and use locate_one.
253         * getkey.c (get_pubkey_byname): Fix nodefault case.  Add option
254         RETCTX, change all callers.
255         (struct getkey_ctx_s): Add field extra_ptr;
256         (get_pubkey_end): Free it.
257
258 2008-04-18  Werner Koch  <wk@g10code.com>
259
260         * misc.c (map_cipher_openpgp_to_gcry, map_cipher_gcry_to_openpgp) 
261         (openpgp_cipher_test_algo): Add camellia-192.
262         (openpgp_cipher_blocklen): New.
263         * parse-packet.c (parse_key): Use new function here.
264
265 2008-04-15  David Shaw  <dshaw@jabberwocky.com>
266
267         * getkey.c (merge_selfsigs_subkey): If there are multiple 0x19
268         backsigs, take the most recent one.
269
270 2008-04-08  Werner Koch  <wk@g10code.com>
271
272         * options.h (opt): Add AKL_NODEFAULT and AKL_LOCAL.
273         * getkey.c (parse_auto_key_locate): Parse them.
274         (get_pubkey_byname): Implement them.  Add arg NO_AKL and use that
275         in all cases where a local key is expected.
276         * import.c (import_one): Fill in the fingerprint in all cases.
277         Use log_get_stream.
278         * keyserver.c (keyserver_import_pka): Set FPR to NULL on error.
279         Return G10ERR_NO_PUBKEY if no PKA info is available or no key URI
280         is given in the PKA record..
281         (keyserver_import_cert): Return G10ERR_NO_PUBKEY if a CERT record
282         was not found.
283
284         * getkey.c (get_pubkey_byname): Release FPR in the error case.
285         Continue with next mechanism on error.  Better diagnostics.
286
287 2008-04-07  Werner Koch  <wk@g10code.com>
288
289         * keyserver.c (parse_keyserver_uri): Allow a default host name.
290
291         * getkey.c (get_pubkey_byname): Replace sprintf by bin2hex.
292
293 2008-04-02  Werner Koch  <wk@g10code.com>
294
295         * gpg.c (main): Do not allow DSA2 with a too old Libgcrypt.
296
297 2008-03-26  Werner Koch  <wk@g10code.com>
298
299         * tdbio.c (lookup_hashtable): Make cmp args const.
300         (cmp_trec_fpr): Make FPR const.
301         (tdbio_search_trust_byfpr): Remove cast.
302
303 2008-03-25  Werner Koch  <wk@g10code.com>
304
305         * keyserver.c (parse_keyrec): Take care of char defaulting to
306         unsigned when using hextobyte.
307
308 2008-03-25  David Shaw  <dshaw@jabberwocky.com>  (wk)
309
310         * import.c (collapse_uids): Fix bug 894: possible memory
311         corruption around deduplication of user IDs.
312
313 2008-03-25  Werner Koch  <wk@g10code.com>
314
315         * parse-packet.c (parse_key): Parse a secret key encrypted with
316         Camellia.
317
318         * options.skel: Make the default keyserver keys.gnupg.net.
319
320 2008-03-18  Werner Koch  <wk@g10code.com>
321
322         * seckey-cert.c (do_check): Use GCRYMPI_FMT_PGP for v3 keys.
323         Reported by Petr Cerny.
324
325 2008-03-13  Werner Koch  <wk@g10code.com>
326
327         * passphrase.c (PROMPTSTRING): Change string to me more similar to
328         the X.509 prompt.
329
330 2008-02-26  Werner Koch  <wk@g10code.com>
331
332         * getkey.c (get_pubkey_byname): Fix comment.
333
334 2008-02-14  Werner Koch  <wk@g10code.com>
335
336         * call-agent.c (default_inq_cb): New.
337         (agent_learn, agent_scd_getattr, agent_scd_pksign) 
338         (agent_scd_pkdecrypt, agent_scd_change_pin, agent_scd_checkpin) 
339         (agent_get_passphrase, agent_clear_passphrase): Use new callback.
340         (inq_writekey_parms): Fall back to the new callback for other
341         inquiries. 
342         (start_agent): Tell agent that we accept pinentry notifications.
343
344 2008-02-11  Werner Koch  <wk@g10code.com>
345
346         * server.c (cmd_getinfo): New. 
347         (register_commands): Register GETINFO.
348
349 2008-02-09  Marcus Brinkmann  <marcus@g10code.de>
350
351         * gpg.c (main): New variable default_configname.  Use it if
352         save_configname is NULL (can happen if default configfile does
353         not exist).  Move default configname determination to ...
354         (get_default_configname): ... this new function.
355
356 2008-01-30  Werner Koch  <wk@g10code.com>
357
358         * keydb.c (maybe_create_keyring): Fixed last change.
359         * tdbio.c (tdbio_set_dbname): Also test for forward slash.
360
361 2008-01-29  Werner Koch  <wk@g10code.com>
362
363         * keydb.c (maybe_create_keyring): Take care of a missing slash.
364         (maybe_create_keyring) [W32]: Also test for forward slash.
365
366 2008-01-26  Werner Koch  <wk@g10code.com>
367
368         * card-util.c (get_manufacturer): Add vendor 0004.
369
370 2008-01-02  Werner Koch  <wk@g10code.com>
371
372         * gpg.c: Add --logger-file as an alias for log-file.
373
374 2007-12-14  Werner Koch  <wk@g10code.com>
375
376         * gpg.c (main): Set opt.no_homedir_creation during the first option
377         parsing pass.
378
379 2007-12-12  Werner Koch  <wk@g10code.com>
380
381         * misc.c (print_pubkey_algo_note): Print a warning if a type 20
382         key is used.
383         (openpgp_pk_test_algo, openpgp_pk_test_algo2) 
384         (openpgp_pk_algo_usage): Allow type 20 keys only in rfc2440 mode.
385
386 2007-12-12  David Shaw  <dshaw@jabberwocky.com>  (wk)
387
388         * trustdb.c (sanitize_regexp): New.  Protect against dangerous
389         regexps (malloc bombs) by force-commenting any characters aside
390         from the ones we explicitly want.
391         (check_regexp): Use it here before passing the regexp to
392         regcomp().
393
394 2007-12-12  Werner Koch  <wk@g10code.com>
395
396         * misc.c (map_cipher_openpgp_to_gcry): New.  Used to map Camellia
397         algorithms to Gcrypt.
398         (openpgp_cipher_test_algo): Call new map function.  Replace
399         all remaining calls to gcry_cipher_test_algo by a call to this.
400         (openpgp_cipher_algo_name): New.  Replace all remaining calls to
401         gcry_cipher_algo_name by a call to this.
402         (map_cipher_gcry_to_openpgp): New.
403         (string_to_cipher_algo): Use it.
404         * gpg.c (main): Print a warning if Camellia support is build in.
405         
406         * gpg.c (print_algo_names): New.  From the 1.4 branch by David.
407         (list_config): Use it here for the "ciphername" and "digestname"
408         config items so we can get a script-parseable list of the names.
409
410         * parse-packet.c (parse_onepass_sig): Sigclass is hex, so include
411         the 0x.
412
413         * sign.c (match_dsa_hash): Remove conditional builds dending on
414         USE_SHAxxx.  We don't need this becuase it can be expected that
415         libgcrypt provides it.  However we need to runtime test for SHA244
416         becuase that is only available with libgcrypt 2.4.
417
418 2007-12-11  Werner Koch  <wk@g10code.com>
419
420         * mainproc.c (proc_pubkey_enc): Allow type 20 Elgamal key for
421         decryption.
422
423 2007-12-10  Werner Koch  <wk@g10code.com>
424
425         * import.c (auto_create_card_key_stub): Do not clear the entire
426         fingerprint.  This finally makes the stub creation work.  My past
427         tests seemed to work because there was a key with a all zero
428         fingerprint available (Elgamal signing keys).
429
430 2007-12-08  Werner Koch  <wk@g10code.com>
431
432         * misc.c (openpgp_pk_algo_usage): Allow Elgamal type 20 for
433         encryption.
434
435 2007-12-04  Werner Koch  <wk@g10code.com>
436
437         * helptext.c (get_help_from_file): New.
438         (display_online_help): Use it to geting the help through a file.
439         (helptexts): Remove.
440
441 2007-12-03  Werner Koch  <wk@g10code.com>
442
443         * keygen.c (ask_key_flags): Add a translation remark and implement
444         a workaround.
445
446         * gpg.c (reopen_std): Moved to ../common and renamed to
447         gnupg_reopen_std.
448         
449         * gpg.c: Remove second inclusion of fcntl.h.
450
451 2007-11-19  Werner Koch  <wk@g10code.com>
452
453         * keyedit.c (keyedit_menu): String grammar fix.
454
455 2007-11-15  Werner Koch  <wk@g10code.com>
456
457         * gpg.c (main): New option --xauthority.
458         * call-agent.c (start_agent): Adjust changed start_new_gpg_agent.
459
460 2007-11-12  Werner Koch  <wk@g10code.com>
461
462         * cpr.c (do_get_from_fd): s/bool/getbool/ to overcome problems
463         with Mac OS 10.5 which seems to include stdbool.h silently.
464
465 2007-11-07  Werner Koch  <wk@g10code.com>
466
467         Replace all includes of errors.h by status.h (found in common/).
468
469         * status.h: Remove.
470         * status.h: Move prototypes to main.h.
471         * status.c:  Rename to ..
472         * cpr.c: .. this.
473         (get_status_string): Remove.  We take this now from common/.
474
475 2007-10-25  David Shaw  <dshaw@jabberwocky.com>  (wk)
476
477         From 1.4 (October):
478
479         * gpg.c (main): Add --require-cross-certification to
480         --openpgp/--rfc4880 mode.
481
482         * gpg.c (main): Disable --rfc2440-text and --force-v3-sigs by
483         default.  Enable --require-cross-certification by default.
484         --openpgp (--rfc4880) is the same as --rfc2440 except with
485         "--enable-dsa2 --no-rfc2440-text --escape-from-lines".
486
487         * misc.c (compliance_option_string, compliance_failure): Minor
488         cleanup.
489
490         * armor.c (is_armor_header): Comment about 4880.
491
492         * options.h, gpg.c (main): Add --rfc4880, and make --openpgp an
493         alias to it.  --rfc2440 now stands alone.  For now, use the old
494         2440 defaults for 4880.
495         * misc.c (compliance_option_string): Ditto.
496         
497         * keyedit.c (keyedit_menu): Use compliance_option_string() instead
498         of printing the compliance modes here.
499
500 2007-10-25  David Shaw  <dshaw@jabberwocky.com>  (wk)
501
502         From 1.4 (September):
503
504         * import.c (collapse_uids): Significant speedup for de-duping user
505         IDs.
506
507 2007-10-25  David Shaw  <dshaw@jabberwocky.com>  (wk)
508
509         From 1.4 (July):
510         
511         * armor.c (parse_header_line): Improve test so that the header
512         test only allows "Hash" in the signed data section.
513
514         * armor.c (is_armor_tag): New.  Detect if an armor header matches
515         2440bis-21.
516         (parse_header_line): Call it here, as bis-21 requires warning the
517         user (but continuing to process the message) when seeing an
518         unknown header.
519
520         * encode.c (encode_crypt): Missed one call to
521         setup_plaintext_name().  This is bug#809.
522
523         * sign.c (mk_notation_policy_etc): Expect all sigs that this is
524         called for are >=v4.
525         (write_signature_packets, make_keysig_packet): Only call it for
526         >=v4 sigs.  This allows --force-v3-sigs and --force-v4-certs to
527         enable or disable notations, policies, and keyserver URLs.  This
528         is bug#800.
529
530 2007-10-19  Werner Koch  <wk@g10code.com>
531
532         * passphrase.c (passphrase_get): Use new utf8 switching fucntions.
533
534 2007-09-14  Werner Koch  <wk@g10code.com>
535
536         * gpg.c (build_lib_list): New.
537         (my_strusage): Print lib info.
538
539 2007-08-27  Werner Koch  <wk@g10code.com>
540
541         * trustdb.c (USE_INTERNAL_REGEX): Remove support.
542
543 2007-08-24  Werner Koch  <wk@g10code.com>
544
545         * keyring.c (keyring_register_filename): Use same_file_p().
546
547 2007-08-21  Werner Koch  <wk@g10code.com>
548
549         * misc.c (openpgp_md_test_algo): Remove rfc2440bis hash algorithms.
550         (openpgp_cipher_test_algo): Likewise for algos 5 and 6.
551
552 2007-08-02  Werner Koch  <wk@g10code.com>
553
554         * gpg.c: Include gc-opt-flags.h and remove their definition here.
555
556 2007-07-17  Werner Koch  <wk@g10code.com>
557
558         * gpg.c (gpgconf_list): Declare --encrypt-to and --default-key.
559
560         * card-util.c (get_manufacturer): Add the unmanaged S/N range.
561
562 2007-07-12  Werner Koch  <wk@g10code.com>
563
564         * gpg.c (main): Use translate_sys2libc_fd_int when passing an int
565         value.
566         * gpgv.c (main): Ditto.
567
568 2007-07-05  Werner Koch  <wk@g10code.com>
569
570         * card-util.c (card_generate_subkey, card_store_subkey): Enable
571         the code also for GnuPG-2.
572
573         * keygen.c (make_backsig): Add arg TIMESTAMP.
574         (write_keybinding): Add arg TIMESTAMP, pass it to make_backsig.
575         (write_direct_sig, write_selfsigs): Add arg TIMESTAMP.
576         (gen_elg, gen_dsa, gen_rsa): Add arg TIMESTAMP.
577         (do_create): Ditto.
578         (do_generate_keypair): Use the same timestamp for key creation
579         time and all key signatures. Return an error if write_direct_sig
580         for the secret key fails.
581         (generate_subkeypair): Ditto.
582         (gen_card_key): New arg TIMESTAMP.
583         (generate_card_subkeypair): Pass current time to gen_card_key.
584         (gen_card_key_with_backup): New arg TIMESTAMP.
585         (read_parameter_file): Add option Creation-Date.
586         (parse_creation_string): New.
587         (do_generate_keypair): Use the Creation-Date if available.
588         (save_unprotected_key_to_card): Use P for P and not D.
589         * call-agent.c (agent_scd_genkey): Add arg CREATETIME.
590         * keyedit.c (menu_backsign): Use the same timestamp for all backsigs.
591
592 2007-06-26  Werner Koch  <wk@g10code.com>
593
594         * openfile.c (try_make_homedir): Support W32; use standard_homedir.
595
596 2007-06-25  Werner Koch  <wk@g10code.com>
597
598         * gpg.c, gpgv.c: Include sysutils.h.
599         (main): Replace iobuf_translate_file_handle by
600         translate_sys2libc_fd.
601         
602
603 2007-06-21  Werner Koch  <wk@g10code.com>
604
605         * main.h: Include util.h.
606
607         * call-agent.c (start_agent): Factored almost all code out to
608         ../common/asshelp.c.
609
610         * gpg.h (ctrl_t): Remove.  It is now declared in ../common/util.h.
611
612 2007-06-20  Werner Koch  <wk@g10code.com>
613
614         * misc.c (setsysinfo, trap_unaligned): Remove.  It is also in
615         common/sysutils.c.
616         (disable_core_dumps, get_session_marker): 
617
618         * sign.c (sleep): Remove sleep wrapper.
619
620 2007-06-18  Marcus Brinkmann  <marcus@g10code.de>
621
622         * gpg.c (gpgconf_list): Percent escape output of --gpgconf-list.
623
624 2007-06-14  Werner Koch  <wk@g10code.com>
625
626         * call-agent.c (start_agent): Use gnupg_module_name.
627
628 2007-06-12  Werner Koch  <wk@g10code.com>
629
630         * openfile.c (copy_options_file): Use gnupg_datadir.
631         * misc.c (get_libexecdir): Remove.  Changed all callers to use
632         gnupg_libexecdir.
633         * gpg.c (check_permissions): Use gnupg_libdir.
634
635         * gpg.c (main): Replace some calls by init_common_subsystems.
636         * gpgv.c (main): Ditto.
637
638 2007-06-11  Werner Koch  <wk@g10code.com>
639
640         * Makefile.am (needed_libs): Use libcommonstd macro.
641
642         * gpgv.c (main) [W32]: Call pth_init.
643         * gpg.c (main) [W32]: Call pth_init.
644
645 2007-06-08  Werner Koch  <wk@g10code.com>
646
647         * Makefile.am (gpg2_LDADD): Syntax fix.
648
649 2007-06-06  Werner Koch  <wk@g10code.com>
650
651         * passphrase.c (passphrase_get) [!ENABLE_NLS]: Do not define
652         orig_codeset.
653
654         * Makefile.am (gpgv2_LDADD, gpg2_LDADD): Include LDADD before
655         libgcrypt.
656
657         * plaintext.c (handle_plaintext): Replace eof by eof_seen as W32's
658         io.h has a symbol with that name.
659
660         * misc.c: Do not include dynload.h.
661         (w32_shgetfolderpath): Remove. It is now in common/homedir.c.
662
663         * gpgv.c (i18n_init): Remove.
664         * gpg.c (i18n_init): Remove.
665         (main): Make --load-extension a dummy
666
667 2007-05-19  Marcus Brinkmann  <marcus@g10code.de>
668
669         * passphrase.c (passphrase_get): Use PACKAGE_GT, not PACKAGE.
670
671         * passphrase.c (passphrase_get): Free ORIG_CODESET on error.
672
673 2007-05-16  Werner Koch  <wk@g10code.com>
674
675         * sig-check.c (check_backsig): Check the digest algorithm before
676         using it.  Fixed bug 797.
677
678 2007-05-09  Werner Koch  <wk@g10code.com>
679
680         * openfile.c (overwrite_filep, open_outfile) [W32]: Need to use
681         just "nul".  Though, I am pretty sure that some MSDOS versions
682         grok the extra /dev/.
683
684 2007-05-07  Werner Koch  <wk@g10code.com>
685
686         * openfile.c (open_outfile, overwrite_filep) [W32]: Use "/dev/nul".
687
688 2007-05-02  David Shaw  <dshaw@jabberwocky.com>
689
690         * packet.h, mainproc.c (reset_literals_seen): New function to
691         reset the literals count.
692
693         * verify.c (verify_one_file), decrypt.c (decrypt_messages): Call
694         it here so we allow multiple literals in --multifile mode (in
695         different files - not concatenated together).
696
697 2007-04-26  Marcus Brinkmann  <marcus@g10code.de>
698
699         * passphrase.c (passphrase_to_dek): Write missing passphrase
700         status message in case of cancellation.
701
702 2007-04-16  Werner Koch  <wk@g10code.com>
703
704         * build-packet.c (mpi_write): Made buffer a bit larger.  Reported
705         by Alexander Feigl.
706
707 2007-04-13  Werner Koch  <wk@g10code.com>
708
709         * call-agent.c (start_agent): Don't use log_error when using the
710         fallback hack to start the agent.  This is bug 782.
711
712 2007-04-05  David Shaw  <dshaw@jabberwocky.com>
713
714         From STABLE-BRANCH-1-4
715
716         * parse-packet.c (parse_marker): New.  Enforce that the marker
717         contains 'P', 'G', 'P', and nothing but.
718         (parse): Call it here.
719         (skip_packet): No longer need to handle marker packets here.
720
721 2007-03-14  David Shaw  <dshaw@jabberwocky.com>
722
723         From STABLE-BRANCH-1-4
724
725         * keyserver.c: Windows Vista doesn't grok X_OK and so fails
726         access() tests.  Previous versions interpreted X_OK as F_OK
727         anyway, so we'll just use F_OK directly.
728
729 2007-03-09  David Shaw  <dshaw@jabberwocky.com>
730
731         From STABLE-BRANCH-1-4
732
733         * parse-packet.c (parse_signature): It's hex.
734
735         * getkey.c (merge_selfsigs_subkey): Avoid listing the contents of
736         a backsig when list mode is on.  Noted by Timo Schulz.
737
738 2007-03-08  Werner Koch  <wk@g10code.com>
739
740         * plaintext.c (handle_plaintext): Add two extra fflush for stdout.
741
742 2007-03-08  David Shaw  <dshaw@jabberwocky.com>  (wk)
743
744         * keyedit.c (keyedit_menu): If we modify the keyblock (via
745         fix_keyblock() or collapse_uids()) make sure we reprocess the
746         keyblock so the flags are correct.  Noted by Robin H. Johnson.
747
748         * getkey.c (fixup_uidnode): Properly clear flags that don't apply
749         to us (revoked, expired) so that we can reprocess a uid.
750
751 2007-03-05  Werner Koch  <wk@g10code.com>
752
753         Converted this file to UTF-8.
754         
755         Ported David and my multiple messages changes from 1.4.7.
756
757         * options.h, gpg.c (main), mainproc.c (check_sig_and_print): Allow
758         multiple sig verification again as this is protected via the
759         multiple-messages code.  New option --allow-multiple-messages and
760         --no variant.
761         * status.h (STATUS_ERROR): New status code.
762         * status.c (get_status_string): Ditto.
763         * mainproc.c (proc_plaintext): Emit it if multiple messages are
764         detected. Error out if more than one plaintext packet is
765         encountered.    
766         * mainproc.c (literals_seen): New.
767
768 2007-02-26  Werner Koch  <wk@g10code.com>
769
770         * gpg.c (main): Add verify option show-primary-uid-only.
771         * options.h (VERIFY_SHOW_PRIMARY_UID_ONLY): New.
772         * mainproc.c (check_sig_and_print): Implement it.
773
774 2007-02-22  Werner Koch  <wk@g10code.com>
775
776         * encr-data.c (decrypt_data): Correctly test for unknown algorithm.
777         * import.c (check_prefs): Ditto.
778         * keyedit.c (show_prefs): Ditto.
779         * mainproc.c (proc_symkey_enc): Ditto.
780
781 2007-02-06  Werner Koch  <wk@g10code.com>
782
783         * export.c (do_export_stream): Allow reset-subkey-passwd along
784         with sexp-format.
785
786 2007-02-04  Werner Koch  <wk@g10code.com>
787
788         * parse-packet.c (parse_signature): Limit bytes read for an
789         unknown alogorithm.  Fixes Debian bug#402592.
790
791 2007-01-31  Werner Koch  <wk@g10code.com>
792
793         * verify.c (verify_signatures): Do no dereference a NULL afx.
794
795         * passphrase.c (passphrase_get): Set the cancel flag on all error
796         from the agent.  Fixes a bug reported by Tom Duerbusch.
797
798 2007-01-30  Werner Koch  <wk@g10code.com>
799
800         * status.c (write_status_begin_signing): New.
801         * sign.c (sign_file, sign_symencrypt_file): Call it.
802         * textfilter.c (copy_clearsig_text): Call it.
803
804         * call-agent.c (agent_scd_pksign): Pass --hash-rmd160 to SCD if
805         required.
806
807         * gpg.c (main): Let --no-use-agent and --gpg-agent-info print a
808         warning.  
809         * misc.c (obsolete_option): New.
810
811 2007-01-29  Werner Koch  <wk@g10code.com>
812
813         * pkclist.c (do_we_trust_pre): Issue a user-id-hint status code. 
814
815 2007-01-15  Werner Koch  <wk@g10code.com>
816
817         * parse-packet.c (read_protected_v3_mpi): Make sure to stop
818         reading even for corrupted packets.
819         * keygen.c (generate_user_id): Need to allocate one byte more.
820         Reported by Felix von Leitner.
821
822 2006-12-21  Werner Koch  <wk@g10code.com>
823
824         * gpg.c (main): New command --server.
825         * gpg.h (struct server_control_s, ctrl_t): New.
826         * server.c: New.
827         * verify.c (gpg_verify): New.
828         * mainproc.c (mainproc_context): Made SIGNED_DATA a structure.
829         (proc_signature_packets_by_fd): New.
830         (proc_compressed_cb): Divert depending on SIGNED_DATA.
831         * plaintext.c (hash_datafile_by_fd): New.
832         * mainproc.c (proc_tree): Use it here.
833
834         * verify.c (verify_signatures): Init AFX only when needed.
835         Don't leak a context on error.
836         (verify_one_file): Don't leak a context on error.
837
838 2006-12-07  Werner Koch  <wk@g10code.com>
839
840         * openfile.c (copy_options_file): Use log_info instead of
841         log_error to avoid an error return of gpg due to a missing
842         skeleton file.
843
844 2006-12-07  David Shaw  <dshaw@jabberwocky.com>
845
846         * Makefile.am: Link to iconv for jnlib dependency.
847
848 2006-12-05  Werner Koch  <wk@g10code.com>
849
850         * passphrase.c (passphrase_to_dek): Handle a Cancel request
851         correctly.  [Bug#737]
852         * mainproc.c (proc_symkey_enc): Removed workaround for bogus cancel
853         processing.
854         * encode.c (encode_simple): Distinguish error message between
855         cancel and invalid passphrase.
856         (setup_symkey): Ditto.
857         * sign.c (sign_symencrypt_file): Ditto
858         * keyedit.c (change_passphrase): Allow cancellation.
859         * keygen.c (do_ask_passphrase): New arg R_CANCELED.
860         (generate_keypair): Handle a passphrase cancellation.
861         (generate_raw_key): Ditto.
862         (generate_subkeypair): Ditto.
863
864 2006-12-04  Werner Koch  <wk@g10code.com>
865
866         * filter.h (armor_filter_context_t): New element REFCOUNT.
867         * armor.c (armor_filter): Made static.
868         (push_armor_filter, release_armor_context, new_armor_context): New.
869         (armor_filter): Release the context.
870         * gpg.c (main): Use new armor context functions and
871         push_armor_filter.
872         * export.c (do_export): Ditto.
873         * encode.c (encode_simple, encode_crypt): Ditto.
874         * decrypt.c (decrypt_message, decrypt_messages): Ditto.
875         * dearmor.c (dearmor_file, enarmor_file): Ditto.
876         * verify.c (verify_signatures, verify_one_file): Ditto.
877         * sign.c (sign_file, clearsign_file, sign_symencrypt_file): Ditto.
878         * revoke.c (gen_desig_revoke, gen_revoke): Ditto.
879         * keyserver.c (keyserver_spawn): Ditto.
880         * keygen.c (output_control_s): Turn AFX fields into pointers.
881         (read_parameter_file): Allocate and release AFX fields.
882         (do_generate_keypair): Use push_armor_filter.
883         * import.c (import): Replace iobuf_push_filter2 hack by the new
884         armor context stuff.
885
886 2006-12-03  Werner Koch  <wk@g10code.com>
887
888         * filter.h: New element REFCOUNT.
889         (handle_progress): Remove prototype.
890         * progress.c (new_progress_context, release_progress_context): New.
891         (progress_filter): Use new function to release context.  Made static.
892         (handle_progress): Bumb reference counter.  No more check for
893         enabled progress as this is handled by new_progress_context.
894         * verify.c (verify_signatures, verify_one_file): Replace stack
895         based progress context by a heap based one.
896         * sign.c (sign_file, clearsign_file, sign_symencrypt_file): Ditto.
897         * plaintext.c (ask_for_detached_datafile, hash_datafiles): Ditto.
898         * encode.c (encode_simple, encode_crypt): Ditto.
899         * decrypt.c (decrypt_message, decrypt_messages): Ditto. 
900
901         * keyedit.c (menu_clean): Made strings translatable.
902
903 2006-12-03  David Shaw  <dshaw@jabberwocky.com>
904
905         * keyedit.c (menu_clean): Show "already minimized" rather than
906         "already clean" when a minimized key is minimized again.  From
907         Dirk Traulsen.
908
909 2006-12-02  David Shaw  <dshaw@jabberwocky.com>
910
911         * options.h, gpg.c (main), passphrase.c (passphrase_to_dek): Add
912         --passphrase-repeat option to control how many times gpg will
913         re-prompt for a passphrase to ensure the user has typed it
914         correctly.  Defaults to 1.
915
916 2006-12-02  Werner Koch  <wk@g10code.com>
917
918         * encr-data.c: Allocate DFX context on the heap and not on the
919         stack.  Changes at several places.  Fixes CVE-2006-6235.
920         
921 2006-11-27  Werner Koch  <wk@g10code.com>
922
923         * openfile.c (ask_outfile_name): Fixed buffer overflow occurring
924         if make_printable_string returns a longer string.  Fixes bug 728.
925
926 2006-11-21  Werner Koch  <wk@g10code.com>
927
928         * Makefile.am (needed_libs): libgnu needs to come after libcommon.
929
930         * keygen.c (ask_expire_interval): Print y2038 warning only for 32
931         bit time_t.
932         (save_unprotected_key_to_card): Made RSA_N_LEN et al a size_t.
933         Cast printf args.
934         (get_parameter_algo): Allow "ELG" as alias for "ELG-E".
935
936         * seckey-cert.c (do_check): Made NBYTES a size_t.
937         (do_check): Made NDATA a size_t.
938         (protect_secret_key): Made NARR a size_t.
939         (protect_secret_key): Made NVYES a size_t.
940         * pubkey-enc.c (get_it): Made INDATALEN a size_t. 
941         (get_it): Made NFRAME a size_t.
942         * keyid.c (hash_public_key): Made NBITS an unsigned int.
943         * misc.c (checksum_mpi): Made NBYTES a size_t. 
944         (openpgp_pk_test_algo2): Made USE_BUF a size_t.
945         * seskey.c (encode_session_key): Made NFRAME a size_t.
946         (do_encode_md): Ditto.
947         (encode_md_value): Cast size_t argument of printf.
948         (encode_md_value): Ditto.
949
950 2006-11-10  Werner Koch  <wk@g10code.com>
951
952         * parse-packet.c (mpi_read): Changed NREAD to size_t to match the
953         gcry_mpi-scan prototype. 
954         (mpi_read): Fixed double increment of bytes read to correctly
955         detect overlong MPIs.
956
957 2006-11-05  Werner Koch  <wk@g10code.com>
958
959         * gpg.c (main): Remove the default --require-cross-certification.
960         * options.skel: Enable require-cross-certification.
961
962 2006-10-31  Werner Koch  <wk@g10code.com>
963
964         * pkclist.c (warn_missing_aes_from_pklist): New.
965         * encode.c (encrypt_filter, encode_crypt): Use it here.
966
967 2006-10-27  Werner Koch  <wk@g10code.com>
968
969         * pkclist.c (warn_missing_mdc_from_pklist): New.
970         * encode.c (use_mdc): Use it here.
971
972 2006-10-24  Marcus Brinkmann  <marcus@g10code.de>
973
974         * Makefile.am (AM_CFLAGS): Add $(LIBASSUAN_CFLAGS).
975
976 2006-10-23  Werner Koch  <wk@g10code.com>
977
978         * gpg.c (main): New command --gpgconf-test.
979
980         * Makefile.am (bzip2_source): New.
981
982 2006-10-20  Werner Koch  <wk@g10code.com>
983
984         * getkey.c (classify_user_id): Reserve '&' for search by keygrip.
985
986 2006-10-19  Werner Koch  <wk@g10code.com>
987
988         * keygen.c (get_parameter_algo): Add special case for ELG_E which
989         is not supported by libgcrypt's mapping function.
990
991 2006-10-18  Werner Koch  <wk@g10code.com>
992
993         * keyid.c (v3_keyid): Don't use mempcy as we need to hold the
994         keyids in the native endian format.
995
996         * import.c (import_print_stats): Use log_printf.
997
998         * build-packet.c (do_public_key): Care about mpi_write errors.
999         (do_secret_key, do_pubkey_enc, do_signature): Ditto. 
1000         (mpi_write): Print an extra warning on error.
1001
1002 2006-10-17  Werner Koch  <wk@g10code.com>
1003
1004         * Makefile.am (LDADD): Replaced W32LIBS by NETLIBS.
1005
1006 2006-10-12  David Shaw  <dshaw@jabberwocky.com>
1007
1008         * parse-packet.c (parse_symkeyenc): Show the unpacked as well as
1009         the packed s2k iteration count.
1010
1011         * main.h, options.h, gpg.c (encode_s2k_iterations, main),
1012         passphrase.c (hash_passphrase): Add --s2k-count option to specify
1013         the number of s2k hash iterations.
1014
1015 2006-10-08  Werner Koch  <wk@g10code.com>
1016
1017         * gpgv.c: Remove the tty stubs as we are now required to link to
1018         tty anyway (it is included in libcommand and has dependencies to
1019         other modules as well).
1020
1021         * keyedit.c (keyedit_menu): Use keyedit_completion only if
1022         readline is available.  It would be better to move this code into
1023         gpgrlhelp.c
1024
1025 2006-10-06  Werner Koch  <wk@g10code.com>
1026
1027         * Makefile.am (AM_CFLAGS): Use PTH version of libassuan.
1028
1029 2006-10-06  David Shaw  <dshaw@jabberwocky.com>
1030
1031         * keyserver.c (keyserver_spawn): Write the 16-digit keyid rather
1032         than whatever key selector the user used on the command line.
1033
1034 2006-10-05  Werner Koch  <wk@g10code.com>
1035
1036         * status.c (progress_cb): Changed to libgcrypt API.
1037         (set_status_fd): Register the progress cb.
1038
1039         * seskey.c (encode_md_value): Check that the hash algo is valid
1040         before getting the OID. 
1041
1042 2006-10-04  Werner Koch  <wk@g10code.com>
1043
1044         * passphrase.c: Allow for a static passphrase in batch mode.
1045         
1046         * call-agent.c (agent_havekey): Removed.
1047         (percent_plus_escape): New.
1048         (agent_get_passphrase): New.
1049         (agent_clear_passphrase): New.
1050
1051         * passphrase.c: Changed so that we always require the agent.
1052         (agent_send_option, agent_send_all_options, agent_open): Removed.
1053         (agent_get_passphrase): Cleaned up.  Does now use the call-agent
1054         functions.  Renamed to
1055         (passphrase_get): .. this.  Changed all callers.
1056         (passphrase_clear_cache): Rewritten.
1057         (passphrase_to_dek, hash_passphrase): Re-indented.
1058
1059         * gpg.c (main): Made --use-agent a dummy option.
1060         * seckey-cert.c (check_secret_key): We require the agent, so always
1061         allow for 3 tries.
1062
1063         * gpg.c (main): Print a warning if -sat has been used.
1064         (main): Removed the special treatment of the -k option. -k is now
1065         an alias for --list-keys.
1066         (main): Removed --list-ownertrust.
1067
1068 2006-10-02  Werner Koch  <wk@g10code.com>
1069
1070         * encr-data.c (decrypt_data, mdc_decode_filter): Check the MDC
1071         right here and don't let parse-packet handle the MDC.
1072
1073 2006-09-29  Werner Koch  <wk@g10code.com>
1074
1075         * compress.c (do_uncompress): Removed use of Z_PARTIAL_FLUSH.
1076         This is outdated and old zlib versions which still require it have
1077         security problems.
1078
1079 2006-09-27  Werner Koch  <wk@g10code.com>
1080
1081         Replaced all STRLIST by strlist_t.
1082
1083 2006-09-21  Werner Koch  <wk@g10code.com>
1084
1085         * signal.c (got_fatal_signal): Replaced readline stuff by a tty
1086         function.
1087
1088         * Makefile.am (LDADD): Include libgpgrl.a.
1089
1090         * gpg.c (main): Call gpg_rl_initialize.
1091
1092         * keyedit.c: Removed double inclusion of stdio.h.
1093
1094 2006-09-20  Werner Koch  <wk@g10code.com>
1095
1096         * call-agent.c: Include asshelp.h.
1097         (start_agent): Use send_pinentry_environment.
1098
1099 2006-09-14  Werner Koch  <wk@g10code.com>
1100
1101         Replaced all call gpg_error_from_errno(errno) by
1102         gpg_error_from_syserror().
1103
1104 2006-09-13  Werner Koch  <wk@g10code.com>
1105
1106         * gpg.c (main): Made --require-cross-certification the default. 
1107
1108 2006-09-06  Marcus Brinkmann  <marcus@g10code.de>
1109
1110         * Makefile.am (gpg2_LDADD, gpgv2_LDADD): Replace -lassuan and
1111         -lgpg-error with $(LIBASSUAN_LIBS) and $(GPG_ERROR_LIBS).
1112         (AM_CFLAGS): Add $(LIBASSUAN_CFLAGS) and $(GPG_ERROR_CFLAGS).
1113
1114 2006-09-06  Werner Koch  <wk@g10code.com>
1115
1116         * gpg.c (main): Enable new assuan API.
1117         * call-agent.c: Changed to new Assuan API.
1118
1119 2006-09-01  Werner Koch  <wk@g10code.com>
1120
1121         * call-agent.c: Do not force using the pipe server.
1122
1123         * gpg.c (main): Enable card related commands.
1124
1125 2006-08-22  Werner Koch  <wk@g10code.com>
1126
1127         * mainproc.c (proc_plaintext): Fixed a #warning
1128
1129 2006-08-21  Werner Koch  <wk@g10code.com>
1130
1131         * skclist.c (random_is_faked): Implemented.
1132         (is_insecure): Also test for the old uppercase version of the
1133         insecure string.
1134         * gpg.c (main): Renamed --quick-random to debug-quick-quick-random.
1135
1136         * gpg.c (print_mds): Do not use the USE_SHA macros.
1137
1138         * mainproc.c (proc_encrypted): Remove assign inside condition for
1139         better readibility.
1140
1141         * packet.h: Moved consts to new header ../common/openpgpdefs.h.
1142
1143 2006-08-16  Werner Koch  <wk@g10code.com>
1144
1145         * keyserver.c (GPGKEYS_PREFIX): Rename to gpg2keys_.  This is so
1146         that we can install helpers from 1.4 and 2 without conflicts and
1147         first of all don't get lost with weird bug reports.
1148
1149         * keyid.c (serialno_and_fpr_from_sk): New. Actually lost during
1150         the last 1.4 to 1.9 merge.
1151
1152         * gpg.c (list_config): Output ccid-reader-id only for gnupg 1.
1153
1154         * call-agent.c (agent_scd_writekey): New.
1155         (inq_writekey_parms): New.
1156
1157         * gpgv.c: Include call-agent.h for use by stubs.
1158
1159         * misc.c: Include call-agent.h for use by get_signature_count.
1160
1161 2006-07-27  Werner Koch  <wk@g10code.com>
1162
1163         * parse-packet.c (parse_comment): Cap comments at 65k.
1164         (parse_gpg_control): Skip too large control packets.
1165
1166 2006-07-24  David Shaw  <dshaw@jabberwocky.com>  (wk)
1167  
1168         * keydb.h, pkclist.c (select_algo_from_prefs, algo_available):
1169         Pass a union for preference hints rather than doing void * games.
1170
1171         * sign.c (sign_file): Use it here.
1172
1173         * sign.c (sign_file): When signing with multiple DSA keys, one
1174         being DSA1 and one being DSA2 and encrypting at the same time, if
1175         the recipient preferences give a hash that can work with the DSA2
1176         key, then allow the DSA1 key to be promoted rather than giving up
1177         and using hash_for().
1178
1179         * pkclist.c (algo_available): Automatically enable DSA2 mode when
1180         handling a key that clearly isn't DSA1 (i.e. q!=160).
1181
1182 2006-06-30  Werner Koch  <wk@g10code.com>
1183
1184         * misc.c (checksum_mpi): No need for nbits as they are alredy
1185         included in the buffer.
1186
1187 2006-06-29  Werner Koch  <wk@g10code.com>
1188
1189         * parse-packet.c (parse_signature, parse_key): Need store the
1190         length of opaque data as number of bits. 
1191         * card-util.c (card_store_subkey): Ditto.
1192
1193         * mainproc.c (print_pkenc_list, check_sig_and_print): Replaced
1194         log_get_stream by calls to log_printf.  This avoids the extra LFs
1195         inserted by the logging function. They are a bit too smart
1196         sometimes.
1197         * pkclist.c (do_show_revocation_reason): Print final LF through
1198         log_printf to avoid extra LFs.
1199         * pubkey-enc.c (get_it): Ditto.
1200
1201         * seskey.c (encode_md_value): Fix call to gcry.
1202
1203 2006-06-27  Werner Koch  <wk@g10code.com>
1204
1205         Applied patches from 1.4.x (2006-05-22 to 2006-06-23) from David:
1206
1207         * keygen.c (keygen_upd_std_prefs, keygen_add_std_prefs)
1208         (proc_parameter_file): Add --default-keyserver-url to specify a
1209         keyserver URL at key generation time, and "Keyserver:" keyword for
1210         doing the same through a batch file.
1211         * options.h, gpg.c (main): Ditto.
1212
1213         * sign.c (do_sign): For now don't accept a truncated hash even
1214         for DSA1 keys (be liberal in what you accept, etc).
1215
1216         * import.c (import_one): Add a flag (from_sk) so we don't check
1217         prefs on an autoconverted public key.  The check should only
1218         happen on the sk side.  Noted by Dirk Traulsen.
1219
1220         * keygen.c (gen_card_key): Add optional argument to return a
1221         pointer (not a copy) of the stub secret key for the secret key we
1222         just generated on the card.
1223         (generate_card_subkeypair): Use it here so that the signing key on
1224         the card can use the card to generate the 0x19 backsig on the
1225         primary key.  Noted by Janko Heilgeist and Jonas Oberg.
1226
1227         * parse-packet.c (parse_user_id): Cap the user ID size at 2048
1228         bytes.  This prevents a memory allocation attack with a very large
1229         user ID.  A very large packet length could even cause the
1230         allocation (a u32) to wrap around to a small number.  Noted by
1231         Evgeny Legerov on full-disclosure.
1232
1233         * keygen.c (gen_dsa): Allow generating DSA2 keys.  Allow
1234         specifying sizes > 1024 when --enable-dsa2 is set.  The size of q
1235         is set automatically based on the key size.
1236         (ask_keysize, generate_keypair): Ask for DSA size when
1237         --enable-dsa2 is set.
1238
1239         * exec.c (make_tempdir) [W32]: Fix bug with a temporary directory
1240         on W32 that is over 256 bytes long.  Noted by Israel G. Lugo.
1241
1242         * gpg.c (reopen_std): New function to reopen fd 0, 1, or 2 if we
1243         are called with them closed.  This is to protect our
1244         keyring/trustdb files from corruption if they get attached to one
1245         of the standard fds.  Print a warning if possible that this has
1246         happened, and fail completely if we cannot reopen (should never
1247         happen).
1248         (main): Call it here.
1249         
1250         * parse-packet.c (dump_sig_subpkt, parse_signature): Fix meaning
1251         of key expiration and sig expiration subpackets - zero means
1252         "never expire" according to 2440, not "expire instantly".
1253         * build-packet.c (build_sig_subpkt_from_sig): Ditto.
1254         * getkey.c (fixup_uidnode, merge_selfsigs_main)
1255         (merge_selfsigs_subkey): Ditto.
1256         * keygen.c (keygen_add_key_expire): Ditto.
1257
1258         * getkey.c (get_pubkey_byname)
1259         * import.c (import_one): Fix key selection problem when
1260         auto-key-locate returns a list of keys, not all of which are
1261         usable (revoked, expired, etc).  Noted by Simon Josefsson.
1262
1263 2006-05-24  Werner Koch  <wk@g10code.com>
1264
1265         * keyid.c (hash_public_key): Do not double hash the length bytes,
1266         they are already included by mpi_print.
1267
1268         * misc.c (openpgp_pk_test_algo2): Get test call right.
1269
1270         * misc.c (string_to_cipher_algo, string_to_digest_algo): New.
1271         * keygen.c (keygen_set_std_prefs): use them here.
1272         * gpg.c (main): and here.
1273
1274 2006-05-23  Werner Koch  <wk@g10code.com>
1275
1276         * card-util.c (generate_card_keys): Removed temporary kludge for
1277         generate_keypair.
1278
1279         * call-agent.c (agent_scd_setattr): Add arg SERIALNO.
1280         (agent_scd_genkey): Ditto.
1281         (agent_scd_change_pin): Ditto.
1282
1283         * call-agent.h (struct agent_card_info_s): Updated to match the
1284         one of 1.4.3.
1285
1286         * Makefile.am (LDADD): Include ZLIBS.
1287
1288         * gpgv.c: Removed stubs not anymore useful due to libgcrypt.
1289
1290 2006-05-22  Werner Koch  <wk@g10code.com>
1291
1292         * keyserver.c (keyidlist): Replaced mpi_get_keyid by v3_keyid.
1293         * keydb.h (v3_keyid): Added.
1294
1295         * import.c (import): Better initialize KEYBLOCK as to quiet
1296         compiler warning.
1297
1298         * skclist.c (random_is_faked): New.
1299
1300         * mainproc.c: Include pka.h.
1301
1302 2006-05-19  Werner Koch  <wk@g10code.com>
1303
1304         * misc.c (openpgp_pk_test_algo2): Need to use gcry_pk_algo_info
1305         directly.
1306         (string_count_chr): New.
1307
1308         * armor.c (parse_header_line): Use renamed function
1309         length_sans_trailing_ws.
1310
1311         * options.h, gpg.c: Option --strict is not used thus removed code
1312         but kept option.
1313
1314 2006-04-28  David Shaw  <dshaw@jabberwocky.com>  (wk)
1315         
1316         * keyserver.c (direct_uri_map): New.
1317         (keyserver_spawn): Used here to add "_uri" to certain gpgkeys_xxx
1318         helpers when the meaning is different if a path is provided (i.e. 
1319         ldap).
1320         (keyserver_import_cert): Show warning if there is a CERT
1321         fingerprint, but no --keyserver set.
1322
1323         * keyserver.c: Fix build problem with platforms that stick libcurl
1324         in a place not in the regular include search path.
1325
1326         * options.h, gpg.c (main): Add --enable-dsa2 and --disable-dsa2.
1327         Defaults to disable.
1328
1329         * pkclist.c (algo_available): If --enable-dsa2 is set, we're
1330         allowed to truncate hashes to fit DSA keys.
1331
1332         * sign.c (match_dsa_hash): New.  Return the best match hash for a
1333         given q size.
1334         (do_sign, hash_for, sign_file): When signing with a DSA key, if it
1335         has q==160, assume it is an old DSA key and don't allow truncation
1336         unless --enable-dsa2 is also set.  q!=160 always allows truncation
1337         since they must be DSA2 keys.
1338         (make_keysig_packet): If the user doesn't specify a
1339         --cert-digest-algo, use match_dsa_hash to pick the best hash for
1340         key signatures.
1341
1342         * gpg.c (print_mds): Add SHA-224.
1343         * armor.c (armor_filter, parse_hash_header): Add SHA-224.
1344
1345         * sign.c (write_plaintext_packet):
1346         Factor common literal packet setup code from here, to...
1347         * encode.c (encode_simple): .. there.
1348         
1349         * main.h, plaintext.c (setup_plaintext_name): Here. New. Make sure
1350         the literal packet filename field is UTF-8 encoded.
1351
1352         * options.h, gpg.c (main): Make sure --set-filename is UTF-8
1353         encoded and note when filenames are already UTF-8.
1354
1355         * keyedit.c (menu_backsign): Give some more verbose errors when we
1356         have no need to backsign.
1357
1358         * getkey.c (parse_auto_key_locate): Fix dupe-removal code.
1359
1360         * keyedit.c (menu_backsign): Allow backsigning even if the secret
1361         subkey doesn't have a binding signature.
1362
1363         * armor.c (radix64_read): Don't report EOF when reading only a pad
1364         (=) character.  The EOF actually starts after the pad.
1365
1366         * gpg.c (main): Make --export, --send-keys, --recv-keys,
1367         --refresh-keys, and --fetch-keys follow their arguments from left
1368         to right.  Suggested by Peter Palfrader.
1369
1370 2006-04-18  Werner Koch  <wk@g10code.com>
1371
1372         * tdbio.c (open_db, migrate_from_v2): Removed feature to migration
1373         from old trustdb version 2.
1374
1375         * gpg.c, mainproc.c: Removed pipemode feature.
1376
1377         * status.c: Removed shared memory coprocess stuff
1378
1379         Merged with current gpg 1.4.3 code.
1380         
1381         * keygen.c, keyid.c, misc.c, openfile.c, verify.c, trustdb.c
1382         * textfilter.c, tdbio.c, tdbdump.c, status.c, skclist.c, signal.c
1383         * sign.c, sig-check.c, seskey.c, seckey-cert.c, revoke.c
1384         * pubkey-enc.c, progress.c, plaintext.c, pkclist.c, photoid.c
1385         * passphrase.c, parse-packet.c, mdfilter.c, mainproc.c
1386         * keyserver.c, keyring.c, keylist.c, keyedit.c, keydb.c, kbnode.c
1387         * import.c, getkey.c, gpgv.c, helptext.c, free-packet.c
1388         * build-packet.c, cipher.c, compress.c, dearmor.c, decrypt.c
1389         * delkey.c, encr-data.c, encode.c, exec.c, export.c
1390         * gpg.c, armor.c: Updated from gnupg-1.4.3 and merged back gcry and
1391         gnupg-1.9 related changes.
1392         * trustdb.h, tdbio.h, status.h, photoid.h, packet.h, options.h
1393         * main.h, keyserver-internal.h, keyring.h, keydb.h, filter.h
1394         * exec.h: Ditto.
1395         * global.h: Removed after merging constants with gpg.h.
1396         * comment.c, pipemode.c: Removed.
1397         * card-util.c: Updated from gnupg-1.4.3.
1398         * compress-bz2.c: New.
1399         
1400 2005-06-15  Werner Koch  <wk@g10code.com>
1401
1402         * g10.c (print_hashline, add_group): Fixes for signed/unsigned
1403         pointer mismatch warnings.
1404
1405 2005-06-01  Werner Koch  <wk@g10code.com>
1406
1407         * mkdtemp.c: Removed.
1408         * exec.c: Include mkdtemp.h
1409
1410 2004-12-21  Werner Koch  <wk@g10code.com>
1411
1412         * gpgv.c, g10.c (main): Use default_hoemdir ().
1413
1414 2004-12-18  Werner Koch  <wk@g10code.com>
1415
1416         * gpg.h (map_assuan_err): Define in terms of
1417         map_assuan_err_with_source.
1418
1419 2004-12-15  Werner Koch  <wk@g10code.com>
1420
1421         * Makefile.am (LDADD): Remove ZLIBS.
1422
1423 2004-10-22  Werner Koch  <wk@g10code.com>
1424
1425         * g10.c (main): Display a bit fat warning that this gpg should not
1426         be used.
1427
1428         * card-util.c (fetch_url): Disable for gnupg 1.9
1429         (card_generate_subkey): Ditto.
1430         (card_store_subkey): Ditto.
1431
1432 2004-09-30  Werner Koch  <wk@g10code.com>
1433
1434         * gpgv.c (i18n_init): Always use LC_ALL.
1435
1436         * Makefile.am (LDADD): Adjusted for gettext 0.14.
1437
1438 2004-09-20  Werner Koch  <wk@g10code.com>
1439
1440         * keyedit.c (show_key_with_all_names): Print the card S/N.
1441
1442 2004-09-11  Moritz Schulte  <moritz@g10code.com>
1443
1444         * openfile.c (copy_options_file): Fixed last commit (added a `+').
1445
1446 2004-08-31  Werner Koch  <wk@g10code.de>
1447
1448         * openfile.c (copy_options_file): Use gpg-conf.skel. Better take
1449         the length of SKELEXT into account, someone might make it larger.
1450         * Makefile.am: Install options.skel as gpg-conf.skel.
1451
1452 2004-08-18  Marcus Brinkmann  <marcus@g10code.de>
1453
1454         * passphrase.c (agent_get_passphrase): Fix detection of gpg-agent
1455         cancellation.
1456
1457 2004-07-01  Werner Koch  <wk@gnupg.org>
1458
1459         * card-util.c (change_login): Kludge to allow reading data from a
1460         file.
1461         (card_edit): Pass ARG_STRING to change_login.
1462         (card_status): Print CA fingerprints.
1463         (change_cafpr): New.
1464         (card_edit): New command CAFPR.
1465
1466         * call-agent.h: Add members for CA fingerprints.
1467         * call-agent.c (agent_release_card_info): Invalid them.
1468         (learn_status_cb): Store them.
1469
1470 2004-04-30  Werner Koch  <wk@gnupg.org>
1471
1472         * g10.c (main) <gpgconf>: Use gpg.conf and not /dev/null as
1473         default filename.
1474
1475 2004-04-28  Werner Koch  <wk@gnupg.org>
1476
1477         * card-util.c (card_edit): Remove PIN verification.
1478         (generate_card_keys): New arg SERIALNO.  Do PIN verification here
1479         after resetting forced_chv1.
1480
1481 2004-04-26  Werner Koch  <wk@gnupg.org>
1482
1483         * card-util.c (change_name): Check that the NAME is not too long.
1484         (change_url): Likewise.
1485         (change_login): Likewise.
1486
1487 2004-03-23  Werner Koch  <wk@gnupg.org>
1488
1489         * g10.c: New options --gpgconf-list, --debug-level and --log-file
1490         (set_debug): Add arg DEBUG_LEVEL.
1491         (main): Look at less and less version specific config files.  From
1492         gnupg 1.3.
1493
1494 2004-02-17  Werner Koch  <wk@gnupg.org>
1495
1496         * call-agent.c (start_agent): Ignore an empty GPG_AGENT_INFO.
1497         * passphrase.c (agent_open): Ditto.
1498
1499 2004-02-12  Werner Koch  <wk@gnupg.org>
1500
1501         * gpgv.c: Removed g10defs.h.
1502
1503         * Makefile.am: Include cmacros.am for common flags.
1504
1505 2004-02-11  Werner Koch  <wk@gnupg.org>
1506
1507         * openfile.c (try_make_homedir): Use GNUPG_DEFAULT_HOMEDIR.
1508         * gpgv.c (main): Ditto.
1509         * g10.c (main): Ditto.
1510
1511 2004-01-19  Moritz Schulte  <mo@g10code.com>
1512
1513         * keygen.c (do_generate_keypair): Print member fname, instead of
1514         newfname, again.
1515         (do_generate_keypair): Don't try to execute certain pieces of code
1516         in case an error occured.
1517         (gen_card_key): Don't print out a message, which is already
1518         printed by do_generate_keypair().
1519
1520 2004-01-18  Moritz Schulte  <mo@g10code.com>
1521
1522         * keygen.c (do_generate_keypair): Print member fname, instead of
1523         newfname.
1524
1525 2003-12-17  Werner Koch  <wk@gnupg.org>
1526
1527         * card-util.c (print_name): Fixed bad format string usage.
1528         (print_isoname): Ditto.
1529
1530         * trustdb.c (check_regexp): s/exp/expr/.
1531
1532         * keyedit.c (trustsig_prompt): Removed a "> 255" term; it is
1533         always false due to the data type.
1534         
1535         * passphrase.c (agent_get_passphrase): Use xasprintf and avoid
1536         non-literal format strings.
1537
1538         * tdbio.c (upd_hashtable, drop_from_hashtable, lookup_hashtable):
1539         Fixed log_error format string bugs.  Kudos to the now working
1540         gcc-3.3 -Wformat-nonliteral and Florian Weimer's investigations in
1541         gnupg 1.2.3.
1542
1543 2003-12-15  Werner Koch  <wk@gnupg.org>
1544
1545         * seckey-cert.c (protect_secret_key): Use gry_create_nonce for the
1546         IV; there is not need for real strong random here and it even
1547         better protect the random bits used for the key.
1548
1549 2003-11-16  Moritz Schulte  <mo@g10code.com>
1550
1551         * signal.c: Removed unused file.
1552
1553 2003-11-10  Moritz Schulte  <mo@g10code.com>
1554
1555         * Makefile.am (INCLUDES): Added: @LIBGCRYPT_CFLAGS@.
1556
1557 2003-10-25  Werner Koch  <wk@gnupg.org>
1558
1559         * call-agent.c (learn_status_cb, scd_genkey_cb): Fixed faulty use
1560         of !spacep().
1561
1562 2003-10-20  Werner Koch  <wk@gnupg.org>
1563
1564         * card-util.c (card_edit): New command "passwd".  Add logic to
1565         check the PIN in advance.
1566         (card_status): Add new args to return the serial number.  Changed
1567         all callers.
1568         * call-agent.c (agent_scd_checkpin): New.
1569
1570 2003-10-08  Werner Koch  <wk@gnupg.org>
1571
1572         * call-agent.c (agent_scd_getattr): Don't clear the passed info
1573         structure, so that it can indeed be updated.
1574
1575         * card-util.c (fpr_is_zero): New.
1576         (generate_card_keys): New.
1577         (card_edit): New command "generate".
1578         * keygen.c (generate_keypair): New arg CARD_SERIALNO, removed call
1579         to check_smartcard.
1580         (check_smartcard,show_smartcard): Removed.
1581         (show_sha1_fpr,fpr_is_zero): Removed.
1582
1583 2003-10-01  Werner Koch  <wk@gnupg.org>
1584
1585         * card-util.c: Tweaked to use this source also under 1.3. 
1586
1587 2003-09-30  Werner Koch  <wk@gnupg.org>
1588
1589         * keylist.c (print_card_serialno): New.
1590         (list_keyblock_print): Use it here.
1591
1592         * card-util.c (toggle_forcesig): New.
1593         (card_edit): New command "forcesig".
1594         
1595         * card-util.c (print_name, print_isoname): Use 0 and not LF fro
1596         the max_n arg of tty_print_utf8_string2.
1597
1598         * call-agent.c (agent_scd_getattr): New.
1599         (learn_status_cb): Release values before assignment so that it can
1600         be used by getattr to update the structure.
1601         
1602         * card-util.c (change_pin): Simplified.  We now have only a PIN
1603         and an Admin PIN.
1604
1605 2003-09-27  Werner Koch  <wk@gnupg.org>
1606
1607         * sign.c (do_sign): Removed disabled testcode.
1608
1609 2003-09-26  Timo Schulz  <twoaday@freakmail.de>
1610
1611         * card_status (card_status): Do not use fputs since the fp
1612         parameter can be NULL. This fixes a segv.
1613         
1614 2003-09-24  Werner Koch  <wk@gnupg.org>
1615
1616         * card-util.c (print_isoname,card_status): Handle opt.with_colons.
1617         (print_sha1_fpr_colon): New.
1618
1619 2003-09-23  Werner Koch  <wk@gnupg.org>
1620
1621         Merged most of David Shaw's changes in 1.3 since 2003-06-03.
1622         
1623         * Makefile.am: Include W32LIBS where appropriate.
1624
1625         * armor.c (parse_hash_header,armor_filter): Drop TIGER/192 support.
1626         * g10.c (print_hex,print_mds): Ditto.
1627         * pkclist.c (algo_available): Ditto.
1628
1629         * armor.c (armor_filter): Allow using --comment multiple times to
1630         get multiple Comment header lines.  --no-comments resets list.
1631         * options.h, g10.c (main): Ditto. Deprecate --default-comment in
1632         favor of --no-comments.
1633
1634         * g10.c (main): Trim --help to commonly used options.  Remove -f.
1635
1636         * g10.c (main): Add --multifile as an alias to turn --encrypt into
1637         --encrypt-files (plus --verify-files, --decrypt-files).  Error out
1638         if --multifile is used with the commands that don't support it yet.
1639
1640         * encode.c (use_mdc), g10.c (main): Use RFC1991 and RFC2440
1641         directly to check for MDC usability.  Do not set the force_mdc or
1642         disable_mdc flags since there is no point any longer.
1643         
1644         * g10.c (main): Use "keyserver-url" instead of
1645         "preferred-keyserver" for the sake of short and simple commands.
1646         (add_keyserver_url): Clarify a few strings.  It's a
1647         "preferred keyserver URL".
1648         * keyedit.c (keyedit_menu): Ditto.
1649         * sign.c (mk_notation_policy_etc): Ditto. 
1650
1651         * main.h, keygen.c (keygen_add_keyserver_url): Signature callback
1652         for adding a keyserver URL.
1653         * keyedit.c (keyedit_menu, menu_set_keyserver_url): New command to
1654         set preferred keyserver to specified (or all) user IDs.
1655         * build-packet.c (build_sig_subpkt): Set preferred keyserver flag
1656         while building a preferred keyserver subpacket.
1657
1658         * keylist.c (show_policy_url, show_keyserver_url): URLs might be
1659         UTF8.
1660
1661         * keyedit.c (menu_addrevoker): Fix leaking a few bytes.
1662
1663         * keyedit.c (show_key_with_all_names): Use list-option
1664         show-long-keyid in main --edit-key display.
1665
1666         * keyedit.c (print_and_check_one_sig): Use list-option
1667         show-long-keyid in --edit-key "check" function.
1668
1669         * passphrase.c (agent_send_all_options): Make use of $GPG_TTY.
1670
1671         * g10.c (main): Disable use-agent if passphrase-fd is given
1672         later. Suggested by Kurt Garloff.
1673
1674         * exec.c, g10.c, gpgv.c, passphrase.c, photoid.c:
1675         s/__MINGW32__/_WIN32/ to help building on native Windows
1676         compilers.  Requested by Brian Gladman.  From Werner on stable
1677         branch.
1678
1679         * options.h, g10.c (main): Add list-option
1680         list-preferred-keyserver.
1681
1682         * keyedit.c (change_passphrase): When responding 'no' to the blank
1683         passphrase question, re-prompt for a new passphrase.  This is bug
1684         #202.
1685
1686         * mainproc.c (check_sig_and_print): Use two different preferred
1687         keyserver displays - one if the key is not present (to tell the
1688         user where to get the key), the other if it is present (to tell
1689         the user where the key can be refreshed).
1690
1691         * packet.h, parse-packet.c (parse_signature): Set flag if a
1692         preferred keyserver is present.
1693
1694         * keylist.c (list_keyblock_print): Show keyserver url in listings
1695         with list-option show-keyserver-url.
1696
1697         * mainproc.c (check_sig_and_print): Get the uid validity before
1698         printing any sig results to avoid munging the output with trustdb
1699         warnings.
1700
1701         * g10.c (main): Don't include --show-keyring in --help as it is
1702         deprecated.
1703
1704         * options.skel: Note that keyserver.pgp.com isn't synchronized,
1705         and explain the roundrobin a bit better.
1706
1707         * sig-check.c (check_key_signature2), import.c (import_one,
1708         import_revoke_cert, chk_self_sigs, delete_inv_parts,
1709         collapse_uids, merge_blocks): Make much quieter during import of
1710         slightly munged, but recoverable, keys. Use log_error for
1711         unrecoverable import failures.
1712
1713         * keyring.c (keyring_rebuild_cache): Comment.
1714
1715         * sign.c (mk_notation_and_policy): Making a v3 signature with
1716         notations or policy urls is an error, not an info (i.e. increment
1717         the errorcount). Don't print the notation or policy url to stdout
1718         since it can be mixed into the output stream when piping and munge
1719         the stream.
1720
1721         * packet.h, sig-check.c (signature_check2, do_check,
1722         do_check_messages): Provide a signing-key-is-revoked flag.  Change
1723         all callers.
1724
1725         * status.h, status.c (get_status_string): New REVKEYSIG status tag
1726         for a good signature from a revoked key.
1727
1728         * mainproc.c (do_check_sig, check_sig_and_print): Use it here.
1729
1730         * import.c (import_revoke_cert, merge_blocks, merge_sigs): Compare
1731         actual signatures on import rather than using keyid or class
1732         matching.  This does not change actual behavior with a key, but
1733         does mean that all sigs are imported whether they will be used or
1734         not.
1735
1736         * parse-packet.c (parse_signature): Don't give "signature packet
1737         without xxxx" warnings for experimental pk algorithms.  An
1738         experimental algorithm may not have a notion of (for example) a
1739         keyid (i.e. PGP's x.509 stuff).
1740
1741         * options.h, g10.c (main), keylist.c (list_keyblock_print),
1742         keyedit.c (print_and_check_one_sig): New "show-sig-expire"
1743         list-option to show signature expiration dates (if any).
1744
1745         * options.h, g10.c (main, add_keyserver_url): Add
1746         --sig-preferred-keyserver to implant a "where to get my key"
1747         subpacket into a signature.
1748
1749         * sign.c (mk_notation_and_policy): Rename to
1750         mk_notation_policy_etc and add preferred keyserver support for
1751         signatures.
1752
1753         * keygen.c (do_add_key_flags): Don't set the certify flag for
1754         subkeys.
1755         (ask_algo): Provide key flags for DSA, Elgamal_e, and Elgamal
1756         subkeys.
1757         (generate_keypair): Provide key flags for the default DSA/Elgamal
1758         keys.
1759
1760         * sig-check.c (signature_check, signature_check2,
1761         check_key_signature, check_key_signature2): Allow passing NULLs
1762         for unused parameters in the x2 form of each function to avoid the
1763         need for dummy variables. getkey.c, mainproc.c: Change all
1764         callers.
1765
1766         * trustdb.h, trustdb.c (read_trust_options): New.  Returns items
1767         from the trustdb version record.
1768         * keylist.c (public_key_list): Use it here for the new "tru"
1769         record.
1770         * gpgv.c (read_trust_options): Stub.
1771
1772         * keyedit.c (show_key_with_all_names): Use list-option
1773         show-validity in --edit-key interface as well.
1774
1775         * options.h, g10.c (main), mainproc.c (check_sig_and_print): Add
1776         verify-options "show-validity" and "show-long-keyid" to show
1777         trustdb validity and long keyids during (file) signature
1778         verification.
1779
1780         * packet.h, main.h, sig-check.c (signature_check2)
1781         (check_key_signature2, do_check): If ret_pk is set, fill in the pk
1782         used to verify the signature.  Change all callers in getkey.c,
1783         mainproc.c, and sig-check.c.
1784
1785         * keylist.c (list_keyblock_colon): Use the ret_pk from above to
1786         put the fingerprint of the signing key in "sig" records during a
1787         --with-colons --check-sigs.  This requires --no-sig-cache as well
1788         since we don't cache fingerprints.
1789
1790         * parse-packet.c (parse_signature): No need to reserve 8 bytes for
1791         the unhashed signature cache any longer.
1792
1793         * misc.c (pct_expando): Add two new expandos - signer's
1794         fingerprint (%g), and signer's primary fingerprint (%p).
1795
1796         * g10.c (main): Add --rfc2440 alias for --openpgp since in a few
1797         months, they won't be the same thing.
1798
1799         * keyserver.c (parse_keyserver_uri): Accept "http" as an alias for
1800         "hkp", since it is occasionally written that way.
1801         (keyserver_spawn): Use ascii_isspace to avoid locale issues.
1802
1803         * keygen.c (ask_user_id): Make --allow-freeform-uid apply to the
1804         email field as well as the name field, and allow mixing fields
1805         when it is set.
1806
1807         * trustdb.c (validate_one_keyblock): Certifications on revoked or
1808         expired uids do not count in the web of trust.
1809
1810         * signal.c (init_one_signal, pause_on_sigusr, do_block): Only use
1811         sigprocmask() if we have sigset_t, and only use sigaction() if we
1812         have struct sigaction.  This is for Forte c89 on Solaris which
1813         seems to define only the function call half of the two pairs by
1814         default.
1815         (pause_on_sigusr): Typo.
1816         (do_block): If we can't use sigprocmask() and sigset_t, try to get
1817         the number of signals from NSIG as well as MAXSIG, and if we
1818         can't, fail with an explanation.
1819
1820         * signal.c, tdbio.c: Comment out the transaction code.  It was not
1821         used in this version, and was causing some build problems on
1822         quasi-posix platforms (Solaris and Forte c89).
1823
1824         * keylist.c (list_keyblock_colon): Don't include validity values
1825         when listing secret keys since they can be incorrect and/or
1826         misleading.  This is a temporary kludge, and will be handled
1827         properly in 1.9/2.0.
1828
1829         * mainproc.c (check_sig_and_print): Only show the "key available
1830         from" preferred keyserver line if the key is not currently
1831         present.
1832
1833         * keyedit.c (sign_uids): Do not sign expired uids without --expert
1834         (same behavior as revoked uids).  Do not allow signing a user ID
1835         without a self-signature.  --expert overrides.  Add additional
1836         prompt to the signature level question.
1837         (menu_expire): When changing expiration dates, don't replace
1838         selfsigs on revoked uids since this would effectively unrevoke
1839         them. There is also no point in replacing expired selfsigs.  This
1840         is bug #181
1841
1842         * g10.c (add_notation_data): Make sure that only ascii is passed
1843         to iscntrl.  Noted by Christian Biere.
1844         * getkey.c (classify_user_id2): Replaced isspace by spacep
1845         * keygen.c (ask_user_id): Ditto.
1846         (get_parameter_algo): Ditto.
1847         * keyedit.c (keyedit_menu): Ditto.
1848         * tdbdump.c (import_ownertrust): Ditto.  s/isxdigit/hexdigitp/.
1849         * revoke.c (ask_revocation_reason): 
1850         * keyserver.c (keyserver_spawn): Dito.
1851
1852         * parse-packet.c (parse): Disallow old style partial length for
1853         all key material packets to avoid possible corruption of keyrings.
1854
1855         * import.c (import_keys_internal): Invalidate the cache so that
1856         the file descriptor gets closed.  Fixes bug reported by Juan
1857         F. Codagnone.
1858
1859         * options.h, g10.c (main), main.h, keylist.c (show_keyserver_url),
1860         mainproc.c (check_sig_and_print), parse-packet.c (dump_sig_subpkt,
1861         parse_one_sig_subpkt, can_handle_critical): Add read-only support
1862         for preferred keyserver subpackets.  They're basically policy URLs
1863         with a different name.  Add a verify-option
1864         "show-preferred-keyserver" to turn them on and off (on by default,
1865         as per stable branch).
1866
1867         * g10.c (main): Add "--set-notation" as alias to "--notation-data"
1868         this is to make things consistent with --set-policy-url meaning
1869         both sigs and certs.
1870
1871         * options.h, g10.c (main), keylist.c (list_keyblock_print): Add
1872         "show-validity" and "show-long-keyid" list-options.
1873
1874         * gpgv.c (get_validity, trust_value_to_string): Stubs.
1875
1876         * g10.c (main): Use SAFE_VERSION instead of VERSION in the
1877         version-specific gpg.conf file so it can be overridden on RISCOS.
1878
1879         * keyedit.c (show_key_with_all_names): Fix assertion failure when
1880         using toggle to see a secret key.  Reported by Maxim Britov.
1881
1882
1883 2003-09-22  Timo Schulz  <twoaday@freakmail.de>
1884
1885         * card-util.c (card_status): Free pk in case of an error
1886         and return if the card is no OpenPGP card.
1887         
1888 2003-09-18  Werner Koch  <wk@gnupg.org>
1889
1890         * g10.c: New command --card-edit.
1891         * card-util.c (card_status): Use tty_fprintf for all output.
1892         (print_sha1_fpr, print_isoname): Ditto.
1893         (get_one_name,change_name, change_url, change_login,change_lang)
1894         (change_sex): New; taken from keygen.c.
1895         * keygen.c (smartcard_get_one_name, smartcard_change_name) 
1896         (smartcard_change_url, smartcard_change_login_data) 
1897         (smartcard_change_lang, smartcard_change_sex): Removed.
1898         (check_smartcard): Removed most menu items.
1899
1900 2003-09-06  Werner Koch  <wk@gnupg.org>
1901
1902         * misc.c (openpgp_pk_algo_usage): Allow AUTH where SIGN is allowed.
1903
1904         * keygen.c (ask_passphrase): No need to allocated S2K in secure
1905         memory.
1906
1907 2003-09-04  Werner Koch  <wk@gnupg.org>
1908
1909         * keygen.c (do_add_key_flags, parse_parameter_usage) 
1910         (do_generate_keypair): Add support the proposed AUTH key flag.
1911         * getkey.c (fixup_uidnode, merge_selfsigs_main) 
1912         (merge_selfsigs_subkey, premerge_public_with_secret): Ditto.
1913         * keylist.c (print_capabilities): Ditto.
1914
1915 2003-08-25  Timo Schulz  <twoaday@freakmail.de>
1916
1917         * pkglue.c (mpi_from_sexp): New. Used to factor out
1918         some common code.
1919         
1920 2003-08-24  Werner Koch  <wk@gnupg.org>
1921
1922         * keygen.c (do_generate_keypair): Print a reminder to use --gen-revoke.
1923
1924 2003-08-18  Timo Schulz  <twoaday@freakmail.de>
1925
1926         * encode.c (encode_sesskey): Checked the code and removed
1927         the warning since all compatibility checks with PGP succeeded.
1928         * mainproc.c (symkey_decrypt_sesskey): Better check for the
1929         algorithm and check the return values of some functions.
1930         * mdc.c (use_mdc): Simplified.
1931         
1932 2003-08-07  Werner Koch  <wk@gnupg.org>
1933
1934         * pkglue.c (pk_sign): Fix last change.
1935         (pk_verify): Check for valid DATA array so that we don't segv in
1936         Libgcrypt.
1937         (pk_verify): Ditto.
1938
1939 2003-08-06  Werner Koch  <wk@gnupg.org>
1940
1941         * pkglue.c (pk_sign): Allow signing using RSA.
1942
1943 2003-08-05  Werner Koch  <wk@gnupg.org>
1944
1945         * Makefile.am (install-data-local): Dropped check for the ancient
1946         gpgm tool.
1947         (bin_PROGRAMS): Renamed gpg to gpg2 and gpgv to gpgv2.  This is so
1948         that it won't conflict with the current stable version of gpg.
1949
1950         * pkglue.c (pk_check_secret_key): New.
1951         * seckey-cert.c (do_check): Reenable this test here again.
1952
1953         * g10.c (main): Add command -K as an alias for
1954         --list-secret-keys. Command "-k" is now an alias to --list-keys.
1955         Remove special treatment of -kv and -kvv.
1956         (set_cmd): Ditto.
1957         (main): Strip a "-cvs" suffix when testing for a version specific
1958         config file.
1959
1960         * status.h, status.c, g10.c [USE_SHM_COPROCESSING]: Removed.  This
1961         is not any longer available.
1962
1963 2003-07-29  Werner Koch  <wk@gnupg.org>
1964
1965         * g10.c (main): Add secmem features and set the random seed file.
1966         (g10_exit): Update the random seed file.
1967
1968         * parse-packet.c (parse_signature,read_protected_v3_mpi)
1969         (parse_key): Fixed use of mpi_set_opaque.
1970         * keygen.c (gen_card_key): Ditto.
1971
1972 2003-07-28  Werner Koch  <wk@gnupg.org>
1973
1974         * status.c (progress_cb): Adjusted for use with Libcgrypt.
1975         (set_status_fd): Register that callback.
1976
1977         * keygen.c (smartcard_change_login_data): New.
1978         (smartcard_change_lang): New.
1979         (smartcard_change_sex): New.
1980         (check_smartcard): Add menu entries to edit the above.
1981         (gen_elg,gen_dsa,gen_rsa): Reimplemented in terms of Libgcrypt.
1982         (genhelp_protect, genhelp_factors, key_from_sexp): New.
1983         * comment.c (make_comment_node_from_buffer): New.
1984         (make_comment_node): Reimplemented in terms of above.
1985
1986 2003-07-27  Werner Koch  <wk@gnupg.org>
1987
1988         Adjusted for gcry_mpi_print and gcry_mpi_scan API change.
1989
1990 2003-07-24  Werner Koch  <wk@gnupg.org>
1991
1992         * g10.c: New command --card-status.
1993         * card-util.c (card_status): New.
1994         * call-agent.c (learn_status_cb): Parse more information.
1995
1996         * keylist.c (print_pubkey_info): Add FP arg for optional printing
1997         to a stream.  Changed all callers.
1998
1999 2003-07-23  Werner Koch  <wk@gnupg.org>
2000
2001         * keygen.c (generate_keypair): Create an AUTHKEYTYPE entry for cards.
2002         (do_generate_keypair): Abd generate the authkey.
2003         (check_smartcard): Changed menu accordingly.
2004
2005 2003-07-22  Werner Koch  <wk@gnupg.org>
2006
2007         * g10.c: New command --change-pin.
2008         * card-util.c: New.
2009         * call-agent.c (agent_scd_change_pin): New.
2010         (agent_release_card_info): New.
2011         * keygen.c (check_smartcard): Use it here.
2012
2013 2003-07-16  Werner Koch  <wk@gnupg.org>
2014
2015         * export.c (parse_export_options): New option sexp-format.
2016         (export_seckeys,export_secsubkeys): Check sexp-format option.
2017         (do_export): Ignore armor for sexp format.
2018         (do_export_stream): Handle sexp-format.
2019         (write_sexp_line,write_sexp_keyparm, build_sexp_seckey): New.
2020         (build_sexp): New.
2021
2022 2003-07-03  Werner Koch  <wk@gnupg.org>
2023
2024         * options.h (DBG_CIPHER): Reintroduced it. 
2025         * seskey.c (encode_session_key): Debug output of the session key.
2026
2027         * pubkey-enc.c (get_it): Handle card case.
2028         * call-agent.c (agent_scd_pkdecrypt): New.
2029         * pkglue.c (pk_encrypt): Add RSA support.
2030
2031         * g10.c (main): Default to --use-agent.
2032
2033         * keygen.c (show_smartcard): Print info about the public key.
2034         (check_smartcard): Check for existing key here.
2035         (gen_card_key): And not anymore here.
2036         (fpr_is_zero): New.
2037         (generate_keypair): Generate both keys for a card.
2038         (smartcard_change_url): Nw.
2039
2040 2003-07-02  Werner Koch  <wk@gnupg.org>
2041
2042         * seckey-cert.c (is_secret_key_protected): Let it handle mode 1002.
2043
2044 2003-07-01  Werner Koch  <wk@gnupg.org>
2045
2046         * keygen.c (gen_card_key): Obviously we should use the creation
2047         date received from SCDAEMON, so that the fingerprints will match.
2048         * sign.c (do_sign): Pass the serialno to the sign code.
2049         * keyid.c (serialno_and_fpr_from_sk): New.
2050
2051 2003-06-30  Werner Koch  <wk@gnupg.org>
2052
2053         * call-agent.h (agent_card_info_s): Add field serialno.
2054         * call-agent.c (store_serialno): New.
2055         (learn_status_cb): Store the serial number.
2056         * keygen.c (gen_card_key): Store the serial number
2057         (check_smartcard): New argument to return the serial number.
2058         (generate_keypair): Get the serial number from check_smartcard and
2059         store it as a parameter.
2060         * parse-packet.c (parse_key): Use the protect.iv field to store the
2061         serial number.
2062         * build-packet.c (do_secret_key): Write the serial number.
2063
2064 2003-06-27  Werner Koch  <wk@gnupg.org>
2065
2066         * seckey-cert.c (check_secret_key): Bypass the unprotection for
2067         mode 1002.
2068         * sign.c (do_sign): Handle card case (i.e. mode 1002).
2069
2070 2003-06-26  Werner Koch  <wk@gnupg.org>
2071
2072         * build-packet.c (do_secret_key): Implement special protection
2073         mode 1002.
2074         * parse-packet.c (parse_key): Likewise.
2075
2076         * keygen.c (smartcard_gen_key): New.
2077         * call-agent.c (agent_scd_setattr): New.
2078
2079 2003-06-24  Werner Koch  <wk@gnupg.org>
2080
2081         * Makefile.am: Removed signal.c
2082
2083         * g10.c (emergency_cleanup): New.
2084         (main): Use gnupg_init_signals and register malloc for assuan.
2085
2086 2003-06-23  Werner Koch  <wk@gnupg.org>
2087
2088         * keyid.c (do_fingerprint_md): Made it work again.
2089
2090 2003-06-19  Werner Koch  <wk@gnupg.org>
2091
2092         Fixed all "==" comparisons against error code constants to use
2093         gpg_err_code().
2094
2095         * import.c (import_secret_one): 
2096         (import_revoke_cert): 
2097         (chk_self_sigs): 
2098
2099         * misc.c (openpgp_md_map_name): Check also for the Hx format.
2100         (openpgp_cipher_map_name): Check also for the Sx format.
2101         (pubkey_get_npkey): Adjusted for changed gcrypt API.
2102         (pubkey_get_nskey): Ditto.
2103         (pubkey_get_nsig): Ditto.
2104         (pubkey_get_nenc): Ditto.
2105
2106 2003-06-18  Werner Koch  <wk@gnupg.org>
2107
2108         Finished the bulk of changes for gnupg 1.9.  This included
2109         switching to libgcrypt functions, using shared error codes from
2110         libgpg-error, replacing the old functions we used to have in
2111         ../util by those in ../jnlib and ../common, renaming the malloc
2112         functions and a couple of types.  Note, that not all changes are
2113         listed below becuause they are too similar and done at far too
2114         many places.  As of today the code builds using the current
2115         libgcrypt from CVS but it is very unlikely that it actually works.
2116         
2117         * sig-check.c (cmp_help): Removed.  Was never used.
2118
2119         * pkglue.c: New. Most stuff taken from gnupg 1.1.2.
2120         * pkglue.h: New.
2121
2122         * misc.c (pull_in_libs): Removed.
2123
2124         * keygen.c (count_chr): New.
2125         (ask_user_id): Removed faked RNG support.
2126
2127         * misc.c (openpgp_md_map_name,openpgp_cipher_map_name)
2128         (openpgp_pk_map_name): New.
2129
2130         * skclist.c (build_sk_list): Removed faked RNG support.
2131         (is_insecure): Removed.
2132
2133         * comment.c (make_mpi_comment_node): Use gcry MPI print function.
2134
2135         * keyid.c (v3_keyid): New.
2136
2137         * misc.c (mpi_write,mpi_write_opaque,mpi_read,mpi_read_opaque)
2138         (mpi_print): New.  Taken from gnupg 1.1.2.
2139         (checksum_mpi): Replaced by implementation from 1.1.2.
2140
2141         * g10.c (my_strusage): Renamed from strusage and return NULL
2142         instead calling a default function.
2143         (add_to_strlist2): New.  Taken from ../util/strgutil.c of gnupg 1.2.
2144
2145         * plaintext.c (handle_plaintext): New arg CREATE_FILE to cope with
2146         the fact that gpg-error does not have this error code anymore.
2147
2148         * mainproc.c (symkey_decrypt_sesskey): Ditto.
2149
2150         * seskey.c (make_session_key): Adjusted for use with libgcrypt.
2151         (encode_session_key): Ditto.
2152         (do_encode_md): Ditto.
2153         (encode_md_value): Ditto.
2154
2155         * keyring.c: Use libgpg-error instead of READ_ERROR etc.
2156
2157         * g10.c: Adjusted all algorithm name/id mapping functions.
2158         (set_debug): Pass MPI and CRYPTO debug values to libgcrypt.
2159
2160         * Makefile.am (INCLUDES): Define LOCALEDIR and the default error
2161         source.
2162
2163         * g10.c (i18n_init): s/G10_LOCALEDIR/LOCALEDIR/.
2164
2165         Renamed m_alloc et al to xmalloc et al.
2166         s/g10_errstr/gpg_strerror/
2167         s/MPI/gcry_mpi_t/
2168         Adjusted all md_open calls to the libgcrypt API.
2169         
2170         * build-packet.c (do_comment): Return error code from iobuf write
2171         function.
2172         (do_user_id): Ditto.
2173         (do_public_key): Ditto.
2174
2175         * Makefile.am: Add new files, link gpg with libgpg-error.
2176         * g10.c, options.h: New option --agent-program.
2177         * call-agent.c: New.
2178         * gpg.h, call-agent.h: New.
2179
2180 2003-06-03  David Shaw  <dshaw@jabberwocky.com>
2181
2182         * options.h, g10.c (main), keylist.c (list_keyblock_print): Add
2183         "show-validity" and "show-long-keyid" list-options.
2184
2185         * gpgv.c (get_validity, trust_value_to_string): Stubs.
2186
2187         * g10.c (main): Use SAFE_VERSION instead of VERSION in the
2188         version-specific gpg.conf file so it can be overridden on RISCOS.
2189
2190 2003-06-01  David Shaw  <dshaw@jabberwocky.com>
2191
2192         * g10.c (main), keylist.c (show_policy_url, show_notation),
2193         mainproc.c (check_sig_and_print): Emulate the old policy and
2194         notation behavior (display by default).  Send to status-fd whether
2195         it is displayed on the screen or not.
2196
2197         * g10.c (main): Since we now have some options in devel that won't
2198         work in a stable branch gpg.conf file, try for a version-specific
2199         gpg.conf-VERSION file before falling back to gpg.conf.
2200
2201         * main.h, options.h: Move various option flags to options.h.
2202
2203 2003-05-31  David Shaw  <dshaw@jabberwocky.com>
2204
2205         * mainproc.c (check_sig_and_print), main.h, keylist.c
2206         (show_policy, show_notation): Collapse the old print_notation_data
2207         into show_policy() and show_notation() so there is only one
2208         function to print notations and policy URLs.
2209
2210         * options.h, main.h, g10.c (main), keyedit.c
2211         (print_and_check_one_sig), keylist.c (list_one,
2212         list_keyblock_print), pkclist.c (do_edit_ownertrust), sign.c
2213         (mk_notation_and_policy): New "list-options" and "verify-options"
2214         commands.  These replace the existing
2215         --show-photos/--no-show-photos,
2216         --show-notation/--no-show-notation,
2217         --show-policy-url/--no-show-policy-url, and --show-keyring
2218         options.  The new method is more flexible since a user can specify
2219         (for example) showing photos during sig verification, but not in
2220         key listings.  The old options are emulated.
2221
2222         * main.h, misc.c (parse_options): New general option line
2223         parser. Fix the bug in the old version that did not handle report
2224         syntax errors after a valid entry.
2225
2226         * import.c (parse_import_options), export.c
2227         (parse_export_options): Call it here instead of duplicating the
2228         code.
2229
2230 2003-05-30  David Shaw  <dshaw@jabberwocky.com>
2231
2232         * keylist.c (list_one): Don't show the keyring filename when in
2233         --with-colons mode.  Actually translate "Keyring" string.
2234
2235         * mainproc.c (proc_tree): We can't currently handle multiple
2236         signatures of different classes or digests (we'd pretty much have
2237         to run a different hash context for each), but if they are all the
2238         same, make an exception.  This is Debian bug #194292.
2239
2240         * sig-check.c (check_key_signature2): Make string translatable.
2241
2242         * packet.h, getkey.c (fixup_uidnode): Mark real primary uids
2243         differently than assumed primaries.
2244
2245         * keyedit.c (no_primary_warning): Use the differently marked
2246         primaries here in a new function to warn when an --edit-key
2247         command might rearrange the self-sig dates enough to change which
2248         uid is primary.
2249         (menu_expire, menu_set_preferences): Use no_primary_warning()
2250         here.
2251
2252         * Makefile.am: Use @DLLIBS@ for -ldl.
2253
2254 2003-05-26  David Shaw  <dshaw@jabberwocky.com>
2255
2256         * getkey.c (premerge_public_with_secret): Made "no secret subkey
2257         for" warning a verbose item and translatable. (From wk on stable
2258         branch)
2259
2260         * sig-check.c (check_key_signature2): Made "no subkey for subkey
2261         binding packet" a verbose item instead of a !quiet one.  There are
2262         too many garbled keys out in the wild. (From wk on stable branch)
2263
2264         * filter.h: Remove const from WHAT. (From wk on stable branch)
2265
2266         * progress.c (handle_progress): Store a copy of
2267         NAME. (progress_filter): Release WHAT, make sure not to print a
2268         NULL WHAT. (From wk on stable branch)
2269
2270         * openfile.c (open_sigfile): Adjust free for new progress
2271         semantics. (From wk on stable branch)
2272
2273         * plaintext.c (ask_for_detached_datafile): Don't dealloc
2274         pfx->WHAT. (From wk on stable branch)
2275
2276         * seckey-cert.c (do_check): Issue the RSA_OR_IDEA status when the
2277         cipher algo is IDEA to make it easier to track down the
2278         problem. (From twoaday on stable branch)
2279         
2280 2003-05-24  David Shaw  <dshaw@jabberwocky.com>
2281
2282         * armor.c, g10.c, kbnode.c, misc.c, pkclist.c, sign.c,
2283         build-packet.c, getkey.c, keydb.c, openfile.c, plaintext.c,
2284         status.c, gpgv.c, keygen.c, options.h, sig-check.c, tdbio.h,
2285         encode.c, mainproc.c, parse-packet.c, signal.c, textfilter.c: Edit
2286         all preprocessor instructions to remove whitespace before the '#'.
2287         This is not required by C89, but there are some compilers out
2288         there that don't like it.
2289
2290 2003-05-21  David Shaw  <dshaw@jabberwocky.com>
2291
2292         * trustdb.h, trustdb.c (is_disabled), gpgv.c (is_disabled): Rename
2293         is_disabled to cache_disabled_value, which now takes a pk and not
2294         just the keyid. This is for speed since there is no need to
2295         re-fetch a key when we already have that key handy.  Cache the
2296         result of the check so we don't need to hit the trustdb more than
2297         once.
2298         
2299         * getkey.c (skip_disabled): New function to get a pk and call
2300         is_disabled on it. (key_byname): Use it here.
2301         
2302         * packet.h, getkey.c (skip_disabled), keylist.c
2303         (print_capabilities): New "pk_is_disabled" macro to retrieve the
2304         cached disabled value if available, and fill it in via
2305         cache_disabled_value if not available.
2306
2307         * trustdb.c (get_validity): Cache the disabled value since we have
2308         it handy and it might be useful later.
2309
2310         * parse-packet.c (parse_key): Clear disabled flag when parsing a
2311         new key.  Just in case someone forgets to clear the whole key.
2312
2313         * getkey.c (merge_selfsigs_main): Add an "if all else fails" path
2314         for setting a single user ID primary when there are multiple set
2315         primaries all at the same second, or no primaries set and the most
2316         recent user IDs are at the same second, or no signed user IDs at
2317         all. This is arbitrary, but deterministic.
2318
2319         * exec.h, photoid.h: Add copyright message.
2320
2321         * keylist.c (list_keyblock_print): Don't dump attribs for
2322         revoked/expired/etc uids for non-colon key listings.  This is for
2323         consistency with --show-photos.
2324
2325         * main.h, keylist.c (dump_attribs), mainproc.c
2326         (check_sig_and_print): Dump attribs if --attrib-fd is set when
2327         verifying signatures.
2328         
2329         * g10.c (main): New --gnupg option to disable the various
2330         --openpgp, --pgpX, etc. options.  This is the same as --no-XXXX
2331         for those options.
2332
2333         * revoke.c (ask_revocation_reason): Clear old reason if user
2334         elects to repeat question.  This is bug 153.
2335
2336         * keyedit.c (sign_uids): Show keyid of the key making the
2337         signature.
2338
2339 2003-05-21  Werner Koch  <wk@gnupg.org>
2340
2341         * progress.c (handle_progress)
2342         * sign.c (write_plaintext_packet)
2343         * encode.c (encode_simple,encode_crypt): Make sure that a filename
2344         of "-" is considered to be stdin so that iobuf_get_filelength
2345         won't get called.  This fixes bug 156 reported by Gregery Barton.
2346
2347 2003-05-02  David Shaw  <dshaw@jabberwocky.com>
2348
2349         * packet.h, build-packet.c (build_sig_subpkt), export.c
2350         (do_export_stream), import.c (remove_bad_stuff, import),
2351         parse-packet.c (dump_sig_subpkt, parse_one_sig_subpkt): Remove
2352         vestigal code for the old sig cache subpacket.  This wasn't
2353         completely harmless as it caused subpacket 101 to disappear on
2354         import and export.
2355
2356         * options.h, armor.c, cipher.c, g10.c, keyedit.c, pkclist.c,
2357         sign.c, encode.c, getkey.c, revoke.c: The current flags for
2358         different levels of PGP-ness are massively complex.  This is step
2359         one in simplifying them. No functional change yet, just use a
2360         macro to check for compliance level.
2361
2362         * sign.c (sign_file): Fix bug that causes spurious compression
2363         preference warning.
2364
2365         * sign.c (clearsign_file): Fix bug that prevents proper warning
2366         message from appearing when clearsigning in --pgp2 mode with a
2367         non-v3 RSA key.
2368
2369         * main.h, misc.c (compliance_option_string, compliance_string,
2370         compliance_failure), pkclist.c (build_pk_list), sign.c (sign_file,
2371         clearsign_file), encode.c (encode_crypt,
2372         write_pubkey_enc_from_list): New functions to put the "this
2373         message may not be usable...." warning in one place.
2374
2375         * options.h, g10.c (main): Part two of the simplification.  Use a
2376         single enum to indicate what we are compliant to (1991, 2440,
2377         PGPx, etc.)
2378
2379         * g10.c (main): Show errors for failure in export, send-keys,
2380         recv-keys, and refresh-keys.
2381
2382         * options.h, g10.c (main): Give algorithm warnings for algorithms
2383         chosen against the --pgpX and --openpgp rules.
2384
2385         * keydb.h, pkclist.c (algo_available): Make TIGER192 invalid in
2386         --openpgp mode.
2387
2388         * sign.c (sign_file), pkclist.c (algo_available): Allow passing a
2389         hint of 0.
2390
2391 2003-05-01  David Shaw  <dshaw@jabberwocky.com>
2392
2393         * tdbio.c (create_version_record): Only create new trustdbs with
2394         TM_CLASSIC or TM_PGP.
2395
2396         * trustdb.h, trustdb.c (trust_string, get_ownertrust_string,
2397         get_validity_string, ask_ownertrust, validate_keys), pkclist.c
2398         (do_edit_ownertrust): Rename trust_string to trust_value_to_string
2399         for naming consistency.
2400
2401         * trustdb.h, trustdb.c (string_to_trust_value): New function to
2402         translate a string to a trust value.
2403
2404         * g10.c (main): Use string_to_trust_value here for
2405         --force-ownertrust.
2406         
2407         * options.h, g10.c (main), trustdb.c (trust_model_string,
2408         init_trustdb, check_trustdb, update_trustdb, get_validity,
2409         validate_one_keyblock): An "OpenPGP" trust model is misleading
2410         since there is no official OpenPGP trust model.  Use "PGP"
2411         instead.
2412
2413 2003-04-30  David Shaw  <dshaw@jabberwocky.com>
2414
2415         * build-packet.c (build_sig_subpkt): Comments.
2416
2417         * exec.c (exec_write): Cast NULL to void* to properly terminate
2418         varargs list.
2419
2420         * keyedit.c (show_key_with_all_names): Just for safety, catch an
2421         invalid pk algorithm.
2422
2423         * sign.c (make_keysig_packet): Crucial that the call to mksubpkt
2424         comes LAST before the calls to finalize the sig as that makes it
2425         possible for the mksubpkt function to get a reliable pointer to
2426         the subpacket area.
2427
2428         * pkclist.c (do_we_trust_pre): If an untrusted key was chosen by a
2429         particular user ID, use that ID as the one to ask about when
2430         prompting whether to use the key anyway.
2431         (build_pk_list): Similar change here when adding keys to the
2432         recipient list.
2433
2434         * trustdb.c (update_validity): Fix bug that prevented more than
2435         one validity record per trust record.
2436         (get_validity): When retrieving validity for a (user) supplied
2437         user ID, return the validity for that user ID only, and do not
2438         fall back to the general key validity.
2439         (validate_one_keyblock): Some commentary on whether
2440         non-self-signed user IDs belong in the web of trust (arguably,
2441         they do).
2442
2443 2003-04-27  David Shaw  <dshaw@jabberwocky.com>
2444
2445         * g10.c (main): Add --no-textmode.
2446
2447         * export.c (do_export_stream), keyedit.c (show_key_with_all_names,
2448         menu_addrevoker), mainproc.c (check_sig_and_print), photoid.c
2449         (show_photos), sign.c (mk_notation_and_policy), trustdb.c
2450         (get_validity, reset_trust_records, validate_keys): Make some
2451         strings translatable.
2452
2453         * mainproc.c (check_sig_and_print): Show digest algorithm and sig
2454         class when verifying a sig with --verbose on, and add version, pk
2455         and hash algorithms and sig class to VALIDSIG.
2456         
2457         * parse-packet.c (enum_sig_subpkt): Make a warning message a
2458         --verbose warning message since we don't need to warn every time
2459         we see an unknown critical (we only need to invalidate the
2460         signature).
2461
2462         * trustdb.c (init_trustdb): Check the trustdb options even with
2463         TM_AUTO since the auto may become TM_CLASSIC or TM_OPENPGP.
2464
2465 2003-04-26  David Shaw  <dshaw@jabberwocky.com>
2466
2467         * sign.c (do_sign): Show the hash used when making a signature in
2468         verbose mode.
2469
2470         * tdbio.h, tdbio.c (tdbio_read_model): New function to return the
2471         trust model used in a given trustdb.
2472
2473         * options.h, g10.c (main), trustdb.c (init_trustdb, check_trustdb,
2474         update_trustdb): Use tdbio_read_model to implement an "auto" trust
2475         model which is set via the trustdb.
2476
2477 2003-04-23  David Shaw  <dshaw@jabberwocky.com>
2478
2479         * import.c (import_revoke_cert): Remove ultimate trust when
2480         revoking an ultimately trusted key.
2481
2482         * keyedit.c (sign_uids): Allow replacing expired signatures.
2483         Allow duplicate signatures with --expert.
2484
2485         * pkclist.c (check_signatures_trust): Don't display a null
2486         fingerprint when checking a signature with --always-trust enabled.
2487
2488         * filter.h (progress_filter_context_t), progress.c
2489         (handle_progress), plaintext.c (ask_for_detached_datafile,
2490         hash_datafiles): Fix compiler warnings.  Make "what" constant.
2491
2492         * build-packet.c (do_plaintext): Do not create invalid literal
2493         packets with >255-byte names.
2494
2495 2003-04-15  Werner Koch  <wk@gnupg.org>
2496
2497         * Makefile.am (AM_CFLAGS): Make use of AM_CFLAGS and AM_LDFLAGS.
2498
2499         * g10.c, options.h: New option --enable-progress-filter.
2500         * progress.c (handle_progress): Make use of it.
2501
2502 2003-04-15  Marcus Brinkmann  <marcus@g10code.de>
2503
2504         * progress.c: New file.
2505         * Makefile.am (common_source): Add progress.c.
2506         * filter.h (progress_filter_context_t): New type.
2507         (progress_filter, handle_progress): New prototypes.
2508         * main.h (open_sigfile): New argument for prototype.
2509         * openfile.c (open_sigfile): New argument to install progress
2510         filter.
2511         * encode.c (encode_simple): New variable PFX.  Register
2512         progress filter.  Install text_filter after that.
2513         (encode_crypt): Likewise.
2514         * sign.c (sign_file): Likewise.
2515         (clearsign_file): Likewise.
2516         * decrypt.c (decrypt_message): Likewise.
2517         (decrypt_messages): Likewise.
2518         * verify.c (verify_signatures): Likewise.
2519         (verify_one_file): Likewise.
2520         * plaintext.c (hash_datafiles): Likewise.
2521         (ask_for_detached_datafile): Likewise.
2522
2523 2003-04-10  Werner Koch  <wk@gnupg.org>
2524
2525         * passphrase.c (read_passphrase_from_fd): Do a dummy read if the
2526         agent is to be used.  Noted by Ingo Klöcker.
2527         (agent_get_passphrase): Inhibit caching when we have no
2528         fingerprint.  This is required for key generation as well as for
2529         symmetric only encryption.
2530
2531         * passphrase .c (agent_get_passphrase): New arg CANCELED.
2532         (passphrase_to_dek): Ditto.  Passed to above.  Changed all
2533         callers to pass NULL.
2534         * seckey-cert.c (do_check): New arg CANCELED.
2535         (check_secret_key): Terminate loop when canceled.
2536
2537         * keyedit.c (change_passphrase): Pass ERRTEXT untranslated to
2538         passphrase_to_dek and translate where appropriate.
2539         * seckey-cert.c (check_secret_key): Ditto.
2540         * keygen.c (ask_passphrase): Ditto.
2541         * passphrase.c (agent_get_passphrase): Translate the TRYAGAIN_TEXT.
2542         Switch the codeset to utf-8.
2543
2544 2003-04-09  Werner Koch  <wk@gnupg.org>
2545
2546         * decrypt.c (decrypt_messages): Fixed error handling; the function
2547         used to re-loop with same file after an error.  Reported by Joseph
2548         Walton.
2549
2550 2003-04-08  David Shaw  <dshaw@jabberwocky.com>
2551
2552         * main.h, g10.c (main), import.c (parse_import_options,
2553         fix_pks_corruption): It's really PKS corruption, not HKP
2554         corruption.  Keep the old repair-hkp-subkey-bug command as an
2555         alias.
2556
2557         * g10.c (main): Rename --no-version to --no-emit-version for
2558         consistency.  Keep --no-version as an alias.
2559
2560 2003-04-04  David Shaw  <dshaw@jabberwocky.com>
2561
2562         * pkclist.c (algo_available): PGP 8 can use the SHA-256 hash.
2563
2564         * sign.c (sign_file, clearsign_file, sign_symencrypt_file): Remove
2565         unused code.
2566
2567 2003-04-01  Werner Koch  <wk@gnupg.org>
2568
2569         * mainproc.c (check_sig_and_print): Add primary key fpr to VALIDSIG
2570         status.
2571
2572 2003-03-24  David Shaw  <dshaw@jabberwocky.com>
2573
2574         * keydb.h: Err on the side of making an unknown signature a SIG
2575         rather than a CERT.
2576
2577         * import.c (delete_inv_parts): Discard any key signatures that
2578         aren't key types (i.e. 0x00, 0x01, etc.)
2579
2580         * g10.c (main): Add deprecated option warning for
2581         --list-ownertrust.  Add --compression-algo alias for
2582         --compress-algo.  Change --version output strings to match
2583         "showpref" strings, and make translatable.
2584
2585         * status.c (do_get_from_fd): Accept 'y' as well as 'Y' for
2586         --command-fd boolean input.
2587
2588         * trustdb.c: Fix typo (DISABLE_REGEXP -> DISABLE_REGEX)
2589
2590         * keyedit.c (show_key_with_all_names_colon): Show no-ks-modify
2591         flag.
2592
2593 2003-03-11  David Shaw  <dshaw@jabberwocky.com>
2594
2595         * options.h, g10.c (main), keyserver.c (kopts): Add "try-dns-srv"
2596         keyserver option.  Defaults to on.
2597
2598         * passphrase.c (agent_get_passphrase): Fix memory leak with
2599         symmetric messages.  Fix segfault with symmetric messages.  Fix
2600         incorrect prompt with symmetric messages.
2601
2602 2003-03-10  Werner Koch  <wk@gnupg.org>
2603
2604         * compress.c (init_uncompress): Use a 15 bit window size so that
2605         the output of implementations which don't run for PGP 2
2606         compatibility won't get garbled.
2607
2608 2003-03-04  David Shaw  <dshaw@jabberwocky.com>
2609
2610         * trustdb.c (validate_keys): Mask the ownertrust when building the
2611         list of fully valid keys so that disabled keys are still counted
2612         in the web of trust.
2613         (get_ownertrust_with_min): Do the same for the minimum ownertrust
2614         calculation.
2615
2616         * parse-packet.c (dump_sig_subpkt): Show the notation names for
2617         not-human-readable notations.  Fix cosmetic off-by-one length
2618         counter.
2619
2620         * options.skel: Add explantion and commented-out
2621         "no-mangle-dos-filenames".
2622
2623         * mainproc.c (proc_encrypted): Make string translatable.
2624
2625         * keyserver.c (keyserver_spawn): Quote ':', '%', and any 8-bit
2626         characters in the uid strings sent to the keyserver helper.
2627
2628         * keyring.c (keyring_rebuild_cache): Lock the keyring while
2629         rebuilding the signature caches to prevent another gpg from
2630         tampering with the temporary copy.
2631
2632         * keygen.c (keygen_set_std_prefs): Include AES192 and AES256 in
2633         default prefs.
2634
2635         * keyedit.c (show_prefs): Make strings translatable.
2636
2637         * keydb.c: Double the maximum number of keyrings to 40.
2638
2639         * gpgv.c (main): Fix bug #113 - gpgv should accept the
2640         --ignore-time-conflict option.
2641
2642         * g10.c (main): --openpgp disables --pgpX.  Double the amount of
2643         secure memory to 32k (keys are getting bigger these days).
2644
2645         * Makefile.am: Makefile.am: Use @CAPLIBS@ to link in -lcap if we
2646         are using capabilities.
2647
2648 2003-02-26  David Shaw  <dshaw@jabberwocky.com>
2649
2650         * keyserver.c (keyserver_spawn): Include various pieces of
2651         information about the key in the data sent to the keyserver
2652         helper.  This allows the helper to use it in instructing a remote
2653         server which may not have any actual OpenPGP smarts in parsing
2654         keys.
2655
2656         * main.h, export.c (export_pubkeys_stream, do_export_stream): Add
2657         ability to return only the first match in an exported keyblock for
2658         keyserver usage.  This should be replaced at some point with a
2659         more flexible solution where each key can be armored seperately.
2660
2661 2003-02-22  David Shaw  <dshaw@jabberwocky.com>
2662
2663         * sign.c (sign_file): Do not push textmode filter onto an unopened
2664         IOBUF (segfault).  Noted by Marcus Brinkmann.  Push and
2665         reinitialize textmode filter for each file in a multiple file
2666         list.
2667
2668         * packet.h, getkey.c (fixup_uidnode), keyedit.c (show_prefs): Set
2669         and show the keyserver no-modify flag.
2670
2671         * keygen.c (add_keyserver_modify): New.
2672         (keygen_upd_std_prefs): Call it here.
2673         (keygen_set_std_prefs): Accept "ks-modify" and "no-ks-modify" as
2674         prefs to set and unset keyserver modify flag.
2675
2676         * g10.c (main): Accept "s1" in addition to "idea" to match the
2677         other ciphers.
2678
2679         * main.h, misc.c (idea_cipher_warn): We don't need this if IDEA
2680         has been disabled.
2681
2682 2003-02-21  David Shaw  <dshaw@jabberwocky.com>
2683
2684         * keygen.c (keygen_set_std_prefs): Don't put AES or CAST5 in
2685         default prefs if they are disabled.
2686
2687         * g10.c (main): Use 3DES instead of CAST5 if we don't have CAST5
2688         support.  Use 3DES for the s2k cipher in --openpgp mode.
2689         (print_mds): #ifdef all of the optional digest algorithms.
2690
2691 2003-02-12  David Shaw  <dshaw@jabberwocky.com>
2692
2693         * keydb.h, getkey.c (classify_user_id, classify_user_id2): Make
2694         'exact' a per-desc item.  Merge into one function since
2695         'force_exact' is no longer needed.
2696         (key_byname): Use new classify_user_id function, and new exact
2697         flag in KEYDB_SEARCH_DESC.
2698
2699         * keyring.h, keyring.c (keyring_search): Return an optional index
2700         to show which KEYDB_SEARCH_DESC was the matching one.
2701
2702         * keydb.h, keydb.c (keydb_search): Rename to keydb_search2, and
2703         pass the optional index to keyring_search.  Add a macro version of
2704         keydb_search that calls this new function.
2705
2706         * export.c (do_export_stream): If the keyid! syntax is used,
2707         export only that specified key.  If the key in question is a
2708         subkey, export the primary plus that subkey only.
2709
2710 2003-02-11  David Shaw  <dshaw@jabberwocky.com>
2711
2712         * exec.c (set_exec_path): Add debugging line.
2713
2714         * g10.c (print_hex, print_mds): Print long hash strings a lot
2715         neater.  This assumes at least an 80-character display, as there
2716         are a few other similar assumptions here and there.  Users who
2717         need unformatted hashes can still use with-colons.  Check that
2718         SHA384 and 512 are available before using them as they are no
2719         longer always available.
2720
2721         * Makefile.am: Use a local copy of libexecdir along with @PACKAGE@
2722         as GNUPG_LIBEXECDIR so it can be easily overridden at make time.
2723
2724 2003-02-04  David Shaw  <dshaw@jabberwocky.com>
2725
2726         * armor.c (parse_hash_header, armor_filter): Accept the new SHAs
2727         in the armor Hash: header.
2728
2729         * g10.c (print_hex): Print long hash strings a little neater.
2730         (print_mds): Add the new SHAs to the hash list.
2731
2732 2003-02-02  David Shaw  <dshaw@jabberwocky.com>
2733
2734         * keyedit.c (menu_revuid): Properly handle a nonselfsigned uid on
2735         a v4 key (treat as a v4 revocation).
2736
2737         * import.c (print_import_check): Do not re-utf8 convert user IDs.
2738
2739 2003-01-27  David Shaw  <dshaw@jabberwocky.com>
2740
2741         * mainproc.c (list_node): Show signature expiration date in
2742         with-colons sig records.
2743
2744         * keylist.c (list_keyblock_colon), mainproc.c (list_node): Show
2745         trust sig information in with-colons sig records.
2746
2747 2003-01-16  David Shaw  <dshaw@jabberwocky.com>
2748
2749         * g10.c (add_group): Trim whitespace after a group name so it does
2750         not matter where the user puts the = sign.
2751
2752         * options.skel: Comment out the first three lines in case someone
2753         manually copies the skel file to their homedir.
2754
2755         * sign.c (clearsign_file): Only use pgp2mode with v3 keys and
2756         MD5. This matches what we do when decoding such messages and
2757         prevents creating a message (v3+RIPEMD/160) that we can't verify.
2758
2759         * sig-check.c (signature_check2): Use G10ERR_GENERAL as the error
2760         for signature digest conflict.  BAD_SIGN implies that a signature
2761         was checked and we may try and print out a user ID for a key that
2762         doesn't exist.
2763
2764 2003-01-15  David Shaw  <dshaw@jabberwocky.com>
2765
2766         * trustdb.c (init_trustdb, get_validity): Don't use a changed
2767         trust model to indicate a dirty trustdb, and never auto-rebuild a
2768         dirty trustdb with the "always" trust model.
2769
2770         * g10.c (add_group): Last commit missed the \t ;)
2771
2772 2003-01-14  David Shaw  <dshaw@jabberwocky.com>
2773
2774         * packet.h, parse-packet.c (setup_user_id), free-packet.c
2775         (free_user_id), keydb.h, keyid.c (namehash_from_uid): New function
2776         to rmd160-hash the contents of a user ID packet and cache it in
2777         the uid object.
2778
2779         * keylist.c (list_keyblock_colon): Use namehash in field 8 of
2780         uids.  Show dates for creation (selfsig date), and expiration in
2781         fields 6 and 7.
2782
2783         * trustdb.c (get_validity, get_validity_counts, update_validity):
2784         Use new namehash function rather than hashing it locally.
2785
2786 2003-01-14  Werner Koch  <wk@gnupg.org>
2787
2788         * g10.c (add_group): Fixed group parsing to allow more than one
2789         delimiter in a row and also allow tab as delimiter.
2790
2791 2003-01-12  David Shaw  <dshaw@jabberwocky.com>
2792
2793         * tdbio.c (tdbio_set_dbname): Fix assertion failure with
2794         non-fully-qualified trustdb names.
2795
2796 2003-01-11  David Shaw  <dshaw@jabberwocky.com>
2797
2798         * trustdb.c (get_validity_info, get_ownertrust_info,
2799         trust_letter): Simplify by returning a ? for error directly.
2800
2801         * keyedit.c (show_key_with_all_names): Use get_validity_string and
2802         get_ownertrust_string to show full word versions of trust
2803         (i.e. "full" instead of 'f').
2804
2805         * trustdb.h, trustdb.c (get_ownertrust_string,
2806         get_validity_string): Same as get_ownertrust_info, and
2807         get_validity_info, except returns a full string.
2808
2809         * trustdb.c (get_ownertrust_with_min): New.  Same as
2810         'get_ownertrust' but takes the min_ownertrust value into account.
2811
2812 2003-01-10  David Shaw  <dshaw@jabberwocky.com>
2813
2814         * armor.c (armor_filter): Comment about PGP's end of line tab
2815         problem.
2816
2817         * trustdb.h, trustdb.c (trust_letter): Make
2818         static. (get_ownertrust_info, get_validity_info): Don't mask the
2819         trust level twice.
2820
2821         * trustdb.h, gpgv.c, trustdb.c (get_validity, get_validity_info),
2822         keylist.c (list_keyblock_colon), keyedit.c
2823         (show_key_with_all_names_colon, menu_revuid): Pass a user ID in
2824         rather than a namehash, so we only have to do the hashing in one
2825         place.
2826
2827         * packet.h, pkclist.c (build_pk_list), free-packet.c
2828         (release_public_key_parts): Remove unused namehash element for
2829         public keys.
2830
2831 2003-01-07  David Shaw  <dshaw@jabberwocky.com>
2832
2833         * keygen.c (keygen_set_std_prefs): Warn when setting an IDEA
2834         preference when IDEA is not available.
2835
2836 2003-01-06  David Shaw  <dshaw@jabberwocky.com>
2837
2838         * trustdb.c (get_validity_info): 'd' for disabled is not a
2839         validity value any more.
2840
2841         * packet.h, tdbio.h, tdbio.c (tdbio_read_record,
2842         tdbio_write_record), trustdb.c (update_validity): Store temporary
2843         full & marginal counts in the trustdb.
2844         (clear_validity, get_validity_counts): Return and clear temp
2845         counts.
2846         (store_validation_status): Keep track of which keyids have been
2847         stored.
2848         (validate_one_keyblock, validate_key_list): Use per-uid copies of
2849         the full & marginal counts so they can be recalled for multiple
2850         levels.
2851         (validate_keys): Only use unused keys for each new round.
2852         (reset_unconnected_keys): Rename to reset_trust_records, and only
2853         skip specifically excluded records.
2854
2855         * keylist.c (print_capabilities): Show 'D' for disabled keys in
2856         capabilities section.
2857
2858         * trustdb.c (is_disabled): Remove incorrect comment.
2859
2860 2003-01-03  David Shaw  <dshaw@jabberwocky.com>
2861
2862         * import.c (import_one): Only do the work to create the status
2863         display for interactive import if status is enabled.
2864
2865         * keyring.c (keyring_search): skipfnc didn't work properly with
2866         non-keyid searches.  Noted by Stefan Bellon.
2867
2868         * getkey.c (merge_selfsigs_main): Remove some unused code and make
2869         sure that the pk selfsigversion member accounts for 1F direct
2870         sigs.
2871
2872 2003-01-02  Werner Koch  <wk@gnupg.org>
2873
2874         * keydb.c (keydb_add_resource): Don't assume that try_make_homedir
2875         terminates but check again for the existence of the directory and
2876         continue then.
2877         * openfile.c (copy_options_file): Print a warning if the skeleton
2878         file has active options.
2879
2880 2002-12-29  David Shaw  <dshaw@jabberwocky.com>
2881
2882         * getkey.c (merge_selfsigs_main), main.h, sig-check.c
2883         (check_key_signature2): Pass the ultimately trusted pk directly to
2884         check_key_signature2 to avoid going through the key selection
2885         mechanism.  This prevents a deadly embrace when two keys without
2886         selfsigs each sign the other.
2887
2888 2002-12-27  David Shaw  <dshaw@jabberwocky.com>
2889
2890         * keyserver.c (keyserver_refresh): Don't print the "refreshing..."
2891         line if there are no keys to refresh or if there is no keyserver
2892         set.
2893
2894         * getkey.c (merge_selfsigs_main): Any valid user ID should make a
2895         key valid, not just the last one.  This also fixes Debian bug
2896         #174276.
2897
2898 2002-12-27  Stefan Bellon  <sbellon@sbellon.de>
2899
2900         * import.c (print_import_check): Changed int to size_t.
2901
2902 2002-12-27  David Shaw  <dshaw@jabberwocky.com>
2903
2904         * keyedit.c (keyedit_menu, menu_revuid): Add "revuid" feature to
2905         revoke a user ID.  This is the same as issuing a revocation for
2906         the self-signature, but a much simpler interface to do it.
2907
2908 2002-12-26  David Shaw  <dshaw@jabberwocky.com>
2909
2910         * keydb.h, getkey.c (key_byname): Flag to enable or disable
2911         including disabled keys.  Keys specified via keyid (i.e. 0x...)
2912         are always included.
2913
2914         * getkey.c (get_pubkey_byname, get_seckey_byname2,
2915         get_seckey_bynames), keyedit.c (keyedit_menu, menu_addrevoker):
2916         Include disabled keys in these functions.
2917
2918         * pkclist.c (build_pk_list): Do not include disabled keys for -r
2919         or the key prompt.  Do include disabled keys for the default key
2920         and --encrypt-to.
2921
2922         * trustdb.h, trustdb.c (is_disabled): New skipfnc for skipping
2923         disabled keys.
2924
2925         * gpgv.c (is_disabled): Stub.
2926
2927         * keygen.c (keygen_add_key_expire): Properly handle updating a key
2928         expiration to a no-expiration value.
2929
2930         * keyedit.c (enable_disable_key): Comment.
2931
2932         * import.c (import_one): When in interactive mode and --verbose,
2933         don't repeat some key information twice.
2934
2935 2002-12-22  Timo Schulz  <ts@winpt.org>
2936         
2937         * import.c (print_import_check): New.
2938         (import_one): Use it here.
2939         Use merge_keys_and_selfsig in the interactive mode to avoid
2940         wrong key information.
2941         * status.h: Add new status code.
2942         * status.c: Ditto.
2943         
2944 2002-12-13  David Shaw  <dshaw@jabberwocky.com>
2945
2946         * pkclist.c (do_we_trust): Tweak language to refer to the "named
2947         user" rather than "owner".  Noted by Stefan Bellon.
2948
2949         * trustdb.h, trustdb.c (trustdb_pending_check): New function to
2950         check if the trustdb needs a check.
2951
2952         * import.c (import_keys_internal): Used here so we don't rebuild
2953         the trustdb if it is still clean.
2954         (import_one, chk_self_sigs): Only mark trustdb dirty if the key
2955         that is being imported has any sigs other than self-sigs.
2956         Suggested by Adrian von Bidder.
2957
2958         * options.skel: Include the required '=' sign in the sample
2959         'group' option.  Noted by Stefan Bellon.
2960
2961         * import.c (chk_self_sigs): Don't try and check a subkey as if it
2962         was a signature.
2963
2964 2002-12-11  David Shaw  <dshaw@jabberwocky.com>
2965
2966         * tdbio.c (tdbio_read_record, tdbio_write_record): Compact the
2967         RECTYPE_TRUST records a bit.
2968
2969         * g10.c (main): Comment out --list-trust-path until it can be
2970         implemented.
2971
2972         * import.c (import_one): Warn when importing an Elgamal primary
2973         that this may take some time (to verify self-sigs).
2974         (chk_self_sigs): Try and cache all self-sigs so the keyblock is
2975         written to the keyring with a good rich cache.
2976
2977         * keygen.c (ask_algo): Make the Elgamal sign+encrypt warning
2978         stronger, and remove the RSA sign+encrypt warning.
2979
2980 2002-12-06  Stefan Bellon  <sbellon@sbellon.de>
2981
2982         * options.h: Fixed typo (mangle_dos_names instead of
2983         mangle_dos_filenames).
2984
2985 2002-12-05  Werner Koch  <wk@gnupg.org>
2986
2987         * g10.c: New options --[no-]mangle-dos-filenames.
2988         * options.h (opt): Added mangle-dos-filenames.
2989         * openfile.c (open_outfile) [USE_ONLY_8DOT3]: Truncate the
2990         filename only when this option is set; this is the default.
2991
2992 2002-12-04  David Shaw  <dshaw@jabberwocky.com>
2993
2994         * main.h, keyedit.c, keygen.c: Back out previous (2002-12-01)
2995         change.  Minimal isn't always best.
2996
2997         * sign.c (update_keysig_packet): Use the current time rather then
2998         a modification of the original signature time.  Make sure that
2999         this doesn't cause a time warp.
3000
3001         * keygen.c (keygen_add_key_expire): Properly handle a key
3002         expiration date in the past (use a duration of 0).
3003
3004         * keyedit.c (menu_expire): Use update_keysig_packet so any sig
3005         subpackets are maintained during the update.
3006
3007         * build-packet.c (build_sig_subpkt): Mark sig expired or unexpired
3008         when the sig expiration subpacket is added.
3009         (build_sig_subpkt_from_sig): Handle making an expiration subpacket
3010         from a sig that has already expired (use a duration of 0).
3011
3012         * packet.h, sign.c (update_keysig_packet), keyedit.c
3013         (menu_set_primary_uid, menu_set_preferences): Add ability to issue
3014         0x18 subkey binding sigs to update_keysig_packet and change all
3015         callers.
3016
3017         * trustdb.c (validate_keys): Show trust parameters when building
3018         the trustdb, and make sure that the version record update was
3019         successful.
3020         (init_trustdb): If the current parameters aren't what was used for
3021         building the trustdb, the trustdb is invalid.
3022
3023         * tbio.c (tdbio_db_matches_options): Update to work with new
3024         trustdbs.
3025
3026 2002-12-03  David Shaw  <dshaw@jabberwocky.com>
3027
3028         * tdbio.h, tdbio.c (tdbio_read_record, tdbio_write_record): Store
3029         trust model in the trustdb version record.
3030         (tdbio_update_version_record): New function to update version
3031         record values during a trustdb check or update.
3032         (tdbio_dump_record): Show trust model in dump.
3033
3034         * trustdb.c (validate_keys): Call tdbio_update_version_record on
3035         success so that the correct options are stored in the trustdb.
3036
3037         * options.h: rearrange trust models so that CLASSIC is 0 and
3038         OPENPGP is 1.
3039
3040         * options.h, g10.c (main), encode.c (write_pubkey_enc_from_list),
3041         pkclist.c (algo_available), revoke.c (gen_revoke): Add --pgp8
3042         mode.  This is basically identical to --pgp7 in all ways except
3043         that signing subkeys, v4 data sigs (including expiration), and SK
3044         comments are allowed.
3045
3046         * getkey.c (finish_lookup): Comment.
3047
3048         * main.h, keylist.c (reorder_keyblock), keyedit.c (keyedit_menu):
3049         Reorder user ID display in the --edit-key menu to match that of
3050         the --list-keys display.
3051
3052         * g10.c (add_notation_data): Fix initialization.
3053
3054 2002-12-01  David Shaw  <dshaw@jabberwocky.com>
3055
3056         * keyedit.c (menu_expire): Don't lose key flags when changing the
3057         expiration date of a subkey.  This is not the most optimal
3058         solution, but it is minimal change on the stable branch.
3059
3060         * main.h, keygen.c (do_copy_key_flags): New function to copy key
3061         flags, if any, from one sig to another.
3062         (do_add_key_expire): New function to add key expiration to a sig.
3063         (keygen_copy_flags_add_expire): New version of
3064         keygen_add_key_expire that also copies key flags.
3065         (keygen_add_key_flags_and_expire): Use do_add_key_expire.
3066
3067         * import.c (fix_hkp_corruption): Comment.
3068
3069 2002-11-25  Stefan Bellon  <sbellon@sbellon.de>
3070
3071         * plaintext.c (handle_plaintext) [__riscos__]: If nooutput is set,
3072         no filetype is needed obviously.
3073
3074 2002-11-24  David Shaw  <dshaw@jabberwocky.com>
3075
3076         * main.h, misc.c (default_cipher_algo, default_compress_algo):
3077         New.  Return the default algorithm by trying
3078         --cipher-algo/--compress-algo, then the first item in the pref
3079         list, then s2k-cipher-algo or ZIP.
3080
3081         * sign.c (sign_file, sign_symencrypt_file), encode.c
3082         (encode_simple, encode_crypt): Call default_cipher_algo and
3083         default_compress_algo to get algorithms.
3084
3085         * g10.c (main): Allow pref selection for compress algo with
3086         --openpgp.
3087
3088         * mainproc.c (proc_encrypted): Use --s2k-digest-algo for
3089         passphrase mangling rather than --digest-algo.
3090
3091         * sign.c (hash_for): If --digest-algo is not set, but
3092         --personal-digest-preferences is, then use the first hash
3093         algorithm in the personal list.  If the signing algorithm is DSA,
3094         then use the first 160-bit hash algorithm in the personal list.
3095         If --pgp2 is set and it's a v3 RSA key, use MD5.
3096
3097         * g10.c (main), keydb.c (keydb_add_resource,
3098         keydb_locate_writable): Rename --default-keyring as
3099         --primary-keyring.  Stefan wins the naming contest.
3100
3101 2002-11-23  David Shaw  <dshaw@jabberwocky.com>
3102
3103         * g10.c (add_notation_data): Disallow notation names that do not
3104         contain a '@', unless --expert is set.  This is to help prevent
3105         people from polluting the (as yet unused) IETF namespace.
3106
3107         * main.h: Comments about default algorithms.
3108
3109         * photoid.c (image_type_to_string): Comments about 3-letter file
3110         extensions.
3111
3112         * encode.c (encode_simple), passphrase.c (passphrase_to_dek),
3113         sign.c (sign_symencrypt_file): Use --s2k-digest-algo for
3114         passphrase mangling rather than --digest-algo.
3115
3116 2002-11-21  David Shaw  <dshaw@jabberwocky.com>
3117
3118         * keygen.c (keygen_set_std_prefs): Properly handle an empty
3119         preference string.
3120
3121         * misc.c (string_to_compress_algo): "none" is a bad choice since
3122         it conflicts with the "none" in setpref.
3123
3124 2002-11-14  David Shaw  <dshaw@jabberwocky.com>
3125
3126         * g10.c (main): Allow compression algorithm names as the argument
3127         to --compress-algo.  The old algorithm names still work for
3128         backwards compatibility.
3129
3130         * misc.c (string_to_compress_algo): Allow "none" as an alias for
3131         "uncompressed".
3132
3133 2002-11-13  Stefan Bellon  <sbellon@sbellon.de>
3134
3135         * getkey.c (get_pubkey_byfprint_fast): Fixed type incompatibility,
3136         was unsigned char instead of byte.
3137
3138 2002-11-13  David Shaw  <dshaw@jabberwocky.com>
3139
3140         * encode.c (encode_simple): Make sure that files larger than about
3141         4G use partial length encoding.  This is required because OpenPGP
3142         allows only for 32 bit length fields.  From Werner on stable
3143         branch.
3144
3145         * getkey.c (get_pubkey_direct): Renamed to...
3146         (get_pubkey_fast): this and made extern.
3147         (get_pubkey_byfprint_fast): New.  From Werner on stable branch.
3148
3149         * keydb.h, import.c (import_one): Use get_pubkey_fast instead of
3150         get_pubkey.  We don't need a merged key and actually this might
3151         lead to recursions.
3152         (revocation_present): Likewise for search by fingerprint.  From
3153         Werner on stable branch.
3154
3155         * g10.c (main): Try to create the trustdb even for non-colon-mode
3156         list-key operations.  This is required because getkey needs to
3157         know whether a a key is ultimately trusted.  From Werner on stable
3158         branch.
3159         
3160         * exec.c [__CYGWIN32__]: Keep cygwin separate from Mingw32;
3161         we don't need it here as it behaves more like a Posix system.
3162         From Werner on stable branch.
3163
3164         * passphrase.c (agent_get_passphrase): Ditto.  From Werner on
3165         stable branch.
3166
3167         * tdbio.c (MY_O_BINARY): Need binary mode with Cygwin.  From
3168         Werner on stable branch.
3169
3170         * g10.c, gpgv.c (main) [__CYGWIN32__]: Don't get the homedir from
3171         the registry.  From Werner on stable branch.
3172         
3173         * keyedit.c (show_key_with_all_names_colon): Make --with-colons
3174         --edit display match the validity and trust of --with-colons
3175         --list-keys.
3176
3177         * passphrase.c (agent_send_all_options): Fix compile warning.
3178
3179         * keylist.c (list_keyblock_colon): Validity for subkeys should
3180         match that of the primary key, and not that of the last user ID.
3181
3182         * getkey.c (merge_selfsigs): Revoked/expired/invalid primary keys
3183         carry these facts onto all their subkeys, but only after the
3184         subkey has a chance to be marked valid.  This is to fix an
3185         incorrect "invalid public key" error verifying a signature made by
3186         a revoked signing subkey, with a valid unrevoked primary key.
3187
3188 2002-11-09  Werner Koch  <wk@gnupg.org>
3189
3190         * passphrase.c (agent_send_all_options): Use tty_get_ttyname to
3191         get the default ttyname.
3192
3193 2002-11-07  David Shaw  <dshaw@jabberwocky.com>
3194
3195         * keyring.h, keyring.c (keyring_register_filename): Return the
3196         pointer if a given keyring is registered twice.
3197
3198         * keydb.h, keydb.c (keydb_add_resource): Use flags to indicate a
3199         default keyring.
3200         (keydb_locate_writable): Prefer the default keyring if possible.
3201
3202         * g10.c (main): Add --default-keyring option.
3203
3204 2002-11-06  David Shaw  <dshaw@jabberwocky.com>
3205
3206         * options.h, g10.c (main), trustdb.c (ask_ownertrust): Add
3207         --force-ownertrust option for debugging purposes.  This allows
3208         setting a whole keyring to a given trust during an
3209         --update-trustdb.  Not for normal use - it's just easier than
3210         hitting "4" all the time to test a large trustdb.
3211
3212         * pubkey-enc.c (get_session_key): With hidden recipients or try a
3213         given passphrase against all secret keys rather than trying all
3214         secret keys in turn.  Don't if --try-all-secrets or --status-fd is
3215         enabled.
3216
3217         * passphrase.c (passphrase_to_dek): Mode 1 means do a regular
3218         passphrase query, but don't prompt with the key info.
3219
3220         * seckey-cert.c (do_check, check_secret_key): A negative ask count
3221         means to enable passphrase mode 1.
3222
3223         * keydb.h, getkey.c (enum_secret_keys): Add flag to include
3224         secret-parts-missing keys (or not) in the list.
3225
3226 2002-11-05  David Shaw  <dshaw@jabberwocky.com>
3227
3228         * keyserver.c (keyserver_search_prompt): When --with-colons is
3229         enabled, don't try and fit the search output to the screen size -
3230         just dump the whole list.
3231
3232 2002-11-04  David Shaw  <dshaw@jabberwocky.com>
3233
3234         * keyserver.c (keyserver_search_prompt): When --with-colons is
3235         enabled, just dump the raw keyserver protocol to stdout and don't
3236         print the menu.
3237
3238         * keyserver.c (show_prompt): Don't show a prompt when command-fd
3239         is being used.
3240
3241         * trustdb.c (trust_model_string, check_trustdb, update_trustdb,
3242         validate_one_keyblock): It's not clear what a trustdb rebuild or
3243         check means with a trust model other than "classic" or "openpgp",
3244         so disallow this.
3245
3246 2002-11-03  David Shaw  <dshaw@jabberwocky.com>
3247
3248         * options.h, g10.c (main): Add --trust-model option.  Current
3249         models are "openpgp" which is classic+trustsigs, "classic" which
3250         is classic only, and "always" which is the same as the current
3251         option --always-trust (which still works).  Default is "openpgp".
3252
3253         * trustdb.c (validate_one_keyblock): Use "openpgp" trust model to
3254         enable trust sigs.
3255
3256         * gpgv.c (main), mainproc.c (check_sig_and_print), pkclist.c
3257         (do_we_trust, do_we_trust_pre, check_signatures_trust): Use new
3258         --trust-model option in place of --always-trust.
3259
3260         * keyedit.c (sign_mk_attrib, trustsig_prompt, sign_uids,
3261         keyedit_menu): Prompt for and create a trust signature with
3262         "tsign".  This is functional, but needs better UI text.
3263
3264         * build-packet.c (build_sig_subpkt): Able to build trust and
3265         regexp subpackets.
3266
3267         * pkclist.c (do_edit_ownertrust): Comment.
3268
3269 2002-11-02  David Shaw  <dshaw@jabberwocky.com>
3270
3271         * keygen.c (set_one_pref, keygen_set_std_prefs): Allow using the
3272         full algorithm name (CAST5, SHA1) rather than the short form (S3,
3273         H2).
3274
3275         * main.h, keygen.c (keygen_get_std_prefs), keyedit.c
3276         (keyedit_menu): Return and use a fake uid packet rather than a
3277         string since we already have a nice parser/printer in
3278         keyedit.c:show_prefs.
3279
3280         * main.h, misc.c (string_to_compress_algo): New.
3281
3282 2002-11-01  David Shaw  <dshaw@jabberwocky.com>
3283
3284         * g10.c (main): Add --no-throw-keyid.
3285
3286         * keydb.h, encode.c (write_pubkey_enc_from_list), g10.c (main),
3287         pkclist.c (build_pk_list): Add --hidden-recipient (-R) and
3288         --hidden-encrypt-to, which do a single-user variation on
3289         --throw-keyid.  The "hide this key" flag is carried in bit 0 of
3290         the pk_list flags field.
3291
3292         * keyserver.c (parse_keyrec): Fix shadowing warning.
3293
3294 2002-10-31  Stefan Bellon  <sbellon@sbellon.de>
3295
3296         * compress.c (init_compress) [__riscos__]: Use
3297         riscos_load_module() to load ZLib module.
3298
3299         * g10.c (main) [__riscos__]: Renames due to changes in riscos.c
3300         (e.g. prefixes all RISC OS specific functions with riscos_*).
3301         * photoid.c (show_photos) [__riscos__]: Likewise.
3302         * signal.c (got_fatal_signal) [__riscos__]: Likewise.
3303
3304         * trustdb.c (check_regexp) [__riscos__]: Branch to RISC OS RegEx
3305         handling.
3306
3307 2002-10-31  David Shaw  <dshaw@jabberwocky.com>
3308
3309         * build-packet.c (do_plaintext), encode.c (encode_sesskey,
3310         encode_simple, encode_crypt), sign.c (write_plaintext_packet): Use
3311         wipememory() instead of memset() to wipe sensitive memory as the
3312         memset() might be optimized away.
3313
3314 2002-10-30  David Shaw  <dshaw@jabberwocky.com>
3315
3316         * trustdb.c (check_regexp): Modern regexps require REG_EXTENDED.
3317
3318 2002-10-29  David Shaw  <dshaw@jabberwocky.com>
3319
3320         * packet.h, trustdb.h, trustdb.c (trust_string): New.  Return a
3321         string like "fully trusted", "marginally trusted", etc.
3322         (get_min_ownertrust): New.  Return minimum ownertrust.
3323         (update_min_ownertrust): New.  Set minimum ownertrust.
3324         (check_regexp): New.  Check a regular epression against a user ID.
3325         (ask_ownertrust): Allow specifying a minimum value.
3326         (get_ownertrust_info): Follow the minimum ownertrust when
3327         returning a letter.
3328         (clear_validity): Remove minimum ownertrust when a key becomes
3329         invalid.
3330         (release_key_items): Release regexp along with the rest of the
3331         info.
3332         (validate_one_keyblock, validate_keys): Build a trust sig chain
3333         while validating.  Call check_regexp for regexps.  Use the minimum
3334         ownertrust if the user does not specify a genuine ownertrust.
3335
3336         * pkclist.c (do_edit_ownertrust): Only allow user to select a
3337         trust level greater than the minimum value.
3338
3339         * parse-packet.c (can_handle_critical): Can handle critical trust
3340         and regexp subpackets.
3341
3342         * trustdb.h, trustdb.c (clear_ownertrusts), delkey.c
3343         (do_delete_key), import.c (import_one): Rename clear_ownertrust to
3344         clear_ownertrusts and have it clear the min_ownertrust value as
3345         well.
3346
3347         * keylist.c (list_keyblock_print): Indent uid to match pub and
3348         sig.
3349
3350         * keyedit.c (print_and_check_one_sig, show_key_and_fingerprint,
3351         menu_addrevoker), keylist.c (list_keyblock_print,
3352         print_fingerprint): Show "T" or the trust depth for trust
3353         signatures, and add spaces to some strings to make room for it.
3354
3355         * packet.h, parse-packet.c (dump_sig_subpkt, parse_one_sig_subpkt,
3356         parse_signature): Parse trust signature values.
3357
3358         * tdbio.h, tdbio.c (tdbio_read_record, tdbio_write_record):
3359         Reserve a byte for the minimum ownertrust value (for use with
3360         trust signatures).
3361
3362 2002-10-29  Stefan Bellon  <sbellon@sbellon.de>
3363
3364         * build-packet.c (calc_plaintext, do_plaintext): Removed RISC OS
3365         specific filetype parts (it's now done in make_basename()).
3366
3367         * plaintext.c (handle_plaintext): Tidied up RISC OS specific
3368         filetype parts.
3369
3370         * encode.c (encode_simple, encode_crypt): Added argument to
3371         make_basename() call.
3372
3373         * sign.c (write_plaintext_packet): Added argument to
3374         make_basename() call.
3375
3376 2002-10-28  Stefan Bellon  <sbellon@sbellon.de>
3377
3378         * build-packet.c (calc_plaintext, do_plaintext): Added filetype
3379         handling for RISC OS' file types.
3380
3381         * plaintext.c (handle_plaintext) [__riscos__]: Added filetype
3382         handling for RISC OS' file types.
3383
3384 2002-10-23  David Shaw  <dshaw@jabberwocky.com>
3385
3386         * main.h, import.c (sec_to_pub_keyblock, import_secret_one,
3387         parse_import_options), g10.c (main): New import-option
3388         "convert-sk-to-pk" to convert a secret key into a public key
3389         during import.  It is on by default.
3390
3391 2002-10-23  Werner Koch  <wk@gnupg.org>
3392
3393         * pubkey-enc.c (get_it): Fix segv, test for revoked only when PK
3394         has been assigned.
3395
3396 2002-10-18  Timo Schulz  <ts@winpt.org>
3397
3398         * keylist.c: (print_pubkey_info): New.
3399         (print_seckey_info): New.
3400         * main.h: Prototypes for the new functions.       
3401         * delkey.c (do_delete_key): Use it here.
3402         * revoke.c (gen_desig_revoke): Ditto.
3403         
3404 2002-10-17  Werner Koch  <wk@gnupg.org>
3405
3406         * pkclist.c (do_edit_ownertrust): Show all user IDs.  This should
3407         be enhanced to also show the current trust level.  Suggested by
3408         Florian Weimer.
3409
3410 2002-10-17  David Shaw  <dshaw@jabberwocky.com>
3411
3412         * g10.c (main): Handle --strict and --no-strict from the command
3413         line before the options file is loaded.
3414
3415 2002-10-15  David Shaw  <dshaw@jabberwocky.com>
3416
3417         * g10.c (main): Disable --textmode when encrypting (symmetric or
3418         pk) in --pgp2 mode as PGP 2 can't handle the unknown length
3419         literal packet.  Reported by Michael Richardson.
3420
3421 2002-10-14  David Shaw  <dshaw@jabberwocky.com>
3422
3423         * keyserver-internal.h, keyserver.c (print_keyrec, parse_keyrec,
3424         show_prompt, keyserver_search_prompt, keyserver_spawn): Go to
3425         version 1 of the keyserver protocol.  This is a better design,
3426         similar to --with-colons, that allows for keys with multiple user
3427         IDs rather than using multiple keys.  It also matches the machine
3428         readable pksd format.  Also use a prettier --search-keys listing
3429         format that can fill different size windows (currently set at 24
3430         lines).
3431
3432 2002-10-12  Werner Koch  <wk@gnupg.org>
3433
3434         * keygen.c (print_status_key_created): New.
3435         (do_generate_keypair): Use it to print the fingerprint.
3436         (generate_subkeypair): Likewise.
3437
3438 2002-10-11  David Shaw  <dshaw@jabberwocky.com>
3439
3440         * keyedit.c (menu_addrevoker): Properly back out if the signature
3441         fails.  Also, do not allow appointing the same revoker twice, and
3442         report ALREADY_SIGNED if the user tries it.
3443
3444 2002-10-07  David Shaw  <dshaw@jabberwocky.com>
3445
3446         * import.c (import_keys_internal): Missed one s/inp/inp2/.
3447
3448         * keylist.c (print_capabilities): Properly indicate per-key
3449         capabilities of sign&encrypt primary keys that have
3450         secret-parts-missing (i.e. no capabilities at all)
3451
3452         * mainproc.c (symkey_decrypt_sesskey): Fix compiler warning.
3453
3454 2002-10-04  David Shaw  <dshaw@jabberwocky.com>
3455
3456         * getkey.c (get_pubkey_direct): Don't cache keys retrieved via
3457         this function as they may not have all their fields filled in.
3458
3459         * sig-check.c (signature_check2): Use new is_primary flag to check
3460         rather than comparing main_keyid with keyid as this still works in
3461         the case of a not fully filled in pk.
3462
3463 2002-10-04  Werner Koch  <wk@gnupg.org>
3464
3465         * import.c (import_keys_internal): s/inp/inp2/ to avoid shadowing
3466         warning.
3467
3468         * passphrase.c (agent_get_passphrase): Fixed signed/unsigned char
3469         problem in %-escaping.  Noted by Ingo Klöcker.
3470
3471 2002-10-03  David Shaw  <dshaw@jabberwocky.com>
3472
3473         * options.h, g10.c (main): Add --strict and --no-strict to switch
3474         the log_warning severity level from info to error.
3475
3476         * keylist.c (print_capabilities): Secret-parts-missing keys should
3477         show that fact in the capabilities, and only primary signing keys
3478         can certify other keys.
3479
3480         * packet.h, parse_packet.c (parse_key): Add is_primary flag for
3481         public keys (it already exists for secret keys).
3482
3483 2002-10-02  David Shaw  <dshaw@jabberwocky.com>
3484
3485         * import.c (import_secret_one): Check for an illegal (>110)
3486         protection cipher when importing a secret key.
3487
3488         * keylist.c (list_keyblock_print): Show a '#' for a
3489         secret-parts-missing key.
3490
3491         * parse_packet.c (parse_key): Some comments.
3492
3493         * revoke.c (gen_revoke): Remove some debugging code.
3494
3495         * trustdb.c (verify_own_keys): Make trusted-key a non-deprecated
3496         option again.
3497
3498         * seckey-cert.c (do_check): Don't give the IDEA warning unless the
3499         cipher in question is in fact IDEA.
3500
3501 2002-10-01  David Shaw  <dshaw@jabberwocky.com>
3502
3503         * import.c (import_one): Make sure that a newly imported key
3504         starts with a clean ownertrust.
3505
3506 2002-10-01  Werner Koch  <wk@gnupg.org>
3507
3508         * getkey.c (get_pubkey_direct): New.
3509         (merge_selfsigs_main): Use it here to look for an ultimately
3510         trusted key.  Using the full get_pubkey might lead to an
3511         infinitive recursion.
3512
3513 2002-09-29  David Shaw  <dshaw@jabberwocky.com>
3514
3515         * keyserver.c (parse_keyserver_uri): Force the keyserver URI
3516         scheme to lowercase to be case-insensitive.
3517
3518 2002-09-28  David Shaw  <dshaw@jabberwocky.com>
3519
3520         * export.c (do_export_stream): Comment.
3521
3522         * sig-check.c (check_key_signature2): Properly handle a
3523         non-designated revocation import.
3524
3525 2002-09-26  Werner Koch  <wk@gnupg.org>
3526
3527         * g10.c (set_homedir): New. Changed all direct assignments to use
3528         this.
3529         * gpgv.c (set_homedir): Ditto.
3530
3531 2002-09-25  David Shaw  <dshaw@jabberwocky.com>
3532
3533         * Makefile.am: Link gpg with EGDLIBS (i.e. NETLIBS) as EGD uses
3534         sockets.  Remove the old NETLIBS variable since the keyserver
3535         stuff is no longer internal.
3536
3537 2002-09-24  David Shaw  <dshaw@jabberwocky.com>
3538
3539         * import.c (import_keys_stream): Fix compiler type warning.
3540
3541         * keyring.c (keyring_rebuild_cache), sig-check.c
3542         (check_key_signature2), import.c (import, chk_self_sigs): Minor
3543         language cleanups.
3544
3545 2002-09-23  Stefan Bellon  <sbellon@sbellon.de>
3546
3547         * main.h: Introduced fast-import as import option. Removed
3548         fast as separate option from prototypes.
3549         * import.c (parse_import_options): Added fast-import option.
3550         (import_*): Removed fast as separate option.
3551         * g10.c (main): Added option fast-import, removed old fast
3552         as separate argument.
3553         * keyserver.c (keyserver_spawn): Removed old fast as separate
3554         argument.
3555
3556 2002-09-22  Stefan Bellon  <sbellon@sbellon.de>
3557
3558         * import.c (import_keys, import_keys_stream,
3559         import_keys_internal): Added trustdb update/check to key import if
3560         not fast-import and interactive set/no-auto-check-trustdb unset.
3561         Avoided function clone by introducing import_keys_internal.
3562
3563 2002-09-19  David Shaw  <dshaw@jabberwocky.com>
3564
3565         * keyserver.c (keyserver_spawn): Properly handle line truncation.
3566         Don't leak memory (~10-20 bytes) on searches.
3567         (keyserver_search_prompt): Cleanup.
3568
3569         * keylist.c (list_keyblock_colon): Show 1F direct key signatures
3570         in --with-colons listing.
3571
3572 2002-09-16  David Shaw  <dshaw@jabberwocky.com>
3573
3574         * keyedit.c (menu_addrevoker): The direct key signature for
3575         revocation keys must be at least v4 to carry the revocation key
3576         subpacket.  Add a PGP 2.x warning for revocation keys.
3577
3578 2002-09-14  David Shaw  <dshaw@jabberwocky.com>
3579
3580         * g10.c (check_permissions): Rearrange strings to make translating
3581         easier (don't incorporate string parts).
3582
3583         * keyedit.c (sign_uids): Make strings translatable.
3584
3585         * sig-check.c (check_key_signature2): Make string translatable.
3586
3587 2002-09-13  David Shaw  <dshaw@jabberwocky.com>
3588
3589         * getkey.c (check_revocation_keys): Move....
3590         * main.h, sig-check.c (check_revocation_keys): to here.  Also
3591         return the signature_check error code rather than 0/1 and cache
3592         the sig result.
3593
3594         * sig-check.c (check_key_signature2): Divert to
3595         check_revocation_keys if a revocation sig is made by someone other
3596         than the pk owner.
3597
3598         * getkey.c (merge_selfsigs_main): Tidy.
3599
3600 2002-09-13  Werner Koch  <wk@gnupg.org>
3601
3602         * g10.c (main) [__MINGW32__]: Activate oLoadExtension.
3603
3604 2002-09-12  David Shaw  <dshaw@jabberwocky.com>
3605
3606         * Makefile.am, hkp.c, hkp.h, keyserver.c (keyserver_work): Remove
3607         internal HKP support.
3608
3609         * keyserver.c (keyserver_spawn): Remove whitespace after keyserver
3610         commands.
3611
3612 2002-09-10  David Shaw  <dshaw@jabberwocky.com>
3613
3614         * exec.c (expand_args): Remove loop left over from earlier
3615         implementation.
3616         (exec_write): Missed one tick.
3617
3618 2002-09-10  Werner Koch  <wk@gnupg.org>
3619
3620         * g10.c, options.h: Removed option --emulate-checksum-bug.
3621         * misc.c (checksum_u16_nobug): Removed.
3622         (checksum_u16): Removed the bug emulation.
3623         (checksum_mpi): Ditto.
3624         (checksum_mpi_counted_nbits): Removed and replaced all calls
3625         with checksum_mpi.
3626
3627         * parse-packet.c (read_protected_v3_mpi): New.
3628         (parse_key): Use it here to store it as an opaque MPI.
3629         * seckey-cert.c (do_check): Changed the v3 unprotection to the new
3630         why to store these keys.
3631         (protect_secret_key): Likewise.
3632         * build-packet.c (do_secret_key): And changed the writing.
3633
3634         * tdbio.c (tdbio_set_dbname, open_db): Use new macro MY_O_BINARY
3635         to avoid silly ifdefs.
3636         (open_db): Fallback to RDONLY so that gpg may be used from a
3637         RO-medium.
3638
3639         * encode.c (encode_simple): Make sure we don't use an ESK packet
3640         when we don't have a salt in the S2K.
3641
3642         * misc.c (pct_expando) <case f>: Make sure that LEN is initialized.
3643
3644         * exec.c (exec_finish): Use ticks to denote filenames in messages.
3645         (make_tempdir, exec_write): Changed format of messages.
3646
3647         * keyserver.c (print_keyinfo): Release USERID in on error.
3648         (keyserver_work) [!DISABLE_KEYSERVER_HELPERS]: Exclude the unused
3649         code.
3650
3651 2002-09-09  Werner Koch  <wk@gnupg.org>
3652
3653         * parse-packet.c (make_attribute_uidname): Add new ar MAX_NAMELEN
3654         for sanity checks.  Changed both callers. Limit the size of an %s.
3655
3656         * options.skel: Comment lock-once out, so that this file does not
3657         change anything when copied to a new home directory.
3658         * openfile.c (try_make_homedir): Don't exit after copying the
3659         option skeleton.
3660
3661         * options.h: Don't use a comma when declaring variables over more
3662         than one line.
3663
3664         * mainproc.c (symkey_decrypt_sesskey): Check length of the session
3665         key.
3666
3667         * hkp.c (dehtmlize): Use ascii_tolower to protect against weird
3668         locales.  Cast the argument for isspace for the sake of broken
3669         HP/UXes.
3670         (parse_hkp_index): s/ascii_memcasecmp/ascii_strncasecmp/.
3671
3672         * g10.c: Removed option --emulate-3des-s2k-bug.
3673
3674         * passphrase.c (hash_passphrase): Was used here.
3675
3676         * export.c (parse_export_options)
3677         * keyserver.c (parse_keyserver_options)
3678         * import.c (parse_import_options)
3679         * g10.c (check_permissions): s/ascii_memcasecmp/ascii_strncasecmp/.
3680
3681 2002-09-09  David Shaw  <dshaw@jabberwocky.com>
3682
3683         * g10.c (add_group): Use '=' to separate group name from group
3684         members.  Use a better error message for when no = is found.
3685
3686         * hkp.c (hkp_export): Use CRLF in headers.
3687
3688 2002-09-03  David Shaw  <dshaw@jabberwocky.com>
3689
3690         * mainproc.c (print_pkenc_list): Don't increment the error counter
3691         when printing the list of keys a message was encrypted to.  This
3692         would make gpg give a non-zero exit code even for completely valid
3693         messages if the message was encrypted to more than one key that
3694         the user owned.
3695
3696 2002-09-02  Werner Koch  <wk@gnupg.org>
3697
3698         * g10.c (main): Try to set a default character set.  Print the
3699         used one in verbosity level 3.
3700         * gpgv.c (main): Try to set a default character set.
3701
3702         * status.c, status.h (STATUS_IMPORT_OK): New.
3703         * import.c (import_one,import_secret_one): Print new status.
3704
3705 2002-08-30  David Shaw  <dshaw@jabberwocky.com>
3706
3707         * pkclist.c (build_pk_list): Add new status code to indicate an
3708         untrusted user.  This (or a disabled key) fail with "unavailable
3709         pubkey" (G10ERR_UNU_PUBKEY).
3710
3711         * pkclist.c (build_pk_list): Fail if any recipient keys are
3712         unusable.
3713
3714         * options.skel: The PGP LDAP keyserver is back.  Use MIT keyserver
3715         as a sample rather than cryptnet as cryptnet does not support
3716         searching yet.
3717
3718         * keyedit.c (show_key_with_all_names): Fix error message
3719         (preferences are userid/selfsig and not key specific).
3720
3721 2002-08-30  Werner Koch  <wk@gnupg.org>
3722
3723         * pkclist.c (do_we_trust_pre): Changed the wording of a warning.
3724
3725         * encode.c (encode_simple,encode_crypt): Use new style CTB for
3726         compressssed packets when using MDC.  We need to do this so that
3727         concatenated messages are properly decrypted.  Old style
3728         compression assumes that it is the last packet; given that we
3729         can't determine the length in advance, the uncompressor does not
3730         know where to start.  Actually we should use the new CTB always
3731         but this would break PGP 2 compatibility.
3732
3733         * parse-packet.c (parse): Special treatment for new style CTB
3734         compressed packets.
3735
3736         * build-packet.c (do_mdc): Removed. Was not used.
3737         (do_encrypted_mdc): Count in the version number and the MDC packet.
3738
3739 2002-08-28  David Shaw  <dshaw@jabberwocky.com>
3740
3741         * sig-check.c (do_check_messages, do_check): Show keyid in error
3742         messages.
3743
3744         * keyserver.c (print_keyinfo): More readable key listings for
3745         --search-keys responses.
3746
3747 2002-08-26  David Shaw  <dshaw@jabberwocky.com>
3748
3749         * hkp.c (parse_hkp_index, dehtmlize): Move HTML functionality into
3750         new "dehtmlize" function.  Remove HTML before trying to parse each
3751         line from the keyserver.  If the keyserver provides key type
3752         information in the listing, use it.
3753
3754 2002-08-23  David Shaw  <dshaw@jabberwocky.com>
3755
3756         * sig-check.c (do_check, do_check_messages): Emit the usual sig
3757         warnings even for cached sigs.  This also serves to protect
3758         against missing a sig expiring while cached.
3759
3760         * getkey.c (merge_selfsigs_main): Don't check UID self-sigs twice.
3761
3762 2002-08-22  David Shaw  <dshaw@jabberwocky.com>
3763
3764         * import.c (clean_subkeys, chk_self_sigs): Merge clean_subkeys
3765         into chk_self_sigs.  This improves efficiency as the same
3766         signatures are not checked multiple times.  Clarify when a subkey
3767         is revoked (any revocation signature, even if it is dated before
3768         the binding signature).
3769
3770         * getkey.c (merge_selfsigs_subkey): Subkey revocation comments.
3771
3772         * keylist.c (list_one): Stats are only for public key listings.
3773
3774         * g10.c (main), options.skel: Default should be include-revoked
3775         for keyserver operations.
3776
3777 2002-08-21  Werner Koch  <wk@gnupg.org>
3778
3779         * import.c (import_print_stats): Print new non_imported counter
3780         which is currently not used because we terminate on errors.
3781
3782 2002-08-20  David Shaw  <dshaw@jabberwocky.com>
3783
3784         * options.skel: Document no-include-attributes for
3785         keyserver-options.
3786
3787         * keylist.c, keyedit.c, keyserver.c, sign.c: Some TODOs and
3788         comments.
3789
3790         * export.c (do_export_stream): Fix noop bug in exporting sensitive
3791         revocation keys.
3792
3793         * pkclist.c (do_edit_ownertrust): Comment out the option for
3794         showing trust paths until it can be implemented.
3795
3796 2002-08-19  Werner Koch  <wk@gnupg.org>
3797
3798         * getkey.c (get_user_id_native): Renamed to ..
3799         (get_user_id_printable): this.  Filter out all dangerous
3800         characters.  Checked all usages.
3801         (get_user_id_string_native): Renamed to..
3802         (get_user_id_string_printable): this.  Filter out all dangerous
3803         characters.  Checked all usages.
3804         * keyedit.c (show_basic_key_info): New.
3805         * keylist.c (print_fingerprint): New mode 3.
3806         * import.c (import_one): Use new function to display the user ID.
3807
3808 2002-08-16  Timo Schulz  <ts@winpt.org>
3809
3810         * g10.c (main): Enable opt.interactive.
3811
3812         * import.c (import_one): Ask the user if the key shall be
3813         imported when the interactive mode is used. Useful to extract
3814         selected keys from a file.
3815         
3816 2002-08-16  Werner Koch  <wk@gnupg.org>
3817
3818         * seckey-cert.c: Workaround to allow decryption of v3 keys created
3819         with a bug in the mpi_get_secure_buffer.
3820
3821 2002-08-14  David Shaw  <dshaw@jabberwocky.com>
3822
3823         * hkp.c (parse_hkp_index): Properly handle really large keys
3824         (5 digit key length) in HKP searches.
3825
3826 2002-08-13  David Shaw  <dshaw@jabberwocky.com>
3827
3828         * encode.c (encode_simple): Fix problem with using compression
3829         algo 2 and symmetric compressed files.
3830
3831         * encode.c (encode_simple, encode_crypt): If we are not using a
3832         MDC, compress even if a file is already compressed.  This is to
3833         help against the chosen ciphertext attack.
3834
3835         * pkclist.c (select_algo_from_prefs): Fix requested algorithm bug
3836         so the request succeeds even if the requested algorithm is not the
3837         first found.
3838
3839         * cipher.c (write_header), encode.c (use_mdc, encode_simple,
3840         encode_crypt, encrypt_filter), g10.c (main): Be more eager to use
3841         a MDC.  We use a MDC if the keys directly support it, if the keys
3842         list AES (any) or TWOFISH anywhere in the prefs, or if the cipher
3843         chosen does not have a 64 bit blocksize.
3844
3845 2002-08-08  David Shaw  <dshaw@jabberwocky.com>
3846
3847         * options.skel: Some language tweaks, and remove the
3848         load-extension section for random gatherers.
3849
3850         * keyring.c (create_tmp_file, rename_tmp_file): Create tmp files
3851         with user-only permissions, but restore the original permissions
3852         if the user has something special set.
3853
3854         * openfile.c (copy_options_file): Create new options file
3855         (gpg.conf) with user-only permissions.
3856
3857         * keydb.c (keydb_add_resource): Create new keyrings with user-only
3858         permissions.
3859
3860         * tdbio.c (tdbio_set_dbname): Create new trustdbs with user-only
3861         permissions.
3862
3863 2002-08-07  David Shaw  <dshaw@jabberwocky.com>
3864
3865         * sig-check.c (signature_check2): Sanity check that the md has a
3866         context for the hash that the sig is expecting.  This can happen
3867         if a onepass sig header does not match the actual sig, and also if
3868         the clearsign "Hash:" header is missing or does not match the
3869         actual sig.
3870
3871         * keyedit.c (menu_revsig): Properly show a uid is revoked without
3872         restarting gpg.  This is Debian bug 124219, though their supplied
3873         patch will not do the right thing.
3874
3875         * main.h, tdbio.c (tdbio_set_dbname), misc.c (removed
3876         check_permissions), keydb.c (keydb_add_resource), g10.c (main,
3877         check_permissions): Significant reworking of the permission check
3878         mechanism.  The new behavior is to check everything in the homedir
3879         by checking the homedir itself.  If the user wants to put
3880         (possibly shared) keyrings outside the homedir, they are not
3881         checked.  The options file and any extension files are checked
3882         wherever they are, as well as their enclosing directories.  This
3883         is Debian bug 147760.
3884         
3885 2002-08-06  Stefan Bellon  <sbellon@sbellon.de>
3886
3887         * g10.c (main): Use of EXTSEP_S in new gpg.conf string.
3888         * openfile.c (copy_options_file): Ditto.
3889
3890 2002-08-06  David Shaw  <dshaw@jabberwocky.com>
3891
3892         * options.h, g10.c (main), mainproc.c (proc_encrypted):
3893         --ignore-mdc-error option to turn a MDC check error into a
3894         warning.
3895
3896         * encode.c (encode_crypt), g10.c (main), sign.c (sign_file,
3897         clearsign_file): Use the same --pgpX warning string everywhere to
3898         ease translations.
3899
3900         * encode.c (write_pubkey_enc_from_list): Warn when using
3901         --throw-keyid with --pgpX.  Noted by Vedaal Nistar.
3902
3903         * revoke.c (export_minimal_pk, gen_desig_revoke, gen_revoke):
3904         Export a minimal pk along with the revocation cert when in --pgpX
3905         mode so that PGP can import it.
3906
3907 2002-08-06  Werner Koch  <wk@gnupg.org>
3908
3909         * options.skel: Changed comments.
3910
3911         * g10.c (main): Try to use "gpg.conf" as default option file.
3912         * openfile.c (copy_options_file): Changed name of created file.
3913
3914 2002-08-02  Werner Koch  <wk@gnupg.org>
3915
3916         * Makefile.am (LDFLAGS): Removed DYNLINK_LDFLAGS.
3917
3918 2002-07-30  David Shaw  <dshaw@jabberwocky.com>
3919
3920         * options.h, g10.c (main), mainproc.c (proc_encrypted): Return a
3921         decryption failed error if a MDC does not verify.  Warn if a MDC
3922         is not present (can disable via --no-mdc-warning).
3923
3924         * exec.c (exec_write), g10.c (main), keyserver.c
3925         (keyserver_spawn): Use new DISABLE_KEYSERVER_PATH rather than
3926         FIXED_EXEC_PATH.
3927
3928 2002-07-28  David Shaw  <dshaw@jabberwocky.com>
3929
3930         * sig-check.c (do_check): Properly validate v4 sigs with no hashed
3931         section at all.
3932
3933 2002-07-25  Werner Koch  <wk@gnupg.org>
3934
3935         * delkey.c (do_delete_key): Always allow to delete a key in batch mode
3936         when specified by fingerprint.  Suggested by Enzo Michelangeli.
3937
3938 2002-07-25  David Shaw  <dshaw@jabberwocky.com>
3939
3940         * keyedit.c (menu_revsig): Change "revsig" to honor selected uids
3941         so the user can revoke sigs from particular uids only.
3942
3943         * keylist.c (list_keyblock_print): Don't display expired uids in
3944         --list-keys unless -v and not --list-sigs (just like revoked
3945         uids).
3946
3947         * exec.c, export.c, import.c, keyedit.c, keyserver.c, misc.c:
3948         "Warning" -> "WARNING"
3949
3950 2002-07-24  David Shaw  <dshaw@jabberwocky.com>
3951
3952         * main.h, import.c (parse_import_options, fix_hkp_corruption,
3953         import_one, delete_inv_parts), g10.c (main): New import-option
3954         "repair-hkp-subkey-bug", which repairs as much as possible the HKP
3955         mangling multiple subkeys bug.  It is on by default for keyserver
3956         receives, and off by default for regular --import.
3957
3958         * main.h, import.c (import, import_one, delete_inv_parts), hkp.c
3959         (hkp_ask_import), keyserver.c (keyserver_spawn): Use keyserver
3960         import options when doing keyserver receives.
3961
3962         * options.h, exec.h, exec.c (set_exec_path, exec_write), g10.c
3963         (main), keyserver.c (keyserver_spawn): If the user does not use
3964         "exec-path", completely replace $PATH with GNUPG_LIBEXECDIR before
3965         calling the keyserver helper.  If the user does use "exec-path",
3966         append GNUPG_LIBEXECDIR after the specified path.
3967
3968 2002-07-23  David Shaw  <dshaw@jabberwocky.com>
3969
3970         * import.c (parse_import_options), export.c
3971         (parse_export_options): Fix offset problem with reversed ("no-")
3972         meanings.
3973
3974         * import.c (delete_inv_parts): Discard subkey signatures (0x18 and
3975         0x28) if found in the userid section of the key.
3976
3977         * sig-check.c (signature_check2): Signatures made by invalid
3978         subkeys (bad/missing binding sig) are also invalid.
3979
3980         * keylist.c (print_fingerprint): Show the primary as well as the
3981         secondary key fingerprint in modes 1 & 2.
3982
3983 2002-07-22  David Shaw  <dshaw@jabberwocky.com>
3984
3985         * options.h, main.h, g10.c (main), import.c
3986         (parse_import_options, delete_inv_parts), keyserver.c
3987         (parse_keyserver_options): add new --import-options option.  The
3988         only current flag is "allow-local-sigs".
3989
3990         * g10.c (main): Don't disable MDC in pgp7 mode.
3991
3992         * options.h, g10.c (main), keyserver.c (parse_keyserver_options):
3993         Remove old keyserver-option include-attributes now that there is
3994         an export-option for the same thing.
3995
3996         * options.h, main.h, export.c (parse_export_options,
3997         do_export_stream), g10.c (main): add new --export-options option.
3998         Current flags are "include-non-rfc", "include-local-sigs",
3999         "include-attributes", and "include-sensitive-revkeys".
4000
4001         * options.h, hkp.c (hkp_export), keyserver.c
4002         (parse_keyserver_options, keyserver_spawn): try passing unknown
4003         keyserver options to export options, and if successful, use them
4004         when doing a keyserver --send-key.
4005
4006         * build-packet.c (build_sig_subpkt): We do not generate
4007         SIGSUBPKT_PRIV_VERIFY_CACHE anymore.
4008
4009         * revoke.c (gen_desig_revoke): Lots more comments about including
4010         sensitive revkeys along with the revocation sig itself.
4011
4012         * keyserver.c (parse_keyserver_options): Simpler implementation
4013         that can skip one pass over the options.
4014
4015 2002-07-18  David Shaw  <dshaw@jabberwocky.com>
4016
4017         * keyedit.c (keyedit_menu, menu_addrevoker): Allow specifying
4018         "sensitive" as an argument to an addrevoker command.  This sets
4019         the 0x40 sensitive revoker flag.
4020
4021         * revoke.c (gen_desig_revoke): When generating a designated
4022         revocation, include the direct key sig that contains the
4023         designated revoker subpacket.  This allows sensitive designated
4024         revocation subpackets to be exported.  Also indicate which
4025         revokers are sensitive in the first place.
4026
4027 2002-07-17  David Shaw  <dshaw@jabberwocky.com>
4028
4029         * keyedit.c (show_key_with_all_names_colon): The 0x40 class bit in
4030         a designated revoker means "sensitive", not "local".  It's
4031         exportable under the right circumstances.
4032
4033         * main.h, options.h, export.c (do_export_stream), g10.c (main),
4034         hkp.c (hkp_export), keyserver.c (keyserver_spawn: Add a flag to
4035         skip attribute packets and their signatures while exporting.  This
4036         is to accomodate keyservers (pksd again) that choke on attributes.
4037         Use keyserver-option "include-attributes" to control it.  This
4038         defaults to ON (i.e. don't skip).
4039
4040 2002-07-09  David Shaw  <dshaw@jabberwocky.com>
4041
4042         * options.h, keyserver.c (parse_keyserver_uri, keyserver_spawn,
4043         keyserver_work), hkp.c (hkp_ask_import, hkp_export, hkp_search):
4044         Use a much more strict reading of RFC-2396 for the keyserver URIs.
4045         Specifically, don't try and be smart about checking the value of
4046         ":port" so long as it is all digits, and properly handle opaque
4047         data (those scheme specific parts that do not start with "//").
4048
4049 2002-07-04  David Shaw  <dshaw@jabberwocky.com>
4050
4051         * photoid.c (get_default_photo_command, show_photos): Honor
4052         FIXED_PHOTO_VIEWER and DISABLE_PHOTO_VIEWER.
4053
4054         * mainproc.c (check_sig_and_print): Use --show-photos to show
4055         photos when verifying a sig made by a key with a photo.
4056
4057         * keyserver.c (parse_keyserver_uri): Properly parse a URI with no
4058         :port section and an empty file path, but with a terminating '/'.
4059         (keyserver_work): Honor DISABLE_KEYSERVER_HELPERS.
4060
4061         * hkp.c (hkp_ask_import): Display keyserver URI as a URI, but only
4062         if verbose.
4063
4064         * exec.c, g10.c: USE_EXEC_PATH -> FIXED_EXEC_PATH
4065
4066 2002-07-03  David Shaw  <dshaw@jabberwocky.com>
4067
4068         * exec.h, exec.c (set_exec_path, exec_write), g10.c (main): If
4069         USE_EXEC_PATH&nbs