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