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