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