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