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