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