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