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