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