chiark / gitweb /
dirmngr: hkp: Avoid potential race condition when some hosts die.
[gnupg2.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
3486         * g10.c (add_notation_data): Make sure that only ascii is passed
3487         to iscntrl.  Noted by Christian Biere.
3488         * getkey.c (classify_user_id2): Replaced isspace by spacep
3489         * keygen.c (ask_user_id): Ditto.
3490         (get_parameter_algo): Ditto.
3491         * keyedit.c (keyedit_menu): Ditto.
3492         * tdbdump.c (import_ownertrust): Ditto.  s/isxdigit/hexdigitp/.
3493         * revoke.c (ask_revocation_reason):
3494         * keyserver.c (keyserver_spawn): Dito.
3495
3496         * parse-packet.c (parse): Disallow old style partial length for
3497         all key material packets to avoid possible corruption of keyrings.
3498
3499         * import.c (import_keys_internal): Invalidate the cache so that
3500         the file descriptor gets closed.  Fixes bug reported by Juan
3501         F. Codagnone.
3502
3503         * options.h, g10.c (main), main.h, keylist.c (show_keyserver_url),
3504         mainproc.c (check_sig_and_print), parse-packet.c (dump_sig_subpkt,
3505         parse_one_sig_subpkt, can_handle_critical): Add read-only support
3506         for preferred keyserver subpackets.  They're basically policy URLs
3507         with a different name.  Add a verify-option
3508         "show-preferred-keyserver" to turn them on and off (on by default,
3509         as per stable branch).
3510
3511         * g10.c (main): Add "--set-notation" as alias to "--notation-data"
3512         this is to make things consistent with --set-policy-url meaning
3513         both sigs and certs.
3514
3515         * options.h, g10.c (main), keylist.c (list_keyblock_print): Add
3516         "show-validity" and "show-long-keyid" list-options.
3517
3518         * gpgv.c (get_validity, trust_value_to_string): Stubs.
3519
3520         * g10.c (main): Use SAFE_VERSION instead of VERSION in the
3521         version-specific gpg.conf file so it can be overridden on RISCOS.
3522
3523         * keyedit.c (show_key_with_all_names): Fix assertion failure when
3524         using toggle to see a secret key.  Reported by Maxim Britov.
3525
3526
3527 2003-09-22  Timo Schulz  <twoaday@freakmail.de>
3528
3529         * card-util.c (card_status): Free pk in case of an error
3530         and return if the card is no OpenPGP card.
3531
3532 2003-09-18  Werner Koch  <wk@gnupg.org>
3533
3534         * g10.c: New command --card-edit.
3535         * card-util.c (card_status): Use tty_fprintf for all output.
3536         (print_sha1_fpr, print_isoname): Ditto.
3537         (get_one_name,change_name, change_url, change_login,change_lang)
3538         (change_sex): New; taken from keygen.c.
3539         * keygen.c (smartcard_get_one_name, smartcard_change_name)
3540         (smartcard_change_url, smartcard_change_login_data)
3541         (smartcard_change_lang, smartcard_change_sex): Removed.
3542         (check_smartcard): Removed most menu items.
3543
3544 2003-09-06  Werner Koch  <wk@gnupg.org>
3545
3546         * misc.c (openpgp_pk_algo_usage): Allow AUTH where SIGN is allowed.
3547
3548         * keygen.c (ask_passphrase): No need to allocated S2K in secure
3549         memory.
3550
3551 2003-09-04  Werner Koch  <wk@gnupg.org>
3552
3553         * keygen.c (do_add_key_flags, parse_parameter_usage)
3554         (do_generate_keypair): Add support the proposed AUTH key flag.
3555         * getkey.c (fixup_uidnode, merge_selfsigs_main)
3556         (merge_selfsigs_subkey, premerge_public_with_secret): Ditto.
3557         * keylist.c (print_capabilities): Ditto.
3558
3559 2003-08-25  Timo Schulz  <twoaday@freakmail.de>
3560
3561         * pkglue.c (mpi_from_sexp): New. Used to factor out
3562         some common code.
3563
3564 2003-08-24  Werner Koch  <wk@gnupg.org>
3565
3566         * keygen.c (do_generate_keypair): Print a reminder to use --gen-revoke.
3567
3568 2003-08-18  Timo Schulz  <twoaday@freakmail.de>
3569
3570         * encode.c (encode_sesskey): Checked the code and removed
3571         the warning since all compatibility checks with PGP succeeded.
3572         * mainproc.c (symkey_decrypt_sesskey): Better check for the
3573         algorithm and check the return values of some functions.
3574         * mdc.c (use_mdc): Simplified.
3575
3576 2003-08-07  Werner Koch  <wk@gnupg.org>
3577
3578         * pkglue.c (pk_sign): Fix last change.
3579         (pk_verify): Check for valid DATA array so that we don't segv in
3580         Libgcrypt.
3581         (pk_verify): Ditto.
3582
3583 2003-08-06  Werner Koch  <wk@gnupg.org>
3584
3585         * pkglue.c (pk_sign): Allow signing using RSA.
3586
3587 2003-08-05  Werner Koch  <wk@gnupg.org>
3588
3589         * Makefile.am (install-data-local): Dropped check for the ancient
3590         gpgm tool.
3591         (bin_PROGRAMS): Renamed gpg to gpg2 and gpgv to gpgv2.  This is so
3592         that it won't conflict with the current stable version of gpg.
3593
3594         * pkglue.c (pk_check_secret_key): New.
3595         * seckey-cert.c (do_check): Reenable this test here again.
3596
3597         * g10.c (main): Add command -K as an alias for
3598         --list-secret-keys. Command "-k" is now an alias to --list-keys.
3599         Remove special treatment of -kv and -kvv.
3600         (set_cmd): Ditto.
3601         (main): Strip a "-cvs" suffix when testing for a version specific
3602         config file.
3603
3604         * status.h, status.c, g10.c [USE_SHM_COPROCESSING]: Removed.  This
3605         is not any longer available.
3606
3607 2003-07-29  Werner Koch  <wk@gnupg.org>
3608
3609         * g10.c (main): Add secmem features and set the random seed file.
3610         (g10_exit): Update the random seed file.
3611
3612         * parse-packet.c (parse_signature,read_protected_v3_mpi)
3613         (parse_key): Fixed use of mpi_set_opaque.
3614         * keygen.c (gen_card_key): Ditto.
3615
3616 2003-07-28  Werner Koch  <wk@gnupg.org>
3617
3618         * status.c (progress_cb): Adjusted for use with Libcgrypt.
3619         (set_status_fd): Register that callback.
3620
3621         * keygen.c (smartcard_change_login_data): New.
3622         (smartcard_change_lang): New.
3623         (smartcard_change_sex): New.
3624         (check_smartcard): Add menu entries to edit the above.
3625         (gen_elg,gen_dsa,gen_rsa): Reimplemented in terms of Libgcrypt.
3626         (genhelp_protect, genhelp_factors, key_from_sexp): New.
3627         * comment.c (make_comment_node_from_buffer): New.
3628         (make_comment_node): Reimplemented in terms of above.
3629
3630 2003-07-27  Werner Koch  <wk@gnupg.org>
3631
3632         Adjusted for gcry_mpi_print and gcry_mpi_scan API change.
3633
3634 2003-07-24  Werner Koch  <wk@gnupg.org>
3635
3636         * g10.c: New command --card-status.
3637         * card-util.c (card_status): New.
3638         * call-agent.c (learn_status_cb): Parse more information.
3639
3640         * keylist.c (print_pubkey_info): Add FP arg for optional printing
3641         to a stream.  Changed all callers.
3642
3643 2003-07-23  Werner Koch  <wk@gnupg.org>
3644
3645         * keygen.c (generate_keypair): Create an AUTHKEYTYPE entry for cards.
3646         (do_generate_keypair): Abd generate the authkey.
3647         (check_smartcard): Changed menu accordingly.
3648
3649 2003-07-22  Werner Koch  <wk@gnupg.org>
3650
3651         * g10.c: New command --change-pin.
3652         * card-util.c: New.
3653         * call-agent.c (agent_scd_change_pin): New.
3654         (agent_release_card_info): New.
3655         * keygen.c (check_smartcard): Use it here.
3656
3657 2003-07-16  Werner Koch  <wk@gnupg.org>
3658
3659         * export.c (parse_export_options): New option sexp-format.
3660         (export_seckeys,export_secsubkeys): Check sexp-format option.
3661         (do_export): Ignore armor for sexp format.
3662         (do_export_stream): Handle sexp-format.
3663         (write_sexp_line,write_sexp_keyparm, build_sexp_seckey): New.
3664         (build_sexp): New.
3665
3666 2003-07-03  Werner Koch  <wk@gnupg.org>
3667
3668         * options.h (DBG_CIPHER): Reintroduced it.
3669         * seskey.c (encode_session_key): Debug output of the session key.
3670
3671         * pubkey-enc.c (get_it): Handle card case.
3672         * call-agent.c (agent_scd_pkdecrypt): New.
3673         * pkglue.c (pk_encrypt): Add RSA support.
3674
3675         * g10.c (main): Default to --use-agent.
3676
3677         * keygen.c (show_smartcard): Print info about the public key.
3678         (check_smartcard): Check for existing key here.
3679         (gen_card_key): And not anymore here.
3680         (fpr_is_zero): New.
3681         (generate_keypair): Generate both keys for a card.
3682         (smartcard_change_url): Nw.
3683
3684 2003-07-02  Werner Koch  <wk@gnupg.org>
3685
3686         * seckey-cert.c (is_secret_key_protected): Let it handle mode 1002.
3687
3688 2003-07-01  Werner Koch  <wk@gnupg.org>
3689
3690         * keygen.c (gen_card_key): Obviously we should use the creation
3691         date received from SCDAEMON, so that the fingerprints will match.
3692         * sign.c (do_sign): Pass the serialno to the sign code.
3693         * keyid.c (serialno_and_fpr_from_sk): New.
3694
3695 2003-06-30  Werner Koch  <wk@gnupg.org>
3696
3697         * call-agent.h (agent_card_info_s): Add field serialno.
3698         * call-agent.c (store_serialno): New.
3699         (learn_status_cb): Store the serial number.
3700         * keygen.c (gen_card_key): Store the serial number
3701         (check_smartcard): New argument to return the serial number.
3702         (generate_keypair): Get the serial number from check_smartcard and
3703         store it as a parameter.
3704         * parse-packet.c (parse_key): Use the protect.iv field to store the
3705         serial number.
3706         * build-packet.c (do_secret_key): Write the serial number.
3707
3708 2003-06-27  Werner Koch  <wk@gnupg.org>
3709
3710         * seckey-cert.c (check_secret_key): Bypass the unprotection for
3711         mode 1002.
3712         * sign.c (do_sign): Handle card case (i.e. mode 1002).
3713
3714 2003-06-26  Werner Koch  <wk@gnupg.org>
3715
3716         * build-packet.c (do_secret_key): Implement special protection
3717         mode 1002.
3718         * parse-packet.c (parse_key): Likewise.
3719
3720         * keygen.c (smartcard_gen_key): New.
3721         * call-agent.c (agent_scd_setattr): New.
3722
3723 2003-06-24  Werner Koch  <wk@gnupg.org>
3724
3725         * Makefile.am: Removed signal.c
3726
3727         * g10.c (emergency_cleanup): New.
3728         (main): Use gnupg_init_signals and register malloc for assuan.
3729
3730 2003-06-23  Werner Koch  <wk@gnupg.org>
3731
3732         * keyid.c (do_fingerprint_md): Made it work again.
3733
3734 2003-06-19  Werner Koch  <wk@gnupg.org>
3735
3736         Fixed all "==" comparisons against error code constants to use
3737         gpg_err_code().
3738
3739         * import.c (import_secret_one):
3740         (import_revoke_cert):
3741         (chk_self_sigs):
3742
3743         * misc.c (openpgp_md_map_name): Check also for the Hx format.
3744         (openpgp_cipher_map_name): Check also for the Sx format.
3745         (pubkey_get_npkey): Adjusted for changed gcrypt API.
3746         (pubkey_get_nskey): Ditto.
3747         (pubkey_get_nsig): Ditto.
3748         (pubkey_get_nenc): Ditto.
3749
3750 2003-06-18  Werner Koch  <wk@gnupg.org>
3751
3752         Finished the bulk of changes for gnupg 1.9.  This included
3753         switching to libgcrypt functions, using shared error codes from
3754         libgpg-error, replacing the old functions we used to have in
3755         ../util by those in ../jnlib and ../common, renaming the malloc
3756         functions and a couple of types.  Note, that not all changes are
3757         listed below becuause they are too similar and done at far too
3758         many places.  As of today the code builds using the current
3759         libgcrypt from CVS but it is very unlikely that it actually works.
3760
3761         * sig-check.c (cmp_help): Removed.  Was never used.
3762
3763         * pkglue.c: New. Most stuff taken from gnupg 1.1.2.
3764         * pkglue.h: New.
3765
3766         * misc.c (pull_in_libs): Removed.
3767
3768         * keygen.c (count_chr): New.
3769         (ask_user_id): Removed faked RNG support.
3770
3771         * misc.c (openpgp_md_map_name,openpgp_cipher_map_name)
3772         (openpgp_pk_map_name): New.
3773
3774         * skclist.c (build_sk_list): Removed faked RNG support.
3775         (is_insecure): Removed.
3776
3777         * comment.c (make_mpi_comment_node): Use gcry MPI print function.
3778
3779         * keyid.c (v3_keyid): New.
3780
3781         * misc.c (mpi_write,mpi_write_opaque,mpi_read,mpi_read_opaque)
3782         (mpi_print): New.  Taken from gnupg 1.1.2.
3783         (checksum_mpi): Replaced by implementation from 1.1.2.
3784
3785         * g10.c (my_strusage): Renamed from strusage and return NULL
3786         instead calling a default function.
3787         (add_to_strlist2): New.  Taken from ../util/strgutil.c of gnupg 1.2.
3788
3789         * plaintext.c (handle_plaintext): New arg CREATE_FILE to cope with
3790         the fact that gpg-error does not have this error code anymore.
3791
3792         * mainproc.c (symkey_decrypt_sesskey): Ditto.
3793
3794         * seskey.c (make_session_key): Adjusted for use with libgcrypt.
3795         (encode_session_key): Ditto.
3796         (do_encode_md): Ditto.
3797         (encode_md_value): Ditto.
3798
3799         * keyring.c: Use libgpg-error instead of READ_ERROR etc.
3800
3801         * g10.c: Adjusted all algorithm name/id mapping functions.
3802         (set_debug): Pass MPI and CRYPTO debug values to libgcrypt.
3803
3804         * Makefile.am (INCLUDES): Define LOCALEDIR and the default error
3805         source.
3806
3807         * g10.c (i18n_init): s/G10_LOCALEDIR/LOCALEDIR/.
3808
3809         Renamed m_alloc et al to xmalloc et al.
3810         s/g10_errstr/gpg_strerror/
3811         s/MPI/gcry_mpi_t/
3812         Adjusted all md_open calls to the libgcrypt API.
3813
3814         * build-packet.c (do_comment): Return error code from iobuf write
3815         function.
3816         (do_user_id): Ditto.
3817         (do_public_key): Ditto.
3818
3819         * Makefile.am: Add new files, link gpg with libgpg-error.
3820         * g10.c, options.h: New option --agent-program.
3821         * call-agent.c: New.
3822         * gpg.h, call-agent.h: New.
3823
3824 2003-06-03  David Shaw  <dshaw@jabberwocky.com>
3825
3826         * options.h, g10.c (main), keylist.c (list_keyblock_print): Add
3827         "show-validity" and "show-long-keyid" list-options.
3828
3829         * gpgv.c (get_validity, trust_value_to_string): Stubs.
3830
3831         * g10.c (main): Use SAFE_VERSION instead of VERSION in the
3832         version-specific gpg.conf file so it can be overridden on RISCOS.
3833
3834 2003-06-01  David Shaw  <dshaw@jabberwocky.com>
3835
3836         * g10.c (main), keylist.c (show_policy_url, show_notation),
3837         mainproc.c (check_sig_and_print): Emulate the old policy and
3838         notation behavior (display by default).  Send to status-fd whether
3839         it is displayed on the screen or not.
3840
3841         * g10.c (main): Since we now have some options in devel that won't
3842         work in a stable branch gpg.conf file, try for a version-specific
3843         gpg.conf-VERSION file before falling back to gpg.conf.
3844
3845         * main.h, options.h: Move various option flags to options.h.
3846
3847 2003-05-31  David Shaw  <dshaw@jabberwocky.com>
3848
3849         * mainproc.c (check_sig_and_print), main.h, keylist.c
3850         (show_policy, show_notation): Collapse the old print_notation_data
3851         into show_policy() and show_notation() so there is only one
3852         function to print notations and policy URLs.
3853
3854         * options.h, main.h, g10.c (main), keyedit.c
3855         (print_and_check_one_sig), keylist.c (list_one,
3856         list_keyblock_print), pkclist.c (do_edit_ownertrust), sign.c
3857         (mk_notation_and_policy): New "list-options" and "verify-options"
3858         commands.  These replace the existing
3859         --show-photos/--no-show-photos,
3860         --show-notation/--no-show-notation,
3861         --show-policy-url/--no-show-policy-url, and --show-keyring
3862         options.  The new method is more flexible since a user can specify
3863         (for example) showing photos during sig verification, but not in
3864         key listings.  The old options are emulated.
3865
3866         * main.h, misc.c (parse_options): New general option line
3867         parser. Fix the bug in the old version that did not handle report
3868         syntax errors after a valid entry.
3869
3870         * import.c (parse_import_options), export.c
3871         (parse_export_options): Call it here instead of duplicating the
3872         code.
3873
3874 2003-05-30  David Shaw  <dshaw@jabberwocky.com>
3875
3876         * keylist.c (list_one): Don't show the keyring filename when in
3877         --with-colons mode.  Actually translate "Keyring" string.
3878
3879         * mainproc.c (proc_tree): We can't currently handle multiple
3880         signatures of different classes or digests (we'd pretty much have
3881         to run a different hash context for each), but if they are all the
3882         same, make an exception.  This is Debian bug #194292.
3883
3884         * sig-check.c (check_key_signature2): Make string translatable.
3885
3886         * packet.h, getkey.c (fixup_uidnode): Mark real primary uids
3887         differently than assumed primaries.
3888
3889         * keyedit.c (no_primary_warning): Use the differently marked
3890         primaries here in a new function to warn when an --edit-key
3891         command might rearrange the self-sig dates enough to change which
3892         uid is primary.
3893         (menu_expire, menu_set_preferences): Use no_primary_warning()
3894         here.
3895
3896         * Makefile.am: Use @DLLIBS@ for -ldl.
3897
3898 2003-05-26  David Shaw  <dshaw@jabberwocky.com>
3899
3900         * getkey.c (premerge_public_with_secret): Made "no secret subkey
3901         for" warning a verbose item and translatable. (From wk on stable
3902         branch)
3903
3904         * sig-check.c (check_key_signature2): Made "no subkey for subkey
3905         binding packet" a verbose item instead of a !quiet one.  There are
3906         too many garbled keys out in the wild. (From wk on stable branch)
3907
3908         * filter.h: Remove const from WHAT. (From wk on stable branch)
3909
3910         * progress.c (handle_progress): Store a copy of
3911         NAME. (progress_filter): Release WHAT, make sure not to print a
3912         NULL WHAT. (From wk on stable branch)
3913
3914         * openfile.c (open_sigfile): Adjust free for new progress
3915         semantics. (From wk on stable branch)
3916
3917         * plaintext.c (ask_for_detached_datafile): Don't dealloc
3918         pfx->WHAT. (From wk on stable branch)
3919
3920         * seckey-cert.c (do_check): Issue the RSA_OR_IDEA status when the
3921         cipher algo is IDEA to make it easier to track down the
3922         problem. (From twoaday on stable branch)
3923
3924 2003-05-24  David Shaw  <dshaw@jabberwocky.com>
3925
3926         * armor.c, g10.c, kbnode.c, misc.c, pkclist.c, sign.c,
3927         build-packet.c, getkey.c, keydb.c, openfile.c, plaintext.c,
3928         status.c, gpgv.c, keygen.c, options.h, sig-check.c, tdbio.h,
3929         encode.c, mainproc.c, parse-packet.c, signal.c, textfilter.c: Edit
3930         all preprocessor instructions to remove whitespace before the '#'.
3931         This is not required by C89, but there are some compilers out
3932         there that don't like it.
3933
3934 2003-05-21  David Shaw  <dshaw@jabberwocky.com>
3935
3936         * trustdb.h, trustdb.c (is_disabled), gpgv.c (is_disabled): Rename
3937         is_disabled to cache_disabled_value, which now takes a pk and not
3938         just the keyid. This is for speed since there is no need to
3939         re-fetch a key when we already have that key handy.  Cache the
3940         result of the check so we don't need to hit the trustdb more than
3941         once.
3942
3943         * getkey.c (skip_disabled): New function to get a pk and call
3944         is_disabled on it. (key_byname): Use it here.
3945
3946         * packet.h, getkey.c (skip_disabled), keylist.c
3947         (print_capabilities): New "pk_is_disabled" macro to retrieve the
3948         cached disabled value if available, and fill it in via
3949         cache_disabled_value if not available.
3950
3951         * trustdb.c (get_validity): Cache the disabled value since we have
3952         it handy and it might be useful later.
3953
3954         * parse-packet.c (parse_key): Clear disabled flag when parsing a
3955         new key.  Just in case someone forgets to clear the whole key.
3956
3957         * getkey.c (merge_selfsigs_main): Add an "if all else fails" path
3958         for setting a single user ID primary when there are multiple set
3959         primaries all at the same second, or no primaries set and the most
3960         recent user IDs are at the same second, or no signed user IDs at
3961         all. This is arbitrary, but deterministic.
3962
3963         * exec.h, photoid.h: Add copyright message.
3964
3965         * keylist.c (list_keyblock_print): Don't dump attribs for
3966         revoked/expired/etc uids for non-colon key listings.  This is for
3967         consistency with --show-photos.
3968
3969         * main.h, keylist.c (dump_attribs), mainproc.c
3970         (check_sig_and_print): Dump attribs if --attrib-fd is set when
3971         verifying signatures.
3972
3973         * g10.c (main): New --gnupg option to disable the various
3974         --openpgp, --pgpX, etc. options.  This is the same as --no-XXXX
3975         for those options.
3976
3977         * revoke.c (ask_revocation_reason): Clear old reason if user
3978         elects to repeat question.  This is bug 153.
3979
3980         * keyedit.c (sign_uids): Show keyid of the key making the
3981         signature.
3982
3983 2003-05-21  Werner Koch  <wk@gnupg.org>
3984
3985         * progress.c (handle_progress)
3986         * sign.c (write_plaintext_packet)
3987         * encode.c (encode_simple,encode_crypt): Make sure that a filename
3988         of "-" is considered to be stdin so that iobuf_get_filelength
3989         won't get called.  This fixes bug 156 reported by Gregery Barton.
3990
3991 2003-05-02  David Shaw  <dshaw@jabberwocky.com>
3992
3993         * packet.h, build-packet.c (build_sig_subpkt), export.c
3994         (do_export_stream), import.c (remove_bad_stuff, import),
3995         parse-packet.c (dump_sig_subpkt, parse_one_sig_subpkt): Remove
3996         vestigal code for the old sig cache subpacket.  This wasn't
3997         completely harmless as it caused subpacket 101 to disappear on
3998         import and export.
3999
4000         * options.h, armor.c, cipher.c, g10.c, keyedit.c, pkclist.c,
4001         sign.c, encode.c, getkey.c, revoke.c: The current flags for
4002         different levels of PGP-ness are massively complex.  This is step
4003         one in simplifying them. No functional change yet, just use a
4004         macro to check for compliance level.
4005
4006         * sign.c (sign_file): Fix bug that causes spurious compression
4007         preference warning.
4008
4009         * sign.c (clearsign_file): Fix bug that prevents proper warning
4010         message from appearing when clearsigning in --pgp2 mode with a
4011         non-v3 RSA key.
4012
4013         * main.h, misc.c (compliance_option_string, compliance_string,
4014         compliance_failure), pkclist.c (build_pk_list), sign.c (sign_file,
4015         clearsign_file), encode.c (encode_crypt,
4016         write_pubkey_enc_from_list): New functions to put the "this
4017         message may not be usable...." warning in one place.
4018
4019         * options.h, g10.c (main): Part two of the simplification.  Use a
4020         single enum to indicate what we are compliant to (1991, 2440,
4021         PGPx, etc.)
4022
4023         * g10.c (main): Show errors for failure in export, send-keys,
4024         recv-keys, and refresh-keys.
4025
4026         * options.h, g10.c (main): Give algorithm warnings for algorithms
4027         chosen against the --pgpX and --openpgp rules.
4028
4029         * keydb.h, pkclist.c (algo_available): Make TIGER192 invalid in
4030         --openpgp mode.
4031
4032         * sign.c (sign_file), pkclist.c (algo_available): Allow passing a
4033         hint of 0.
4034
4035 2003-05-01  David Shaw  <dshaw@jabberwocky.com>
4036
4037         * tdbio.c (create_version_record): Only create new trustdbs with
4038         TM_CLASSIC or TM_PGP.
4039
4040         * trustdb.h, trustdb.c (trust_string, get_ownertrust_string,
4041         get_validity_string, ask_ownertrust, validate_keys), pkclist.c
4042         (do_edit_ownertrust): Rename trust_string to trust_value_to_string
4043         for naming consistency.
4044
4045         * trustdb.h, trustdb.c (string_to_trust_value): New function to
4046         translate a string to a trust value.
4047
4048         * g10.c (main): Use string_to_trust_value here for
4049         --force-ownertrust.
4050
4051         * options.h, g10.c (main), trustdb.c (trust_model_string,
4052         init_trustdb, check_trustdb, update_trustdb, get_validity,
4053         validate_one_keyblock): An "OpenPGP" trust model is misleading
4054         since there is no official OpenPGP trust model.  Use "PGP"
4055         instead.
4056
4057 2003-04-30  David Shaw  <dshaw@jabberwocky.com>
4058
4059         * build-packet.c (build_sig_subpkt): Comments.
4060
4061         * exec.c (exec_write): Cast NULL to void* to properly terminate
4062         varargs list.
4063
4064         * keyedit.c (show_key_with_all_names): Just for safety, catch an
4065         invalid pk algorithm.
4066
4067         * sign.c (make_keysig_packet): Crucial that the call to mksubpkt
4068         comes LAST before the calls to finalize the sig as that makes it
4069         possible for the mksubpkt function to get a reliable pointer to
4070         the subpacket area.
4071
4072         * pkclist.c (do_we_trust_pre): If an untrusted key was chosen by a
4073         particular user ID, use that ID as the one to ask about when
4074         prompting whether to use the key anyway.
4075         (build_pk_list): Similar change here when adding keys to the
4076         recipient list.
4077
4078         * trustdb.c (update_validity): Fix bug that prevented more than
4079         one validity record per trust record.
4080         (get_validity): When retrieving validity for a (user) supplied
4081         user ID, return the validity for that user ID only, and do not
4082         fall back to the general key validity.
4083         (validate_one_keyblock): Some commentary on whether
4084         non-self-signed user IDs belong in the web of trust (arguably,
4085         they do).
4086
4087 2003-04-27  David Shaw  <dshaw@jabberwocky.com>
4088
4089         * g10.c (main): Add --no-textmode.
4090
4091         * export.c (do_export_stream), keyedit.c (show_key_with_all_names,
4092         menu_addrevoker), mainproc.c (check_sig_and_print), photoid.c
4093         (show_photos), sign.c (mk_notation_and_policy), trustdb.c
4094         (get_validity, reset_trust_records, validate_keys): Make some
4095         strings translatable.
4096
4097         * mainproc.c (check_sig_and_print): Show digest algorithm and sig
4098         class when verifying a sig with --verbose on, and add version, pk
4099         and hash algorithms and sig class to VALIDSIG.
4100
4101         * parse-packet.c (enum_sig_subpkt): Make a warning message a
4102         --verbose warning message since we don't need to warn every time
4103         we see an unknown critical (we only need to invalidate the
4104         signature).
4105
4106         * trustdb.c (init_trustdb): Check the trustdb options even with
4107         TM_AUTO since the auto may become TM_CLASSIC or TM_OPENPGP.
4108
4109 2003-04-26  David Shaw  <dshaw@jabberwocky.com>
4110
4111         * sign.c (do_sign): Show the hash used when making a signature in
4112         verbose mode.
4113
4114         * tdbio.h, tdbio.c (tdbio_read_model): New function to return the
4115         trust model used in a given trustdb.
4116
4117         * options.h, g10.c (main), trustdb.c (init_trustdb, check_trustdb,
4118         update_trustdb): Use tdbio_read_model to implement an "auto" trust
4119         model which is set via the trustdb.
4120
4121 2003-04-23  David Shaw  <dshaw@jabberwocky.com>
4122
4123         * import.c (import_revoke_cert): Remove ultimate trust when
4124         revoking an ultimately trusted key.
4125
4126         * keyedit.c (sign_uids): Allow replacing expired signatures.
4127         Allow duplicate signatures with --expert.
4128
4129         * pkclist.c (check_signatures_trust): Don't display a null
4130         fingerprint when checking a signature with --always-trust enabled.
4131
4132         * filter.h (progress_filter_context_t), progress.c
4133         (handle_progress), plaintext.c (ask_for_detached_datafile,
4134         hash_datafiles): Fix compiler warnings.  Make "what" constant.
4135
4136         * build-packet.c (do_plaintext): Do not create invalid literal
4137         packets with >255-byte names.
4138
4139 2003-04-15  Werner Koch  <wk@gnupg.org>
4140
4141         * Makefile.am (AM_CFLAGS): Make use of AM_CFLAGS and AM_LDFLAGS.
4142
4143         * g10.c, options.h: New option --enable-progress-filter.
4144         * progress.c (handle_progress): Make use of it.
4145
4146 2003-04-15  Marcus Brinkmann  <marcus@g10code.de>
4147
4148         * progress.c: New file.
4149         * Makefile.am (common_source): Add progress.c.
4150         * filter.h (progress_filter_context_t): New type.
4151         (progress_filter, handle_progress): New prototypes.
4152         * main.h (open_sigfile): New argument for prototype.
4153         * openfile.c (open_sigfile): New argument to install progress
4154         filter.
4155         * encode.c (encode_simple): New variable PFX.  Register
4156         progress filter.  Install text_filter after that.
4157         (encode_crypt): Likewise.
4158         * sign.c (sign_file): Likewise.
4159         (clearsign_file): Likewise.
4160         * decrypt.c (decrypt_message): Likewise.
4161         (decrypt_messages): Likewise.
4162         * verify.c (verify_signatures): Likewise.
4163         (verify_one_file): Likewise.
4164         * plaintext.c (hash_datafiles): Likewise.
4165         (ask_for_detached_datafile): Likewise.
4166
4167 2003-04-10  Werner Koch  <wk@gnupg.org>
4168
4169         * passphrase.c (read_passphrase_from_fd): Do a dummy read if the
4170         agent is to be used.  Noted by Ingo Klöcker.
4171         (agent_get_passphrase): Inhibit caching when we have no
4172         fingerprint.  This is required for key generation as well as for
4173         symmetric only encryption.
4174
4175         * passphrase .c (agent_get_passphrase): New arg CANCELED.
4176         (passphrase_to_dek): Ditto.  Passed to above.  Changed all
4177         callers to pass NULL.
4178         * seckey-cert.c (do_check): New arg CANCELED.
4179         (check_secret_key): Terminate loop when canceled.
4180
4181         * keyedit.c (change_passphrase): Pass ERRTEXT untranslated to
4182         passphrase_to_dek and translate where appropriate.
4183         * seckey-cert.c (check_secret_key): Ditto.
4184         * keygen.c (ask_passphrase): Ditto.
4185         * passphrase.c (agent_get_passphrase): Translate the TRYAGAIN_TEXT.
4186         Switch the codeset to utf-8.
4187
4188 2003-04-09  Werner Koch  <wk@gnupg.org>
4189
4190         * decrypt.c (decrypt_messages): Fixed error handling; the function
4191         used to re-loop with same file after an error.  Reported by Joseph
4192         Walton.
4193
4194 2003-04-08  David Shaw  <dshaw@jabberwocky.com>
4195
4196         * main.h, g10.c (main), import.c (parse_import_options,
4197         fix_pks_corruption): It's really PKS corruption, not HKP
4198         corruption.  Keep the old repair-hkp-subkey-bug command as an
4199         alias.
4200
4201         * g10.c (main): Rename --no-version to --no-emit-version for
4202         consistency.  Keep --no-version as an alias.
4203
4204 2003-04-04  David Shaw  <dshaw@jabberwocky.com>
4205
4206         * pkclist.c (algo_available): PGP 8 can use the SHA-256 hash.
4207
4208         * sign.c (sign_file, clearsign_file, sign_symencrypt_file): Remove
4209         unused code.
4210
4211 2003-04-01  Werner Koch  <wk@gnupg.org>
4212
4213         * mainproc.c (check_sig_and_print): Add primary key fpr to VALIDSIG
4214         status.
4215
4216 2003-03-24  David Shaw  <dshaw@jabberwocky.com>
4217
4218         * keydb.h: Err on the side of making an unknown signature a SIG
4219         rather than a CERT.
4220
4221         * import.c (delete_inv_parts): Discard any key signatures that
4222         aren't key types (i.e. 0x00, 0x01, etc.)
4223
4224         * g10.c (main): Add deprecated option warning for
4225         --list-ownertrust.  Add --compression-algo alias for
4226         --compress-algo.  Change --version output strings to match
4227         "showpref" strings, and make translatable.
4228
4229         * status.c (do_get_from_fd): Accept 'y' as well as 'Y' for
4230         --command-fd boolean input.
4231
4232         * trustdb.c: Fix typo (DISABLE_REGEXP -> DISABLE_REGEX)
4233
4234         * keyedit.c (show_key_with_all_names_colon): Show no-ks-modify
4235         flag.
4236
4237 2003-03-11  David Shaw  <dshaw@jabberwocky.com>
4238
4239         * options.h, g10.c (main), keyserver.c (kopts): Add "try-dns-srv"
4240         keyserver option.  Defaults to on.
4241
4242         * passphrase.c (agent_get_passphrase): Fix memory leak with
4243         symmetric messages.  Fix segfault with symmetric messages.  Fix
4244         incorrect prompt with symmetric messages.
4245
4246 2003-03-10  Werner Koch  <wk@gnupg.org>
4247
4248         * compress.c (init_uncompress): Use a 15 bit window size so that
4249         the output of implementations which don't run for PGP 2
4250         compatibility won't get garbled.
4251
4252 2003-03-04  David Shaw  <dshaw@jabberwocky.com>
4253
4254         * trustdb.c (validate_keys): Mask the ownertrust when building the
4255         list of fully valid keys so that disabled keys are still counted
4256         in the web of trust.
4257         (get_ownertrust_with_min): Do the same for the minimum ownertrust
4258         calculation.
4259
4260         * parse-packet.c (dump_sig_subpkt): Show the notation names for
4261         not-human-readable notations.  Fix cosmetic off-by-one length
4262         counter.
4263
4264         * options.skel: Add explantion and commented-out
4265         "no-mangle-dos-filenames".
4266
4267         * mainproc.c (proc_encrypted): Make string translatable.
4268
4269         * keyserver.c (keyserver_spawn): Quote ':', '%', and any 8-bit
4270         characters in the uid strings sent to the keyserver helper.
4271
4272         * keyring.c (keyring_rebuild_cache): Lock the keyring while
4273         rebuilding the signature caches to prevent another gpg from
4274         tampering with the temporary copy.
4275
4276         * keygen.c (keygen_set_std_prefs): Include AES192 and AES256 in
4277         default prefs.
4278
4279         * keyedit.c (show_prefs): Make strings translatable.
4280
4281         * keydb.c: Double the maximum number of keyrings to 40.
4282
4283         * gpgv.c (main): Fix bug #113 - gpgv should accept the
4284         --ignore-time-conflict option.
4285
4286         * g10.c (main): --openpgp disables --pgpX.  Double the amount of
4287         secure memory to 32k (keys are getting bigger these days).
4288
4289         * Makefile.am: Makefile.am: Use @CAPLIBS@ to link in -lcap if we
4290         are using capabilities.
4291
4292 2003-02-26  David Shaw  <dshaw@jabberwocky.com>
4293
4294         * keyserver.c (keyserver_spawn): Include various pieces of
4295         information about the key in the data sent to the keyserver
4296         helper.  This allows the helper to use it in instructing a remote
4297         server which may not have any actual OpenPGP smarts in parsing
4298         keys.
4299
4300         * main.h, export.c (export_pubkeys_stream, do_export_stream): Add
4301         ability to return only the first match in an exported keyblock for
4302         keyserver usage.  This should be replaced at some point with a
4303         more flexible solution where each key can be armored seperately.
4304
4305 2003-02-22  David Shaw  <dshaw@jabberwocky.com>
4306
4307         * sign.c (sign_file): Do not push textmode filter onto an unopened
4308         IOBUF (segfault).  Noted by Marcus Brinkmann.  Push and
4309         reinitialize textmode filter for each file in a multiple file
4310         list.
4311
4312         * packet.h, getkey.c (fixup_uidnode), keyedit.c (show_prefs): Set
4313         and show the keyserver no-modify flag.
4314
4315         * keygen.c (add_keyserver_modify): New.
4316         (keygen_upd_std_prefs): Call it here.
4317         (keygen_set_std_prefs): Accept "ks-modify" and "no-ks-modify" as
4318         prefs to set and unset keyserver modify flag.
4319
4320         * g10.c (main): Accept "s1" in addition to "idea" to match the
4321         other ciphers.
4322
4323         * main.h, misc.c (idea_cipher_warn): We don't need this if IDEA
4324         has been disabled.
4325
4326 2003-02-21  David Shaw  <dshaw@jabberwocky.com>
4327
4328         * keygen.c (keygen_set_std_prefs): Don't put AES or CAST5 in
4329         default prefs if they are disabled.
4330
4331         * g10.c (main): Use 3DES instead of CAST5 if we don't have CAST5
4332         support.  Use 3DES for the s2k cipher in --openpgp mode.
4333         (print_mds): #ifdef all of the optional digest algorithms.
4334
4335 2003-02-12  David Shaw  <dshaw@jabberwocky.com>
4336
4337         * keydb.h, getkey.c (classify_user_id, classify_user_id2): Make
4338         'exact' a per-desc item.  Merge into one function since
4339         'force_exact' is no longer needed.
4340         (key_byname): Use new classify_user_id function, and new exact
4341         flag in KEYDB_SEARCH_DESC.
4342
4343         * keyring.h, keyring.c (keyring_search): Return an optional index
4344         to show which KEYDB_SEARCH_DESC was the matching one.
4345
4346         * keydb.h, keydb.c (keydb_search): Rename to keydb_search2, and
4347         pass the optional index to keyring_search.  Add a macro version of
4348         keydb_search that calls this new function.
4349
4350         * export.c (do_export_stream): If the keyid! syntax is used,
4351         export only that specified key.  If the key in question is a
4352         subkey, export the primary plus that subkey only.
4353
4354 2003-02-11  David Shaw  <dshaw@jabberwocky.com>
4355
4356         * exec.c (set_exec_path): Add debugging line.
4357
4358         * g10.c (print_hex, print_mds): Print long hash strings a lot
4359         neater.  This assumes at least an 80-character display, as there
4360         are a few other similar assumptions here and there.  Users who
4361         need unformatted hashes can still use with-colons.  Check that
4362         SHA384 and 512 are available before using them as they are no
4363         longer always available.
4364
4365         * Makefile.am: Use a local copy of libexecdir along with @PACKAGE@
4366         as GNUPG_LIBEXECDIR so it can be easily overridden at make time.
4367
4368 2003-02-04  David Shaw  <dshaw@jabberwocky.com>
4369
4370         * armor.c (parse_hash_header, armor_filter): Accept the new SHAs
4371         in the armor Hash: header.
4372
4373         * g10.c (print_hex): Print long hash strings a little neater.
4374         (print_mds): Add the new SHAs to the hash list.
4375
4376 2003-02-02  David Shaw  <dshaw@jabberwocky.com>
4377
4378         * keyedit.c (menu_revuid): Properly handle a nonselfsigned uid on
4379         a v4 key (treat as a v4 revocation).
4380
4381         * import.c (print_import_check): Do not re-utf8 convert user IDs.
4382
4383 2003-01-27  David Shaw  <dshaw@jabberwocky.com>
4384
4385         * mainproc.c (list_node): Show signature expiration date in
4386         with-colons sig records.
4387
4388         * keylist.c (list_keyblock_colon), mainproc.c (list_node): Show
4389         trust sig information in with-colons sig records.
4390
4391 2003-01-16  David Shaw  <dshaw@jabberwocky.com>
4392
4393         * g10.c (add_group): Trim whitespace after a group name so it does
4394         not matter where the user puts the = sign.
4395
4396         * options.skel: Comment out the first three lines in case someone
4397         manually copies the skel file to their homedir.
4398
4399         * sign.c (clearsign_file): Only use pgp2mode with v3 keys and
4400         MD5. This matches what we do when decoding such messages and
4401         prevents creating a message (v3+RIPEMD/160) that we can't verify.
4402
4403         * sig-check.c (signature_check2): Use G10ERR_GENERAL as the error
4404         for signature digest conflict.  BAD_SIGN implies that a signature
4405         was checked and we may try and print out a user ID for a key that
4406         doesn't exist.
4407
4408 2003-01-15  David Shaw  <dshaw@jabberwocky.com>
4409
4410         * trustdb.c (init_trustdb, get_validity): Don't use a changed
4411         trust model to indicate a dirty trustdb, and never auto-rebuild a
4412         dirty trustdb with the "always" trust model.
4413
4414         * g10.c (add_group): Last commit missed the \t ;)
4415
4416 2003-01-14  David Shaw  <dshaw@jabberwocky.com>
4417
4418         * packet.h, parse-packet.c (setup_user_id), free-packet.c
4419         (free_user_id), keydb.h, keyid.c (namehash_from_uid): New function
4420         to rmd160-hash the contents of a user ID packet and cache it in
4421         the uid object.
4422
4423         * keylist.c (list_keyblock_colon): Use namehash in field 8 of
4424         uids.  Show dates for creation (selfsig date), and expiration in
4425         fields 6 and 7.
4426
4427         * trustdb.c (get_validity, get_validity_counts, update_validity):
4428         Use new namehash function rather than hashing it locally.
4429
4430 2003-01-14  Werner Koch  <wk@gnupg.org>
4431
4432         * g10.c (add_group): Fixed group parsing to allow more than one
4433         delimiter in a row and also allow tab as delimiter.
4434
4435 2003-01-12  David Shaw  <dshaw@jabberwocky.com>
4436
4437         * tdbio.c (tdbio_set_dbname): Fix assertion failure with
4438         non-fully-qualified trustdb names.
4439
4440 2003-01-11  David Shaw  <dshaw@jabberwocky.com>
4441
4442         * trustdb.c (get_validity_info, get_ownertrust_info,
4443         trust_letter): Simplify by returning a ? for error directly.
4444
4445         * keyedit.c (show_key_with_all_names): Use get_validity_string and
4446         get_ownertrust_string to show full word versions of trust
4447         (i.e. "full" instead of 'f').
4448
4449         * trustdb.h, trustdb.c (get_ownertrust_string,
4450         get_validity_string): Same as get_ownertrust_info, and
4451         get_validity_info, except returns a full string.
4452
4453         * trustdb.c (get_ownertrust_with_min): New.  Same as
4454         'get_ownertrust' but takes the min_ownertrust value into account.
4455
4456 2003-01-10  David Shaw  <dshaw@jabberwocky.com>
4457
4458         * armor.c (armor_filter): Comment about PGP's end of line tab
4459         problem.
4460
4461         * trustdb.h, trustdb.c (trust_letter): Make
4462         static. (get_ownertrust_info, get_validity_info): Don't mask the
4463         trust level twice.
4464
4465         * trustdb.h, gpgv.c, trustdb.c (get_validity, get_validity_info),
4466         keylist.c (list_keyblock_colon), keyedit.c
4467         (show_key_with_all_names_colon, menu_revuid): Pass a user ID in
4468         rather than a namehash, so we only have to do the hashing in one
4469         place.
4470
4471         * packet.h, pkclist.c (build_pk_list), free-packet.c
4472         (release_public_key_parts): Remove unused namehash element for
4473         public keys.
4474
4475 2003-01-07  David Shaw  <dshaw@jabberwocky.com>
4476
4477         * keygen.c (keygen_set_std_prefs): Warn when setting an IDEA
4478         preference when IDEA is not available.
4479
4480 2003-01-06  David Shaw  <dshaw@jabberwocky.com>
4481
4482         * trustdb.c (get_validity_info): 'd' for disabled is not a
4483         validity value any more.
4484
4485         * packet.h, tdbio.h, tdbio.c (tdbio_read_record,
4486         tdbio_write_record), trustdb.c (update_validity): Store temporary
4487         full & marginal counts in the trustdb.
4488         (clear_validity, get_validity_counts): Return and clear temp
4489         counts.
4490         (store_validation_status): Keep track of which keyids have been
4491         stored.
4492         (validate_one_keyblock, validate_key_list): Use per-uid copies of
4493         the full & marginal counts so they can be recalled for multiple
4494         levels.
4495         (validate_keys): Only use unused keys for each new round.
4496         (reset_unconnected_keys): Rename to reset_trust_records, and only
4497         skip specifically excluded records.
4498
4499         * keylist.c (print_capabilities): Show 'D' for disabled keys in
4500         capabilities section.
4501
4502         * trustdb.c (is_disabled): Remove incorrect comment.
4503
4504 2003-01-03  David Shaw  <dshaw@jabberwocky.com>
4505
4506         * import.c (import_one): Only do the work to create the status
4507         display for interactive import if status is enabled.
4508
4509         * keyring.c (keyring_search): skipfnc didn't work properly with
4510         non-keyid searches.  Noted by Stefan Bellon.
4511
4512         * getkey.c (merge_selfsigs_main): Remove some unused code and make
4513         sure that the pk selfsigversion member accounts for 1F direct
4514         sigs.
4515
4516 2003-01-02  Werner Koch  <wk@gnupg.org>
4517
4518         * keydb.c (keydb_add_resource): Don't assume that try_make_homedir
4519         terminates but check again for the existence of the directory and
4520         continue then.
4521         * openfile.c (copy_options_file): Print a warning if the skeleton
4522         file has active options.
4523
4524 2002-12-29  David Shaw  <dshaw@jabberwocky.com>
4525
4526         * getkey.c (merge_selfsigs_main), main.h, sig-check.c
4527         (check_key_signature2): Pass the ultimately trusted pk directly to
4528         check_key_signature2 to avoid going through the key selection
4529         mechanism.  This prevents a deadly embrace when two keys without
4530         selfsigs each sign the other.
4531
4532 2002-12-27  David Shaw  <dshaw@jabberwocky.com>
4533
4534         * keyserver.c (keyserver_refresh): Don't print the "refreshing..."
4535         line if there are no keys to refresh or if there is no keyserver
4536         set.
4537
4538         * getkey.c (merge_selfsigs_main): Any valid user ID should make a
4539         key valid, not just the last one.  This also fixes Debian bug
4540         #174276.
4541
4542 2002-12-27  Stefan Bellon  <sbellon@sbellon.de>
4543
4544         * import.c (print_import_check): Changed int to size_t.
4545
4546 2002-12-27  David Shaw  <dshaw@jabberwocky.com>
4547
4548         * keyedit.c (keyedit_menu, menu_revuid): Add "revuid" feature to
4549         revoke a user ID.  This is the same as issuing a revocation for
4550         the self-signature, but a much simpler interface to do it.
4551
4552 2002-12-26  David Shaw  <dshaw@jabberwocky.com>
4553
4554         * keydb.h, getkey.c (key_byname): Flag to enable or disable
4555         including disabled keys.  Keys specified via keyid (i.e. 0x...)
4556         are always included.
4557
4558         * getkey.c (get_pubkey_byname, get_seckey_byname2,
4559         get_seckey_bynames), keyedit.c (keyedit_menu, menu_addrevoker):
4560         Include disabled keys in these functions.
4561
4562         * pkclist.c (build_pk_list): Do not include disabled keys for -r
4563         or the key prompt.  Do include disabled keys for the default key
4564         and --encrypt-to.
4565
4566         * trustdb.h, trustdb.c (is_disabled): New skipfnc for skipping
4567         disabled keys.
4568
4569         * gpgv.c (is_disabled): Stub.
4570
4571         * keygen.c (keygen_add_key_expire): Properly handle updating a key
4572         expiration to a no-expiration value.
4573
4574         * keyedit.c (enable_disable_key): Comment.
4575
4576         * import.c (import_one): When in interactive mode and --verbose,
4577         don't repeat some key information twice.
4578
4579 2002-12-22  Timo Schulz  <ts@winpt.org>
4580
4581         * import.c (print_import_check): New.
4582         (import_one): Use it here.
4583         Use merge_keys_and_selfsig in the interactive mode to avoid
4584         wrong key information.
4585         * status.h: Add new status code.
4586         * status.c: Ditto.
4587
4588 2002-12-13  David Shaw  <dshaw@jabberwocky.com>
4589
4590         * pkclist.c (do_we_trust): Tweak language to refer to the "named
4591         user" rather than "owner".  Noted by Stefan Bellon.
4592
4593         * trustdb.h, trustdb.c (trustdb_pending_check): New function to
4594         check if the trustdb needs a check.
4595
4596         * import.c (import_keys_internal): Used here so we don't rebuild
4597         the trustdb if it is still clean.
4598         (import_one, chk_self_sigs): Only mark trustdb dirty if the key
4599         that is being imported has any sigs other than self-sigs.
4600         Suggested by Adrian von Bidder.
4601
4602         * options.skel: Include the required '=' sign in the sample
4603         'group' option.  Noted by Stefan Bellon.
4604
4605         * import.c (chk_self_sigs): Don't try and check a subkey as if it
4606         was a signature.
4607
4608 2002-12-11  David Shaw  <dshaw@jabberwocky.com>
4609
4610         * tdbio.c (tdbio_read_record, tdbio_write_record): Compact the
4611         RECTYPE_TRUST records a bit.
4612
4613         * g10.c (main): Comment out --list-trust-path until it can be
4614         implemented.
4615
4616         * import.c (import_one): Warn when importing an Elgamal primary
4617         that this may take some time (to verify self-sigs).
4618         (chk_self_sigs): Try and cache all self-sigs so the keyblock is
4619         written to the keyring with a good rich cache.
4620
4621         * keygen.c (ask_algo): Make the Elgamal sign+encrypt warning
4622         stronger, and remove the RSA sign+encrypt warning.
4623
4624 2002-12-06  Stefan Bellon  <sbellon@sbellon.de>
4625
4626         * options.h: Fixed typo (mangle_dos_names instead of
4627         mangle_dos_filenames).
4628
4629 2002-12-05  Werner Koch  <wk@gnupg.org>
4630
4631         * g10.c: New options --[no-]mangle-dos-filenames.
4632         * options.h (opt): Added mangle-dos-filenames.
4633         * openfile.c (open_outfile) [USE_ONLY_8DOT3]: Truncate the
4634         filename only when this option is set; this is the default.
4635
4636 2002-12-04  David Shaw  <dshaw@jabberwocky.com>
4637
4638         * main.h, keyedit.c, keygen.c: Back out previous (2002-12-01)
4639         change.  Minimal isn't always best.
4640
4641         * sign.c (update_keysig_packet): Use the current time rather then
4642         a modification of the original signature time.  Make sure that
4643         this doesn't cause a time warp.
4644
4645         * keygen.c (keygen_add_key_expire): Properly handle a key
4646         expiration date in the past (use a duration of 0).
4647
4648         * keyedit.c (menu_expire): Use update_keysig_packet so any sig
4649         subpackets are maintained during the update.
4650
4651         * build-packet.c (build_sig_subpkt): Mark sig expired or unexpired
4652         when the sig expiration subpacket is added.
4653         (build_sig_subpkt_from_sig): Handle making an expiration subpacket
4654         from a sig that has already expired (use a duration of 0).
4655
4656         * packet.h, sign.c (update_keysig_packet), keyedit.c
4657         (menu_set_primary_uid, menu_set_preferences): Add ability to issue
4658         0x18 subkey binding sigs to update_keysig_packet and change all
4659         callers.
4660
4661         * trustdb.c (validate_keys): Show trust parameters when building
4662         the trustdb, and make sure that the version record update was
4663         successful.
4664         (init_trustdb): If the current parameters aren't what was used for
4665         building the trustdb, the trustdb is invalid.
4666
4667         * tbio.c (tdbio_db_matches_options): Update to work with new
4668         trustdbs.
4669
4670 2002-12-03  David Shaw  <dshaw@jabberwocky.com>
4671
4672         * tdbio.h, tdbio.c (tdbio_read_record, tdbio_write_record): Store
4673         trust model in the trustdb version record.
4674         (tdbio_update_version_record): New function to update version
4675         record values during a trustdb check or update.
4676         (tdbio_dump_record): Show trust model in dump.
4677
4678         * trustdb.c (validate_keys): Call tdbio_update_version_record on
4679         success so that the correct options are stored in the trustdb.
4680
4681         * options.h: rearrange trust models so that CLASSIC is 0 and
4682         OPENPGP is 1.
4683
4684         * options.h, g10.c (main), encode.c (write_pubkey_enc_from_list),
4685         pkclist.c (algo_available), revoke.c (gen_revoke): Add --pgp8
4686         mode.  This is basically identical to --pgp7 in all ways except
4687         that signing subkeys, v4 data sigs (including expiration), and SK
4688         comments are allowed.
4689
4690         * getkey.c (finish_lookup): Comment.
4691
4692         * main.h, keylist.c (reorder_keyblock), keyedit.c (keyedit_menu):
4693         Reorder user ID display in the --edit-key menu to match that of
4694         the --list-keys display.
4695
4696         * g10.c (add_notation_data): Fix initialization.
4697
4698 2002-12-01  David Shaw  <dshaw@jabberwocky.com>
4699
4700         * keyedit.c (menu_expire): Don't lose key flags when changing the
4701         expiration date of a subkey.  This is not the most optimal
4702         solution, but it is minimal change on the stable branch.
4703
4704         * main.h, keygen.c (do_copy_key_flags): New function to copy key
4705         flags, if any, from one sig to another.
4706         (do_add_key_expire): New function to add key expiration to a sig.
4707         (keygen_copy_flags_add_expire): New version of
4708         keygen_add_key_expire that also copies key flags.
4709         (keygen_add_key_flags_and_expire): Use do_add_key_expire.
4710
4711         * import.c (fix_hkp_corruption): Comment.
4712
4713 2002-11-25  Stefan Bellon  <sbellon@sbellon.de>
4714
4715         * plaintext.c (handle_plaintext) [__riscos__]: If nooutput is set,
4716         no filetype is needed obviously.
4717
4718 2002-11-24  David Shaw  <dshaw@jabberwocky.com>
4719
4720         * main.h, misc.c (default_cipher_algo, default_compress_algo):
4721         New.  Return the default algorithm by trying
4722         --cipher-algo/--compress-algo, then the first item in the pref
4723         list, then s2k-cipher-algo or ZIP.
4724
4725         * sign.c (sign_file, sign_symencrypt_file), encode.c
4726         (encode_simple, encode_crypt): Call default_cipher_algo and
4727         default_compress_algo to get algorithms.
4728
4729         * g10.c (main): Allow pref selection for compress algo with
4730         --openpgp.
4731
4732         * mainproc.c (proc_encrypted): Use --s2k-digest-algo for
4733         passphrase mangling rather than --digest-algo.
4734
4735         * sign.c (hash_for): If --digest-algo is not set, but
4736         --personal-digest-preferences is, then use the first hash
4737         algorithm in the personal list.  If the signing algorithm is DSA,
4738         then use the first 160-bit hash algorithm in the personal list.
4739         If --pgp2 is set and it's a v3 RSA key, use MD5.
4740
4741         * g10.c (main), keydb.c (keydb_add_resource,
4742         keydb_locate_writable): Rename --default-keyring as
4743         --primary-keyring.  Stefan wins the naming contest.
4744
4745 2002-11-23  David Shaw  <dshaw@jabberwocky.com>
4746
4747         * g10.c (add_notation_data): Disallow notation names that do not
4748         contain a '@', unless --expert is set.  This is to help prevent
4749         people from polluting the (as yet unused) IETF namespace.
4750
4751         * main.h: Comments about default algorithms.
4752
4753         * photoid.c (image_type_to_string): Comments about 3-letter file
4754         extensions.
4755
4756         * encode.c (encode_simple), passphrase.c (passphrase_to_dek),
4757         sign.c (sign_symencrypt_file): Use --s2k-digest-algo for
4758         passphrase mangling rather than --digest-algo.
4759
4760 2002-11-21  David Shaw  <dshaw@jabberwocky.com>
4761
4762         * keygen.c (keygen_set_std_prefs): Properly handle an empty
4763         preference string.
4764
4765         * misc.c (string_to_compress_algo): "none" is a bad choice since
4766         it conflicts with the "none" in setpref.
4767
4768 2002-11-14  David Shaw  <dshaw@jabberwocky.com>
4769
4770         * g10.c (main): Allow compression algorithm names as the argument
4771         to --compress-algo.  The old algorithm names still work for
4772         backwards compatibility.
4773
4774         * misc.c (string_to_compress_algo): Allow "none" as an alias for
4775         "uncompressed".
4776
4777 2002-11-13  Stefan Bellon  <sbellon@sbellon.de>
4778
4779         * getkey.c (get_pubkey_byfprint_fast): Fixed type incompatibility,
4780         was unsigned char instead of byte.
4781
4782 2002-11-13  David Shaw  <dshaw@jabberwocky.com>
4783
4784         * encode.c (encode_simple): Make sure that files larger than about
4785         4G use partial length encoding.  This is required because OpenPGP
4786         allows only for 32 bit length fields.  From Werner on stable
4787         branch.
4788
4789         * getkey.c (get_pubkey_direct): Renamed to...
4790         (get_pubkey_fast): this and made extern.
4791         (get_pubkey_byfprint_fast): New.  From Werner on stable branch.
4792
4793         * keydb.h, import.c (import_one): Use get_pubkey_fast instead of
4794         get_pubkey.  We don't need a merged key and actually this might
4795         lead to recursions.
4796         (revocation_present): Likewise for search by fingerprint.  From
4797         Werner on stable branch.
4798
4799         * g10.c (main): Try to create the trustdb even for non-colon-mode
4800         list-key operations.  This is required because getkey needs to
4801         know whether a a key is ultimately trusted.  From Werner on stable
4802         branch.
4803
4804         * exec.c [__CYGWIN32__]: Keep cygwin separate from Mingw32;
4805         we don't need it here as it behaves more like a Posix system.
4806         From Werner on stable branch.
4807
4808         * passphrase.c (agent_get_passphrase): Ditto.  From Werner on
4809         stable branch.
4810
4811         * tdbio.c (MY_O_BINARY): Need binary mode with Cygwin.  From
4812         Werner on stable branch.
4813
4814         * g10.c, gpgv.c (main) [__CYGWIN32__]: Don't get the homedir from
4815         the registry.  From Werner on stable branch.
4816
4817         * keyedit.c (show_key_with_all_names_colon): Make --with-colons
4818         --edit display match the validity and trust of --with-colons
4819         --list-keys.
4820
4821         * passphrase.c (agent_send_all_options): Fix compile warning.
4822
4823         * keylist.c (list_keyblock_colon): Validity for subkeys should
4824         match that of the primary key, and not that of the last user ID.
4825
4826         * getkey.c (merge_selfsigs): Revoked/expired/invalid primary keys
4827         carry these facts onto all their subkeys, but only after the
4828         subkey has a chance to be marked valid.  This is to fix an
4829         incorrect "invalid public key" error verifying a signature made by
4830         a revoked signing subkey, with a valid unrevoked primary key.
4831
4832 2002-11-09  Werner Koch  <wk@gnupg.org>
4833
4834         * passphrase.c (agent_send_all_options): Use tty_get_ttyname to
4835         get the default ttyname.
4836
4837 2002-11-07  David Shaw  <dshaw@jabberwocky.com>
4838
4839         * keyring.h, keyring.c (keyring_register_filename): Return the
4840         pointer if a given keyring is registered twice.
4841
4842         * keydb.h, keydb.c (keydb_add_resource): Use flags to indicate a
4843         default keyring.
4844         (keydb_locate_writable): Prefer the default keyring if possible.
4845
4846         * g10.c (main): Add --default-keyring option.
4847
4848 2002-11-06  David Shaw  <dshaw@jabberwocky.com>
4849
4850         * options.h, g10.c (main), trustdb.c (ask_ownertrust): Add
4851         --force-ownertrust option for debugging purposes.  This allows
4852         setting a whole keyring to a given trust during an
4853         --update-trustdb.  Not for normal use - it's just easier than
4854         hitting "4" all the time to test a large trustdb.
4855
4856         * pubkey-enc.c (get_session_key): With hidden recipients or try a
4857         given passphrase against all secret keys rather than trying all
4858         secret keys in turn.  Don't if --try-all-secrets or --status-fd is
4859         enabled.
4860
4861         * passphrase.c (passphrase_to_dek): Mode 1 means do a regular
4862         passphrase query, but don't prompt with the key info.
4863
4864         * seckey-cert.c (do_check, check_secret_key): A negative ask count
4865         means to enable passphrase mode 1.
4866
4867         * keydb.h, getkey.c (enum_secret_keys): Add flag to include
4868         secret-parts-missing keys (or not) in the list.
4869
4870 2002-11-05  David Shaw  <dshaw@jabberwocky.com>
4871
4872         * keyserver.c (keyserver_search_prompt): When --with-colons is
4873         enabled, don't try and fit the search output to the screen size -
4874         just dump the whole list.
4875
4876 2002-11-04  David Shaw  <dshaw@jabberwocky.com>
4877
4878         * keyserver.c (keyserver_search_prompt): When --with-colons is
4879         enabled, just dump the raw keyserver protocol to stdout and don't
4880         print the menu.
4881
4882         * keyserver.c (show_prompt): Don't show a prompt when command-fd
4883         is being used.
4884
4885         * trustdb.c (trust_model_string, check_trustdb, update_trustdb,
4886         validate_one_keyblock): It's not clear what a trustdb rebuild or
4887         check means with a trust model other than "classic" or "openpgp",
4888         so disallow this.
4889
4890 2002-11-03  David Shaw  <dshaw@jabberwocky.com>
4891
4892         * options.h, g10.c (main): Add --trust-model option.  Current
4893         models are "openpgp" which is classic+trustsigs, "classic" which
4894         is classic only, and "always" which is the same as the current
4895         option --always-trust (which still works).  Default is "openpgp".
4896
4897         * trustdb.c (validate_one_keyblock): Use "openpgp" trust model to
4898         enable trust sigs.
4899
4900         * gpgv.c (main), mainproc.c (check_sig_and_print), pkclist.c
4901         (do_we_trust, do_we_trust_pre, check_signatures_trust): Use new
4902         --trust-model option in place of --always-trust.
4903
4904         * keyedit.c (sign_mk_attrib, trustsig_prompt, sign_uids,
4905         keyedit_menu): Prompt for and create a trust signature with
4906         "tsign".  This is functional, but needs better UI text.
4907
4908         * build-packet.c (build_sig_subpkt): Able to build trust and
4909         regexp subpackets.
4910
4911         * pkclist.c (do_edit_ownertrust): Comment.
4912
4913 2002-11-02  David Shaw  <dshaw@jabberwocky.com>
4914
4915         * keygen.c (set_one_pref, keygen_set_std_prefs): Allow using the
4916         full algorithm name (CAST5, SHA1) rather than the short form (S3,
4917         H2).
4918
4919         * main.h, keygen.c (keygen_get_std_prefs), keyedit.c
4920         (keyedit_menu): Return and use a fake uid packet rather than a
4921         string since we already have a nice parser/printer in
4922         keyedit.c:show_prefs.
4923
4924         * main.h, misc.c (string_to_compress_algo): New.
4925
4926 2002-11-01  David Shaw  <dshaw@jabberwocky.com>
4927
4928         * g10.c (main): Add --no-throw-keyid.
4929
4930         * keydb.h, encode.c (write_pubkey_enc_from_list), g10.c (main),
4931         pkclist.c (build_pk_list): Add --hidden-recipient (-R) and
4932         --hidden-encrypt-to, which do a single-user variation on
4933         --throw-keyid.  The "hide this key" flag is carried in bit 0 of
4934         the pk_list flags field.
4935
4936         * keyserver.c (parse_keyrec): Fix shadowing warning.
4937
4938 2002-10-31  Stefan Bellon  <sbellon@sbellon.de>
4939
4940         * compress.c (init_compress) [__riscos__]: Use
4941         riscos_load_module() to load ZLib module.
4942
4943         * g10.c (main) [__riscos__]: Renames due to changes in riscos.c
4944         (e.g. prefixes all RISC OS specific functions with riscos_*).
4945         * photoid.c (show_photos) [__riscos__]: Likewise.
4946         * signal.c (got_fatal_signal) [__riscos__]: Likewise.
4947
4948         * trustdb.c (check_regexp) [__riscos__]: Branch to RISC OS RegEx
4949         handling.
4950
4951 2002-10-31  David Shaw  <dshaw@jabberwocky.com>
4952
4953         * build-packet.c (do_plaintext), encode.c (encode_sesskey,
4954         encode_simple, encode_crypt), sign.c (write_plaintext_packet): Use
4955         wipememory() instead of memset() to wipe sensitive memory as the
4956         memset() might be optimized away.
4957
4958 2002-10-30  David Shaw  <dshaw@jabberwocky.com>
4959
4960         * trustdb.c (check_regexp): Modern regexps require REG_EXTENDED.
4961
4962 2002-10-29  David Shaw  <dshaw@jabberwocky.com>
4963
4964         * packet.h, trustdb.h, trustdb.c (trust_string): New.  Return a
4965         string like "fully trusted", "marginally trusted", etc.
4966         (get_min_ownertrust): New.  Return minimum ownertrust.
4967         (update_min_ownertrust): New.  Set minimum ownertrust.
4968         (check_regexp): New.  Check a regular epression against a user ID.
4969         (ask_ownertrust): Allow specifying a minimum value.
4970         (get_ownertrust_info): Follow the minimum ownertrust when
4971         returning a letter.
4972         (clear_validity): Remove minimum ownertrust when a key becomes
4973         invalid.
4974         (release_key_items): Release regexp along with the rest of the
4975         info.
4976         (validate_one_keyblock, validate_keys): Build a trust sig chain
4977         while validating.  Call check_regexp for regexps.  Use the minimum
4978         ownertrust if the user does not specify a genuine ownertrust.
4979
4980         * pkclist.c (do_edit_ownertrust): Only allow user to select a
4981         trust level greater than the minimum value.
4982
4983         * parse-packet.c (can_handle_critical): Can handle critical trust
4984         and regexp subpackets.
4985
4986         * trustdb.h, trustdb.c (clear_ownertrusts), delkey.c
4987         (do_delete_key), import.c (import_one): Rename clear_ownertrust to
4988         clear_ownertrusts and have it clear the min_ownertrust value as
4989         well.
4990
4991         * keylist.c (list_keyblock_print): Indent uid to match pub and
4992         sig.
4993
4994         * keyedit.c (print_and_check_one_sig, show_key_and_fingerprint,
4995         menu_addrevoker), keylist.c (list_keyblock_print,
4996         print_fingerprint): Show "T" or the trust depth for trust
4997         signatures, and add spaces to some strings to make room for it.
4998
4999         * packet.h, parse-packet.c (dump_sig_subpkt, parse_one_sig_subpkt,
5000         parse_signature): Parse trust signature values.
5001
5002         * tdbio.h, tdbio.c (tdbio_read_record, tdbio_write_record):
5003         Reserve a byte for the minimum ownertrust value (for use with
5004         trust signatures).
5005
5006 2002-10-29  Stefan Bellon  <sbellon@sbellon.de>
5007
5008         * build-packet.c (calc_plaintext, do_plaintext): Removed RISC OS
5009         specific filetype parts (it's now done in make_basename()).
5010
5011         * plaintext.c (handle_plaintext): Tidied up RISC OS specific
5012         filetype parts.
5013
5014         * encode.c (encode_simple, encode_crypt): Added argument to
5015         make_basename() call.
5016
5017         * sign.c (write_plaintext_packet): Added argument to
5018         make_basename() call.
5019
5020 2002-10-28  Stefan Bellon  <sbellon@sbellon.de>
5021
5022         * build-packet.c (calc_plaintext, do_plaintext): Added filetype
5023         handling for RISC OS' file types.
5024
5025         * plaintext.c (handle_plaintext) [__riscos__]: Added filetype
5026         handling for RISC OS' file types.
5027
5028 2002-10-23  David Shaw  <dshaw@jabberwocky.com>
5029
5030         * main.h, import.c (sec_to_pub_keyblock, import_secret_one,
5031         parse_import_options), g10.c (main): New import-option
5032         "convert-sk-to-pk" to convert a secret key into a public key
5033         during import.  It is on by default.
5034
5035 2002-10-23  Werner Koch  <wk@gnupg.org>
5036
5037         * pubkey-enc.c (get_it): Fix segv, test for revoked only when PK
5038         has been assigned.
5039
5040 2002-10-18  Timo Schulz  <ts@winpt.org>
5041
5042         * keylist.c: (print_pubkey_info): New.
5043         (print_seckey_info): New.
5044         * main.h: Prototypes for the new functions.
5045         * delkey.c (do_delete_key): Use it here.
5046         * revoke.c (gen_desig_revoke): Ditto.
5047
5048 2002-10-17  Werner Koch  <wk@gnupg.org>
5049
5050         * pkclist.c (do_edit_ownertrust): Show all user IDs.  This should
5051         be enhanced to also show the current trust level.  Suggested by
5052         Florian Weimer.
5053
5054 2002-10-17  David Shaw  <dshaw@jabberwocky.com>
5055
5056         * g10.c (main): Handle --strict and --no-strict from the command
5057         line before the options file is loaded.
5058
5059 2002-10-15  David Shaw  <dshaw@jabberwocky.com>
5060
5061         * g10.c (main): Disable --textmode when encrypting (symmetric or
5062         pk) in --pgp2 mode as PGP 2 can't handle the unknown length
5063         literal packet.  Reported by Michael Richardson.
5064
5065 2002-10-14  David Shaw  <dshaw@jabberwocky.com>
5066
5067         * keyserver-internal.h, keyserver.c (print_keyrec, parse_keyrec,
5068         show_prompt, keyserver_search_prompt, keyserver_spawn): Go to
5069         version 1 of the keyserver protocol.  This is a better design,
5070         similar to --with-colons, that allows for keys with multiple user
5071         IDs rather than using multiple keys.  It also matches the machine
5072         readable pksd format.  Also use a prettier --search-keys listing
5073         format that can fill different size windows (currently set at 24
5074         lines).
5075
5076 2002-10-12  Werner Koch  <wk@gnupg.org>
5077
5078         * keygen.c (print_status_key_created): New.
5079         (do_generate_keypair): Use it to print the fingerprint.
5080         (generate_subkeypair): Likewise.
5081
5082 2002-10-11  David Shaw  <dshaw@jabberwocky.com>
5083
5084         * keyedit.c (menu_addrevoker): Properly back out if the signature
5085         fails.  Also, do not allow appointing the same revoker twice, and
5086         report ALREADY_SIGNED if the user tries it.
5087
5088 2002-10-07  David Shaw  <dshaw@jabberwocky.com>
5089
5090         * import.c (import_keys_internal): Missed one s/inp/inp2/.
5091
5092         * keylist.c (print_capabilities): Properly indicate per-key
5093         capabilities of sign&encrypt primary keys that have
5094         secret-parts-missing (i.e. no capabilities at all)
5095
5096         * mainproc.c (symkey_decrypt_sesskey): Fix compiler warning.
5097
5098 2002-10-04  David Shaw  <dshaw@jabberwocky.com>
5099
5100         * getkey.c (get_pubkey_direct): Don't cache keys retrieved via
5101         this function as they may not have all their fields filled in.
5102
5103         * sig-check.c (signature_check2): Use new is_primary flag to check
5104         rather than comparing main_keyid with keyid as this still works in
5105         the case of a not fully filled in pk.
5106
5107 2002-10-04  Werner Koch  <wk@gnupg.org>
5108
5109         * import.c (import_keys_internal): s/inp/inp2/ to avoid shadowing
5110         warning.
5111
5112         * passphrase.c (agent_get_passphrase): Fixed signed/unsigned char
5113         problem in %-escaping.  Noted by Ingo Klöcker.
5114
5115 2002-10-03  David Shaw  <dshaw@jabberwocky.com>
5116
5117         * options.h, g10.c (main): Add --strict and --no-strict to switch
5118         the log_warning severity level from info to error.
5119
5120         * keylist.c (print_capabilities): Secret-parts-missing keys should
5121         show that fact in the capabilities, and only primary signing keys
5122         can certify other keys.
5123
5124         * packet.h, parse_packet.c (parse_key): Add is_primary flag for
5125         public keys (it already exists for secret keys).
5126
5127 2002-10-02  David Shaw  <dshaw@jabberwocky.com>
5128
5129         * import.c (import_secret_one): Check for an illegal (>110)
5130         protection cipher when importing a secret key.
5131
5132         * keylist.c (list_keyblock_print): Show a '#' for a
5133         secret-parts-missing key.
5134
5135         * parse_packet.c (parse_key): Some comments.
5136
5137         * revoke.c (gen_revoke): Remove some debugging code.
5138
5139         * trustdb.c (verify_own_keys): Make trusted-key a non-deprecated
5140         option again.
5141
5142         * seckey-cert.c (do_check): Don't give the IDEA warning unless the
5143         cipher in question is in fact IDEA.
5144
5145 2002-10-01  David Shaw  <dshaw@jabberwocky.com>
5146
5147         * import.c (import_one): Make sure that a newly imported key
5148         starts with a clean ownertrust.
5149
5150 2002-10-01  Werner Koch  <wk@gnupg.org>
5151
5152         * getkey.c (get_pubkey_direct): New.
5153         (merge_selfsigs_main): Use it here to look for an ultimately
5154         trusted key.  Using the full get_pubkey might lead to an
5155         infinitive recursion.
5156
5157 2002-09-29  David Shaw  <dshaw@jabberwocky.com>
5158
5159         * keyserver.c (parse_keyserver_uri): Force the keyserver URI
5160         scheme to lowercase to be case-insensitive.
5161
5162 2002-09-28  David Shaw  <dshaw@jabberwocky.com>
5163
5164         * export.c (do_export_stream): Comment.
5165
5166         * sig-check.c (check_key_signature2): Properly handle a
5167         non-designated revocation import.
5168
5169 2002-09-26  Werner Koch  <wk@gnupg.org>
5170
5171         * g10.c (set_homedir): New. Changed all direct assignments to use
5172         this.
5173         * gpgv.c (set_homedir): Ditto.
5174
5175 2002-09-25  David Shaw  <dshaw@jabberwocky.com>
5176
5177         * Makefile.am: Link gpg with EGDLIBS (i.e. NETLIBS) as EGD uses
5178         sockets.  Remove the old NETLIBS variable since the keyserver
5179         stuff is no longer internal.
5180
5181 2002-09-24  David Shaw  <dshaw@jabberwocky.com>
5182
5183         * import.c (import_keys_stream): Fix compiler type warning.
5184
5185         * keyring.c (keyring_rebuild_cache), sig-check.c
5186         (check_key_signature2), import.c (import, chk_self_sigs): Minor
5187         language cleanups.
5188
5189 2002-09-23  Stefan Bellon  <sbellon@sbellon.de>
5190
5191         * main.h: Introduced fast-import as import option. Removed
5192         fast as separate option from prototypes.
5193         * import.c (parse_import_options): Added fast-import option.
5194         (import_*): Removed fast as separate option.
5195         * g10.c (main): Added option fast-import, removed old fast
5196         as separate argument.
5197         * keyserver.c (keyserver_spawn): Removed old fast as separate
5198         argument.
5199
5200 2002-09-22  Stefan Bellon  <sbellon@sbellon.de>
5201
5202         * import.c (import_keys, import_keys_stream,
5203         import_keys_internal): Added trustdb update/check to key import if
5204         not fast-import and interactive set/no-auto-check-trustdb unset.
5205         Avoided function clone by introducing import_keys_internal.
5206
5207 2002-09-19  David Shaw  <dshaw@jabberwocky.com>
5208
5209         * keyserver.c (keyserver_spawn): Properly handle line truncation.
5210         Don't leak memory (~10-20 bytes) on searches.
5211         (keyserver_search_prompt): Cleanup.
5212
5213         * keylist.c (list_keyblock_colon): Show 1F direct key signatures
5214         in --with-colons listing.
5215
5216 2002-09-16  David Shaw  <dshaw@jabberwocky.com>
5217
5218         * keyedit.c (menu_addrevoker): The direct key signature for
5219         revocation keys must be at least v4 to carry the revocation key
5220         subpacket.  Add a PGP 2.x warning for revocation keys.
5221
5222 2002-09-14  David Shaw  <dshaw@jabberwocky.com>
5223
5224         * g10.c (check_permissions): Rearrange strings to make translating
5225         easier (don't incorporate string parts).
5226
5227         * keyedit.c (sign_uids): Make strings translatable.
5228
5229         * sig-check.c (check_key_signature2): Make string translatable.
5230
5231 2002-09-13  David Shaw  <dshaw@jabberwocky.com>
5232
5233         * getkey.c (check_revocation_keys): Move....
5234         * main.h, sig-check.c (check_revocation_keys): to here.  Also
5235         return the signature_check error code rather than 0/1 and cache
5236         the sig result.
5237
5238         * sig-check.c (check_key_signature2): Divert to
5239         check_revocation_keys if a revocation sig is made by someone other
5240         than the pk owner.
5241
5242         * getkey.c (merge_selfsigs_main): Tidy.
5243
5244 2002-09-13  Werner Koch  <wk@gnupg.org>
5245
5246         * g10.c (main) [__MINGW32__]: Activate oLoadExtension.
5247
5248 2002-09-12  David Shaw  <dshaw@jabberwocky.com>
5249
5250         * Makefile.am, hkp.c, hkp.h, keyserver.c (keyserver_work): Remove
5251         internal HKP support.
5252
5253         * keyserver.c (keyserver_spawn): Remove whitespace after keyserver
5254         commands.
5255
5256 2002-09-10  David Shaw  <dshaw@jabberwocky.com>
5257
5258         * exec.c (expand_args): Remove loop left over from earlier
5259         implementation.
5260         (exec_write): Missed one tick.
5261
5262 2002-09-10  Werner Koch  <wk@gnupg.org>
5263
5264         * g10.c, options.h: Removed option --emulate-checksum-bug.
5265         * misc.c (checksum_u16_nobug): Removed.
5266         (checksum_u16): Removed the bug emulation.
5267         (checksum_mpi): Ditto.
5268         (checksum_mpi_counted_nbits): Removed and replaced all calls
5269         with checksum_mpi.
5270
5271         * parse-packet.c (read_protected_v3_mpi): New.
5272         (parse_key): Use it here to store it as an opaque MPI.
5273         * seckey-cert.c (do_check): Changed the v3 unprotection to the new
5274         why to store these keys.
5275         (protect_secret_key): Likewise.
5276         * build-packet.c (do_secret_key): And changed the writing.
5277
5278         * tdbio.c (tdbio_set_dbname, open_db): Use new macro MY_O_BINARY
5279         to avoid silly ifdefs.
5280         (open_db): Fallback to RDONLY so that gpg may be used from a
5281         RO-medium.
5282
5283         * encode.c (encode_simple): Make sure we don't use an ESK packet
5284         when we don't have a salt in the S2K.
5285
5286         * misc.c (pct_expando) <case f>: Make sure that LEN is initialized.
5287
5288         * exec.c (exec_finish): Use ticks to denote filenames in messages.
5289         (make_tempdir, exec_write): Changed format of messages.
5290
5291         * keyserver.c (print_keyinfo): Release USERID in on error.
5292         (keyserver_work) [!DISABLE_KEYSERVER_HELPERS]: Exclude the unused
5293         code.
5294
5295 2002-09-09  Werner Koch  <wk@gnupg.org>
5296
5297         * parse-packet.c (make_attribute_uidname): Add new ar MAX_NAMELEN
5298         for sanity checks.  Changed both callers. Limit the size of an %s.
5299
5300         * options.skel: Comment lock-once out, so that this file does not
5301         change anything when copied to a new home directory.
5302         * openfile.c (try_make_homedir): Don't exit after copying the
5303         option skeleton.
5304
5305         * options.h: Don't use a comma when declaring variables over more
5306         than one line.
5307
5308         * mainproc.c (symkey_decrypt_sesskey): Check length of the session
5309         key.
5310
5311         * hkp.c (dehtmlize): Use ascii_tolower to protect against weird
5312         locales.  Cast the argument for isspace for the sake of broken
5313         HP/UXes.
5314         (parse_hkp_index): s/ascii_memcasecmp/ascii_strncasecmp/.
5315
5316         * g10.c: Removed option --emulate-3des-s2k-bug.
5317
5318         * passphrase.c (hash_passphrase): Was used here.
5319
5320         * export.c (parse_export_options)
5321         * keyserver.c (parse_keyserver_options)
5322         * import.c (parse_import_options)
5323         * g10.c (check_permissions): s/ascii_memcasecmp/ascii_strncasecmp/.
5324
5325 2002-09-09  David Shaw  <dshaw@jabberwocky.com>
5326
5327         * g10.c (add_group): Use '=' to separate group name from group
5328         members.  Use a better error message for when no = is found.
5329
5330         * hkp.c (hkp_export): Use CRLF in headers.
5331
5332 2002-09-03  David Shaw  <dshaw@jabberwocky.com>
5333
5334         * mainproc.c (print_pkenc_list): Don't increment the error counter
5335         when printing the list of keys a message was encrypted to.  This
5336         would make gpg give a non-zero exit code even for completely valid
5337         messages if the message was encrypted to more than one key that
5338         the user owned.
5339
5340 2002-09-02  Werner Koch  <wk@gnupg.org>
5341
5342         * g10.c (main): Try to set a default character set.  Print the
5343         used one in verbosity level 3.
5344         * gpgv.c (main): Try to set a default character set.
5345
5346         * status.c, status.h (STATUS_IMPORT_OK): New.
5347         * import.c (import_one,import_secret_one): Print new status.
5348
5349 2002-08-30  David Shaw  <dshaw@jabberwocky.com>
5350
5351         * pkclist.c (build_pk_list): Add new status code to indicate an
5352         untrusted user.  This (or a disabled key) fail with "unavailable
5353         pubkey" (G10ERR_UNU_PUBKEY).
5354
5355         * pkclist.c (build_pk_list): Fail if any recipient keys are
5356         unusable.
5357
5358         * options.skel: The PGP LDAP keyserver is back.  Use MIT keyserver
5359         as a sample rather than cryptnet as cryptnet does not support
5360         searching yet.
5361
5362         * keyedit.c (show_key_with_all_names): Fix error message
5363         (preferences are userid/selfsig and not key specific).
5364
5365 2002-08-30  Werner Koch  <wk@gnupg.org>
5366
5367         * pkclist.c (do_we_trust_pre): Changed the wording of a warning.
5368
5369         * encode.c (encode_simple,encode_crypt): Use new style CTB for
5370         compressssed packets when using MDC.  We need to do this so that
5371         concatenated messages are properly decrypted.  Old style
5372         compression assumes that it is the last packet; given that we
5373         can't determine the length in advance, the uncompressor does not
5374         know where to start.  Actually we should use the new CTB always
5375         but this would break PGP 2 compatibility.
5376
5377         * parse-packet.c (parse): Special treatment for new style CTB
5378         compressed packets.
5379
5380         * build-packet.c (do_mdc): Removed. Was not used.
5381         (do_encrypted_mdc): Count in the version number and the MDC packet.
5382
5383 2002-08-28  David Shaw  <dshaw@jabberwocky.com>
5384
5385         * sig-check.c (do_check_messages, do_check): Show keyid in error
5386         messages.
5387
5388         * keyserver.c (print_keyinfo): More readable key listings for
5389         --search-keys responses.
5390
5391 2002-08-26  David Shaw  <dshaw@jabberwocky.com>
5392
5393         * hkp.c (parse_hkp_index, dehtmlize): Move HTML functionality into
5394         new "dehtmlize" function.  Remove HTML before trying to parse each
5395         line from the keyserver.  If the keyserver provides key type
5396         information in the listing, use it.
5397
5398 2002-08-23  David Shaw  <dshaw@jabberwocky.com>
5399
5400         * sig-check.c (do_check, do_check_messages): Emit the usual sig
5401         warnings even for cached sigs.  This also serves to protect
5402         against missing a sig expiring while cached.
5403
5404         * getkey.c (merge_selfsigs_main): Don't check UID self-sigs twice.
5405
5406 2002-08-22  David Shaw  <dshaw@jabberwocky.com>
5407
5408         * import.c (clean_subkeys, chk_self_sigs): Merge clean_subkeys
5409         into chk_self_sigs.  This improves efficiency as the same
5410         signatures are not checked multiple times.  Clarify when a subkey
5411         is revoked (any revocation signature, even if it is dated before
5412         the binding signature).
5413
5414         * getkey.c (merge_selfsigs_subkey): Subkey revocation comments.
5415
5416         * keylist.c (list_one): Stats are only for public key listings.
5417
5418         * g10.c (main), options.skel: Default should be include-revoked
5419         for keyserver operations.
5420
5421 2002-08-21  Werner Koch  <wk@gnupg.org>
5422
5423         * import.c (import_print_stats): Print new non_imported counter
5424         which is currently not used because we terminate on errors.
5425
5426 2002-08-20  David Shaw  <dshaw@jabberwocky.com>
5427
5428         * options.skel: Document no-include-attributes for
5429         keyserver-options.
5430
5431         * keylist.c, keyedit.c, keyserver.c, sign.c: Some TODOs and
5432         comments.
5433
5434         * export.c (do_export_stream): Fix noop bug in exporting sensitive
5435         revocation keys.
5436
5437         * pkclist.c (do_edit_ownertrust): Comment out the option for
5438         showing trust paths until it can be implemented.
5439
5440 2002-08-19  Werner Koch  <wk@gnupg.org>
5441
5442         * getkey.c (get_user_id_native): Renamed to ..
5443         (get_user_id_printable): this.  Filter out all dangerous
5444         characters.  Checked all usages.
5445         (get_user_id_string_native): Renamed to..
5446         (get_user_id_string_printable): this.  Filter out all dangerous
5447         characters.  Checked all usages.
5448         * keyedit.c (show_basic_key_info): New.
5449         * keylist.c (print_fingerprint): New mode 3.
5450         * import.c (import_one): Use new function to display the user ID.
5451
5452 2002-08-16  Timo Schulz  <ts@winpt.org>
5453
5454         * g10.c (main): Enable opt.interactive.
5455
5456         * import.c (import_one): Ask the user if the key shall be
5457         imported when the interactive mode is used. Useful to extract
5458         selected keys from a file.
5459
5460 2002-08-16  Werner Koch  <wk@gnupg.org>
5461
5462         * seckey-cert.c: Workaround to allow decryption of v3 keys created
5463         with a bug in the mpi_get_secure_buffer.
5464
5465 2002-08-14  David Shaw  <dshaw@jabberwocky.com>
5466
5467         * hkp.c (parse_hkp_index): Properly handle really large keys
5468         (5 digit key length) in HKP searches.
5469
5470 2002-08-13  David Shaw  <dshaw@jabberwocky.com>
5471
5472         * encode.c (encode_simple): Fix problem with using compression
5473         algo 2 and symmetric compressed files.
5474
5475         * encode.c (encode_simple, encode_crypt): If we are not using a
5476         MDC, compress even if a file is already compressed.  This is to
5477         help against the chosen ciphertext attack.
5478
5479         * pkclist.c (select_algo_from_prefs): Fix requested algorithm bug
5480         so the request succeeds even if the requested algorithm is not the
5481         first found.
5482
5483         * cipher.c (write_header), encode.c (use_mdc, encode_simple,
5484         encode_crypt, encrypt_filter), g10.c (main): Be more eager to use
5485         a MDC.  We use a MDC if the keys directly support it, if the keys
5486         list AES (any) or TWOFISH anywhere in the prefs, or if the cipher
5487         chosen does not have a 64 bit blocksize.
5488
5489 2002-08-08  David Shaw  <dshaw@jabberwocky.com>
5490
5491         * options.skel: Some language tweaks, and remove the
5492         load-extension section for random gatherers.
5493
5494         * keyring.c (create_tmp_file, rename_tmp_file): Create tmp files
5495         with user-only permissions, but restore the original permissions
5496         if the user has something special set.
5497
5498         * openfile.c (copy_options_file): Create new options file
5499         (gpg.conf) with user-only permissions.
5500
5501         * keydb.c (keydb_add_resource): Create new keyrings with user-only
5502         permissions.
5503
5504         * tdbio.c (tdbio_set_dbname): Create new trustdbs with user-only
5505         permissions.
5506
5507 2002-08-07  David Shaw  <dshaw@jabberwocky.com>
5508
5509         * sig-check.c (signature_check2): Sanity check that the md has a
5510         context for the hash that the sig is expecting.  This can happen
5511         if a onepass sig header does not match the actual sig, and also if
5512         the clearsign "Hash:" header is missing or does not match the
5513         actual sig.
5514
5515         * keyedit.c (menu_revsig): Properly show a uid is revoked without
5516         restarting gpg.  This is Debian bug 124219, though their supplied
5517         patch will not do the right thing.
5518
5519         * main.h, tdbio.c (tdbio_set_dbname), misc.c (removed
5520         check_permissions), keydb.c (keydb_add_resource), g10.c (main,
5521         check_permissions): Significant reworking of the permission check
5522         mechanism.  The new behavior is to check everything in the homedir
5523         by checking the homedir itself.  If the user wants to put
5524         (possibly shared) keyrings outside the homedir, they are not
5525         checked.  The options file and any extension files are checked
5526         wherever they are, as well as their enclosing directories.  This
5527         is Debian bug 147760.
5528
5529 2002-08-06  Stefan Bellon  <sbellon@sbellon.de>
5530
5531         * g10.c (main): Use of EXTSEP_S in new gpg.conf string.
5532         * openfile.c (copy_options_file): Ditto.
5533
5534 2002-08-06  David Shaw  <dshaw@jabberwocky.com>
5535
5536         * options.h, g10.c (main), mainproc.c (proc_encrypted):
5537         --ignore-mdc-error option to turn a MDC check error into a
5538         warning.
5539
5540         * encode.c (encode_crypt), g10.c (main), sign.c (sign_file,
5541         clearsign_file): Use the same --pgpX warning string everywhere to
5542         ease translations.
5543
5544         * encode.c (write_pubkey_enc_from_list): Warn when using
5545         --throw-keyid with --pgpX.  Noted by Vedaal Nistar.
5546
5547         * revoke.c (export_minimal_pk, gen_desig_revoke, gen_revoke):
5548         Export a minimal pk along with the revocation cert when in --pgpX
5549         mode so that PGP can import it.
5550
5551 2002-08-06  Werner Koch  <wk@gnupg.org>
5552
5553         * options.skel: Changed comments.
5554
5555         * g10.c (main): Try to use "gpg.conf" as default option file.
5556         * openfile.c (copy_options_file): Changed name of created file.
5557
5558 2002-08-02  Werner Koch  <wk@gnupg.org>
5559
5560         * Makefile.am (LDFLAGS): Removed DYNLINK_LDFLAGS.
5561
5562 2002-07-30  David Shaw  <dshaw@jabberwocky.com>
5563
5564         * options.h, g10.c (main), mainproc.c (proc_encrypted): Return a
5565         decryption failed error if a MDC does not verify.  Warn if a MDC
5566         is not present (can disable via --no-mdc-warning).
5567
5568         * exec.c (exec_write), g10.c (main), keyserver.c
5569         (keyserver_spawn): Use new DISABLE_KEYSERVER_PATH rather than
5570         FIXED_EXEC_PATH.
5571
5572 2002-07-28  David Shaw  <dshaw@jabberwocky.com>
5573
5574         * sig-check.c (do_check): Properly validate v4 sigs with no hashed
5575         section at all.
5576
5577 2002-07-25  Werner Koch  <wk@gnupg.org>
5578
5579         * delkey.c (do_delete_key): Always allow to delete a key in batch mode
5580         when specified by fingerprint.  Suggested by Enzo Michelangeli.
5581
5582 2002-07-25  David Shaw  <dshaw@jabberwocky.com>
5583
5584         * keyedit.c (menu_revsig): Change "revsig" to honor selected uids
5585         so the user can revoke sigs from particular uids only.
5586
5587         * keylist.c (list_keyblock_print): Don't display expired uids in
5588         --list-keys unless -v and not --list-sigs (just like revoked
5589         uids).
5590
5591         * exec.c, export.c, import.c, keyedit.c, keyserver.c, misc.c:
5592         "Warning" -> "WARNING"
5593
5594 2002-07-24  David Shaw  <dshaw@jabberwocky.com>
5595
5596         * main.h, import.c (parse_import_options, fix_hkp_corruption,
5597         import_one, delete_inv_parts), g10.c (main): New import-option
5598         "repair-hkp-subkey-bug", which repairs as much as possible the HKP
5599         mangling multiple subkeys bug.  It is on by default for keyserver
5600         receives, and off by default for regular --import.
5601
5602         * main.h, import.c (import, import_one, delete_inv_parts), hkp.c
5603         (hkp_ask_import), keyserver.c (keyserver_spawn): Use keyserver
5604         import options when doing keyserver receives.
5605
5606         * options.h, exec.h, exec.c (set_exec_path, exec_write), g10.c
5607         (main), keyserver.c (keyserver_spawn): If the user does not use
5608         "exec-path", completely replace $PATH with GNUPG_LIBEXECDIR before
5609         calling the keyserver helper.  If the user does use "exec-path",
5610         append GNUPG_LIBEXECDIR after the specified path.
5611
5612 2002-07-23  David Shaw  <dshaw@jabberwocky.com>
5613
5614         * import.c (parse_import_options), export.c
5615         (parse_export_options): Fix offset problem with reversed ("no-")
5616         meanings.
5617
5618         * import.c (delete_inv_parts): Discard subkey signatures (0x18 and
5619         0x28) if found in the userid section of the key.
5620
5621         * sig-check.c (signature_check2): Signatures made by invalid
5622         subkeys (bad/missing binding sig) are also invalid.
5623
5624         * keylist.c (print_fingerprint): Show the primary as well as the
5625         secondary key fingerprint in modes 1 & 2.
5626
5627 2002-07-22  David Shaw  <dshaw@jabberwocky.com>
5628
5629         * options.h, main.h, g10.c (main), import.c
5630         (parse_import_options, delete_inv_parts), keyserver.c
5631         (parse_keyserver_options): add new --import-options option.  The
5632         only current flag is "allow-local-sigs".
5633
5634         * g10.c (main): Don't disable MDC in pgp7 mode.
5635
5636         * options.h, g10.c (main), keyserver.c (parse_keyserver_options):
5637         Remove old keyserver-option include-attributes now that there is
5638         an export-option for the same thing.
5639
5640         * options.h, main.h, export.c (parse_export_options,
5641         do_export_stream), g10.c (main): add new --export-options option.
5642         Current flags are "include-non-rfc", "include-local-sigs",
5643         "include-attributes", and "include-sensitive-revkeys".
5644
5645         * options.h, hkp.c (hkp_export), keyserver.c
5646         (parse_keyserver_options, keyserver_spawn): try passing unknown
5647         keyserver options to export options, and if successful, use them
5648         when doing a keyserver --send-key.
5649
5650         * build-packet.c (build_sig_subpkt): We do not generate
5651         SIGSUBPKT_PRIV_VERIFY_CACHE anymore.
5652
5653         * revoke.c (gen_desig_revoke): Lots more comments about including
5654         sensitive revkeys along with the revocation sig itself.
5655
5656         * keyserver.c (parse_keyserver_options): Simpler implementation
5657         that can skip one pass over the options.
5658
5659 2002-07-18  David Shaw  <dshaw@jabberwocky.com>
5660
5661         * keyedit.c (keyedit_menu, menu_addrevoker): Allow specifying
5662         "sensitive" as an argument to an addrevoker command.  This sets
5663         the 0x40 sensitive revoker flag.
5664
5665         * revoke.c (gen_desig_revoke): When generating a designated
5666         revocation, include the direct key sig that contains the
5667         designated revoker subpacket.  This allows sensitive designated
5668         revocation subpackets to be exported.  Also indicate which
5669         revokers are sensitive in the first place.
5670
5671 2002-07-17  David Shaw  <dshaw@jabberwocky.com>
5672
5673         * keyedit.c (show_key_with_all_names_colon): The 0x40 class bit in
5674         a designated revoker means "sensitive", not "local".  It's
5675         exportable under the right circumstances.
5676
5677         * main.h, options.h, export.c (do_export_stream), g10.c (main),
5678         hkp.c (hkp_export), keyserver.c (keyserver_spawn: Add a flag to
5679         skip attribute packets and their signatures while exporting.  This
5680         is to accomodate keyservers (pksd again) that choke on attributes.
5681         Use keyserver-option "include-attributes" to control it.  This
5682         defaults to ON (i.e. don't skip).
5683
5684 2002-07-09  David Shaw  <dshaw@jabberwocky.com>
5685
5686         * options.h, keyserver.c (parse_keyserver_uri, keyserver_spawn,
5687         keyserver_work), hkp.c (hkp_ask_import, hkp_export, hkp_search):
5688         Use a much more strict reading of RFC-2396 for the keyserver URIs.
5689         Specifically, don't try and be smart about checking the value of
5690         ":port" so long as it is all digits, and properly handle opaque
5691         data (those scheme specific parts that do not start with "//").
5692
5693 2002-07-04  David Shaw  <dshaw@jabberwocky.com>
5694
5695         * photoid.c (get_default_photo_command, show_photos): Honor
5696         FIXED_PHOTO_VIEWER and DISABLE_PHOTO_VIEWER.
5697
5698         * mainproc.c (check_sig_and_print): Use --show-photos to show
5699         photos when verifying a sig made by a key with a photo.
5700
5701         * keyserver.c (parse_keyserver_uri): Properly parse a URI with no
5702         :port section and an empty file path, but with a terminating '/'.
5703         (keyserver_work): Honor DISABLE_KEYSERVER_HELPERS.
5704
5705         * hkp.c (hkp_ask_import): Display keyserver URI as a URI, but only
5706         if verbose.
5707
5708         * exec.c, g10.c: USE_EXEC_PATH -> FIXED_EXEC_PATH
5709
5710 2002-07-03  David Shaw  <dshaw@jabberwocky.com>
5711
5712         * exec.h, exec.c (set_exec_path, exec_write), g10.c (main): If
5713         USE_EXEC_PATH is defined at compile time, use it to lock the
5714         exec-path and not allow the user to change it.
5715
5716 2002-07-02  David Shaw  <dshaw@jabberwocky.com>
5717
5718         * options.h, g10.c (main), keyserver.c (keyserver_refresh):
5719         Maintain and use the original keyserver URI for cosmetics rather
5720         than trying to recreate it when needed.
5721
5722         * mainproc.c (check_sig_and_print): Properly disregard expired
5723         uids.  Make sure that the first uid listed is a real uid and not
5724         an attribute (attributes should only be listed in the "aka"
5725         section).  When there are no valid textual userids, try for an
5726         invalid textual userid before using any attribute uid.
5727
5728 2002-07-01  David Shaw  <dshaw@jabberwocky.com>
5729
5730         * options.skel: Fix a few typos, clarify "group", and remove
5731         sample photo viewers for Win32 since they are the defaults now.
5732
5733         * parse-packet.c (make_attribute_uidname), keylist.c
5734         (dump_attribs): Fix two typecast warnings.
5735
5736         * packet.h, build-packet.c (build_attribute_subpkt), exec.c
5737         (expand_args), mkdtemp.c (mkdtemp), photoid.c
5738         (parse_image_header): Fix some signedness compiler warnings.
5739
5740 2002-07-01  Werner Koch  <wk@gnupg.org>
5741
5742         * photoid.c (get_default_photo_command): Also use __MINGW32__
5743         instead of HAVE_DOSISH_SYSTEM.
5744
5745         * encode.c (encode_symmetric): Do not use the new encryption code.
5746
5747 2002-06-30  Werner Koch  <wk@gnupg.org>
5748
5749         * photoid.c: Use __MINGW32__ to include windows because
5750         HAVE_DOSISH_SYSTEM is also set for OS/2 and plain DOS.  Provide
5751         constant missing in older mingw installations.
5752
5753 2002-06-21  Stefan Bellon  <sbellon@sbellon.de>
5754
5755         * g10.c [__riscos__]: Moved RISC OS specific stuff to util/riscos.c
5756         and include/util.h.
5757
5758         * gpgv.c [__riscos__]: Likewise.
5759
5760 2002-06-20  David Shaw  <dshaw@jabberwocky.com>
5761
5762         * keydb.h, pkclist.c (select_algo_from_prefs): Allow passing a
5763         suggested algorithm which will be used if available.
5764
5765         * encode.c (encode_crypt, encrypt_filter), sign.c (sign_file): Use
5766         new select_algo_from_prefs feature to check if forcing an
5767         algorithm would violate the recipient preferences.
5768
5769         * photoid.c (get_default_photo_command, show_photos): Use
5770         different default viewers on different platforms.  Currently we
5771         have Win 9x, Win NT (2k, xp), Mac OSX, RISC OS, and "everybody
5772         else".  These are #ifdefs as much as possible to avoid clutter.
5773
5774         * g10.c (strusage, build_list), keyedit.c (show_prefs), main.h,
5775         misc.c (compress_algo_to_string, check_compress_algo), pkclist.c
5776         (algo_available), keygen.c (keygen_set_std_prefs): New
5777         algo_to_string and check functions for compress algorithms.
5778
5779 2002-06-20  Werner Koch  <wk@gnupg.org>
5780
5781         * misc.c (setsysinfo): Removed a #warning for Alpha's uniligedn
5782         trap disabling - it is quite possible that this is a debug relict.
5783
5784 2002-06-20  Stefan Bellon  <sbellon@sbellon.de>
5785
5786         * g10.c [__riscos__]: Added image file system feature.
5787
5788         * gpgv.c [__riscos__]: Added image file system feature.
5789
5790         * photoid.c (show_photos) [__riscos__]: Set RISC OS filetype of
5791         photo id according to MIME type.
5792
5793 2002-06-19  David Shaw  <dshaw@jabberwocky.com>
5794
5795         * hkp.c (parse_hkp_index): Don't leak memory when failing out of a
5796         bad HKP keyserver.
5797
5798         * g10.c (add_notation_data): Relax slightly the rules as to what
5799         can go into a notation name - 2440 allows "@", for example.
5800
5801 2002-06-17  David Shaw  <dshaw@jabberwocky.com>
5802
5803         * import.c (clean_subkeys, import_one): Only allow at most 1
5804         binding sig and at most 1 revocation sig on a subkey, as per
5805         2440:11.1.
5806
5807         * hkp.c (parse_hkp_index, hkp_search): Error if the keyserver
5808         returns an unparseable HKP response.
5809
5810 2002-06-15  David Shaw  <dshaw@jabberwocky.com>
5811
5812         * keyedit.c (show_key_with_all_names), keylist.c
5813         (list_keyblock_print): Show "[expired]" before expired uids.
5814
5815         * keyedit.c (show_key_with_all_names_colon), mainproc.c
5816         (list_node), keylist.c (list_keyblock_colon): Show flag 'e' for
5817         expired user ids.  Use "uat" for user attribute packets instead of
5818         "uid".  Also use '<count> <length>' rather than the fake user id
5819         string on attributes.
5820
5821         * keygen.c (keygen_add_revkey): Remove unused code.
5822
5823         * misc.c (check_permissions): Check directory permissions
5824         properly - they are not special files.
5825
5826         * pkclist.c (expand_id, expand_group, build_pk_list): When
5827         expanding groups before building a pk list, inherit flags from the
5828         original pre-expanded string.
5829
5830         * pubkey-enc.c (is_algo_in_prefs): Don't use prefs from expired
5831         uids.
5832
5833 2002-06-14  David Shaw  <dshaw@jabberwocky.com>
5834
5835         * free-packet.c (copy_signature): Properly copy a signature that
5836         carries a revocation key on it.
5837
5838         * pkclist.c (expand_id, expand_group, build_pk_list): Groups now
5839         work properly when used in the "Enter the user ID" prompt.
5840
5841 2002-06-14  David Shaw  <dshaw@jabberwocky.com>
5842
5843         * keyedit.c (show_key_with_all_names): Display warning if a user
5844         tries to show prefs on a v3 key with a v3 selfsig.
5845
5846         * kbnode.c (dump_kbnode): Show if a uid is expired.
5847
5848         * import.c (merge_blocks, import_revoke_cert): Show user ID
5849         receiving a revocation certificate.
5850
5851         * free-packet.c (cmp_user_ids): Properly compare attribute ids.
5852
5853         * pkclist.c (expand_groups): Maintain the strlist flags while
5854         expanding.  Members of an expansion inherit their flags from the
5855         expansion key.
5856
5857         * options.h, cipher.c (write_header), g10.c (main), keygen.c
5858         (keygen_set_std_prefs): remove the personal_mdc flag.  It no
5859         longer serves a purpose now that the personal preference lists are
5860         split into cipher/digest/zip.
5861
5862 2002-06-14  Timo Schulz  <ts@winpt.org>
5863
5864         * skclist.c (is_insecure): Implemented.
5865
5866 2002-06-12  David Shaw  <dshaw@jabberwocky.com>
5867
5868         * keyserver.c (keyserver_spawn): Properly handle PROGRAM responses
5869         when they have a CRLF ending.  Noted by Keith Ray.
5870
5871         * keyserver.c (keyserver_spawn): Handle CRLF endings from
5872         keyserver helpers.  Also don't leak the last line worth of memory
5873         from the keyserver response.
5874
5875         * main.h, misc.c (deprecated_warning): New function to warn about
5876         deprecated options and commands.
5877
5878         * g10.c (main), keyserver-internal.h, keyserver.c
5879         (parse_keyserver_uri): Use new deprecated function to warn about
5880         honor-http-proxy, auto-key-retrieve, and x-broken-hkp.
5881
5882 2002-06-11  David Shaw  <dshaw@jabberwocky.com>
5883
5884         * Makefile.am: link gpg with NETLIBS for the built-in HKP access.
5885
5886 2002-06-10  David Shaw  <dshaw@jabberwocky.com>
5887
5888         * options.h, keyserver.c (keyserver_opts), g10.c (main): New
5889         keyserver option "include-subkeys".  This feature already existed,
5890         but now can be turned off.  It defaults to on.
5891
5892         * options.h, keyserver.c (parse_keyserver_options,
5893         keyserver_spawn): There are now enough options to justify making a
5894         structure for the keyserver options rather than a page of
5895         if-then-else-if-then-etc.
5896
5897         * getkey.c (merge_keys_and_selfsig, merge_selfsigs_main): Fix bug
5898         in calculating key expiration dates.
5899
5900 2002-06-09  David Shaw  <dshaw@jabberwocky.com>
5901
5902         * keydb.h, getkey.c (get_user_id_native), import.c (import_one):
5903         Display user ID while importing a key.  Note this applies to both
5904         --import and keyserver --recv-keys.
5905
5906         * exec.c (exec_finish): Log unnatural exit (core dump, killed
5907         manually, etc) for fork/exec/pipe child processes.
5908
5909 2002-06-08  Timo Schulz  <ts@winpt.org>
5910
5911         * encode.c (encode_symmetric): Disable the compat flag
5912         when the expert mode is enabled.
5913
5914 2002-06-07  David Shaw  <dshaw@jabberwocky.com>
5915
5916         * options.skel, options.h, main.h, keydb.h, pkclist.c
5917         (build_pk_list, expand_groups), g10.c (main, add_group): Add new
5918         "group" command to allow one name to expand into multiple keys.
5919         For simplicity, and to avoid potential loops, we only expand once
5920         - you can't make an alias that points to an alias.
5921
5922         * main.h, g10.c (main), keygen.c (build_personal_digest_list):
5923         Simplify the default digest list - there is really no need for the
5924         other hashes since they will never be used after SHA-1 in the
5925         list.
5926
5927         * options.skel, options.h, g10.c (main), hkp.c (hkp_ask_import,
5928         hkp_export, hkp_search), keyserver.c (parse_keyserver_options,
5929         parse_keyserver_uri, keyserver_work, keyserver_refresh): Make the
5930         "x-broken-hkp" keyserver scheme into keyserver-option
5931         "broken-http-proxy".  Move honor_http_proxy into
5932         keyserver_options.  Canonicalize the three variations of "hkp",
5933         "x-hkp", and "x-broken-hkp" into "hkp".
5934
5935 2002-06-07  Stefan Bellon  <sbellon@sbellon.de>
5936
5937         * g10.c [__riscos__]: Added --attribute-file to do the same as
5938         --attribute-fd, but with a filename not a fd as argument.
5939         Added magic symbol for RISC OS to use different memory management.
5940
5941         * gpgv.c [__riscos__]: Added magic symbol for RISC OS to use
5942         different memory management.
5943
5944 2002-06-06  David Shaw  <dshaw@jabberwocky.com>
5945
5946         * main.h, g10.c (main), keygen.c (build_personal_digest_list): Put
5947         in a default digest preference list consisting of SHA-1, followed
5948         by every other installed digest except MD5.  Note this is the same
5949         as having no digest preference at all except for SHA-1 being
5950         favored.
5951
5952         * options.h, g10.c (main), keygen.c (keygen_set_std_prefs),
5953         pkclist.c (select_algo_from_prefs): Split
5954         --personal-preference-list into three:
5955         --personal-{cipher|digest|compress}-preferences.  This allows a
5956         user to set one without affecting another (i.e. setting only a
5957         digest pref doesn't imply an empty cipher pref).
5958
5959         * exec.c (exec_read): This is a safer way of guessing the return
5960         value of system().  Noted by Stefan Bellon.
5961
5962 2002-06-05  David Shaw  <dshaw@jabberwocky.com>
5963
5964         * hkp.c (parse_hkp_index): Be more robust with keyservers
5965         returning very unparseable responses.
5966
5967         * exec.c (exec_read): Catch and display an error when the remote
5968         process exits unnaturally (i.e. segfault) so the user knows what
5969         happened.  Also fix exec_write stub which has a different number
5970         of arguments now.
5971
5972 2002-06-05  Timo Schulz  <ts@winpt.org>
5973
5974         * encode.c (encode_simple): Ignore the new mode for RFC1991.
5975         * mainproc.c (symkey_decrypt_sesskey): Better check for weird
5976         keysizes.
5977
5978 2002-06-05  Timo Schulz  <ts@winpt.org>
5979
5980         * encode.c (encode_sesskey): New.
5981         (encode_simple): Use it here. But by default we use the compat
5982         mode which supress to generate encrypted session keys.
5983
5984 2002-06-05  Timo Schulz  <ts@winpt.org>
5985
5986         * mainproc.c (symkey_decrypt_sesskey): New.
5987         (proc_symkey_enc): Support for encrypted session keys.
5988
5989 2002-06-04  David Shaw  <dshaw@jabberwocky.com>
5990
5991         * sign.c (hash_for, sign_file): When encrypting and signing at the
5992         same time, consult the various hash prefs to pick a hash algorithm
5993         to use.  Pass in a 160-bit hint if any of the signing keys are
5994         DSA.
5995
5996         * keydb.h, pkclist.c (select_algo_from_prefs, algo_available):
5997         Pass a "hints" opaque pointer in to let the caller give hints as
5998         to what algorithms would be acceptable.  The only current hint is
5999         for PREFTYPE_HASH to require a 160-bit hash for DSA.  Change all
6000         callers in encode.c (encode_crypt, encrypt_filter) and sign.c
6001         (sign_file).  If we settle on MD5 as the best algorithm based
6002         solely on recepient keys and SHA1 is also a possibility, use SHA1
6003         unless the user intentionally chose MD5.  This is as per 2440:13.
6004
6005         * exec.c (make_tempdir): Fix duplicated filename problem.
6006
6007 2002-06-03  David Shaw  <dshaw@jabberwocky.com>
6008
6009         * packet.h, parse-packet.c (enum_sig_subpkt): Report back from
6010         enum_sig_subpkt when a subpacket is critical and change all
6011         callers in keylist.c (show_policy_url, show_notation), mainproc.c
6012         (print_notation_data), and pkclist.c (do_show_revocation_reason).
6013
6014         * keylist.c (show_policy_url, show_notation): Display if the
6015         policy or notation is critical.
6016
6017 2002-06-03  David Shaw  <dshaw@jabberwocky.com>
6018
6019         * main.h, g10.c (main), keylist.c (dump_attribs, set_attrib_fd,
6020         list_keyblock_print, list_keyblock_colon), status.h, status.c
6021         (get_status_string): New --attribute-fd feature to dump the
6022         contents of attribute subpackets for frontends.  If --status-fd is
6023         also used, then a new status tag ATTRIBUTE is provided for each
6024         subpacket.
6025
6026         * packet.h, getkey.c (fixup_uidnode, merge_selfsigs_main,
6027         merge_selfsigs_subkey), parse-packet.c (setup_user_id): Keep track
6028         of the expiration time of a user ID, and while we're at it, use
6029         the expired flag from the selfsig rather than reparsing the
6030         SIG_EXPIRE subpacket.
6031
6032         * photoid.c (generate_photo_id): When adding a new photo ID,
6033         showing the photo for confirmation is not safe when noninteractive
6034         since the "user" may not be able to dismiss a viewer window.
6035         Noted by Timo Schulz.
6036
6037 2002-06-03  David Shaw  <dshaw@jabberwocky.com>
6038
6039         * options.skel: Sample photo viewers for Win32.
6040
6041         * misc.c (pct_expando): Use the seckey for %k/%K if the pubkey is
6042         not available.
6043
6044         * photoid.h, photoid.c (show_photos): Include the seckey in case a
6045         user tries to view a photo on a secret key, and change all callers
6046         in keyedit.c (menu_showphoto), keylist.c (list_keyblock_print),
6047         and photoid.c (generate_photo_id).
6048
6049 2002-06-02  David Shaw  <dshaw@jabberwocky.com>
6050
6051         * photoid.c (show_photos): Work properly when not called with a
6052         public key.
6053
6054 2002-05-31  David Shaw  <dshaw@jabberwocky.com>
6055
6056         * sign.c (mk_notation_and_policy): Free unneeded buffer.
6057
6058         * hkp.c (parse_hkp_index): Properly handle the '&' character
6059         (i.e. "&amp;") in HKP responses.
6060
6061         * getkey.c (merge_selfsigs_main): Fix reversed expiration time
6062         check with self-sigs.
6063
6064         * keyedit.c (sign_uids): When making a new self-sig on a v3 key,
6065         make a v3 self-sig unless it is currently a v3 self-sig being
6066         promoted to v4.
6067
6068 2002-05-31  Timo Schulz  <ts@winpt.org>
6069
6070         * pkclist.c (do_show_revocation_reason): Don't use capital
6071         letters for non-interactive output.
6072         (show_revocation_reason): Now it is global.
6073         * pubkey-enc.c (get_it): Show if the key has been revoked.
6074
6075 2002-05-30  David Shaw  <dshaw@jabberwocky.com>
6076
6077         * sign.c (write_signature_packets, sign_file, clearsign_file,
6078         sign_symencrypt_file): Make a v4 signature if a policy URL or
6079         notation is set, unless v3 sigs are forced via rfc1991 or
6080         force-v3-sigs.  Also remove some doubled code and clarify an error
6081         message (we don't sign in PGP2 mode - just detach-sign).
6082
6083         * parse-packet.c (parse_one_sig_subpkt): Add KS_FLAGS to the "any
6084         size" section.
6085
6086 2002-05-29  David Shaw  <dshaw@jabberwocky.com>
6087
6088         * keygen.c (keygen_set_std_prefs, add_feature_mdc): Use "mdc" and
6089         "no-mdc" in the prefs string to allow switching on and off the MDC
6090         feature.  This is needed to properly export a key from GnuPG for
6091         use on PGP which does not support MDC - without this, MDC-capable
6092         implementations will still try and generate MDCs which will break
6093         PGP.
6094
6095         * keygen.c (keygen_get_std_prefs): Show "[mdc]" in prefs string if
6096         it is enabled.
6097
6098         * options.h, g10.c (main), cipher.c (write_header), keygen.c
6099         (keygen_set_std_prefs): For consistency, allow the user to specify
6100         mdc/no-mdc in the --personal-preference-list.  If disabled, it
6101         acts just like --disable-mdc.
6102
6103 2002-05-29  David Shaw  <dshaw@jabberwocky.com>
6104
6105         * options.h, exec.c: Add some debugging info, using the 1024 debug
6106         flag.
6107
6108         * exec.c (win_system): New system()-like function for win32 that
6109         does not return until the child process terminates.  Of course,
6110         this doesn't help if the process itself exits before it is
6111         finished.
6112
6113 2002-05-29  Werner Koch  <wk@gnupg.org>
6114
6115         * encode.c (encode_simple): Intialize PKT when --no-literal is used.
6116
6117         * keyedit.c (show_key_with_all_names_colon): Renamed the record
6118         for revocation keys to "rvk".
6119
6120 2002-05-27  Werner Koch  <wk@gnupg.org>
6121
6122         * keyedit.c (show_key_with_all_names_colon): New.
6123         (show_key_with_all_names): Divert to new function when required.
6124         Sanitize printing of revoker name.
6125
6126 2002-05-27  David Shaw  <dshaw@jabberwocky.com>
6127
6128         * build-packet.c (build_sig_subpkt): Handle setting sig flags for
6129         certain subpacket types (notation, policy url, exportable,
6130         revocable).  keyedit.c (sign_mk_attrib): Flags no longer need to
6131         be set here.
6132
6133         * packet.h, parse-packet.c (parse_one_sig_subpkt), build-packet.c
6134         (build_sig_subpkt): Call parse_one_sig_subpkt to sanity check
6135         buffer lengths before building a sig subpacket.
6136
6137 2002-05-26  David Shaw  <dshaw@jabberwocky.com>
6138
6139         * sign.c (mk_notation_and_policy): Include secret key to enable %s
6140         expandos, and pass notations through pct_expando as well.
6141
6142         * main.h, misc.c (pct_expando): Add %s and %S expandos for
6143         signer's keyid.
6144
6145 2002-05-25  David Shaw  <dshaw@jabberwocky.com>
6146
6147         * g10.c (strusage, build_list): Add compress algorithms to
6148         --version list.  Show algorithm numbers when --verbose --version
6149         is done.
6150
6151 2002-05-22  David Shaw  <dshaw@jabberwocky.com>
6152
6153         * options.h, main.h, keygen.c (keygen_set_set_prefs,
6154         keygen_get_std_prefs, keygen_upd_std_prefs), keyedit.c
6155         (keyedit_menu), g10.c (main), pkclist.c (select_algo_from_prefs):
6156         Add --personal-preference-list which allows the user to factor in
6157         their own preferred algorithms when the preference lists are
6158         consulted.  Obviously, this does not let the user violate a
6159         recepient's preferences (and the RFC) - this only influences the
6160         ranking of the agreed-on (and available) algorithms from the
6161         recepients.  Suggested by David Hollenberg.
6162
6163         * options.h, keygen.c (keygen_set_std_prefs), g10.c (main): Rename
6164         --preference-list to --default-preference-list (as that is what it
6165         really is), and make it a true default in that if the user selects
6166         "default" they get this list and not the compiled-in list.
6167
6168 2002-05-22  Werner Koch  <wk@gnupg.org>
6169
6170         * g10.c (main): Add missing LF in a info printout and made it
6171         translatable.  Noted by Michael Tokarev.
6172
6173 2002-05-21  Werner Koch  <wk@gnupg.org>
6174
6175         * g10.c (main): Removed the undef of USE_SHM_COPROCESSING which
6176         was erroneously introduced on 2002-01-09.
6177
6178         * signal.c (got_fatal_signal): Don't write the Nul to stderr.
6179         Reported by David Hollenberg.
6180
6181 2002-05-18  David Shaw  <dshaw@jabberwocky.com>
6182
6183         * main.h, g10.c (main), revoke.c (gen_desig_revoke): Generate a
6184         designated revocation via --desig-revoke
6185
6186         * keyedit.c (keyedit_menu, menu_addrevoker): New "addrevoker"
6187         command to add a designated revoker to a key.
6188
6189 2002-05-17  David Shaw  <dshaw@jabberwocky.com>
6190
6191         * gpgv.c: Add stub for get_ownertrust().
6192
6193         * g10.c (main): --allow-freeform-uid should be implied by
6194         OpenPGP.  Add --no-allow-freeform-uid.
6195
6196         * keyedit.c (sign_uids): Issue a warning when signing a
6197         non-selfsigned uid.
6198
6199         * getkey.c (merge_selfsigs_main): If a key has no selfsigs, and
6200         allow-non-selfsigned-uid is not set, still try and make the key
6201         valid by checking all uids for a signature from an ultimately
6202         trusted key.
6203
6204 2002-05-16  David Shaw  <dshaw@jabberwocky.com>
6205
6206         * main.h, keygen.c (keygen_add_revkey): Add revocation key
6207         subpackets to a signature (callable by
6208         make_keysig_packet). (write_direct_sig): Write a 1F direct key
6209         signature. (parse_revocation_key): Parse a string in
6210         algo:fpr:sensitive format into a revocation
6211         key. (get_parameter_revkey, do_generate_keypair): Call above
6212         functions when prompted from a batch key generation file.
6213
6214         * build-packet.c (build_sig_subpkt): Allow multiple revocation key
6215         subpackets in a single sig.
6216
6217         * keydb.h, getkey.c (get_seckey_byfprint): Same as
6218         get_pubkey_byfprint, except for secret keys.  We only know the
6219         fingerprint of a revocation key, so this is needed to retrieve the
6220         secret key needed to issue a revokation.
6221
6222         * packet.h, parse-packet.c (parse_signature, parse_revkeys): Split
6223         revkey parsing off into a new function that can be used to reparse
6224         after manipulating the revkey list.
6225
6226         * sign.c (make_keysig_packet): Ability to make 1F direct key
6227         signatures.
6228
6229 2002-05-15  David Shaw  <dshaw@jabberwocky.com>
6230
6231         * options.skel: keyserver.pgp.com is gone, so list pgp.surfnet.nl
6232         as a sample LDAP server instead.
6233
6234         * getkey.c (merge_selfsigs_main): Properly handle multiple
6235         revocation keys in a single packet.  Properly handle revocation
6236         keys that are in out-of-order packets.  Remove duplicates in
6237         revocation key list.
6238
6239 2002-05-14  Timo Schulz   <ts@winpt.org>
6240
6241         * exec.c (make_tempdir) [MINGW32]: Added missing '\'.
6242
6243 2002-05-14  Stefan Bellon  <sbellon@sbellon.de>
6244
6245         * exec.c (make_tempdir): Make use of EXTSEP_S instead of hardcoded
6246         dot as extension separator.
6247
6248 2002-05-13  David Shaw  <dshaw@jabberwocky.com>
6249
6250         * photoid.c (show_photos): Use the long keyid as the filename for
6251         the photo.  Use the short keyid as the filename on 8.3 systems.
6252
6253         * exec.h, exec.c (make_tempdir, exec_write, exec_finish): Allow
6254         caller to specify filename.  This should make things easier on
6255         windows and macs where the file extension is required, but a whole
6256         filename is even better.
6257
6258         * keyedit.c (show_key_with_all_names, show_prefs): Show proper
6259         prefs for a v4 key uid with no selfsig at all.
6260
6261         * misc.c (check_permissions): Don't check permissions on
6262         non-normal files (pipes, character devices, etc.)
6263
6264 2002-05-11  Werner Koch  <wk@gnupg.org>
6265
6266         * mainproc.c (proc_symkey_enc): Avoid segv in case the parser
6267         encountered an invalid packet.
6268
6269         * keyserver.c (keyserver_export): Get confirmation before sending
6270         all keys.
6271
6272 2002-05-10  Stefan Bellon  <sbellon@sbellon.de>
6273
6274         * g10.c, hkp.c, keyedit.c, keyserver.c: Replaced all occurrances
6275         of strcasecmp with ascii_strcasecmp and all occurrances of
6276         strncasecmp with ascii_memcasecmp.
6277
6278 2002-05-10  David Shaw  <dshaw@jabberwocky.com>
6279
6280         * packet.h, getkey.c (fixup_uidnode), keyedit.c (show_prefs): Show
6281         assumed prefs for hash and compression as well as the cipher pref.
6282         Show assumed prefs if there are no prefs at all on a v4
6283         self-signed key.
6284
6285         * options.h, g10.c (main), sign.c (make_keysig_packet): New
6286         --cert-digest-algo function to override the default key signing
6287         hash algorithm.
6288
6289 2002-05-09  David Shaw  <dshaw@jabberwocky.com>
6290
6291         * getkey.c (merge_selfsigs_main): Make sure the revocation key
6292         list starts clean as this function may be called more than once
6293         (e.g. from functions in --edit).
6294
6295         * g10.c, encode.c (encode_crypt), sign.c (sign_file,
6296         sign_symencrypt_file): Make --compress-algo work like the
6297         documentation says.  It should be like --cipher-algo and
6298         --digest-algo in that it can override the preferences calculation
6299         and impose the setting the user wants.  No --compress-algo setting
6300         allows the usual preferences calculation to take place.
6301
6302         * main.h, compress.c (compress_filter): use new
6303         DEFAULT_COMPRESS_ALGO define, and add a sanity check for compress
6304         algo value.
6305
6306 2002-05-08  David Shaw  <dshaw@jabberwocky.com>
6307
6308         * pkclist.c (select_algo_from_prefs): There is an assumed
6309         compression preference for uncompressed data.
6310
6311 2002-05-07  David Shaw  <dshaw@jabberwocky.com>
6312
6313         * options.h, g10.c (main), getkey.c (finish_lookup), pkclist.c
6314         (algo_available): --pgp7, identical to --pgp6 except that it
6315         permits a few algorithms that PGP 7 added: AES128, AES192, AES256,
6316         and TWOFISH.  Any more of these --pgpX flags, and it'll be time to
6317         start looking at a generic --emulate-pgp X option.
6318
6319         * export.c (do_export_stream): Warn the user when exporting a
6320         secret key if it or any of its secret subkeys are protected with
6321         SHA1 while simple_sk_checksum is set.
6322
6323         * parse-packet.c (parse_key): Show when the SHA1 protection is
6324         used in --list-packets.
6325
6326         * options.h, build-packet.c (do_comment), g10.c (main): Rename
6327         --no-comment as --sk-comments/--no-sk-comments (--no-comment still
6328         works) and make the default be --no-sk-comments.
6329
6330 2002-05-07  Werner Koch  <wk@gnupg.org>
6331
6332         * keygen.c (get_parameter_algo): Never allow generation of the
6333         deprecated RSA-E or RSA-S flavors of PGP RSA.
6334         (ask_algo): Allow generation of RSA sign and encrypt in expert
6335         mode.  Don't allow ElGamal S+E unless in expert mode.
6336         * helptext.c: Added entry keygen.algo.rsa_se.
6337
6338 2002-05-07  David Shaw  <dshaw@jabberwocky.com>
6339
6340         * keyedit.c (sign_uids): If --expert is set, allow re-signing a
6341         uid to promote a v3 self-sig to a v4 one.  This essentially
6342         deletes the old v3 self-sig and replaces it with a v4 one.
6343
6344         * packet.h, parse-packet.c (parse_key), getkey.c
6345         (merge_keys_and_selfsig, merge_selfsigs_main): a v3 key with a v4
6346         self-sig must never let the v4 self-sig express a key expiration
6347         time that extends beyond the original v3 expiration time.
6348
6349 2002-05-06  David Shaw  <dshaw@jabberwocky.com>
6350
6351         * keyedit.c (sign_uids): When making a self-signature via "sign"
6352         don't ask about sig level or expiration, and include the usual
6353         preferences and such for v4 self-sigs.  (menu_set_preferences):
6354         Convert uids from UTF8 to native before printing.
6355
6356         * keyedit.c (sign_uids): Convert uids from UTF8 to native before
6357         printing.  (menu_set_primary_uid): Show error if the user tries to
6358         make a uid with a v3 self-sig primary.
6359
6360 2002-05-05  David Shaw  <dshaw@jabberwocky.com>
6361
6362         * import.c (import_one): When merging with a key we already have,
6363         don't let a key conflict (same keyid but different key) stop the
6364         import: just skip the bad key and continue.
6365
6366         * exec.c (make_tempdir): Under Win32, don't try environment
6367         variables for temp directories - GetTempDir tries environment
6368         variables internally, and it's better not to second-guess it in
6369         case MS adds some sort of temp dir handling to Windows at some
6370         point.
6371
6372 2002-05-05  Timo Schulz  <ts@winpt.org>
6373
6374         * mainproc.c (proc_symkey_enc): Don't ask for a passphrase
6375         in the list only mode.
6376
6377 2002-05-05  David Shaw  <dshaw@jabberwocky.com>
6378
6379         * keyserver.c (keyserver_refresh): --refresh-keys implies
6380         --merge-only so as not to import keys with keyids that match the
6381         ones being refreshed.  Noted by Florian Weimer.
6382
6383 2002-05-04  Stefan Bellon  <sbellon@sbellon.de>
6384
6385         * free-packet.c (copy_public_key): Don't call m_alloc(0), therefore
6386         added consistency check for revkey and numrefkeys.
6387
6388         * getkey.c (check_revocation_keys): Added consistency check for
6389         revkey and numrefkeys.
6390
6391         * keyedit.c (show_key_with_all_names): Likewise.
6392
6393 2002-05-03  David Shaw  <dshaw@jabberwocky.com>
6394
6395         * photoid.c: Provide default image viewer for Win32.
6396
6397         * misc.c (pct_expando): %t means extension, not name ("jpg", not
6398         "jpeg").
6399
6400         * keyserver.c (keyserver_spawn), photoid.c (show_photos), exec.h,
6401         exec.c: Allow the caller to determine the temp file extension when
6402         starting an exec_write and change all callers.
6403
6404         * keyedit.c (sign_uids): Nonrevocable key signatures cause an
6405         automatic promotion to v4.
6406
6407         * exec.c: Provide stubs for exec_ functions when NO_EXEC is
6408         defined.
6409
6410 2002-05-02  David Shaw  <dshaw@jabberwocky.com>
6411
6412         * photoid.h, photoid.c (parse_image_header, image_type_to_string):
6413         Useful functions to return data about an image.
6414
6415         * packet.h, parse-packet.c (make_attribute_uidname,
6416         parse_attribute_subpkts, parse_attribute), photoid.h, photoid.c
6417         (show_photos): Handle multiple images in a single attribute
6418         packet.
6419
6420         * main.h, misc.c (pct_expando), sign.c (mk_notation_and_policy),
6421         photoid.c (show_photos): Simpler expando code that does not
6422         require using compile-time string sizes.  Call
6423         image_type_to_string to get image strings (i.e. "jpg",
6424         "image/jpeg").  Change all callers.
6425
6426         * keyedit.c (menu_showphoto), keylist.c (list_keyblock_print):
6427         Allow viewing multiple images within a single attribute packet.
6428
6429         * gpgv.c: Various stubs for link happiness.
6430
6431 2002-05-02  David Shaw  <dshaw@jabberwocky.com>
6432
6433         * build-packet.c (build_sig_subpkt), keyedit.c (sign_uids),
6434         options.h, sign.c (mk_notation_and_policy), g10.c (main,
6435         add_notation_data, add_policy_url (new), check_policy_url
6436         (removed)): Allow multiple policy URLs on a given signature.
6437         Split "--notation-data" into "--cert-notation" and
6438         "--sig-notation" so the user can set different policies for key
6439         and data signing.  For backwards compatibility, "--notation-data"
6440         sets both, as before.
6441
6442 2002-05-02  Werner Koch  <wk@gnupg.org>
6443
6444         * options.skel: Removed the comment on trusted-keys because this
6445         option is now deprecated.
6446
6447 2002-05-01  David Shaw  <dshaw@jabberwocky.com>
6448
6449         * keyedit.c (menu_adduid): 2440bis04 says that multiple attribute
6450         packets on a given key are legal.
6451
6452         * keyserver.c (keyserver_refresh): the fake v3 keyid hack applies
6453         to "mailto" URLs as well since they are also served by pksd.
6454
6455 2002-04-29  Werner Koch  <wk@gnupg.org>
6456
6457         Added a copyright year for files changed this year.
6458
6459 2002-04-25  Werner Koch  <wk@gnupg.org>
6460
6461         * g10.c, options.h: New options --display, --ttyname, --ttytype,
6462         --lc-ctype, --lc-messages to be used with future versions of the
6463         gpg-agent.
6464         * passphrase.c (agent_send_option,agent_send_all_options): New.
6465         (agent_open): Send options to the agent.
6466
6467         * trustdb.c (update_ownertrust, clear_ownertrust): Do an explicit
6468         do_sync because revalidation_mark does it only if when the
6469         timestamp actually changes.
6470
6471 2002-04-23  David Shaw  <dshaw@jabberwocky.com>
6472
6473         * main.h, keygen.c (do_generate_keypair), keylist.c
6474         (print_signature_stats, list_all, list_one, list_keyblock,
6475         list_keyblock_print, list_keyblock_colon): After generating a new
6476         key, show the key information (name, keyid, fingerprint, etc.)
6477         Also do not print uncheckable signatures (missing key..) in
6478         --check-sigs.  Print statistics (N missing keys, etc.) after
6479         --check-sigs.
6480
6481         * keyedit.c (sign_uids): When signing a key with an expiration
6482         date on it, the "Do you want your signature to expire at the same
6483         time?" question should default to YES.
6484
6485 2002-04-22  David Shaw  <dshaw@jabberwocky.com>
6486
6487         * parse-packet.c (parse_plaintext), packet.h, plaintext.c
6488         (handle_plaintext): Fix bug in handling literal packets with
6489         zero-length data (no data was being confused with partial body
6490         length).
6491
6492         * misc.c (pct_expando), options.skel: %t means extension ("jpg").
6493         %T means MIME type ("image/jpeg").
6494
6495         * import.c (import_one): Only trigger trust update if the keyring
6496         is actually changed.
6497
6498         * export.c (do_export_stream): Missing a m_free.
6499
6500 2002-04-22  Stefan Bellon  <sbellon@sbellon.de>
6501
6502         * keyid.c (expirestr_from_sk, expirestr_from_sig): Added _() to
6503         string constant.
6504
6505         * exec.c (make_tempdir) [__riscos__]: Better placement of
6506         temporary file.
6507
6508 2002-04-20  David Shaw  <dshaw@jabberwocky.com>
6509
6510         * keygen.c (generate_subkeypair): 2440bis04 adds that creating
6511         subkeys on v3 keys is a MUST NOT.
6512
6513         * getkey.c (finish_lookup): The --pgp6 "use the primary key"
6514         behavior should only apply while data signing and not encryption.
6515         Noted by Roger Sondermann.
6516
6517 2002-04-19  Werner Koch  <wk@gnupg.org>
6518
6519         * keygen.c (keygen_set_std_prefs): Put back 3DES because the RFC
6520         says it is good form to do so.
6521
6522 2002-04-19  David Shaw  <dshaw@jabberwocky.com>
6523
6524         * keyedit.c (menu_deluid): Only cause a trust update if we delete
6525         a non-revoked user id.
6526
6527         * hkp.c (hkp_ask_import), keyserver.c (parse_keyserver_options,
6528         keyserver_spawn), options.h: Remove fast-import keyserver option
6529         (no longer meaningful).
6530
6531         * g10.c (main), keyedit.c (sign_uids), options.h: Change
6532         --default-check-level to --default-cert-check-level as it makes
6533         clear what it operates on.
6534
6535         * g10.c (main): --pgp6 also implies --no-ask-sig-expire.
6536
6537         * delkey.c (do_delete_key): Comment.
6538
6539         * keyedit.c (sign_uids, keyedit_menu, menu_deluid, menu_delsig,
6540         menu_expire, menu_revsig, menu_revkey): Only force a trustdb check
6541         if we did something that changes it.
6542
6543         * g10.c: add "--auto-check-trustdb" to override a
6544         "--no-auto-check-trustdb"
6545
6546 2002-04-19  Werner Koch  <wk@gnupg.org>
6547
6548         * tdbio.c (tdbio_write_nextcheck): Return a status whether the
6549         stamp was actually changed.
6550         * trustdb.c (revalidation_mark): Sync the changes.  Removed the
6551         sync operation done by its callers.
6552         (get_validity): Add logic for maintaining a pending_check flag.
6553         (clear_ownertrust): New.
6554
6555         * keyedit.c (sign_uids): Don't call revalidation_mark depending on
6556         primary_pk.
6557         (keyedit_menu): Call revalidation_mark after "trust".
6558         (show_key_with_all_names): Print a warning on the wrong listed key
6559         validity.
6560
6561         * delkey.c (do_delete_key): Clear the owenertrust information when
6562         deleting a public key.
6563
6564 2002-04-18  Werner Koch  <wk@gnupg.org>
6565
6566         * seskey.c (encode_md_value): Print an error message if a wrong
6567         digest algorithm is used with DSA.  Changed all callers to cope
6568         with a NULL return.  Problem noted by Imad R. Faiad.
6569
6570 2002-04-18  David Shaw  <dshaw@jabberwocky.com>
6571
6572         * trustdb.c (mark_usable_uid_certs): Properly handle nonrevocable
6573         signatures that can expire.  In short, the only thing that can
6574         override an unexpired nonrevocable signature is another unexpired
6575         nonrevocable signature.
6576
6577         * getkey.c (finish_lookup): Always use primary signing key for
6578         signatures when --pgp6 is on since pgp6 and 7 do not understand
6579         signatures made by signing subkeys.
6580
6581 2002-04-18  Werner Koch  <wk@gnupg.org>
6582
6583         * trustdb.c (validate_keys): Never schedule a nextcheck into the
6584         past.
6585         (validate_key_list): New arg curtime use it to set next_expire.
6586         (validate_one_keyblock): Take the current time from the caller.
6587         (clear_validity, reset_unconnected_keys): New.
6588         (validate_keys): Reset all unconnected keys.
6589
6590         * getkey.c (premerge_public_with_secret): Fixed 0x12345678! syntax
6591         for use with secret keys.
6592         (lookup): Advance the searchmode after a search FIRST.
6593
6594         * seckey-cert.c (do_check): Always calculate the old checksum for
6595         use after unprotection.
6596
6597         * g10.c, options.skel: New option --no-escape-from.  Made
6598         --escape-from and --force-v3-sigs the default and removed them
6599         from the options skeleton.
6600
6601 2002-04-16  Werner Koch  <wk@gnupg.org>
6602
6603         * parse-packet.c (parse_key): Support a SHA1 checksum as per
6604         draft-rfc2440-bis04.
6605         * packet.h (PKT_secret_key): Add field sha1chk.
6606         * seckey-cert.c (do_check): Check the SHA1 checksum
6607         (protect_secret_key): And create it.
6608         * build-packet.c (do_secret_key): Mark it as sha-1 protected.
6609         * g10.c, options.h: New option --simple-sk-checksum.
6610
6611 2002-04-13  David Shaw  <dshaw@jabberwocky.com>
6612
6613         * parse-packet.c (parse_signature): Minor fix - signatures should
6614         expire at their expiration time and not one second later.
6615
6616         * keygen.c (proc_parameter_file): Allow specifying preferences
6617         string (i.e. "s5 s2 z1 z2", etc) in a batchmode key generation
6618         file.
6619
6620         * keyedit.c (keyedit_menu): Print standard error message when
6621         signing a revoked key (no new translation).
6622
6623         * getkey.c (merge_selfsigs): Get the default set of key prefs from
6624         the real (not attribute) primary uid.
6625
6626 2002-04-12  David Shaw  <dshaw@jabberwocky.com>
6627
6628         * pkclist.c (build_pk_list): Fix bug that allowed a key to be
6629         selected twice in batch mode if one instance was the default
6630         recipient and the other was an encrypt-to.  Noted by Stefan
6631         Bellon.
6632
6633         * parse-packet.c (dump_sig_subpkt): Show data in trust and regexp
6634         sig subpackets.
6635
6636         * keyedit.c (keyedit_menu): Use new function real_uids_left to
6637         prevent deleting the last real (i.e. non-attribute) uid.  Again,
6638         according to the attribute draft. (menu_showphoto): Make another
6639         string translatable.
6640
6641 2002-04-11  David Shaw  <dshaw@jabberwocky.com>
6642
6643         * build-packet.c (build_sig_subpkt): Delete subpackets from both
6644         hashed and unhashed area on update.  (find_subpkt): No longer
6645         needed.
6646
6647         * keyedit.c (sign_uids): With --pgp2 on, refuse to sign a v3 key
6648         with a v4 signature.  As usual, --expert overrides.  Try to tweak
6649         some strings to a closer match so they can all be translated in
6650         one place.  Use different helptext keys to allow different help
6651         text for different questions.
6652
6653         * keygen.c (keygen_upd_std_prefs): Remove preferences from both
6654         hashed and unhashed areas if they are not going to be used.
6655
6656 2002-04-10  David Shaw  <dshaw@jabberwocky.com>
6657
6658         * misc.c (pct_expando), options.skel: Use %t to indicate type of a
6659         photo ID (in this version, it's always "jpeg").  Also tweak string
6660         expansion loop to minimize reallocs.
6661
6662         * mainproc.c (do_check_sig): Variable type fix.
6663
6664         * keyedit.c (menu_set_primary_uid): Differentiate between true
6665         user IDs and attribute user IDs when making one of them primary.
6666         That is, if we are making a user ID primary, we alter user IDs.
6667         If we are making an attribute packet primary, we alter attribute
6668         packets.  This matches the language in the latest attribute packet
6669         draft.
6670
6671         * keyedit.c (sign_uids): No need for the empty string hack.
6672
6673         * getkey.c (fixup_uidnode): Only accept preferences from the
6674         hashed segment of the self-sig.
6675
6676 2002-04-10  Werner Koch  <wk@gnupg.org>
6677
6678         * tdbio.c (migrate_from_v2): Fixed the offset to read the old
6679         ownertrust value and only add entries to the table if we really
6680         have a value.
6681
6682 2002-04-08  David Shaw  <dshaw@jabberwocky.com>
6683
6684         * status.h, status.c (get_status_string): Add KEYEXPIRED, EXPSIG,
6685         and EXPKEYSIG.  Add "deprecated-use-keyexpired-instead" to
6686         SIGEXPIRED.
6687
6688         * sig-check.c (do_check): Start transition from SIGEXPIRED to
6689         KEYEXPIRED, since the actual event is signature verification by an
6690         expired key and not an expired signature. (do_signature_check,
6691         packet.h): Rename as signature_check2, make public, and change all
6692         callers.
6693
6694         * mainproc.c (check_sig_and_print, do_check_sig): Use status
6695         EXPSIG for an expired, but good, signature.  Add the expiration
6696         time (or 0) to the VALIDSIG status line.  Use status KEYEXPSIG for
6697         a good signature from an expired key.
6698
6699         * g10.c (main): remove checks for no arguments now that argparse
6700         does it.
6701
6702 2002-04-06  Werner Koch  <wk@gnupg.org>
6703
6704         * keyring.c (keyring_get_keyblock): Disable the keylist mode here.
6705
6706         * encode.c (encode_simple, encode_crypt): Only test on compressed
6707         files if a compress level was not explicity set.
6708
6709         * keygen.c (keygen_set_std_prefs): Removed Blowfish and Twofish
6710         from the list of default preferences, swapped the preferences of
6711         RMD160 and SHA1.  Don't include a preference to 3DES unless the
6712         IDEA kludge gets used.
6713
6714         * free-packet.c (free_packet): call free_encrypted also for
6715         PKT_ENCRYPTED_MDC.
6716
6717         * compress.c (release_context): New.
6718         (handle_compressed): Allocate the context and setup a closure to
6719         release the context.  This is required because there is no
6720         guarantee that the filter gets popped from the chain at the end
6721         of the function.  Problem noted by Timo and probably also the
6722         cause for a couple of other reports.
6723         (compress_filter): Use the release function if set.
6724
6725         * tdbio.c [__CYGWIN32__]: Don't rename ftruncate.  Noted by
6726         Disastry.
6727
6728         * parse-packet.c (parse_signature): Put parens around a bit test.
6729
6730         * exec.c (make_tempdir): Double backslash for TMP directory
6731         creation under Windows.  Better strlen the DIRSEP_S constants for
6732         allocation measurements.
6733
6734         * decrypt.c (decrypt_messages): Release the passphrase aquired
6735         by get_last_passphrase.
6736
6737 2002-04-02  Werner Koch  <wk@gnupg.org>
6738
6739         * Makefile.am (EXTRA_DIST): Removed OPTIONS an pubring.asc - they
6740         are no longer of any use.
6741
6742 2002-04-03  David Shaw  <dshaw@jabberwocky.com>
6743
6744         * keyserver.c (parse_keyserver_options): fix auto-key-retrieve to
6745         actually work as a keyserver-option (noted by Roger Sondermann).
6746
6747         * keylist.c (reorder_keyblock): do not reorder the primary
6748         attribute packet - the first user ID must be a genuine one.
6749
6750 2002-03-31  David Shaw  <dshaw@jabberwocky.com>
6751
6752         * keylist.c (list_keyblock_colon): Fix ownertrust display with
6753         --with-colons.
6754
6755         * keygen.c (generate_user_id), photoid.c (generate_photo_id):
6756         Properly initialize the user ID refcount.  A few more "y/n" ->
6757         "y/N" in photoid.c.
6758
6759         * keyedit.c (ask_revoke_sig): Warn the user if they are about to
6760         revoke an expired sig (not a problem, but they should know).  Also
6761         tweak a few prompts to change "y/n" to "y/N", which is how most
6762         other prompts are written.
6763
6764         * keyserver.c (keyserver_search_prompt): Control-d escapes the
6765         keyserver search prompt.
6766
6767         * pkclist.c (show_revocation_reason & callers): If a subkey is
6768         considered revoked solely because the parent key is revoked, print
6769         the revocation reason from the parent key.
6770
6771         * trustdb.c (get_validity): Allow revocation/expiration to apply
6772         to a uid/key with no entry in the trustdb.
6773
6774 2002-03-29  David Shaw  <dshaw@jabberwocky.com>
6775
6776         * keyserver.c (printunquoted): unquote backslashes from keyserver
6777         searches
6778
6779         * hkp.c (write_quoted): quote backslashes from keyserver searches
6780
6781 2002-03-26  Werner Koch  <wk@gnupg.org>
6782
6783         * keygen.c (ask_keysize): Removed the warning for key sizes > 1536.
6784
6785 2002-03-25  Werner Koch  <wk@gnupg.org>
6786
6787         * keyedit.c (sign_uids): Use 2 strings and not a %s so that
6788         translations can be done the right way.
6789         * helptext.c: Fixed small typo.
6790
6791 2002-03-23  David Shaw  <dshaw@jabberwocky.com>
6792
6793         * import.c (append_uid, merge_sigs): it is okay to import
6794         completely non-signed uids now (with --allow-non-selfsigned-uid).
6795
6796         * getkey.c (get_primary_uid, merge_selfsigs_main): do not choose
6797         an attribute packet (i.e. photo) as primary uid.  This prevents
6798         oddities like "Good signature from [image of size 2671]".  This is
6799         still not perfect (one can still select an attribute packet as
6800         primary in --edit), but is closer to the way the draft is going.
6801
6802         * g10.c (build_list): algorithms should include 110.
6803
6804         * g10.c (main): --pgp2 implies --no-ask-sig-expire and
6805         --no-ask-cert-expire as those would cause a v4 sig/cert.
6806
6807         * armor.c (is_armor_header): be more lenient in what constitutes a
6808         valid armor header (i.e. -----BEGIN blah blah-----) as some
6809         Windows programs seem to add spaces at the end.  --openpgp makes
6810         it strict again.
6811
6812 2002-03-18  David Shaw  <dshaw@jabberwocky.com>
6813
6814         * keyserver.c (keyserver_search_prompt): Properly handle a "no
6815         keys found" case from the internal HKP code (external HKP is ok).
6816         Also, make a COUNT -1 (i.e. streamed) keyserver response a little
6817         more efficient.
6818
6819         * g10.c (main): Add --no-allow-non-selfsigned-uid
6820
6821 2002-03-17  David Shaw  <dshaw@jabberwocky.com>
6822
6823         * g10.c (main): --openpgp implies --allow-non-selfsigned-uid.
6824
6825         * getkey.c (merge_selfsigs_main): If none of the uids are primary
6826         (because none are valid) then pick the first to be primary (but
6827         still invalid).  This is for cosmetics in case some display needs
6828         to print a user ID from a non-selfsigned key.  Also use
6829         --allow-non-selfsigned-uid to make such a key valid and not
6830         --always-trust.  The key is *not* automatically trusted via
6831         --allow-non-selfsigned-uid.
6832
6833         * mainproc.c (check_sig_and_print): Make sure non-selfsigned uids
6834         print [uncertain] on verification even though one is primary now.
6835
6836         * getkey.c (merge_selfsigs): If the main key is not valid, then
6837         neither are the subkeys.
6838
6839         * import.c (import_one): Allow --allow-non-selfsigned-uid to work
6840         on completely unsigned keys.  Print the uids in UTF8.  Remove
6841         mark_non_selfsigned_uids_valid().
6842
6843         * keyedit.c (show_key_with_all_names): Show revocation key as
6844         UTF8.
6845
6846         * sign.c (clearsign_file): Allow --not-dash-escaped to work with
6847         v3 keys.
6848
6849 2002-03-14  Werner Koch  <wk@gnupg.org>
6850
6851         * main.h: Changed the default algorithms to CAST5 and SHA1.
6852
6853 2002-03-13  David Shaw  <dshaw@jabberwocky.com>
6854
6855         * import.c (chk_self_sigs): Show which user ID a bad self-sig
6856         (invald sig or unsupported public key algorithm) resides on.
6857
6858         * import.c (chk_self_sigs): any valid self-sig should mark a user
6859         ID or subkey as valid - otherwise, an attacker could DoS the user
6860         by inventing a bogus invalid self-signature.
6861
6862 2002-03-07  David Shaw  <dshaw@jabberwocky.com>
6863
6864         * g10.c (main): make a few more strings translatable.
6865
6866         * options.h, options.skel, g10.c (main), gpgv.c, mainproc.c
6867         (check_sig_and_print), keyserver.c (parse_keyserver_options):
6868         --auto-key-retrieve should really be a keyserver-option variable.
6869
6870         * import.c (revocation_present): new function to print a warning
6871         if a key is imported that has been revoked by designated revoker,
6872         but the designated revoker is not present to verify the
6873         revocation.  If keyserver-options auto-key-retrieve is set, try
6874         and fetch the designated revoker from the keyserver.
6875
6876         * import.c (import_one): call revocation_present after importing a
6877         new key.  Note that this applies to --import, --recv-keys, and
6878         --search-keys.
6879
6880         * keyserver-internal.h, keyserver.c (keyserver_import_fprint):
6881         import via fingerprint (for revocation keys).
6882
6883         * keyserver.c (keyserver_import_keyid): much simpler
6884         implementation now that we're using KEYDB_SEARCH_DESC internally.
6885
6886 2002-03-04  David Shaw  <dshaw@jabberwocky.com>
6887
6888         * revoke.c (gen_revoke): do not prompt for revocation reason for
6889         v3 revocations (unless force-v4-certs is on) since they wouldn't
6890         be used anyway.
6891
6892         * keyedit.c (menu_revsig): show the status of the sigs
6893         (exportable? revocable?) to the user before prompting for which
6894         sig to revoke.  Also, make sure that local signatures get local
6895         revocations.
6896
6897         * keyedit.c (ask_revoke_sig): remind the user which sigs are
6898         local.
6899
6900         * g10.c (main): Add "exec-path" variable to override PATH for
6901         execing programs.
6902
6903         * export.c (do_export_stream): properly check return code from
6904         classify_user_id to catch unclassifiable keys.
6905
6906 2002-03-03  David Shaw  <dshaw@jabberwocky.com>
6907
6908         * parse-packet.c (parse_signature): variable type tweak for RISC
6909         OS (from Stefan)
6910
6911 2002-02-28  David Shaw  <dshaw@jabberwocky.com>
6912
6913         * getkey.c (check_revocation_keys): New function to check a
6914         revocation against a list of potential revocation keys.  Note the
6915         loop-breaking code here.  This is to prevent blowing up if A is
6916         B's revocation key, while B is also A's.  Note also that this is
6917         written so that a revoked revoker can still issue revocations:
6918         i.e. If A revokes B, but A is revoked, B is still revoked.  I'm
6919         not completely convinced this is the proper behavior, but it
6920         matches how PGP does it.  It does at least have the advantage of
6921         much simpler code - my first version of this had lots of loop
6922         maintaining code so you could chain revokers many levels deep and
6923         if D was revoked, C was not, which meant that B was, and so on.
6924         It was sort of scary, actually.
6925
6926         * getkey.c (merge_selfsigs_main): Add any revocation keys onto the
6927         pk.  This is particularly interesting since we normally only get
6928         data from the most recent 1F signature, but you need multiple 1F
6929         sigs to properly handle revocation keys (PGP does it this way, and
6930         a revocation key could be marked "sensitive" and hence in a
6931         different signature).  Also, if a pk has a revocation key set,
6932         check for revocation sigs that were not made by us - if made by a
6933         valid revocation key, mark the pk revoked.
6934
6935         * packet.h, getkey.c (cache_public_key): do not cache key if
6936         "dont_cache" is set.  This allows the revocation key code to look
6937         up a key and return information that may be inaccurate to prevent
6938         loops without caching the fake data.
6939
6940         * packet.h, sig-check.c (do_signature_check): Record if a
6941         signature was made by a revoked pk.
6942
6943         * packet.h, parse-packet.c (parse_one_sig_subpkt,
6944         can_handle_critical, parse_signature): Get revocation key
6945         information out of direct sigs.
6946
6947         * keylist.c (list_keyblock_print): don't assume that the presence
6948         of a 0x20 signature means the key is revoked.  With revocation
6949         keys, this may not be true if the revocation key is not around to
6950         verify it or if verification failed.  Also, 0x1F should get listed
6951         as "sig", and not "unexpected signature class".
6952
6953         * keyedit.c (show_key_with_all_names): Add a flag for printing
6954         revoker information and change all callers.
6955
6956         * import.c (merge_blocks): merge in any new direct key (0x1F)
6957         sigs.
6958
6959         * import.c (import_revoke_cert): don't keep processing after a
6960         revocation is rejected.
6961
6962         * import.c (delete_inv_parts): Allow importing a revocation
6963         signature even if it was not issued by the key.  This allows a
6964         revocation key to issue it.  Of course, the sig still needs to be
6965         checked before we trust it.
6966
6967         * free-packet.c (copy_public_key): Include a new copy of the
6968         revocation keys when duping a pk.
6969
6970         * free-packet.c (free_seckey_enc, release_public_key_parts): Free
6971         any revocation keys that are attached to a sig or pk.
6972
6973         * export.c (do_export_stream): Do not export signatures with
6974         "sensitive" revocation keys in them.
6975
6976 2002-02-27  David Shaw  <dshaw@jabberwocky.com>
6977
6978         * export.c (do_export_stream): Do not include v3 keys in a
6979         --export-secret-subkeys export.
6980
6981         * getkey.c (merge_selfsigs_main): If a key isn't valid (say,
6982         because of no self-signature), allow --always-trust to force it
6983         valid so it can be trusted.
6984
6985 2002-02-25  David Shaw  <dshaw@jabberwocky.com>
6986
6987         * hkp.c (hkp_ask_import), hkp.h, keyserver.c (all): treat key
6988         lists internally as fingerprints when possible.  All this is via
6989         KEYDB_SEARCH_DESC - no point in reinventing the wheel. This allows
6990         the helper program to search the keyserver by fingerprint if
6991         desired (and the keyserver supports it).  Note that automatic
6992         fingerprint promotion during refresh only applies to v4 keys as a
6993         v4 fingerprint can be easily changed into a long or short key id,
6994         and a v3 cannot.
6995
6996         * pubkey-enc.c, getkey.c, misc.c, main.h: Take two copies of
6997         hextobyte() from pubkey-enc.c and getkey.c and make them into one
6998         copy in misc.c.
6999
7000 2002-02-22  David Shaw  <dshaw@jabberwocky.com>
7001
7002         * keyserver.c (keyserver_search_prompt): Detect a "no keys found"
7003         case even if the helper program does not explicitly say how many
7004         keys were found.
7005
7006         * hkp.c (parse_hkp_index): Bug fix - don't report non-revoked keys
7007         as revoked in HKP key searches.
7008
7009 2002-02-19  Werner Koch  <wk@gnupg.org>
7010
7011         * parse-packet.c (parse_trust): Made parsing more robust.
7012
7013 2002-02-19  David Shaw  <dshaw@jabberwocky.com>
7014
7015         * hkp.c (parse_hkp_index): Catch corruption in HKP index lines
7016         (can be caused by broken or malicious keyservers).
7017
7018         * keyserver.c (keyserver_work): Add KEYSERVER_NOT_SUPPORTED for
7019         unsupported actions (say, a keyserver that has no way to search,
7020         or a readonly keyserver that has no way to add).  Also add a
7021         USE_EXTERNAL_HKP define to disable the internal HKP keyserver
7022         code.
7023
7024 2002-02-14  Werner Koch  <wk@gnupg.org>
7025
7026         * g10.c: New option --no-use-agent.
7027
7028         * pkclist.c (check_signatures_trust): Always print the warning for
7029         unknown and undefined trust.  Removed the did_add cruft.  Reported
7030         by Janusz A. Urbanowicz.
7031
7032 2002-02-11  David Shaw  <dshaw@jabberwocky.com>
7033
7034         * hkp.c (parse_hkp_index): Bug fix - properly handle user IDs with
7035         colons (":") in them while HKP searching.
7036
7037 2002-02-09  David Shaw  <dshaw@jabberwocky.com>
7038
7039         * misc.c (pct_expando): More comments.
7040
7041         * keydb.h, sign.c (mk_notation_and_policy): Clarify what is a sig
7042         and what is a cert.  A sig has sigclass 0x00, 0x01, 0x02, or 0x40,
7043         and everything else is a cert.
7044
7045         * g10.c (main), keyedit.c (keyedit_menu): Add a "nrlsign" for
7046         nonrevocable and local key signatures.
7047
7048         * g10.c (main): Add a --no-force-mdc to undo --force-mdc.
7049
7050         * options.h, g10.c (main), cipher.c (write_header): Add a knob to
7051         --disable-mdc/--no-disable-mdc.  Off by default, of course, but is
7052         used in --pgp2 and --pgp6 modes.
7053
7054         * pkclist.c (build_pk_list): Allow specifying multiple users in
7055         the "Enter the user ID" loop.  Enter a blank line to stop.  Show
7056         each key+id as it is added.
7057
7058         * keylist.c (show_policy_url), mainproc.c (print_notation_data):
7059         It is not illegal (though possibly silly) to have multiple policy
7060         URLs in a given signature, so print all that are present.
7061
7062         * hkp.c (hkp_search): More efficient implementation of URL-ifying
7063         code.
7064
7065 2002-02-04  David Shaw  <dshaw@jabberwocky.com>
7066
7067         * main.h, misc.c (pct_expando): New function to generalize
7068         %-expando processing in any arbitrary string.
7069
7070         * photoid.c (show_photo): Call the new pct_expando function rather
7071         than expand strings internally.
7072
7073         * sign.c (mk_notation_and_policy): Show policy URLs and notations
7074         when making a signature if show-policy/show-notation is on.
7075         %-expand policy URLs during generation.  This lets the user have
7076         policy URLs of the form "http://notary.jabberwocky.com/keysign/%K"
7077         which will generate a per-signature policy URL.
7078
7079         * main.h, keylist.c (show_policy_url, show_notation): Add amount
7080         to indent so the same function can be used in key listings as well
7081         as during sig generation.  Change all callers.
7082
7083 2002-02-04  David Shaw  <dshaw@jabberwocky.com>
7084
7085         * keyserver.c, options.h (parse_keyserver_options, keyidlist):
7086         Workaround for the pksd and OKS keyserver bug that calculates v4
7087         RSA keyids as if they were v3.  The workaround/hack is to fetch
7088         both the v4 (e.g. 99242560) and v3 (e.g. 68FDDBC7) keyids.  This
7089         only happens for key refresh while using the HKP scheme and the
7090         refresh-add-fake-v3-keyids keyserver option must be set.  This
7091         should stay off by default.
7092
7093 2002-02-03  David Shaw  <dshaw@jabberwocky.com>
7094
7095         * keyserver.c (keyserver_spawn): Bug fix - do not append keys to
7096         each other when --sending more than one.
7097
7098 2002-02-02  David Shaw  <dshaw@jabberwocky.com>
7099
7100         * options.h, g10.c (main), keyedit.c (sign_uids), sign.c
7101         (mk_notation_and_policy): Split "--set-policy-url" into
7102         "--cert-policy-url" and "--sig-policy-url" so the user can set
7103         different policies for key and data signing.  For backwards
7104         compatibility, "--set-policy-url" sets both, as before.
7105
7106 2002-01-30  Werner Koch  <wk@gnupg.org>
7107
7108         * g10.c (main): --gen-random --armor does now output a base64
7109         encoded string.
7110
7111 2002-01-28  David Shaw  <dshaw@jabberwocky.com>
7112
7113         * g10.c (main), options.h, pkclist.c (algo_available): --pgp6
7114         flag.  This is not nearly as involved as --pgp2.  In short, it
7115         turns off force_mdc, turns on no_comment, escape_from, and
7116         force_v3_sigs, and sets compression to 1.  It also restricts the
7117         user to IDEA (if present), 3DES, CAST5, MD5, SHA1, and RIPEMD160.
7118         See the comments above algo_available() for lots of discussion on
7119         why you would want to do this.
7120
7121 2002-01-27  David Shaw  <dshaw@jabberwocky.com>
7122
7123         * keygen.c (keygen_set_std_prefs): Comment
7124
7125         * keyedit.c (sign_uids): Bug fix - when signing with multiple
7126         secret keys at the same time, make sure each key gets the sigclass
7127         prompt.
7128
7129         * exec.c (exec_finish): Close the iobuf and FILE before trying to
7130         waitpid, so the remote process will get a SIGPIPE and exit.  This
7131         is only a factor when using a pipe to communicate.
7132
7133         * exec.c (exec_write): Disable cache-on-close of the fd iobuf (is
7134         this right?  Why is a fd iobuf cached at all?)
7135
7136 2002-01-26  Werner Koch  <wk@gnupg.org>
7137
7138         * g10.c, options.h: New option --gpg-agent-info
7139         * passphrase.c (agent_open): Let it override the environment info.
7140         * seckey-cert.c (check_secret_key): Always try 3 times when the
7141         agent is enabled.
7142         * options.skel: Describe --use-agent.
7143
7144 2002-01-24  David Shaw  <dshaw@jabberwocky.com>
7145
7146         * pubkey-enc.c (is_algo_in_prefs, get_it): Only check preferences
7147         against keys with v4 self sigs - there is really little point in
7148         warning for every single non-IDEA message encrypted to an old key.
7149
7150         * pkclist.c (select_algo_from_prefs): Only put in the fake IDEA
7151         preference if --pgp2 is on.
7152
7153         * mainproc.c (check_sig_and_print): Print "Expired" for expired
7154         but good signatures (this still prints "BAD" for expired but bad
7155         signatures).
7156
7157 2002-01-23  David Shaw  <dshaw@jabberwocky.com>
7158
7159         * keygen.c (ask_keysize): Cosmetic: don't present a RSA signing
7160         key as a "keypair" which can be 768 bits long (as RSA minimum is
7161         1024).
7162
7163         * pubkey-enc.c (is_algo_in_prefs): Allow IDEA as a fake preference
7164         for v3 keys with v3 selfsigs.
7165
7166 2002-01-22  David Shaw  <dshaw@jabberwocky.com>
7167
7168         * packet.h, getkey.c (merge_selfsigs_main), pkclist.c
7169         (select_algo_from_prefs): Implement the fake IDEA preference as
7170         per RFC2440:12.1.  This doesn't mean that IDEA will be used (the
7171         plugin may not be present), but it does mean that a v3 key with a
7172         v3 selfsig has an implicit IDEA preference instead of 3DES.  v3
7173         keys with v4 selfsigs use preferences as normal.
7174
7175         * encode.c (encode_crypt): if select_algo_from_prefs fails, this
7176         means that we could not find a cipher that both keys like.  Since
7177         all v4 keys have an implicit 3DES preference, this means there is
7178         a v3 key with a v3 selfsig in the list.  Use 3DES in this case as
7179         it is the safest option (we know the v4 key can handle it, and
7180         we'll just hope the v3 key is being used in an implementation that
7181         can handle it).  If --pgp2 is on, warn the user what we're doing
7182         since it'll probably break PGP2 compatibility.
7183
7184         * g10.c (main): Do not force using IDEA for encrypted files in
7185         --pgp2 mode - let the fake IDEA preference choose this for us for
7186         better compatibility when encrypting to multiple keys, only some
7187         of which are v3.
7188
7189         * keygen.c (keygen_set_std_prefs): Put 3DES on the end of the
7190         default cipher pref list (RFC2440: "...it is good form to place it
7191         there explicitly.").  If the user has the IDEA plugin installed,
7192         put a preference for IDEA *after* 3DES to effectively disable its
7193         use for everything except encrypting along with v3 keys.
7194
7195         * encode.c, g10.c, sign.c: Change the PGP2 warning line from
7196         "... will not be usable ..." to "... may not be usable ..." as the
7197         user could be using one of the enhanced PGP2 variations.
7198
7199         * helptext.c: Revise the sign_uid.class help text as suggested by
7200         Stefan.
7201
7202 2002-01-20  Werner Koch  <wk@gnupg.org>
7203
7204         * passphrase.c (passphrase_to_dek): Add tryagain_text arg to be
7205         used with the agent.  Changed all callers.
7206         (agent_get_passphrase): Likewise and send it to the agent
7207         * seckey-cert.c (do_check): New arg tryagain_text.
7208         (check_secret_key): Pass the string to do_check.
7209         * keygen.c (ask_passphrase): Set the error text is required.
7210         * keyedit.c (change_passphrase): Ditto.
7211
7212         * passphrase.c (agent_open): Disable opt.use_agent in case of a
7213         problem with the agent.
7214         (agent_get_passphrase): Ditto.
7215         (passphrase_clear_cache): Ditto.
7216
7217 2002-01-19  Werner Koch  <wk@gnupg.org>
7218
7219         * passphrase.c (agent_open): Add support for the new Assuan based
7220         gpg-agent.  New arg to return the used protocol version.
7221         (agent_get_passphrase): Implemented new protocol here.
7222         (passphrase_clear_cache): Ditto.
7223         (readline): New.
7224
7225 2002-01-15  Timo Schulz  <ts@winpt.org>
7226
7227         * encode.c (encode_crypt_files): Fail if --output is used.
7228
7229         * g10.c: New command --decrypt-files.
7230
7231         * decrypt.c (decrypt_messages): New.
7232
7233 2002-01-09  David Shaw  <dshaw@jabberwocky.com>
7234
7235         * g10.c, misc.c, gpgv.c: move idea_cipher_warn to misc.c so gpgv.c
7236         doesn't need a stub for it any longer.
7237
7238         * g10.c (get_temp_dir), main.h: no longer used (it's in exec.c now)
7239
7240         * g10.c (main), delkey.c (delete_keys), main.h : Allow
7241         --delete-key (now --delete-keys, though --delete-key still works,
7242         of course) to delete multiple keys in one go.  This applies to
7243         --delete-secret-key(s) and --delete-secret-and-public-key(s) as
7244         well.
7245
7246 2002-01-09  Timo Schulz  <ts@winpt.org>
7247
7248         * encode.c (encode_crypt_files): Now it behaves like verify_files.
7249
7250         * g10.c (main): We don't need to check argc for encode_crypt_files
7251         any longer.
7252
7253 2002-01-09  Timo Schulz  <ts@winpt.org>
7254
7255         * exec.c: Include windows.h for dosish systems.
7256
7257 2002-01-08  Timo Schulz  <ts@winpt.org>
7258
7259         * g10.c (main): New description for --encrypt-files.
7260
7261 2002-01-08  Werner Koch  <wk@gnupg.org>
7262
7263         * g10.c (main): Must register the secring for encryption because
7264         it is needed to figure out the default recipient.  Reported by
7265         Roger Sondermann.
7266
7267 2002-01-05  David Shaw  <dshaw@jabberwocky.com>
7268
7269         * keyedit.c (menu_adduid): Require --expert before adding a photo
7270         ID to a v3 key, and before adding a second photo ID to any key.
7271
7272         * keyedit.c (keyedit_menu): Don't allow adding photo IDs in
7273         rfc1991 or pgp2 mode.
7274
7275         * getkey.c (merge_selfsigs_subkey): Permit v3 subkeys.  Believe it
7276         or not, this is allowed by rfc 2440, and both PGP 6 and PGP 7 work
7277         fine with them.
7278
7279         * g10.c, options.h, keyedit.c, sign.c: Move the "ask for
7280         expiration" switch off of --expert, which was getting quite
7281         overloaded, and onto ask-sig-expire and ask-cert-expire.  Both
7282         default to off.
7283
7284         * g10.c (main): Change the default compression algo to 1, to be
7285         more OpenPGP compliant (PGP also uses this, so it'll help with
7286         interoperability problems as well).
7287
7288         * encode.c (encode_crypt): Handle compression algo 2, since the
7289         default is now 1.
7290
7291         * build-packet.c (build_attribute_subpkt): Fix off-by-one error.
7292
7293 2002-01-05  Werner Koch  <wk@gnupg.org>
7294
7295         * g10.c (main): Do not register the secret keyrings for certain
7296         commands.
7297
7298         * keydb.c (keydb_add_resource): Use access to test for keyring
7299         existence.  This avoids cached opened files which are bad under
7300         RISC OS.
7301
7302 2002-01-04  David Shaw  <dshaw@jabberwocky.com>
7303
7304         * sign.c (sign_file, sign_symencrypt_file): always use one-pass
7305         packets unless rfc1991 is enabled.  This allows a signature made
7306         with a v3 key to work in PGP 6 and 7.  Signatures made with v4
7307         keys are unchanged.
7308
7309         * g10.c (main): Disallow non-detached signatures in PGP2 mode.
7310         Move the "you must use files and not pipes" PGP2 warning up so all
7311         the PGP2 stuff is together.
7312
7313         * encode.c (encode_simple): Use the actual filesize instead of
7314         partial length packets in the internal literal packet from a
7315         symmetric message.  This breaks PGP5(?), but fixes PGP2, 6, and 7.
7316         It's a decent tradeoff.  Note there was only an issue with
7317         old-style RFC1991 symmetric messages.  2440-style messages in 6
7318         and 7 work with or without partial length packets.
7319
7320 2002-01-03  David Shaw  <dshaw@jabberwocky.com>
7321
7322         * g10.c (main): Removed --no-default-check-level option, as it is
7323         not consistent with other "default" options.  Plus, it is the same
7324         as saying --default-check-level 0.
7325
7326         * exec.c (exec_read): Disallow caching tempfile from child
7327         process, as this keeps the file handle open and can cause unlink
7328         problems on some platforms.
7329
7330         * keyserver.c (keyserver_search_prompt): Minor tweak - don't
7331         bother to transform keyids into textual form if they're just going
7332         to be transformed back to numbers.
7333
7334 2002-01-03  Timo Schulz <ts@winpt.org>
7335
7336         * g10.c: New command --encrypt-files.
7337
7338         * verify.c (print_file_status): Removed the static because
7339         encode_crypt_files also uses this function.
7340
7341         * main.h (print_files_status): New.
7342         (encode_crypt_files): New.
7343
7344         * encode.c (encode_crypt_files): New.
7345
7346 2002-01-02  Stefan Bellon  <sbellon@sbellon.de>
7347
7348         * keyserver.c: Moved util.h include down in order to avoid
7349         redefinition problems on RISC OS.
7350
7351         * keyring.c (keyring_lock): Only lock keyrings that are writable.
7352
7353         * keyring.c (keyring_update_keyblock): Close unused iobuf.
7354
7355         * hkp.c (parse_hkp_index, hkp_search) [__riscos__]: Changed
7356         unsigned char* to char* because of compiler issues.
7357
7358         * exec.c (exec_finish) [__riscos__]: Invalidate close cache so
7359         that file can be unlinked.
7360
7361 2001-12-28  David Shaw  <dshaw@jabberwocky.com>
7362
7363         * g10.c (main): Use a different strlist to check extensions since
7364         they need to be handled seperately now.
7365
7366         * misc.c,main.h (check_permissions): Properly handle permission
7367         and ownership checks on files in the lib directory
7368         (e.g. /usr/local/lib/gnupg), which are owned by root and are
7369         world-readable, and change all callers to specify extension or
7370         per-user file.
7371
7372         * photoid.c (show_photo), keyserver.c (keyserver_spawn): Bug fix -
7373         don't call exec_finish if exec_write fails.
7374
7375         * keyserver.c (keyserver_spawn): Look for OPTIONS from the
7376         keyserver helper - specifically, a "OUTOFBAND" option for the
7377         email keyserver.
7378
7379         * mainproc.c (list_node), keylist.c (list_keyblock_colon),
7380         import.c (delete_inv_parts), export.c (do_export_stream): Use
7381         signature flags for exportability check rather than re-parsing the
7382         subpacket.
7383
7384         * keyid.c, keydb.h (get_lsign_letter): No longer needed.
7385
7386 2001-12-27  David Shaw  <dshaw@jabberwocky.com>
7387
7388         * exec.c (exec_finish): Show errors when temp files cannot be
7389         deleted for whatever reason.
7390
7391         * exec.c (exec_read): Don't rely on WEXITSTATUS being present.
7392
7393         * exec.c (make_tempdir): Add temp file creator for win32.  Don't
7394         create an incoming temp file if the exec is write-only.
7395
7396         * keyserver.c (keyserver_spawn): Clean up error handling, for when
7397         the spawn fails.
7398
7399         * photoid.c (show_photo): Clean up error handling.
7400
7401         * misc.c (check_permissions): Neaten.
7402
7403 2001-12-25  David Shaw  <dshaw@jabberwocky.com>
7404
7405         * mkdtemp.c (mkdtemp): Add copyleft info and tweak the 'X' counter
7406         to be a bit simpler.
7407
7408         * keyserver.c, photoid.c: Remove unused headers left over from
7409         when the exec functions lived there.
7410
7411 2001-12-23  Timo Schulz <ts@winpt.org>
7412
7413         * misc.c (check_permissions): Do not use it for W32 systems.
7414
7415         * tdbio.c (migrate_from_v2): Define ftruncate as chsize() for W32.
7416
7417         * mkdtemp.c: W32 support.
7418
7419         * photoid.c: Ditto.
7420
7421         * exec.c: Ditto.
7422
7423 2001-12-22  David Shaw  <dshaw@jabberwocky.com>
7424
7425         * exec.c (make_tempdir): avoid compiler warning with const
7426
7427         * mkdtemp.c (mkdtemp): catch the empty ("") string case in case
7428         someone repurposes mkdtemp at some point.
7429
7430         * photoid.c (generate_photo_id, show_photo): some type changes
7431         from Stefan Bellon.
7432
7433         * exec.c (make_tempdir): handle Win32 systems, suggested by Timo
7434         Schulz.
7435
7436 2001-12-22  Werner Koch  <wk@gnupg.org>
7437
7438         * encode.c (encode_simple, encode_crypt): i18n 2 strings.
7439
7440 2001-12-22  Timo Schulz <ts@winpt.org>
7441
7442         * encode.c (encode_simple, encode_crypt): Use is_file_compressed
7443         to avoid to compress compressed files.
7444
7445 2001-12-22  Werner Koch  <wk@gnupg.org>
7446
7447         * keyserver.c (keyserver_spawn): Removed some variables
7448         declaration due to shadowing warnings.
7449
7450         * build-packet.c (build_attribute_subpkt): s/index/idx/ to avoid
7451         compiler warnig due to index(3).
7452
7453         * getkey.c (get_ctx_handle): Use KEYDB_HANDLE as return value.
7454         * keylist.c (list_one): Made resname const.
7455
7456         * keyedit.c (keyedit_menu): Allow "addphoto" only when --openpgp is
7457         not used.
7458
7459         * options.skel: Changed one example photo viewer to qiv.
7460
7461 2001-12-21  David Shaw  <dshaw@jabberwocky.com>
7462
7463         * Makefile.am: add exec.c, exec.h, photoid.c, and photoid.h
7464
7465         * build-packet.c (build_attribute_subpkt): new function to build
7466         the raw attribute subpacket.  Note that attribute subpackets have
7467         the same format as signature subpackets.
7468
7469         * exec.c: new file with generic exec-a-program functionality.
7470         Used by both photo IDs and keyserver helpers.  This is pretty much
7471         the same code that used to be keyserver specific, with some
7472         changes to be usable generically.
7473
7474         * free-packet.c (free_attributes (new)): function to free an
7475         attribute packet.
7476
7477         * gpgv.c: added stub show_photo
7478
7479         * keyedit.c (keyedit_menu, menu_adduid, menu_showphoto): can add a
7480         photo (calls generate_photo_id), or display a photo (calls
7481         show_photo) from the --edit menu.  New commands are "addphoto",
7482         and "delphoto" (same as "deluid").
7483
7484         * keylist.c (list_keyblock_print): show photos during key list if
7485         --show-photos enabled.
7486
7487         * keyserver.c (keyserver_spawn): use the generic exec_xxx
7488         functions to call keyserver helper.
7489
7490         * g10.c, options.h: three new options - --{no-}show-photos, and
7491         --photo-viewer to give the command line to display a picture.
7492
7493         * options.skel: instructions for the photo viewer
7494
7495         * parse-packet.c (parse_user_id, setup_user_id (new)): common code
7496         for both user IDs and attribute IDs moved to setup_user_id.
7497
7498         * parse-packet.c (make_attribute_uidname (new)): constructs a fake
7499         "name" for attribute packets (e.g. "[image of size ...]")
7500
7501         * parse-packet.c (parse_attribute (replaces parse_photo_id),
7502         parse_attribute_subpkts): Builds an array of individual
7503         attributes.  Currently only handles attribute image / type jpeg
7504         subpackets.
7505
7506         * sign.c (hash_uid): Fix bug in signing attribute (formerly
7507         photo_id) packets.
7508
7509         * packet.h, and callers: globally change "photo_id" to "attribute"
7510         and add structures for attributes.  The packet format is generic
7511         attributes, even though the only attribute type thus far defined
7512         is jpeg.
7513
7514 2001-12-21  David Shaw  <dshaw@jabberwocky.com>
7515
7516         * parse-packet.c (can_handle_critical): Can handle critical
7517         revocation subpackets now.
7518
7519         * trustdb.c (mark_usable_uid_certs): Disregard revocations for
7520         nonrevocable sigs.  Note that this allows a newer revocable
7521         signature to override an older nonrevocable signature.
7522
7523         * sign.c (make_keysig_packet): add a duration field and change all
7524         callers.  This makes make_keysig_packet closer to
7525         write_signature_packets and removes some duplicated expiration
7526         code.
7527
7528         * keyedit.c (keyedit_menu, menu_revsig, sign_uids,
7529         sign_mk_attrib): Add nrsign command, don't allow revoking a
7530         nonrevocable signature,
7531
7532         * g10.c (main): Add --nrsign option to nonrevocably sign a key
7533         from the command line.
7534
7535         * build-packet.c (build_sig_subpkt_from_sig): Comment to explain
7536         the use of CRITICAL.
7537
7538 2001-12-21  Werner Koch  <wk@gnupg.org>
7539
7540         * g10.c. options.h : New option --show-keyring
7541         * getkey.c (get_ctx_handle): New.
7542         * keylist.c (list_one): Implement option here.  By David Champion.
7543
7544 2001-12-20  David Shaw  <dshaw@jabberwocky.com>
7545
7546         * keyserver.c (keyserver_spawn): Use mkdtemp() to make temp
7547         directory.
7548
7549         * mkdtemp.c: replacement function for those platforms that don't
7550         have mkdtemp (make a temp directory securely).
7551
7552 2001-12-19  David Shaw  <dshaw@jabberwocky.com>
7553
7554         * misc.c (check_permissions): New function to stat() and ensure
7555         the permissions of GNUPGHOME and the files have safe permissions.
7556
7557         * keydb.c (keydb_add_resource): Check keyring permissions.
7558
7559         * tdbio.c (tdbio_set_dbname): Check permissions of trustdb.gpg
7560
7561         * keyserver.c (keyserver_spawn): Disable keyserver schemes that
7562         involve running external programs if the options file has unsafe
7563         permissions or ownership.
7564
7565         * g10.c, options.h: New option --no-permission-warning to disable
7566         the permission warning message(s).  This also permits use of the
7567         keyserver if it had been disabled (see above).  Also check the
7568         permissions/ownership of random_seed.
7569
7570         * keyserver.c (keyserver_spawn): The new glibc prints a warning
7571         when using mktemp() (the code was already secure, but the warning
7572         was bound to cause confusion).  Use a different implementation
7573         based on get_random_bits() instead.  Also try a few times to get
7574         the temp dir before giving up.
7575
7576 2001-12-19  Werner Koch  <wk@gnupg.org>
7577
7578         * g10.c, passphrase.c [CYGWIN32]: Allow this as an alias for MINGW32.
7579
7580 2001-12-18  David Shaw  <dshaw@jabberwocky.com>
7581
7582         * g10.c (idea_cipher_warn): Add a flag to show the warning always
7583         or once per session and change all callers (show always except for
7584         the secret key protection and unknown cipher from an encrypted
7585         message errors).  Also make the strings translatable.
7586
7587         * pubkey-enc.c (get_it): Add the IDEA cipher warning if the user
7588         tries to decrypt an IDEA encrypted message without the IDEA
7589         plugin.
7590
7591         * keyserver.c (parse_keyserver_uri): More strict checking of the
7592         keyserver URI.  Specifically, fail if the ":port" section is
7593         anything except a number between 1 and 65535.
7594
7595 2001-12-17  David Shaw  <dshaw@jabberwocky.com>
7596
7597         * keyserver.c (print_keyinfo): No need to check for
7598         control/illegal characters, as utf8_to_native does this for us.
7599
7600         * mainproc.c (proc_encrypted): Use generic IDEA warning.
7601
7602         * gpgv.c: add stub for idea_cipher_warn
7603
7604         * g10.c, hkp.c, keyserver.c: Fix capitalization and plural issues.
7605
7606         * encode.c (encode_crypt), sign.c (sign_file, clearsign_file):
7607         disable pgp2 mode after the message is no longer pgp2 compatible.
7608
7609         * g10.c (main): Tweak the PGP2.x IDEA warning to use the generic
7610         warning, and not merely fail if the IDEA plugin isn't there.
7611
7612         * g10.c (main, idea_cipher_warn), keygen.c (set_one_pref),
7613         seckey-cert.c (do_check): Add a generic IDEA warning for when the
7614         IDEA plugin is not present.  This pops up when the user uses
7615         "--cipher-algo idea", when setpref is used to set a "S1"
7616         preference, and when a secret key protected with IDEA is used.
7617
7618 2001-12-15  Werner Koch  <wk@gnupg.org>
7619
7620         * keyserver.c (keyserver_spawn): Assert that we have dropped privs.
7621
7622 2001-12-13  Werner Koch  <wk@gnupg.org>
7623
7624         * pubkey-enc.c (get_session_key): Check that the public key
7625         algorithm is indeed usable for en/decryption.  This avoid a
7626         strange error message from pubkey_decrypt if for some reasons a
7627         bad algorithm indentifier is passed.
7628
7629 2001-12-12  David Shaw  <dshaw@jabberwocky.com>
7630
7631         * Fixed some types for portability.  Noted by Stefan Bellon.
7632
7633 2001-12-11  Werner Koch  <wk@gnupg.org>
7634
7635         * hkp.c (hkp_export): Do not print possible control characters
7636         from a keyserver response.
7637         (parse_hkp_index): Made uid an unsigned char* because it is passed to
7638         isspace().
7639         (hkp_search): Ditto for the char* vars.
7640
7641         * g10.c (main): Print the IDEA warning also for -c and -se.
7642
7643         * g10.c (get_temp_dir): Assert that we have dropped privs
7644
7645         * encode.c (encode_crypt): Include the first key into the --pgp2
7646         check.
7647
7648 2001-12-07  David Shaw  <dshaw@jabberwocky.com>
7649
7650         * g10.c, options.h: New option --pgp2.  This is identical to
7651         "--rfc1991 --cipher-algo idea --compress-algo 1 --digest-algo md5
7652         --force_v3_sigs" with the addition of an warning to advise the
7653         user not to use a pipe (which would break pgp2 compatibility).
7654
7655         * encode.c (encode_crypt): warn if the user tries to encrypt to
7656         any key that is not RSA and <= 2048 bits when the --pgp2 option is
7657         used.
7658
7659         * sign.c (sign_file, clearsign_file): When using --pgp2, make a v3
7660         sig, and warn if the signature is made with a non-v3 key.
7661
7662 2001-12-05  David Shaw  <dshaw@jabberwocky.com>
7663
7664         * sign.c (sign_file, clearsign_file, sign_symencrypt_file): Prompt
7665         for sig expiration if --expert is set and --force-v3-sigs is not
7666         set (v3 sigs cannot expire).
7667
7668         * mainproc.c (check_sig_and_print): After checking a sig, print
7669         expiration status.  This causes a error return if the sig is
7670         expired.
7671
7672         * build-packet.c (build_sig_subpkt_from_sig): Include a critical
7673         sig expiration subpacket if the sig is to expire.
7674
7675         * keyedit.c (sign_uids): Do not sign an expired key unless
7676         --expert is set, in which case prompt.  Also, offer to expire a
7677         signature when the key the user is signing expires.
7678
7679         * keygen.c (ask_expire_interval): Add a value to determine whether
7680         to prompt for a key or sig expiration and change all callers.
7681
7682         * keyid.c: New functions: expirestr_from_sig and
7683         colon_expirestr_from_sig.
7684
7685         * keylist.c (list_keyblock_colon): Show sig expiration date in the
7686         --with-colons listing.
7687
7688         * sign.c (make_keysig_packet, write_signature_packets): Pass in an
7689         optional timestamp for the signature packet, and change all
7690         callers.
7691
7692         * keyedit.c (sign_mk_attrib): Include a critical expiration
7693         subpacket in the signature if an expiration date is given.
7694
7695 2001-12-04  David Shaw  <dshaw@jabberwocky.com>
7696
7697         * keyedit.c (sign_uids): If the user tries to sign a
7698         locally-signed key, allow the cert to be promoted to a full
7699         exportable signature.  This essentially deletes the old
7700         non-exportable sig, and replaces it with a new exportable one.
7701
7702 2001-12-04  David Shaw  <dshaw@jabberwocky.com>
7703
7704         * keyedit.c (keyedit_menu): Do not allow signing a revoked key
7705         unless --expert is set, and ask even then.
7706
7707         * keyedit.c (sign_uids): Do not allow signing a revoked UID unless
7708         --expert is set, and ask even then.
7709
7710         * g10.c, options.h : New option --expert
7711
7712 2001-11-16  David Shaw  <dshaw@jabberwocky.com>
7713
7714         * Allow the user to select no compression via "--compress-algo 0"
7715         on the command line.
7716
7717         * keyedit.c (show_prefs): Show compression preferences in the
7718         long-form "showpref" style.
7719
7720         * keygen.c (set_one_pref): Permit setting a no-compression ("Z0")
7721         preference.
7722
7723         * getkey.c (fixup_uidnode): Fix compression preference corruption
7724         bug.
7725
7726 2001-12-02  David Shaw  <dshaw@jabberwocky.com>
7727
7728         * g10.c: Add advisory --for-your-eyes-only option as per section
7729         5.9 of 2440.
7730
7731 2001-12-05  David Shaw  <dshaw@jabberwocky.com>
7732
7733         * Force a V4 sig if the user has a notation or policy URL set.
7734
7735 2001-12-04  David Shaw  <dshaw@jabberwocky.com>
7736
7737         * g10.c: Add options --keyserver-options, --temp-directory, and
7738         auto-key-retrieve (the opposite of no-auto-key-retrieve).
7739
7740         * hkp.c (hkp_search): New function to handle searching a HKP
7741         keyserver for a key
7742
7743         * hkp.c (hkp_ask_import, hkp_export): Pretty large changes to make
7744         them communicate via the generic functions in keyserver.c
7745
7746         * keyserver.c: new file with generic keyserver routines for
7747         getting keys from a keyserver, sending keys to a keyserver, and
7748         searching for keys on a keyserver.  Calls the internal HKP stuff
7749         in hkp.c for HKP keyserver functions.  Other calls are handled by
7750         an external program which is spawned and written to and read from
7751         via pipes.  Platforms that don't have pipes use temp files.
7752
7753 2001-11-20  David Shaw  <dshaw@jabberwocky.com>
7754
7755         * options.h, g10.c: New options show-notation, no-show-notation,
7756         default-check-level, no-default-check-level, show-policy-url,
7757         no-show-policy-url.
7758
7759         * packet.h, sign.c (make_keysig_packet), parse-packet.c
7760         (parse_signature), free-packet.c (free_seckey_enc): Fill in
7761         structures for notation, policy, sig class, exportability, etc.
7762
7763         * keyedit.c, keylist.c (print_and_check_one_sig,
7764         list_keyblock_print): Show flags in signature display for cert
7765         details (class, local, notation, policy, revocable).  If selected,
7766         show the notation and policy url.
7767
7768         * keyedit.c (sign_uids): Prompt for and use different key sig
7769         classes.
7770
7771         * helptext.c (helptexts): Add help text to explain different
7772         key signature classes
7773
7774 2001-11-26  David Shaw  <dshaw@jabberwocky.com>
7775
7776         * trustdb.c (mark_usable_uid_certs): Fix segfault from bad
7777         initialization and fix reversed key signature expiration check.
7778
7779 2001-11-09  Werner Koch  <wk@gnupg.org>
7780
7781         * export.c (do_export_stream): Put all given names into a search
7782         description and change the loop so that all matching names are
7783         returned.
7784
7785 2001-11-08  Werner Koch  <wk@gnupg.org>
7786
7787         * pubkey-enc.c (get_it): To reduce the number of questions on the
7788         MLs print the the name of cipher algorithm 1 with the error message.
7789
7790         * mainproc.c: Changed the way old rfc1991 encryption cipher is
7791         selected. Based on a patch by W Lewis.
7792
7793         * pkclist.c (do_edit_ownertrust): Allow to skip over keys, the non
7794         working "show info" is now assigned to "i"
7795         * trustdb.c (ask_ownertrust, validate_keys): Implement a real quit
7796         here.  Both are by David Shaw.
7797
7798         * trustdb.c (validate_keys): Make sure next_exipire is initialized.
7799
7800         * sign.c (make_keysig_packet): Use SHA-1 with v4 RSA keys.
7801
7802         * g10.c, options.h : New option --[no-]froce-v4-certs.
7803         * sign.c (make_keysig_packet): Create v4 sigs on v4 keys even with
7804         a v3 key.  Use that new option.  By David Shaw
7805
7806         * revoke.c (ask_revocation_reason): Allow to select "no reason".
7807         By David Shaw.
7808
7809         * keyid.c (fingerprint_from_sk): Calculation of an v3 fpr was
7810         plain wrong - nearly the same code in fingerprint_from_pk is correct.
7811
7812         * build-packet.c (do_secret_key): Added a few comments to the code.
7813
7814 2001-11-07  Werner Koch  <wk@gnupg.org>
7815
7816         * g10.c (main): Print a warning when -r is used w/o encryption.
7817         Suggested by Pascal Scheffers.
7818
7819 2001-10-23  Werner Koch  <wk@gnupg.org>
7820
7821         * keyedit.c (keyedit_menu): Changed helptext for showpref
7822         command.  Suggested by Reinhard Wobst.
7823
7824         * keyring.c (keyring_search): When marking the offtbl ready, take
7825         into account that we may have more than one keyring.
7826
7827 2001-10-22  Werner Koch  <wk@gnupg.org>
7828
7829         * Makefile.am: Do not use OMIT_DEPENDENCIES
7830
7831         * build-packet.c (build_sig_subpkt): Default is now to put all
7832         types of subpackets into the hashed area and only list those which
7833         should go into the unhashed area.
7834
7835 2001-10-18  Werner Koch  <wk@gnupg.org>
7836
7837         * keydb.c (keydb_add_resource): Rearranged the way we keep track
7838         of the resource. There will now be an entry for each keyring here
7839         and not in keyring.c itself.  Store a token to allow creation of a
7840         keyring handle.  Changed all functions to utilize this new design.
7841         (keydb_locate_writable): Make a real implementation.
7842         * keyring.c (next_kr): Removed and changed all callers to set the
7843         resource directly from the one given with the handle.
7844         (keyring_is_writable): New.
7845         (keyring_rebuild_cache): Add an arg to pass the token from keydb.
7846
7847 2001-10-17  Werner Koch  <wk@gnupg.org>
7848
7849         * keyring.c (keyring_search): Enabled word search mode but print a
7850         warning that it is buggy.
7851
7852 2001-10-11  Werner Koch  <wk@gnupg.org>
7853
7854         * hkp.c (hkp_ask_import): No more need to set the port number for
7855         the x-hkp scheme.
7856         (hkp_export): Ditto.
7857
7858 2001-10-06  Stefan Bellon  <sbellon@sbellon.de>
7859
7860         * passphrase.c [__riscos__]: Disabled agent specific stuff.
7861         * g10.c: New option --no-force-v3-sigs.
7862
7863 2001-10-04  Werner Koch  <wk@gnupg.org>
7864
7865         * export.c (do_export_stream): Do not push the compress filter
7866         here because the context would run out of scope due to the
7867         iobuf_close done by the caller.
7868         (do_export): Do it here instead.
7869
7870 2001-09-28  Werner Koch  <wk@gnupg.org>
7871
7872         * keyedit.c (sign_uids): Always use the primary key to sign keys.
7873         * getkey.c (finish_lookup): Hack to return only the primary key if
7874         a certification key has been requested.
7875
7876         * trustdb.c (cmp_kid_for_make_key_array): Renamed to
7877         (validate_one_keyblock): this and changed arg for direct calling.
7878         (make_key_array): Renamed to
7879         (validate_one_keyblock): this and changed args for direct calling.
7880         (mark_usable_uid_certs, validate_one_keyblock)
7881         (validate_key_list): Add next_expire arg to keep track of
7882         expiration times.
7883         (validate_keys): Ditto for UTKs and write the stamp.
7884
7885         * tdbio.c (migrate_from_v2): Check return code of tbdio_sync.
7886
7887         * tdbdump.c (import_ownertrust): Do a tdbio_sync().
7888
7889         * keyring.c: Made the offtbl an global object.
7890
7891 2001-09-27  Werner Koch  <wk@gnupg.org>
7892
7893         * pkclist.c (do_edit_ownertrust): Allow settin of ultimate trust.
7894
7895         * trustdb.c (mark_keyblock_seen): New.
7896         (make_key_array): Use it to mark the subkeys too.
7897         (validate_keys): Store validity for ultimatly trusted keys.
7898
7899 2001-09-26  Werner Koch  <wk@gnupg.org>
7900
7901         * pkclist.c (check_signatures_trust, do_we_trust): Removed the
7902         invocation of add_ownertrust. Minor changes to the wording.
7903         (add_ownertrust, add_ownertrust_cb): Removed.
7904
7905         * trustdb.c (get_validity): Allow to lookup the validity using a
7906         subkey.
7907
7908         * trustdb.c (new_key_hash_table): Increased the table size to 1024
7909         and changed the masks accordingly.
7910         (validate): Changed stats printing.
7911         (mark_usable_uid_certs): New.
7912         (cmp_kid_for_make_key_array): Does now check the signatures and
7913         figures out a usable one.
7914
7915 2001-09-25  Werner Koch  <wk@gnupg.org>
7916
7917         * keyring.c (new_offset_item,release_offset_items)
7918         (new_offset_hash_table, lookup_offset_hash_table)
7919         (update_offset_hash_table, update_offset_hash_table_from_kb): New.
7920         (keyring_search): Use a offset table to optimize search for
7921         unknown keys.
7922         (keyring_update_keyblock, keyring_insert_keyblock): Insert new
7923         offsets.
7924         * getkey.c (MAX_UNK_CACHE_ENTRIES): Removed the unknown keys
7925         caching code.
7926
7927         * g10.c, options.h, import.c: Removed the entire
7928         allow-secret-key-import stuff because the validity is now
7929         controlled by other means.
7930
7931         * g10.c: New command --rebuild-keydb-caches.
7932         * keydb.c (keydb_rebuild_caches): New.
7933         * keyring.c (do_copy): Moved some code to
7934         (create_tmp_file, rename_tmp_file, write_keyblock): new functions.
7935         (keyring_rebuild_cache): New.
7936
7937         * packet.h (PKT_ring_trust): Add sigcache field.
7938         * parse-packet.c (parse_trust): Parse sigcache.
7939         * keyring.c (do_copy): Always insert a sigcache packet.
7940         (keyring_get_keyblock): Copy the sigcache packet to the signature.
7941         * sig-check.c (cache_sig_result): Renamed from
7942         cache_selfsig_result. Changed implementation to use the flag bits
7943         and changed all callers.
7944         (mdc_kludge_check): Removed this unused code.
7945         (do_check): Do not set the sig flags here.
7946
7947         * import.c (read_block): Make sure that ring_trust packets are
7948         never imported.
7949         * export.c (do_export_stream): and never export them.
7950
7951         * trustdb.c (make_key_array): Skip revoked and expired keys.
7952
7953 2001-09-24  Werner Koch  <wk@gnupg.org>
7954
7955         * g10.c, options.h: New option --no-auto-check-trustdb.
7956
7957         * keygen.c (do_generate_keypair): Set newly created keys to
7958         ultimately trusted.
7959
7960         * tdbio.h, tdbio.c: Removed all support for records DIR, KEY, UID,
7961         PREF, SIG, SDIR and CACH. Changed migration function to work
7962         direct on the file.
7963         (tdbio_read_nextcheck): New.
7964         (tdbio_write_nextcheck): New.
7965
7966 2001-09-21  Werner Koch  <wk@gnupg.org>
7967
7968         Revamped the entire key validation system.
7969         * trustdb.c: Complete rewrite. No more validation on demand,
7970         removed some functions, adjusted to all callers to use the new
7971         and much simpler interface. Does not use the LID anymore.
7972         * tdbio.c, tdbio.h: Add new record types trust and valid. Wrote a
7973         migration function to convert to the new trustdb layout.
7974         * getkey.c (classify_user_id2): Do not allow the use of the "#"
7975         prefix.
7976         * keydb.h: Removed the TDBIDX mode add a skipfnc to the
7977         descriptor.
7978         * keyring.c (keyring_search): Implemented skipfnc.
7979
7980         * passphrase.c (agent_open): Add missing bracket.  Include windows.h.
7981
7982 2001-09-19  Werner Koch  <wk@gnupg.org>
7983
7984         * keylist.c (print_fingerprint): Renamed from fingerprint, made
7985         global available. Added new arg to control the print style.
7986         * mainproc.c (print_fingerprint): Removed.
7987         * pkclist.c (print_fpr, fpr_info): Removed and changed callers to
7988         use print_fingerprint.
7989         * keyedit.c (show_fingerprint): Ditto.
7990
7991         * passphrase.c (writen, readn)
7992         (agent_open, agent_close)
7993         (agent_get_passphrase)
7994         (passphrase_clear_cache): Support for W32.  Contributed by Timo.
7995
7996         * import.c (import_one): Release keydb handles at 2 more places.
7997
7998         * keyring.c (keyring_release): Close the iobuf.
7999         (keyring_get_keyblock): Init ret_kb to NULL and store error contidion.
8000
8001         * import.c (import_new_stats_handle): New.
8002         (import_release_stats_handle): New.
8003         (import_print_stats): Renamed from static fnc print_stats.
8004         (import_keys, import_keys_stream): Add an optional status handle
8005         arg and changed all callers.
8006         * hkp.c (hkp_ask_import): Add an stats_handle arg and changed all
8007         callers.
8008
8009         * mainproc.c (print_pkenc_list): Use print_utf8_string2().
8010
8011 2001-09-18  Werner Koch  <wk@gnupg.org>
8012
8013         * g10.c: New command --refresh-keys.
8014         * hkp.c (hkp_refresh_keys): New. Contributed by Timo Schulz.
8015
8016         * parse-packet.c (parse): Stop on impossible packet lengths.
8017
8018 2001-09-17  Werner Koch  <wk@gnupg.org>
8019
8020         * mainproc.c (print_notation_data): Wrap notation data status lines
8021         after 50 chars.
8022
8023         * mainproc.c (proc_pubkey_enc): Make option try-all-secrets work.
8024         By disastry@saiknes.lv.
8025
8026 2001-09-14  Werner Koch  <wk@gnupg.org>
8027
8028         * parse-packet.c (dump_sig_subpkt): List key server preferences
8029         and show the revocable flag correctly. Contributed by David Shaw.
8030
8031 2001-09-09  Werner Koch  <wk@gnupg.org>
8032
8033         * keyedit.c (keyedit_menu): No need to define another p.
8034
8035         * keylist.c (print_capabilities): s/used/use/ so that it
8036         does not shadow a global.
8037         * sign.c (sign_file): Renamed arg encrypt to encryptflag
8038         * keygen.c: Replaced all "usage" by "use".
8039         * misc.c (openpgp_pk_algo_usage): Ditto.
8040
8041         * pubkey-enc.c (get_it): Renamed arg k to enc so that the later
8042         defined k does not shadow it.
8043
8044         * parse-packet.c (parse_gpg_control): No need to define another i.
8045
8046         * getkey.c (get_pubkey_byfprint): Must use the enum values and not
8047         the fprint_len.
8048         * keyring.c (keyring_search): Removed a non-sense break.  Both
8049         bugs pointed out by Stefan.
8050
8051 2001-09-07  Werner Koch  <wk@gnupg.org>
8052
8053         * status.c, status.h: Added NO_RECP and ALREADY_SIGNED.
8054         * pkclist.c (build_pk_list): Issue NO_RECP.
8055         * keyedit.c (sign_uids): Added experimental ALREADY_SIGNED
8056
8057         * hkp.c (hkp_import): Use log_error. Bug reported by Neal H
8058         Walfield.
8059
8060         * getkey.c (classify_user_id2): Change args to take the desc union
8061         direct.  It was a stupid idea to pass the individual fields of an
8062         union to this function. Changed all callers.
8063         (classify_user_id): Ditto and allow to pass NULL as the description.
8064
8065 2001-09-06  Werner Koch  <wk@gnupg.org>
8066
8067         * getkey.c (fixup_uidnode): Features flag is now a bit vector.
8068         * keygen.c (add_feature_mdc): Ditto.
8069
8070         Revamped the entire key I/O code to be prepared for other ways of
8071         key storages and to get rid of the existing shit.  GDBM support has
8072         gone.
8073         * keydb.c: New
8074         * keyring.c, keyring.h: New.
8075         * ringedit.c: Removed.  Moved some stuff to keyring.c
8076         * getkey.c: Changed everything related to the key retrieving
8077         functions which are now using the keydb_ functions.
8078         (prepare_search, word_match_chars, word_match)
8079         (prepare_word_match, compare_name): Moved to keyring.c
8080         (get_pubkey_byname): Removed ctx arg and add ret_kdbhd
8081         arg.  Changed all callers.
8082         (key_byname): Use get_pubkey_end to release the context and take
8083         new ret_kbdhd arg.  Changed all callers.
8084         (classify_user_id2): Fill the 16 byte fingerprint up with 4 null
8085         bytes not with zero bytes of value 4, tsss.
8086         * import.c (import_one): Updated to use the new keydb interface.
8087         (import_secret_one): Ditto.
8088         (import_revoke_cert): Ditto.
8089         * delkey.c (do_delete_key): Ditto.
8090         * keyedit.c (keyedit_menu): Ditto.
8091         (get_keyblock_byname): Removed.
8092         * revoke.c (gen_revoke): Ditto.
8093         * export.c (do_export_stream): Ditto.
8094         * trustdb.c (update_trustdb): Ditto.
8095         * g10.c, gpgv.c (main): Renamed add_keyblock_resource to
8096         keydb_add_resource.
8097         * Makefile.am:  Added and removed files.
8098
8099         * keydb.h: Moved KBNODE typedef and MAX_FINGERPRINT_LEN to
8100         * global.h: this new header.
8101
8102 2001-09-03  Werner Koch  <wk@gnupg.org>
8103
8104         * passphrase.c (agent_get_passphrase): Changed nread to size_t.
8105         (passphrase_clear_cache): Ditto.
8106
8107         * keyid.c (mk_datestr): Avoid trigraphs.
8108         (fingerprint_from_pk): Cache the keyid in the pk.
8109
8110         * options.h: Add opt.with_fingerprint so that we know whether the
8111         corresponding options was used.
8112         * g10.c (main): Set it here.
8113         * pkclist.c (check_signatures_trust): Always print fingerprint
8114         when this option is used.  Mixed a minor memory leak.
8115
8116         * status.c, status.h: New status INV_RECP.
8117         * pkclist.c (build_pk_list): Issue this status.
8118
8119 2001-08-31  Werner Koch  <wk@gnupg.org>
8120
8121         * parse-packet.c (parse_key,parse_pubkeyenc)
8122         (parse_signature): Return error on reading bad MPIs.
8123
8124         * mainproc.c (check_sig_and_print): Always print the user ID even
8125         if it is not bound by a signature.  Use the primary UID in the
8126         status messages and encode them in UTF-8
8127         * status.c (write_status_text_and_buffer): New.
8128
8129 2001-08-30  Werner Koch  <wk@gnupg.org>
8130
8131         * packet.h (sigsubpkttype_t): Add SIGSUBPKT_FEATURES.
8132         (PKT_public_key, PKT_user_id): Add a flag for it.
8133         * parse-packet.c, build-packet.c: Add support for them.
8134         * getkey.c (fixup_uidnode, merge_selfsigs): Set the MDC flags.
8135         * keygen.c (add_feature_mdc): New.
8136         (keygen_upd_std_prefs): Always set the MDC feature.
8137         * keyedit.c (show_prefs): List the MDC flag
8138         * pkclist.c (select_mdc_from_pklist): New.
8139         * encode.c (encode_crypt, encrypt_filter): Test whether MDC
8140         should be used.
8141         * cipher.c (write_header): Set MDC use depending on the above test.
8142         Print more status info.
8143
8144         * delkey.c (do_delete_key): Kludge to delete a secret key with no
8145         public key available.
8146
8147         * ringedit.c (find_secret_keyblock_direct): New.
8148         * getkey.c (seckey_available): Simplified.
8149
8150         * ringedit.c (cmp_seckey): Now compares the secret key against the
8151         public key while ignoring all secret parts.
8152         (keyring_search): Use a public key packet as arg.  Allow to search
8153         for subnkeys
8154         (search): Likewise. Changed all callers.
8155         (find_secret_keyblock_bypk): New.
8156         (find_secret_keyblock_byname): First locate the pubkey and then
8157         find the correponding secret key.
8158         * parse-packet.c (parse): Renamed pkttype arg to onlykeypkts and
8159         changed code accordingly.  Changed all callers.
8160         (search_packet): Removed pkttype arg.
8161         * keyedit.c (keyedit_menu): First locate the public key and then
8162         try to locate a secret key.
8163
8164         * ringedit.c (locate_keyblock_by_fpr): Removed.
8165         (locate_keyblock_by_keyid): Removed.
8166         (find_keyblock_bysk): Removed.
8167
8168         * sig-check.c (check_key_signature2): Print the keyid along with
8169         the wrong sig class errors.
8170
8171 2001-08-24  Werner Koch  <wk@gnupg.org>
8172
8173         * sign.c (sign_file): Stripped the disabled comment packet code.
8174         (sign_file, sign_symencrypt_file): Moved common code to ..
8175         (write_onepass_sig_packets): .. this new function.
8176         (sign_file, clearsign_file, sign_symencrypt_file): Moved common
8177         code to
8178         (write_signature_packets): this new function.
8179         (write_signature_packets, make_keysig_packet)
8180         (update_keysig_packet): Moved common code to
8181         (hash_uid, hash_sigclass_to_magic): these new functions
8182         (sign_file, sign_symencrypt_file): Moved common code to
8183         (write_plaintext_packet):  this new function.
8184
8185 2001-08-21  Stefan Bellon  <sbellon@sbellon.de>
8186
8187         * trustdb.c (query_trust_info): Changed trustlevel to signed int.
8188         * g10.c [__riscos__]: Fixed handling of --use-agent --lock-multiple.
8189
8190 2001-08-20  Werner Koch  <wk@gnupg.org>
8191
8192         * encr-data.c (decrypt_data): Keep track on whether we already
8193         printed information about the used algorithm.
8194         * mainproc.c (proc_encrypted): Removed the non-working IDEA hack
8195         and print a message about the assumed algorithm.
8196         * passphrase.c (passphrase_to_dek): Use the same algorithm as above.
8197         (proc_symkey_enc): Print the algorithm, so that the user knows it
8198         before entering the passphrase.
8199         (proc_pubkey_enc, proc_pubkey_enc): Zero the DEK out.
8200         * encode.c (encode_crypt, encrypt_filter): Ditto.
8201
8202         * g10.c: Allow for --sign --symmetric.
8203         * sign.c (sign_and_symencrypt): New.
8204
8205         Applied patches from Stefan Bellon <sbellon@sbellon.de> to support
8206         RISC OS.  Nearly all of these patches are identified by the
8207         __riscos__ macro.
8208         * compress.c: Added a couple of casts.
8209         * g10.c [__riscos__]: Some patches and new options foo-file similar
8210         to all foo-fd options.
8211         * gpgv.c, openfile.c, ringedit.c, tdbio.c: Minor fixes.  Mainly
8212         replaced hardcoded path separators with EXTSEP_S like macros.
8213         * passphrase.c [__riscos__]: Disabled agent stuff
8214         * trustdb.c (check_trust): Changed r_trustlevel to signed int to
8215         avoid mismatch problems in pkclist.c
8216         * pkclist.c (add_ownertrust): Ditto.
8217         * plaintext.c (handle_plaintext) [__riscos__]: Print a note when
8218         file can't be created.
8219         * options.h [__riscos__]: Use an extern unless included from the
8220         main module.
8221         * signal.c (got_fatal_signal) [__riscos__]: Close all files.
8222
8223 2001-08-14  Werner Koch  <wk@gnupg.org>
8224
8225         * keygen.c (ask_algo): New arg r_usage.  Allow for RSA keys.
8226         (gen_rsa): Enabled the code.
8227         (do_create): Enabled RSA branch.
8228         (parse_parameter_usage): New.
8229         (proc_parameter_file): Handle usage parameter.
8230         (read_parameter_file): Ditto.
8231         (generate_keypair): Ditto.
8232         (generate_subkeypair): Ditto.
8233         (do_generate_keypair): Ditto.
8234         (do_add_key_flags): New.
8235         (keygen_add_std_prefs): Use the new function.
8236         (keygen_add_key_flags_and_expire): New.
8237         (write_selfsig, write_keybinding): Handle new usage arg.
8238         * build-packet.c (build_sig_subpkt): Make sure that key flags go
8239         into the hashed area.
8240
8241         * keygen.c (write_uid): Initialize the reference cunter.
8242
8243         * keyedit.c (keyedit_menu): No more need to update the trustdb for
8244         preferences.  Added calls to merge keblock.
8245
8246         * kbnode.c (dump_kbnode): Print some more flags.
8247
8248 2001-08-10  Werner Koch  <wk@gnupg.org>
8249
8250         Revamped the preference handling.
8251
8252         * packet.h (prefitem_t, preftype_t): New.
8253         (PKT_public_key): Added a uid field.
8254         (PKT_user_id): Added field to store preferences and a reference
8255         counter.
8256         * parse-packet.c (parse_user_id,parse_photo_id): Initialize them
8257         * free-packet.c (free_user_id): Free them.
8258         (copy_user_id): Removed.
8259         (scopy_user_id): New.
8260         (cmp_user_ids): Optimized for identical pointers.
8261         (release_public_key_parts): Release the uid.
8262         (copy_public_key_with_new_namehash): Removed.
8263         (copy_prefs): New.
8264         * keyedit.c (menu_adduid): Use the new shallow copy user id.
8265         (show_prefs): Adjusted implementation.
8266         (keyedit_menu): No more need to update the trustdb after changing
8267         preferences.
8268         * getkey.c (fixup_uidnode): Store preferences.
8269         (find_by_name): Return a user id packet and remove namehash stuff.
8270         (lookup): Removed the unused namehash stuff.
8271         (finish_lookup): Added foundu arg.
8272         (pk_from_block): Removed the namehash arg and changed all callers.
8273         (merge_selfsigs): Copy prefs to all keys.
8274         * trustdb.c (get_pref_data): Removed.
8275         (is_algo_in_prefs): Removed.
8276         (make_pref_record): Deleted and removed all class.
8277         * pkclist.c (select_algo_from_prefs): Adjusted for the new
8278         preference implementation.
8279         * pubkey-enc.c (is_algo_in_prefs): New.
8280         (get_it): Use that new function.
8281
8282 2001-08-09  Werner Koch  <wk@gnupg.org>
8283
8284         * build-packet.c (build_sig_subpkt): Fixed calculation of
8285         newarea->size.
8286
8287         * g10.c (main): New option "--preference-list"
8288         * keyedit.c (keyedit_menu): New commands "setpref" and "updpref".
8289         (menu_set_preferences): New.
8290         * keygen.c (keygen_set_std_prefs): New.
8291         (set_one_pref): New.
8292         (check_zip_algo): New.
8293         (keygen_get_std_prefs): New.
8294         (keygen_upd_std_prefs): New
8295         (keygen_add_std_prefs): Move the pref setting code into the above fnc.
8296         * build-packet.c (build_sig_subpkt): Updated the list of allowed
8297         to update subpackets.
8298
8299 2001-08-08  Werner Koch  <wk@gnupg.org>
8300
8301         * packet.h (subpktarea_t): New.
8302         (PKT_signature): Use that type for hashed_data and unhashed_data and
8303         removed the _data prefix from those fields.  Changed all users.
8304         * parse-packet.c (parse_signature): Changed allocation for that.
8305         (parse_sig_subpkt): Changed declaration
8306         (enum_sig_subpkt): Ditto and changed implementation accordingly.
8307         * free-packet.c (cp_subpktarea): Renamed from cp_data_block and
8308         adjusted implementation. Changed caller.
8309         * sig-check.c (mdc_kludge_check): Adjusted the hashing.
8310         (do_check): Ditto.
8311         * sign.c (sign_file, clearsign_file, make_keysig_packet,
8312         update_keysig_packet): Ditto.
8313         * build-packet.c (build_sig_subpkt): Partial rewrite.
8314         (find_subpkt): Adjusted and made static.
8315         (delete_sig_subpkt): Adjusted.
8316         (do_signature): Ditto.
8317
8318         * keygen.c (ask_keysize): Do not print the notes about suggested
8319         key sizes if just a DSA key is generated.
8320
8321         * trustdb.c (add_ultimate_key): s/log_error/log_info/ for
8322         duplicated inserted trusted keys.
8323
8324 2001-08-07  Werner Koch  <wk@gnupg.org>
8325
8326         * sign.c (sleep): Redefine for W32.
8327
8328         * g10.c, options.h: Set new flag opt.no_homedir_creation when
8329         --no-options is given.
8330         * openfile.c (try_make_homedir): Don't create the homedir in that case.
8331
8332 2001-08-03  Werner Koch  <wk@gnupg.org>
8333
8334         * armor.c (armor_filter): Removed the default comment string
8335         because it could get us in trouble due to translations using non
8336         ascii characters.
8337
8338 2001-08-01  Werner Koch  <wk@gnupg.org>
8339
8340         * keylist.c (list_keyblock_print): Do not list revoked UIDs unless
8341         in verbose mode and we do no signature listing.
8342
8343         * getkey.c (finish_lookup): Skip subkeys which are not yet valid.
8344         * g10.c, options.h: New option --ignore-valid-from.
8345
8346         * sign.c (make_keysig_packet): Added new sigversion argument to
8347         allow the caller to force generation of required signature
8348         version. Changed all callers. Suggested by Thomas Roessler.
8349
8350         * keyedit.c (sign_uids): Force v4 signature generation for local
8351         sigs.  Removed the check for local signature and pre-v4 keys.
8352
8353 2001-07-27  Werner Koch  <wk@gnupg.org>
8354
8355         * keyedit.c (sign_uids): Check that we are not trying to to a
8356         lsign with a pre-v4 key.  Bug noticed by Thomas Roessler.
8357
8358 2001-07-26  Werner Koch  <wk@gnupg.org>
8359
8360         * parse-packet.c (parse_photo_id): Reset all variables.
8361         * getkey.c (merge_selfsigs_main): Removed checks on PHOTO_ID
8362         because this is handled identically to a user ID.
8363
8364 2001-07-06  Werner Koch  <wk@gnupg.org>
8365
8366         * cipher.c (write_header): Don't use MDC with --rfc1991.  Suggested
8367         by disastry@saiknes.lv.
8368
8369 2001-07-05  Werner Koch  <wk@gnupg.org>
8370
8371         * g10.c, options.h: New option --preserve-permissions.
8372         * ringedit.c (add_keyblock_resource): Use it here
8373         (keyring_copy): and here.
8374
8375         * trustdb.c (verify_own_keys): Be more silent on --quiet.
8376         Suggested by Thomas Roessler.
8377         * sig-check.c (check_key_signature2): Ditto.
8378         * mainproc.c (proc_encrypted, proc_tree): Ditto
8379         * getkey.c (lookup): Ditto.
8380
8381 2001-07-04  Werner Koch  <wk@gnupg.org>
8382
8383         * ringedit.c (add_keyblock_resource): Restore filename in case of error.
8384
8385 2001-06-25  Werner Koch  <wk@gnupg.org>
8386
8387         * kbnode.c (dump_kbnode): Print the signature timestamp.
8388
8389         * keyedit.c (keyedit_menu): New menu point "primary".
8390         (change_primary_uid_cb): New.
8391         (menu_set_primary_uid): New.
8392         * sign.c (update_keysig_packet): New.
8393         * build-packet.c (build_sig_subpkt): Put the primary UID flag into
8394         the hashed area. Allow update of some more packets.
8395
8396 2001-06-15  Werner Koch  <wk@gnupg.org>
8397
8398         * getkey.c (merge_selfsigs): Exit gracefully when a secret key is
8399         encountered.  May happen if a secret key is in public keyring.
8400         Reported by Francesco Potorti.
8401
8402 2001-06-12  Werner Koch  <wk@gnupg.org>
8403
8404         * getkey.c (compare_name): Use ascii_memistr(), ascii_memcasecmp()
8405         * keyedit.c (keyedit_menu): Use ascii_strcasecmp().
8406         * armor.c (radix64_read): Use ascii_toupper().
8407         * ringedit.c (do_bm_search): Ditto.
8408         * keygen.c (read_parameter_file): Ditto.
8409         * openfile.c (CMP_FILENAME): Ditto.
8410         * g10.c (i18n_init): We can now use just LC_ALL.
8411
8412 2001-05-29  Werner Koch  <wk@gnupg.org>
8413
8414         * keygen.c (generate_subkeypair): Print a warning if a subkey is
8415         created on a v3 key. Suggested by Brian M. Carlson.
8416
8417 2001-05-27  Werner Koch  <wk@gnupg.org>
8418
8419         * keyid.c (get_lsign_letter): New.
8420         * keylist.c (list_keyblock_colon): Use it here.
8421         * mainproc.c (list_node): and here.
8422
8423         * getkey.c, packet.h, free-packet.c: Removed that useless key
8424         created field; I dunno why I introducded this at all - the
8425         creation time is always bound to the key packet and subject to
8426         fingerprint calculation etc.
8427
8428         * getkey.c (fixup_uidnode): Add keycreated arg and use this
8429         instead of the signature timestamp to calculate the
8430         help_key_expire.  Bug reported by David R. Bergstein.
8431         (merge_selfsigs_main): Correct key expiration time calculation.
8432         (merge_selfsigs_subkey): Ditto.
8433
8434 2001-05-25  Werner Koch  <wk@gnupg.org>
8435
8436         * revoke.c (gen_revoke): Add a cast to a tty_printf arg.
8437         * delkey.c (do_delete_key): Ditto.
8438         * keyedit.c (print_and_check_one_sig): Ditto.
8439         (ask_revoke_sig): Ditto.
8440         (menu_revsig): Ditto.
8441         (check_all_keysigs): Removed unused arg.
8442
8443 2001-05-23  Werner Koch  <wk@gnupg.org>
8444
8445         * g10.c (opts): Typo fix by Robert C. Ames.
8446
8447 2001-05-06  Werner Koch  <wk@gnupg.org>
8448
8449         * revoke.c: Small typo fix
8450
8451 2001-05-04  Werner Koch  <wk@gnupg.org>
8452
8453         * passphrase.c (passphrase_clear_cache): Shortcut if agent usage
8454         is not enabled.
8455
8456 2001-05-01  Werner Koch  <wk@gnupg.org>
8457
8458         * passphrase.c (writen): Replaced ssize_t by int.  Thanks to
8459         to Robert Joop for reporting that SunOS 4.1.4 does not have it.
8460
8461 2001-04-28  Werner Koch  <wk@gnupg.org>
8462
8463         * getkey.c (merge_public_with_secret): pkttype was not set to subkey.
8464
8465 2001-04-27  Werner Koch  <wk@gnupg.org>
8466
8467         * skclist.c (build_sk_list): Changed one log_debug to log_info.
8468
8469 2001-04-25  Werner Koch  <wk@gnupg.org>
8470
8471         * keyedit.c (show_prefs): Add a verbose mode.
8472         (show_key_with_all_names): Pass verbose flag for special value of
8473         with_pref.
8474         (keyedit_menu): New command "showpref"
8475         (show_key_with_all_names): Mark revoked uids and the primary key.
8476
8477 2001-04-24  Werner Koch  <wk@gnupg.org>
8478
8479         * getkey.c (get_primary_uid): Return a different string in case of
8480         error and made it translatable.
8481
8482         * build-packet.c (do_secret_key): Ugly, we wrote a zero
8483         instead of the computed ndays.  Thanks to M Taylor for complaining
8484         about a secret key import problem.
8485
8486 2001-04-23  Werner Koch  <wk@gnupg.org>
8487
8488         * hkp.c (hkp_ask_import): Allow to specify a port number for the
8489         keyserver.  Add a kudge to set the no_shutdown flag.
8490         (hkp_export): Ditto.
8491         * options.skel: Document the changes
8492
8493 2001-04-20  Werner Koch  <wk@gnupg.org>
8494
8495         * options.skel: Add some more comments.
8496
8497 2001-04-19  Werner Koch  <wk@gnupg.org>
8498
8499         * keyid.c (mk_datestr): New.  Handles negative times.  We must do
8500         this because Windoze segvs on negative times passed to gmtime().
8501         Changed all datestr_from function to use this one.
8502
8503         * keyid.c, keyid.h (colon_strtime): New. To implement the
8504         fixed-list-mode.
8505         (colon_datestr_from_pk): New.
8506         (colon_datestr_from_sk): New.
8507         (colon_datestr_from_sig): New.
8508         * keylist.c (list_keyblock_colon): Use these functions here.
8509         * mainproc.c (list_node): Ditto.
8510
8511 2001-04-18  Werner Koch  <wk@gnupg.org>
8512
8513         * openfile.c (open_sigfile): Fixed the handling of ".sign".
8514         * mainproc.c (proc_tree): Use iobuf_get_real_fname.
8515         Both are by Vincent Broman.
8516
8517 2001-04-14  Werner Koch  <wk@gnupg.org>
8518
8519         * getkey.c (fixup_uidnode): Removed check for !sig which is
8520         pointless here.  Thanks to Jan Niehusmann.
8521
8522 2001-04-10  Werner Koch  <wk@gnupg.org>
8523
8524         * sig-check.c (check_key_signature2): Use log_info instead of
8525         log_error so that messed up keys do not let gpg return an error.
8526         Suggested by Christian Kurz.
8527
8528         * getkey.c (merge_selfsigs_main): Do a fixup_uidnode only if we
8529         have both, uid and sig.  Thanks to M Taylor.
8530
8531 2001-04-05  Werner Koch  <wk@gnupg.org>
8532
8533         * armor.c (unarmor_pump_new,unarmor_pump_release): New.
8534         (unarmor_pump): New.
8535         * pipemode.c (pipemode_filter): Use the unarmor_pump to handle
8536         armored or non-armored detached signatures.  We can't use the
8537         regular armor_filter because this does only check for armored
8538         signatures the very first time.  In pipemode we may have a mix of
8539         armored and binary detached signatures.
8540         * mainproc.c (proc_tree): Do not print the "old style" notice when
8541         this is a pipemode processes detached signature.
8542         (proc_plaintext): Special handling of pipemode detached sigs.
8543
8544         * packet.h (CTRLPKT_PLAINTEXT_MARK): New.
8545         * parse-packet.c (create_gpg_control): New.
8546         * kbnode.c (dump_kbnode): Support it here.
8547         * mainproc.c (check_sig_and_print): Fixed the check for bad
8548         sequences of multiple signatures.
8549         (proc_plaintext): Add the marker packet.
8550         (proc_tree): We can now check multiple detached signatures.
8551
8552 2001-04-02  Werner Koch  <wk@gnupg.org>
8553
8554         The length of encrypted packets for blocksizes != 8 was not
8555         correct encoded.  I think this is a minor problem, because we
8556         usually use partial length packets.  Kudos to Kahil D. Jallad for
8557         pointing this out.
8558         * packet.h: Add extralen to PKT_encrypted.
8559         * cipher.c (write_header): Set extralen.
8560         * build-packet.c (do_encrypted): Use extralen instead of const 10.
8561         (do_encrypted_mdc): Ditto.
8562         * parse-packet.c (parse_encrypted): Set extralen to 0 because we
8563         don't know it here.
8564
8565 2001-03-30  Werner Koch  <wk@gnupg.org>
8566
8567         * getkey.c (premerge_public_with_secret): Changed wording an add
8568         the keyID to the info message.
8569
8570 2001-03-29  Werner Koch  <wk@gnupg.org>
8571
8572         * getkey.c (premerge_public_with_secret): Use log_info instead of
8573         log_error when no secret key was found for a public one.
8574         Fix the usage if the secret parts of a key are not available.
8575
8576         * openfile.c (ask_outfile_name): Trim spaces.
8577         (open_outfile): Allow to enter an alternate filename.  Thanks to
8578         Stefan Bellon.
8579         * plaintext.c (handle_plaintext): Ditto.
8580
8581 2001-03-28  Werner Koch  <wk@gnupg.org>
8582
8583         * mainproc.c (do_check_sig): Allow direct key and subkey
8584         revocation signature.
8585         * sig-check.c (check_key_signature2): Check direct key signatures.
8586         Print the signature class along with an error.
8587
8588 2001-03-27  Werner Koch  <wk@gnupg.org>
8589
8590         * packet.h: Add a missing typedef to an enum.  Thanks to Stefan Bellon.
8591
8592         * g10.c: New option --no-sig-create-check.
8593         * sign.c (do_sign): Implement it here.
8594         * g10.c: New option --no-sig-cache.
8595         * sig-check.c (check_key_signature2): Implement it here.
8596         (cache_selfsig_result): and here.
8597
8598         * keylist.c (list_keyblock): Removed debugging stuff.
8599
8600         * getkey.c (cache_public_key): Made global.
8601         * keygen.c (write_selfsig, write_keybinding): Cache the new key.
8602
8603         * getkey.c (key_byname): Add new arg secmode and changed all
8604         callers to request explicitly the mode.  Deriving this information
8605         from the other supplied parameters does not work if neither pk nor
8606         sk are supplied.
8607
8608 2001-03-25  Werner Koch  <wk@gnupg.org>
8609
8610         * packet.h (ctrlpkttype_t): New.
8611         * mainproc.c (add_gpg_control,proc_plaintext,proc_tree): Use the
8612         new enum values.
8613         * pipemode.c (make_control): Ditto.
8614         * armor.c (armor_filter): Ditto.
8615
8616 2001-03-24  Werner Koch  <wk@gnupg.org>
8617
8618         * sign.c (do_sign): Verify the signature right after creation.
8619
8620 2001-03-23  Werner Koch  <wk@gnupg.org>
8621
8622         * status.c, status.h (STATUS_UNEXPECTED): New.
8623         * mainproc.c (do_proc_packets): And emit it here.
8624
8625 2001-03-21  Werner Koch  <wk@gnupg.org>
8626
8627         * status.c: Add sys/types.h so that it runs on Ultrix.  Reported
8628         by Georg Schwarz.x
8629
8630         * build-packet.c (build_sig_subpkt): Fixed generaton of packet
8631         length header in case where 2 bytes headers are needed.  Thanks to
8632         Piotr Krukowiecki.
8633
8634 2001-03-19  Werner Koch  <wk@gnupg.org>
8635
8636         * g10.c (main): the default keyring is no always used unless
8637         --no-default-keyring is given.
8638
8639         * ringedit.c (add_keyblock_resource): invalidate cache after file
8640         creation.
8641
8642 2001-03-15  Werner Koch  <wk@gnupg.org>
8643
8644         * keygen.c (ask_algo): Changed the warning of the ElGamal S+E Algo.
8645
8646         * keylist.c (print_capabilities): New.
8647         (list_keyblock_colon): and use it here.
8648
8649 2001-03-13  Werner Koch  <wk@gnupg.org>
8650
8651         * main.c, options.h: New option --fixed_list_mode.
8652         * keylist.c (list_keyblock_colon): use it here.
8653
8654         * getkey.c (merge_keys_and_selfsig): Divert merging of public keys
8655         to the function used in key selection..
8656         * keylist.c (is_uid_valid): Removed.
8657         (list_keyblock): Splitted into ..
8658         (list_keyblock_print, list_keyblock_colon): .. these.
8659         functions.  Changed them to use the flags set in the key lookup code.
8660         (reorder_keyblock): New, so that primary user IDs are listed first.
8661
8662         * ringedit.c (keyring_copy): flush the new iobuf chaces before
8663         rename or remove operations.  This is mainly needed for W32.
8664
8665         * hkp.c [HAVE_DOSISH_SYSTEM]: Removed the disabled code because we
8666         have now W32 socket support in ../util/http.c
8667
8668         * skclist.c (key_present_in_sk_list): New.
8669         (is_duplicated_entry): New.
8670         (build_sk_list): Check for duplicates and do that before unlocking.
8671
8672 2001-03-12  Werner Koch  <wk@gnupg.org>
8673
8674         * armor.c (parse_header_line): Removed double empty line check.
8675         (parse_header_line): Replaced trim_trailing_ws with a counting
8676         function so that we can adjust for the next read.
8677
8678         * options.skel: Fixed 3 typos. By Thomas Klausner. Replaced the
8679         keyserver example by a better working server.
8680
8681         * parse-packet.c (parse_symkeyenc): Return Invalid_Packet on error.
8682         (parse_pubkeyenc): Ditto.
8683         (parse_onepass_sig): Ditto.
8684         (parse_plaintext): Ditto.
8685         (parse_encrypted): Ditto.
8686         (parse_signature): Return error at other places too.
8687         (parse_key): Ditto.
8688         * g10.c (main): Set opt.list_packets to another value when invoked
8689         with the --list-packets command.
8690         * mainproc.c (do_proc_packets): Don's stop processing when running
8691         under --list-packets command.
8692
8693         * signal.c (do_sigaction): Removed.
8694         (init_one_signal): New to replace the above.  Needed to support
8695         systems without sigactions. Suggested by Dave Dykstra.
8696         (got_fatal_signal,init_signals): Use the above here.
8697         (do_block): Use sigset() if sigprocmask() is not available.
8698
8699         * armor.c (parse_hash_header): Test on TIGER192, which is the
8700         correct value as per rfc2440.  By Edwin Woudt.
8701
8702 2001-03-08  Werner Koch  <wk@gnupg.org>
8703
8704         * misc.c: Include time.h. By James Troup.
8705
8706         * getkey.c: Re-enabled the unknown user Id and PK caches and
8707         increased their sizes.
8708
8709         * getkey.c (merge_selfsigs_main): Set expire date and continue
8710         processing even if we found a revoked key.
8711         (merge_selfsigs_subkeys): Ditto.
8712
8713         * packet.h: Add an is_revoked flag to the user_id packet.
8714         * getkey.c (fixup_uidnode): Set that flag here.
8715         (merge_selfsigs_main): Fix so that the latest signature is used to
8716         find the self-signature for an UID.
8717         * parse-packet.c (parse_user_id): Zero out all fields.
8718         * mainproc.c (check_sig_and_print): Print the primary user ID
8719         according the the node flag and then all other non-revoked user IDs.
8720         (is_uid_revoked): Removed; it is now handled by the key selection code.
8721
8722         Changed the year list of all copyright notices.
8723
8724 2001-03-07  Werner Koch  <wk@gnupg.org>
8725
8726         * getkey.c (finish_lookup): Print an info message only in verbose mode.
8727
8728 2001-03-05  Werner Koch  <wk@gnupg.org>
8729
8730         * packet.h: Replaced sigsubpkt_t value 101 by PRIV_VERIFY_CACHE.
8731         We have never used the old value, so we can do this without any harm.
8732         * parse-packet.c (dump_sig_subpkt): Ditto.
8733         (parse_one_sig_subpkt): Parse that new sub packet.
8734         * build-packet.c (build_sig_subpkt): Removed the old one from the
8735         hashed area.
8736         (delete_sig_subpkt): New.
8737         (build_sig_subpkt): Allow an update of that new subpkt.
8738         * sig-check.c (check_key_signature2): Add verification caching
8739         (cache_selfsig_result): New.
8740         * export.c (do_export_stream): Delete that sig subpkt before exporting.
8741         * import.c (remove_bad_stuff): New.
8742         (import): Apply that function to all imported data
8743
8744 2001-03-03  Werner Koch  <wk@gnupg.org>
8745
8746         * getkey.c: Introduced a new lookup context flag "exact" and used
8747         it in all place where we once used primary.
8748         (classify_user_id2): Replaced the old function and add an extra
8749         argument to return whether an exact keyID has been requested.
8750         (key_byname): Removed the unused ctx.primary flag
8751         (get_seckey_byname2): Ditto.
8752         (finish_lookup): Changed debugging output.
8753
8754 2001-03-02  Werner Koch  <wk@gnupg.org>
8755
8756         * keylist.c (list_one): Remove the merge key calls.
8757
8758 2001-03-01  Werner Koch  <wk@gnupg.org>
8759
8760         * getkey.c (finish_lookup): Don't use it if we no specific usage
8761         has been requested.
8762         (merge_selfsigs_main): fix UID only if we have an signature.
8763         (lookup): Return UNU_PUBKEY etc. instead of NO_PUBKEY if we found
8764         a key but the requested usage does not allow this key.
8765         * import.c (import_one): Take UNU_PUBKEY into account.
8766         * mainproc.c (list_node): Ditto.
8767         * keylist.c (list_keyblock): Ditto.
8768         * keyedit.c (print_and_check_one_sig): Ditto.
8769
8770 2001-02-09  Werner Koch  <wk@gnupg.org>
8771
8772         * delkey.c (delete_key): Removed that silly assert which rendered
8773         the whole new stuff meaningless.
8774
8775 2001-02-08  Werner Koch  <wk@gnupg.org>
8776
8777         * getkey.c (key_byname): It can happen that we have both, sk and pk
8778         NULL, fix for that.
8779
8780         * parse-packet.c (parse_one_sig_subpkt): Add support for
8781         primary_uid and key_flags.
8782         (can_handle_critical): Ditto
8783
8784         * parse-packet.c (parse_encrypted): Fixed listing of pktlen for
8785         MDC packets.
8786
8787         * getkey.c: Backported the version of this file from gpg 1.1. this
8788         involved some changes in other files too.
8789         * parse-packet.c (parse_key): Clear req_usage.
8790         * skclist.c (build_sk_list): Use req_usage to pass the usage
8791         information to the lookup function.
8792         * pkclist.c (build_pk_list): Ditto.
8793         * free-packet.c (copy_public_parts_to_secret_key): New.
8794         * keydb.h: Add IS_* macros to check the sig_class.
8795         * misc.c (openpgp_cipher_test_algo): New.
8796         (openpgp_pk_test_algo): New.
8797         (openpgp_pk_algo_usage): New.
8798         (openpgp_md_test_algo): New.
8799         * packet.h: Add a few fields to PKT_{public,secret}_key and
8800         PKT_user_id.
8801         * seckey-cert.c (do_check): Use the new main_keyid field.
8802
8803 2001-02-04  Werner Koch  <wk@gnupg.org>
8804
8805         * encr-data.c (decrypt_data): Catch error when we had problems to
8806         parse the encrypted packet. By Timo.
8807
8808 2001-01-29  Werner Koch  <wk@gnupg.org>
8809
8810         * g10.c (main): --batch does now set nogreeting.
8811
8812         * delkey.c (do_delete_key): Fixed delete-both functionality.
8813
8814 2001-01-22  Werner Koch  <wk@gnupg.org>
8815
8816         * g10.c: New command --delete-secret-and-public-key.
8817         * delkey.c (delete_key): Add new arg allow_both.
8818         (do_delete_key): Move most stuff from above to this new function.
8819
8820 2001-01-12  Werner Koch  <wk@gnupg.org>
8821
8822         * passphrase.c (passphrase_to_dek): Use MD5 when IDEA is installed
8823         and we have no S2K.
8824         * mainproc.c (proc_encrypted): Likewise
8825
8826 2001-01-11  Werner Koch  <wk@gnupg.org>
8827
8828         * sig-check.c (do_check): Print the signature key expire message
8829         only in verbose mode and added the keyID.
8830
8831 2001-01-09  Werner Koch  <wk@gnupg.org>
8832
8833         * status.c, status.h: New status USERID_HINT.
8834         (write_status_text): Replace LF and CR int text by C-escape sequence.
8835
8836         * passphrase.c (passphrase_to_dek): Fixed the NEED_PASSPHRASE
8837         output.  It does now always print 2 keyIDs.  Emit the new
8838         USERID_HINT.
8839
8840 2001-01-08  Werner Koch  <wk@gnupg.org>
8841
8842         * g10.c, options.h: New option --no-expensive-trust-checks.
8843         * keylist.c (list_keyblock): Act on this option.
8844
8845 2001-01-04  Werner Koch  <wk@gnupg.org>
8846
8847         * g10.c (main): Set homedir only in the pre-parsing phase and
8848         replace backslashes in the W32 version.
8849
8850 2001-01-03  Werner Koch  <wk@gnupg.org>
8851
8852         * status.c, status.h : New status KEY_CREATED
8853         * keygen.c (do_generate_keypair,generate_subkeypair): Emit it.
8854
8855 2000-12-28  Werner Koch  <wk@gnupg.org>
8856
8857         * signal.c (got_fatal_signal): Remove lockfiles here because the
8858         atexit stuff does not work due to the use of raise. Suggested by
8859         Peter Fales.
8860         * gpgv.c (remove_lockfiles): New stub.
8861
8862 2000-12-19  Werner Koch  <wk@gnupg.org>
8863
8864         * status.c, status.h (cpr_get_no_help): New.
8865         * keyedit.c (keyedit_menu): Use it here because we have our own
8866         help list here.
8867
8868 2000-12-18  Werner Koch  <wk@gnupg.org>
8869
8870         * mainproc.c (print_failed_pkenc): Don't print the sometimes
8871         confusing message about unavailabe secret key.  Renamed ...
8872         (print_pkenc_list): ... to this and introduced failed arg.
8873         (proc_encrypted): Print the failed encryption keys and then
8874         the one to be used.
8875         (proc_pubkey_enc): Store also the key we are going to use.
8876
8877         * mainproc.c (check_sig_and_print): Don't list revoked user IDs.
8878         (is_uid_revoked): New.
8879
8880 2000-12-08  Werner Koch  <wk@gnupg.org>
8881
8882         * pipemode.c: Made the command work.  Currently only for
8883         non-armored detached signatures.
8884         * mainproc.c (release_list): Reset the new pipemode vars.
8885         (add_gpg_control): Handle the control packets for pipemode
8886         * status.c, status.h: New stati {BEGIN,END}_STREAM.
8887
8888 2000-12-07  Werner Koch  <wk@gnupg.org>
8889
8890         * g10.c: New option --allow-secret-key-import.
8891         * import.c (import_keys,import_keys_stream): Honor this option.
8892         (import): New arg allow_secret and pass that arg down to ...
8893         (import_secret_one): to this and print a warning if secret key
8894         importing is not allowed.
8895
8896 2000-12-05  Werner Koch  <wk@gnupg.org>
8897
8898         * cipher.c (cipher_filter): Moved the end_encryption status ...
8899         * encode.c (encode_simple,encode_crypt): to here
8900         * sign.c (sign_file): and here.
8901
8902         * status.c (mywrite): Removed.
8903         (get_status_string): Removed the LFs from the strings.
8904         (set_status_fd,is_status_enabed,write_status_text,
8905         write_status_buffer): Replaced all mywrite by stdio calls and use
8906         fdopen to create a strem.  This is needed to make things smoother
8907         in the W32 version.
8908
8909 2000-12-04  Werner Koch  <wk@gnupg.org>
8910
8911         * import.c (merge_blocks): Increment n_sigs for revocations.
8912
8913 2000-11-30  Werner Koch  <wk@gnupg.org>
8914
8915         * g10.c (main): Use iobuf_translate_file_handle for all options
8916         with filehandles as arguments.  This is function does some magic
8917         for the W32 API.
8918
8919         * verify.c (verify_signatures): Add a comment rant about the
8920         detached signature problem.
8921         * mainproc.c (proc_tree): Issue an error if a detached signature
8922         is assumed but a standard one was found.
8923         * plaintext.c (hash_datafiles): Don't fall back to read signature
8924         from stdin.
8925         * openfile.c (open_sigfile): Print verbose message only if the
8926         file could be accessed.
8927
8928 2000-11-24  Werner Koch  <wk@gnupg.org>
8929
8930         * passphrase.c [HAVE_DOSISH_SYSTEM]: Disabled all the agent stuff.
8931
8932 2000-11-16  Werner Koch  <wk@gnupg.org>
8933
8934         * g10.c: New option --use-agent
8935         * passphrase.c (agent_open,agent_close): New.
8936         (agent_get_passphrase,agent_clear_passphrase): New.
8937         (passphrase_clear_cache): New.
8938         (passphrase_to_dek): Use the agent here.
8939         * seckey-cert.c (do_check): Clear cached passphrases.
8940
8941 2000-11-15  Werner Koch  <wk@gnupg.org>
8942
8943         * status.c (write_status_text): Moved the big switch to ...
8944         (get_status_string): ... new function.
8945         (write_status_buffer): New.
8946
8947         * status.c (mywrite): New and replaced all write() by this.
8948
8949         * status.c, status.h: Add 3 status lcodes for notaions and policy.
8950         * mainproc.c (print_notation_data): Do status output of notations.
8951
8952 2000-11-13  Werner Koch  <wk@gnupg.org>
8953
8954         * sign.c (clearsign_file): Use LF macro to print linefeed.
8955
8956 2000-11-11  Paul Eggert  <eggert@twinsun.com>
8957
8958         Clean up the places in the code that incorrectly use "long" or
8959         "unsigned long" for file offsets.  The correct type to use is
8960         "off_t".  The difference is important on large-file hosts,
8961         where "off_t" is longer than "long".
8962
8963         * keydb.h (struct keyblock_pos_struct.offset):
8964         Use off_t, not ulong, for file offsets.
8965         * packet.h (dbg_search_packet, dbg_copy_some_packets,
8966         search_packet, copy_some_packets): Likewise.
8967         * parse-packet.c (parse, dbg_search_packet, search_packet,
8968         dbg_copy_some_packets, copy_some_packets): Likewise.
8969         * ringedit.c (keyring_search): Likewise.
8970
8971         * parse-packet.c (parse): Do not use %lu to report file
8972         offsets in error diagnostics; it's not portable.
8973         * ringedit.c (keyring_search): Likewise.
8974
8975 2000-11-09  Werner Koch  <wk@gnupg.org>
8976
8977         * g10.c (main): New option --enable-special-filenames.
8978
8979 2000-11-07  Werner Koch  <wk@gnupg.org>
8980
8981         * g10.c (main): New command --pipemode.
8982         * pipemode.c: New.
8983
8984 2000-10-23  Werner Koch  <wk@gnupg.org>
8985
8986         * armor.c (armor_filter): Changed output of hdrlines, so that a CR
8987         is emitted for DOS systems.
8988
8989         * keygen.c (read_parameter_file): Add a cast for isspace().
8990
8991         * status.c (myread): Use SIGINT instead of SIGHUP for DOS.
8992
8993 2000-10-19  Werner Koch  <wk@gnupg.org>
8994
8995         * g10.c: New option --ignore-crc-error
8996         * armor.c (invalid_crc): New.
8997         (radix64_read): Act on new option.
8998
8999         * openfile.c (try_make_homedir): Klaus Singvogel fixed a stupid
9000         error introduced on Sep 6th.
9001
9002 2000-10-18  Werner Koch  <wk@gnupg.org>
9003
9004         * misc.c (print_cipher_algo_note): Don't print the note for AES.
9005         Changed wording.
9006
9007 2000-10-16  Werner Koch  <wk@gnupg.org>
9008
9009         * mainproc.c (do_proc_packets): Hack to fix the problem that
9010         signatures are not detected when there is a MDC packet but no
9011         compression packet.
9012
9013         * g10.c (print_hashline): New.
9014         (print_mds): Use above func with --with-colons.
9015
9016         * mainproc.c (check_sig_and_print): Detect multiple signatures
9017         and don't verify them.
9018
9019 2000-10-14  Werner Koch  <wk@gnupg.org>
9020
9021         * mainproc.c (add_onepass_sig): There is an easier solution to the
9022         error fixed yesterday; just check that we only have onepass
9023         packets.  However, the other solution provides an cleaner
9024         interface and opens the path to get access to other information
9025         from the armore headers.
9026         (release_list): Reset some more variables.
9027
9028 2000-10-13  Werner Koch  <wk@gnupg.org>
9029
9030         * mainproc.c (add_gpg_control): New.
9031         (do_proc_packets): use it.
9032         (proc_plaintext): Changed logic to detect clearsigns.
9033         (proc_tree): Check the cleartext sig with some new code.
9034
9035         * packet.h: New packet PKT_GPG_CONTROL.
9036         * parse-packet.c (parse_gpg_control): New.
9037         * misc.c (get_session_marker): New.
9038         * armor.c (armor_filter): Replaced the faked 1-pass packet by the
9039         new control packet.
9040
9041         * keyedit.c (keyedit_menu): Allow batchmode with a command_fd.
9042         * status.c (my_read): New.
9043         (do_get_from_fd): use it.
9044
9045 2000-10-12  Werner Koch  <wk@gnupg.org>
9046
9047         * keygen.c (keygen_add_std_prefs): Add Rijndael to the prefs.
9048
9049 2000-10-07  Werner Koch  <wk@gnupg.org>
9050
9051         * gpgv.c: Add more stubs for ununsed code to make the binary smaller.
9052
9053 Wed Oct  4 15:50:18 CEST 2000  Werner Koch  <wk@openit.de>
9054
9055         * sign.c (hash_for): New arg to take packet version in account, changed
9056         call callers.
9057
9058         * gpgv.c: New.
9059         * Makefile.am: Rearranged source files so that gpgv can be build with
9060         at least files as possible.
9061
9062 Mon Sep 18 12:13:52 CEST 2000  Werner Koch  <wk@openit.de>
9063
9064         * hkp.c (not_implemented): Print a notice for W32
9065
9066 Fri Sep 15 18:40:36 CEST 2000  Werner Koch  <wk@openit.de>
9067
9068         * keygen.c (keygen_add_std_prefs): Changed order of preferences to
9069         twofish, cast5, blowfish.
9070
9071         * pkclist.c (algo_available): Removed hack to disable Twofish.
9072
9073 Thu Sep 14 17:45:11 CEST 2000  Werner Koch  <wk@openit.de>
9074
9075         * parse-packet.c (dump_sig_subpkt): Dump key flags. Print special
9076         warning in case of faked ARRs.
9077
9078         * getkey.c (finsih_lookup): Hack so that for v4 RSA keys the subkey
9079         is used for encryption.
9080
9081 Thu Sep 14 14:20:38 CEST 2000  Werner Koch  <wk@openit.de>
9082
9083         * g10.c (main): Default S2K algorithms are now SHA1 and CAST5 - this
9084         should solve a lot of compatibility problems with other OpenPGP
9085         apps because those algorithms are SHOULD and not optional.  The old
9086         way to force it was by using the --openpgp option whith the drawback
9087         that this would disable a couple of workarounds for PGP.
9088
9089         * g10.c (main): Don't set --quite along with --no-tty.  By Frank Tobin.
9090
9091         * misc.c (disable_core_dump): Don't display a warning here but a return
9092         a status value and ...
9093         * g10.c (main): ...print warnining here. Suggested by Sam Roberts.
9094
9095 Wed Sep 13 18:12:34 CEST 2000  Werner Koch  <wk@openit.de>
9096
9097         * keyedit.c (keyedit_menu): Allow to use "debug" on the secret key.
9098
9099         * ringedit.c (cmp_seckey): Fix for v4 RSA keys.
9100         * seckey-cert.c (do_check): Workaround for PGP 7 bug.
9101
9102 Wed Sep  6 17:55:47 CEST 2000  Werner Koch  <wk@openit.de>
9103
9104         * misc.c (print_pubkey_algo_note): Do not print the RSA notice.
9105         * sig-check.c (do_signature_check): Do not emit the RSA status message.
9106         * pubkey-enc.c (get_session_key): Ditto.
9107
9108         * encode.c (encode_simple, encode_crypt): Fix for large files.
9109         * sign.c (sign_file): Ditto.
9110
9111 Wed Sep  6 14:59:09 CEST 2000  Werner Koch  <wk@openit.de>
9112
9113         * passphrase.c (hash_passphrase): Removed funny assert.  Reported by
9114         David Mathog.
9115
9116         * openfile.c (try_make_homedir): Changes for non-Posix systems.
9117         * g10.c (main): Take the default homedir from macro.
9118
9119         * g10.c: The --trusted-key option is back.
9120         * trustdb.c (verify_own_key): Handle this option.
9121         (add_ultimate_key): Moved stuff from verify_own_key to this new func.
9122         (register_trusted_key): New.
9123
9124 Fri Aug 25 16:05:38 CEST 2000  Werner Koch  <wk@openit.de>
9125
9126         * parse-packet.c (dump_sig_subpkt): Print info about the ARR.
9127
9128         * openfile.c (overwrite_filep): Always return okay if the file is
9129         called /dev/null.
9130         (make_outfile_name): Add ".sign" to the list of know extensions.
9131         (open_sigfile): Ditto.
9132
9133 Wed Aug 23 19:52:51 CEST 2000  Werner Koch  <wk@openit.de>
9134
9135         * g10.c: New option --allow-freeform-uid. By Jeroen C. van Gelderen.
9136         * keygen.c (ask_user_id): Implemented here.
9137
9138 Fri Aug  4 14:23:05 CEST 2000  Werner Koch  <wk@openit.de>
9139
9140   * status.c (do_get_from_fd): Ooops, we used fd instead of opt.command_fd.
9141   Thanks to Michael Tokarev.
9142
9143 Tue Aug  1 20:06:23 CEST 2000  Werner Koch  <wk@openit.de>
9144
9145   * g10.c: New opttion --try-all-secrets on suggestion from Matthias Urlichs.
9146   * pubkey-enc.c (get_session_key): Quite easy to implement here.
9147
9148 Thu Jul 27 17:33:04 CEST 2000  Werner Koch  <wk@openit.de>
9149
9150   * g10.c: New option --merge-only.  Suggested by Brendan O'Dea.
9151   * import.c (import_one): Implemented it here
9152   (import_secret_one): Ditto.
9153   (print_stats): and give some stats.
9154
9155 Thu Jul 27 12:01:00 CEST 2000  Werner Koch  <wk@openit.de>
9156
9157   * g10.c: New options --show-session-key and --override-session-key
9158   * pubkey-enc.c (hextobyte): New.
9159   (get_override_session_key): New.
9160   * mainproc.c (proc_pubkey_enc): Add session-key stuff.
9161   * status.h, status.c (STATUS_SESSION_KEY): New.
9162
9163 Thu Jul 27 10:02:38 CEST 2000  Werner Koch  <wk@openit.de>
9164
9165   * g10.c (main): Use setmode(O_BINARY) for MSDOS while generating random bytes
9166   (print_mds): Likewise for stdin.
9167   * plaintext.c (handle_plaintext): Likewise for stdout.
9168
9169 Mon Jul 24 10:30:17 CEST 2000  Werner Koch  <wk@openit.de>
9170
9171   * keyedit.c (menu_expire): expire date for primary key can be set again.
9172
9173 Wed Jul 19 11:26:43 CEST 2000  Werner Koch  <wk@openit.de>
9174
9175   * keylist.c (is_uid_valid): New.
9176   (list_keyblock): Print validity information for all user IDs.  Note, this
9177   has to be done at other places too; for now we have only minimal support.
9178
9179 Wed Jul 12 13:32:06 CEST 2000  Werner Koch  <wk@openit.de>
9180
9181   * helptext.c, pkclist.c: s/superseeded/superseded/
9182
9183 Mon Jul 10 16:08:57 CEST 2000  Werner Koch  <wk@openit.de>
9184
9185   * parse-packet.c (enum_sig_subpkt): Fixed testing on crtitical bit in case
9186   of a NULL buffer.  Reported by Peter Marschall.
9187
9188 Wed Jul  5 13:28:45 CEST 2000  Werner Koch  <wk@openit.de>
9189
9190   * keyedit.c, keyid.c: Add some _()
9191
9192   * argparse.c:  Changed the flag to suppress --version handling to also
9193   suppress --help.
9194
9195 Wed Jun 28 11:54:44 CEST 2000  Werner Koch  <wk@openit.de>
9196
9197   * armor.c (armor_filter): Set sigclass to 0 in case of non-dash-escaped
9198   clearsig.  This makes this mode work again.
9199
9200   * mainproc.c (proc_tree): Fixed handling of one-pass-sig packets in textmode.
9201   Disabled the ugly workaround for PGP 5 - let's see whether thi breaks less
9202   cases. Found by Ted Cabeen.
9203
9204   * options.h (DBG_HASHING): New.  All commented md_start_debug are now
9205   controlled by this debug option.
9206
9207   * sign.c (print_status_sig_created): New and called from 2 places.
9208
9209   * keygen.c (gen_rsa): New, but commented.
9210   (ask_algo): Commented support for RSA.
9211
9212   * seckey-cert.c (protect_secret_key): Started to fix the code for v4 RSA
9213   keys - it is not solved yet. However, we have time until, Sep 20th ;)
9214
9215 Wed Jun 14 12:27:09 CEST 2000  Werner Koch  <wk@openit.de>
9216
9217   * status.c (init_shm_coprocessing): Changed the sequence of the get,attach
9218   to cope with the changes in newer Linux kernels.  This bug has been found
9219   by <dmitri@advantrix.com> who also proposed this solution.  Hopefully
9220   this does not break gpg on to many systems.
9221
9222   * cipher.c (write_header): Protect the IV with the MDC too.
9223   * encr-data.c (decrypt_data): Likewise.
9224
9225 Fri Jun  9 10:09:52 CEST 2000  Werner Koch  <wk@openit.de>
9226
9227   * g10.c: New options --no-auto-key-retrieve
9228   * options.h (auto_key_retrieve): New.
9229   * mainproc.c (check_sig_and_print): Implemented that.
9230
9231 Wed Jun  7 19:19:09 CEST 2000  Werner Koch  <wk@openit.de>
9232
9233   * sig-check.c (do_check): Use EMULATE_MDENCODE also on v4 packets.
9234
9235 Wed Jun  7 17:25:38 CEST 2000  Werner Koch  <wk@openit.de>
9236
9237   * cipher.c (write_header): Use plain CFB mode for MDC encrypted packets.
9238   * encr-data.c (decrypt_data): Ditto.
9239
9240 Mon Jun  5 23:41:54 CEST 2000  Werner Koch  <wk@openit.de>
9241
9242   * seskey.c (do_encode_md, encode_md_value): Add new arg v3compathack to work
9243   around a bug in old versions.
9244   * sig-check.c (do_check): use the aboved workaround when enabled.
9245   * g10.c: New option --emulate-md-decode-bug
9246
9247 Mon Jun  5 12:37:43 CEST 2000  Werner Koch  <wk@openit.de>
9248
9249   * build-packet.c (do_mdc): New.
9250   (do_encrypted_mdc): Changed for the new proposal.
9251   * parse-packet.c (parse_mdc): New.
9252   (parse_encrypted): Fixed for the new proposal.
9253   * packet.h (PKT_MDC): New.
9254   * cipher.c (cipher_filter): Build the MDC packet here.
9255   * g10.c (main): Enable --force-mdc.
9256   * encr-data.c (mdc_decode_filter): Fixed for new MDC method
9257
9258   * options.h(rfc2440): New.
9259   * g10.c (main): Changed the selected values for --openpgp to not include
9260   optional algorithms.
9261
9262 Thu May 18 11:38:54 CEST 2000  Werner Koch  <wk@openit.de>
9263
9264         * keyedit.c (keyedit_menu): Add a keyword arg to the prompt.
9265
9266         * status.c, status.h: Added 3 new status tokens.
9267         * status.c (do_get_from_fd): New.
9268         (cpr_enabled,cpr_get,cpr_get_hidden,cpr_kill_prompt,
9269          cpr_get_answer_is_yes,cpr_get_answer_yes_no_quit): Modified to work
9270          with the new function.
9271         * g10.c: Add new option --command-fd.
9272
9273         * status.c (progress_cb): New.
9274         (set_status_fd): Register progress functions
9275
9276 Fri May 12 14:01:20 CEST 2000  Werner Koch  <wk@openit.de>
9277
9278         * delkey.c (delete_key): Add 2 new status messages
9279         * status.c, status.h (STATUS_DELETE_PROBLEM): New.
9280
9281         Fixed years of copyright in all source files.
9282
9283 Mon May  1 17:08:14 CEST 2000  Werner Koch  <wk@openit.de>
9284
9285         * trustdb.c (propagate_validity): Fixed the bug that only one uid
9286         gets fully trusted even when all are signed by an ultimate key.
9287
9288 Mon May  1 15:38:04 CEST 2000  Werner Koch  <wk@openit.de>
9289
9290         * getkey.c (key_byname): Always returned a defined context.  Fixed
9291         a segv for invalid user id specifications. Reported by Walter Koch.
9292
9293         * getkey.c (get_user_id): I18ned "no user id" string. By Walter.
9294
9295         * pkclist.c (do_show_revocation_reason): Typo fixes.
9296         * helptext.c: Ditto.
9297
9298         * armor.c (armor_filter): Fixed some CRLF issues.  By Mike McEwan.
9299
9300 Fri Apr 14 19:37:08 CEST 2000  Werner Koch  <wk@openit.de>
9301
9302         * pkclist.c (do_show_revocation_reason): New.
9303         (show_revocation_reason): New and called at various places.
9304
9305         * g10.c (main): Fixed small typo.
9306
9307         * pkclist.c (do_we_trust): Act on always_trust but not for revoked
9308         keys. Suggested by Chip Salzenberg.
9309
9310         * g10.c: New option --lock-never.
9311
9312         * ringedit.c (get_writable_keyblock_file): New.
9313         * keygen.c (do_generate_keypair): Use this instead of the hardwired one.
9314
9315         * keygen.c (ask_user_id): Check that the email address is in the
9316         correct field.  Suggested by Christian Kurz.
9317
9318 Mon Apr 10 13:34:19 CEST 2000  Werner Koch  <wk@openit.de>
9319
9320         * keyedit.c (show_key_with_all_names): s/sbb/ssb/
9321
9322 Tue Mar 28 14:26:58 CEST 2000  Werner Koch  <wk@openit.de>
9323
9324         * trustdb.c (verify_own_keys): Do not print warning about unprotected
9325         key when in quiet mode.
9326
9327 Wed Mar 22 13:50:24 CET 2000  Werner Koch  <wk@openit.de>
9328
9329         * mainproc.c (print_userid): Do UTF8 conversion before printing.
9330         * import.c (import_one): Ditto.
9331         (import_secret_one): Ditto.
9332         (delete_inv_parts): Ditto.
9333
9334 Thu Mar 16 16:20:23 CET 2000  Werner Koch  <wk@openit.de>
9335
9336         * keylist.c (print_key_data): Handle a NULL pk gracefully.
9337
9338         * getkey.c (merge_one_pk_and_selfsig): Fixed silly code for
9339         getting the primary keys keyID but kept using the one from the
9340         subkey.
9341         * pubkey-enc.c (get_it): Print a note for expired subkeys.
9342
9343         * getkey.c (has_expired): New.
9344         (subkeys_expiretime): New.
9345         (finish_lookup): Check for expired subkeys needed for encryption.
9346         (merge_keys_and_selfsig): Fixed expiration date merging for subkeys.
9347
9348         * keylist.c (list_keyblock): Print expiration time for "sub".
9349         (list_one): Add missing merging for public keys.
9350         * mainproc.c (list_node): Ditto.
9351
9352 2000-03-14 13:49:38  Werner Koch  (wk@habibti.openit.de)
9353
9354         * keygen.c (keyedit_menu): Do not allow to use certain commands
9355         while the secret key is selected.
9356
9357 2000-03-09 12:53:09  Werner Koch  (wk@habibti.openit.de)
9358
9359         * keygen.c (ask_expire_interval): Movede parsig to ...
9360         (parse_expire_string): ... this new function. And some new control
9361         commands.
9362         (proc_parameter_file): Add expire date parsing.
9363         (do_generate_keypair): Allow the use of specified output files.
9364
9365 2000-03-08 10:38:38  Werner Koch  (wk@habibti.openit.de)
9366
9367         * keygen.c (ask_algo): Removed is_v4 return value and the commented
9368         code to create Elg keys in a v3 packet. Removed the rounding
9369         of key sizes here.
9370         (do_create): Likewise removed arg v4_packet.
9371         (gen_elg): Likewise removed arg version. Now rounding keysizes here.
9372         (gen_dsa): Rounding keysize now here.
9373         (release_parameter_list): New
9374         (get_parameter*): New.
9375         (proc_parameter_file): New.
9376         (read_parameter_file): New.
9377         (generate_keypair): Splitted. Now uses read_parameter_file when in
9378         batch mode.  Additional argument to specify a parameter file.
9379         (do_generate_keypair): Main bulk of above fucntion and uses the
9380         parameter list.
9381         (do_create): Don't print long notice in batch mode.
9382         * g10.c (main): Allow batched key generation.
9383
9384 Thu Mar  2 15:37:46 CET 2000  Werner Koch  <wk@gnupg.de>
9385
9386         * pubkey-enc.c (get_it): Print a note about unknown cipher algos.
9387
9388         * g10.c (opts): Add a note to the help listing about the man page
9389         and removed some options from the help listing.
9390
9391         * keyedit.c (print_and_check_one_sig): Use a new function to truncate
9392         the output of the user ID.  Suggested by Jan-Benedict Glaw.
9393
9394 Wed Feb 23 10:07:57 CET 2000  Werner Koch  <wk@gnupg.de>
9395
9396         * helptext.c: typo fix.
9397
9398 Thu Feb 17 13:39:32 CET 2000  Werner Koch  <wk@gnupg.de>
9399
9400         * revoke.c: Removed a bunch of commented code.
9401
9402         * packet.h (SIGSUBPKT_REVOC_REASON): New.
9403         * build-packet.c (build_sig_subpkt): Support new sub packet.
9404         * parse-packet.c (parse_one_sig_subpkt): Ditto.
9405         (dump_sig_subpkt): Ditto.
9406         * revoke.c (ask_revocation_reason): New.
9407         (release_revocation_reason_info): New.
9408         (revocation_reason_build_cb): New.
9409         (gen_revoke): Ask for reason.
9410         * main.h (struct revocation_reason_info): Add declaration.
9411         * keyedit.c (menu_revsig): Add support for revocation reason.
9412         (menu_revkey): Ditto.
9413         (sign_uid_mk_attrib): Renamed to ...
9414         (sign_mk_attrib): ... this, made static and add support for reasons.
9415
9416 Tue Feb 15 08:48:13 CET 2000  Werner Koch  <wk@gnupg.de>
9417
9418         * build-packet.c (build_packet): Fixed fixing of old comment packets.
9419
9420         * import.c (import_keys): Fixed importing from stdin when called with
9421         nnames set to zero as it normally happens.
9422
9423 Mon Feb 14 14:30:20 CET 2000  Werner Koch  <wk@gnupg.de>
9424
9425         * sig-check.c (check_key_signature2): Add new arg r_expired.
9426         (do_signature_check): New arg to pass it down to ...
9427         (do_check): New arg r-expire which is set when the signature
9428         has expired.
9429         * trustdb.c (check_sig_record): Set SIGF_EXPIRED flag and set
9430         the expiretime to zero so that thi signature will not be checked
9431         anymore.
9432
9433 Fri Feb 11 17:44:40 CET 2000  Werner Koch  <wk@gnupg.de>
9434
9435         * g10.c (g10_exit): Update the random seed_file.
9436         (main): Set the random seed file.  New option --no-random-seed-file.
9437
9438 Thu Feb 10 17:39:44 CET 2000  Werner Koch  <wk@gnupg.de>
9439
9440         * keyedit.c (menu_expire): Fixed segv due to unitialized sub_pk.
9441         By Rémi.
9442
9443 Thu Feb 10 11:39:41 CET 2000  Werner Koch  <wk@gnupg.de>
9444
9445         * keylist.c (list_keyblock): Don't print warnings in the middle of
9446         regulat output lines.  By Rémi.
9447
9448         * sig-check.c: Include options.h
9449
9450 Wed Feb  9 15:33:44 CET 2000  Werner Koch  <wk@gnupg.de>
9451
9452         * gpg.c: New option --ignore-time-conflict
9453         * sig-check.c (do_check): Implemented this option.
9454         * trustdb.c (check_trust): Ditto.
9455         * sign.c (do_sign): Ditto.
9456         * keygen.c (generate_subkeypair): Ditto.
9457
9458         * encode.c (encode_simple): use iobuf_cancel after open failure.
9459         Reported by Huy Le.
9460
9461 Fri Jan 14 18:32:01 CET 2000  Werner Koch  <wk@gnupg.de>
9462
9463         * packet.h (STRING2KEY): Changed mode from byte to int.
9464         * parse-packet.c (parse_key): Add the special GNU protection stuff
9465         * build-packet.c (so_secret_key): Ditto.
9466         * seckey-cert.c (do_check): Ditto.
9467         * keyedit.c (change_passphrase): Ditto.
9468         * export.c (export_secsubkeys): New.
9469         (do_export_stream): Hack to export the primary key using mode 1001.
9470         * g10.c: New command --export-secret-subkeys
9471
9472 Thu Jan 13 19:31:58 CET 2000  Werner Koch  <wk@gnupg.de>
9473
9474         * armor.c (is_armored): Check for 1-pass-sig packets. Reported by
9475         David Hallinan <hallinan@rtd.com>.
9476         (armor_filter): Replaced one LF by the LF macro.  Reported by
9477         Wolfgang Redtenbacher.
9478
9479 Wed Jan  5 11:51:17 CET 2000  Werner Koch  <wk@gnupg.de>
9480
9481         * g10.c (main): Reset new global flag opt.pgp2_workarounds
9482         when --openpgp is used.
9483         * mainproc.c (proc_plaintext): Do the PGP2,5 workarounds only
9484         when the global flag is set.
9485         (proc_tree): Ditto.
9486         * textfilter.c (copy_clearsig_text): Ditto.
9487         * armor.c (armor_filter): Ditto.
9488
9489         * g10.c: New option --list-only
9490         * mainproc.c (proc_tree): Don't do it if opt.list_only is active.
9491         (proc_pubkey_enc): Implement option.
9492
9493         * status.h, status.c ({BEGIN,END}_{EN,DE}CRYPTION): New.
9494         * cipher.c (cipher_filter): New status outputs.
9495         * mainproc.c (proc_encrypted): New status outputs.
9496
9497 Fri Dec 31 14:08:15 CET 1999  Werner Koch  <wk@gnupg.de>
9498
9499         * armor.c (armor_filter): Made the "Comment:" header translatable.
9500
9501         * hkp.c (hkp_import): Make sure that the program does not return
9502         success when there is a connection problem.  Reported by Phillip Jones.
9503
9504 Sun Dec 19 15:22:26 CET 1999  Werner Koch  <wk@gnupg.de>
9505
9506         * armor.c (LF): Use this new macro at all places where a line LF
9507         is needed.  This way DOSish textfiles should be created when the
9508         input data is also in dos mode.
9509         * sign.c (LF): Ditto.
9510         * textfilter.c (LF): Ditto.
9511         (copy_clearsig_text): Disabled the forcing of CR,LF sequences
9512         for DOS systems.
9513
9514         * plaintext.c (handle_plaintext): Fixes for line endings on DOS.
9515         and react on a LF in cleartext.
9516         * armor.c (fake_packet): Restore the original line ending after
9517         removing trailing spaces.
9518
9519         * signal.c (got_fatal_signal): DOS fix.
9520
9521 Thu Dec 16 10:07:58 CET 1999  Werner Koch  <wk@gnupg.de>
9522
9523         * mainproc.c (print_failed_pkenc): Fix for unknown algorithm.
9524         Found by fygrave@epr0.org.
9525
9526 Thu Dec  9 10:31:05 CET 1999  Werner Koch  <wk@gnupg.de>
9527
9528         * hkp.c: i18n the strings.
9529
9530 Sat Dec  4 15:32:20 CET 1999  Werner Koch  <wk@gnupg.de>
9531
9532         * trustdb.c (verify_key): Shortcut for ultimately trusted keys.
9533
9534 Sat Dec  4 12:30:28 CET 1999  Werner Koch  <wk@gnupg.de>
9535
9536         * pkclist.c (build_pk_list): Validate the trust using the namehash
9537         if this one has been set by the key lookup.
9538
9539         * g10.c: Add --delete-secret-key to the help page.
9540
9541         * openfile.c (copy_options_file): Made static.
9542         (try_make_homedir): New.
9543         * ringedit.c (add_keyblock_resource): Use the try_make_hoemdir logic.
9544         * tdbio.c (tdbio_set_dbname): Likewise.
9545
9546         * keygen.c (generate_user_id): Use m_alloc_clear() here. We should
9547         better use an allocation function specific to the user_id packet.
9548
9549         * keygen.c (keygen_add_std_prefs): Changed symmetric preferences
9550         to include Blowfish again.  This is due to it's better speed compared
9551         to CAST5.
9552
9553         * g10.c (strusage): Print the home directory.
9554
9555         * armor.c (armor_filter): Take action on the cancel control msg.
9556         * filter.h (armor_filter_context_t): Add cancel flag.
9557
9558 Mon Nov 29 21:52:11 CET 1999  Werner Koch  <wk@gnupg.de>
9559
9560         * g10.c: New option --fast-list-mode ..
9561         * keylist.c (list_keyblock): .. and implemented.
9562         * mainproc.c (list_node): Ditto.
9563
9564         * import.c (mark_non_selfsigned_uids_valid): Fixed the case that there
9565         is a uid without any packet following.
9566
9567 Mon Nov 22 11:14:53 CET 1999  Werner Koch  <wk@gnupg.de>
9568
9569         * mainproc.c (proc_plaintext): Never enable the hash processing
9570         when skip_verify is active.
9571
9572         * armor.c (parse_header_line): Stop parsing on a WS line too.
9573         Suggested by Aric Cyr.
9574
9575         * tdbdump.c (HEXTOBIN): Changed the name of the argument, so that
9576         traditional cpp don't mess up the macros. Suggested by Jos Backus.
9577
9578         * mainproc.c (list_node): Print the PK algo in the --with-colon mode.
9579         * keylist.c (list_keyblock): Ditto.
9580
9581         * signal.c (got_fatal_signal): Found the reason why exit(8) did not
9582         work - it is better to set the disposition back to default before
9583         raising the signal.  Print the notice on stderr always.
9584
9585 Fri Nov 12 20:33:19 CET 1999  Werner Koch  <wk@gnupg.de>
9586
9587         * g10.c (make_username): Swapped the logic.
9588         * keylist.c (public_key_list): Now takes a STRLIST as arg and moved
9589         the creation ot this list to the caller, so that he can copy with
9590         UTF-conversion of user IDs.  Changed all callers.
9591         (secret_key_list): Likewise.
9592
9593         * getkey.c (get_user_id_string_native): New and ...
9594         * encode.c (write_pubkey_enc_from_list): ... use it here.
9595
9596         * pubring.asc: Updated.
9597
9598         * packet.h (PKT_PHOTO_ID): New.
9599         * parse-packet.c (parse_photo_id): New.
9600         * build-packet.c (do_user_id: Handle photo IDs.
9601         (build_packet): Change CTB for photo IDs
9602         * free-packet.c (free_user_id): Release memory used for photo IDs
9603         * sig-check.c (hash_uid_node): Handle photo IDs too.
9604         * trustdb.c (print_uid_from_keyblock): Hash photo ID.
9605         (make_uid_records): Ditto.
9606         * getkey.c (find_by_name): Ditto.
9607         * keyedit.c (show_prefs): Ditto.
9608         * keylist.c (list_keyblock): Ditto.
9609
9610 Thu Oct 28 16:08:20 CEST 1999  Werner Koch  <wk@gnupg.de>
9611
9612         * keygen.c (ask_expire_interval): Print a warning for systems
9613         with a signed 32 time_t if the exiration time is beyoind 2038.
9614
9615 Fri Oct  8 20:40:50 CEST 1999  Werner Koch  <wk@gnupg.de>
9616
9617         * ringedit.c (enum_keyblocks): The last fix way really stupid;
9618         reverted and set rt to Unknown.
9619
9620 Fri Oct  8 20:32:01 CEST 1999  Werner Koch  <wk@gnupg.de>
9621
9622         * ringedit.c (enum_keyblocks): Zero the entire kbpos out on open.
9623
9624         * g10.c (oEntropyDLL): Removed option.
9625         (main): Made the warning on development versions more verbose.
9626
9627         * g10.c (oHonorHttpProxy): New option.
9628         * hkp.c (hkp_ask_import,hkp_export): Implement this option.
9629         * options.skel: Enable this option for new installations
9630
9631 Mon Oct  4 21:23:04 CEST 1999  Werner Koch  <wk@gnupg.de>
9632
9633         * import.c (import_keys): Changed calling interface, adjusted caller.
9634         (import): Moved printing of stats out ...
9635         (print_stats): New. ... to here.
9636         (import_keys_stream): Call stats print here.
9637         (import_keys): Print stats as totals for all files.
9638
9639         * tdbio.h (DIRF_NEWKEYS): New
9640         * tdbio.c (tdbio_dump_record): Print the new flag.
9641         * trustdb.c (check_trust_record): New arg sigs_only.  Adapted all
9642         callers.
9643         (do_update_trust_record): Removed recheck arg and add a new sigs_only
9644         do we can later improve on the performance.  Changed all callers too.
9645         (check_trustdb): Evalutate the new flag and add a status output.
9646         Do a check when the dir record has not been checked.
9647         (build_cert_tree): Evaluate the new flag.
9648         (check_trust): Ditto.  Do a trust_record check, when the dir record
9649         is not marked as checked.
9650         (mark_fresh_keys): New.
9651         (clear_lid_table): New.
9652         (sync_trustdb): New.
9653         * import.c (import_keys): Call sync_trustdb() after processing.
9654         (import_keys_stream): Ditto.
9655         * tdbdump.c (import_ownertrust): Ditto.
9656
9657         * import.c (import_revoke_cert): Notify the trust DB.
9658         (do_update_trust_record): Use |= to set the REVOKED bit and not &=;
9659         shame on me for this bad copy+paste introduced bug.
9660         (do_we_trust): Add trustmask to allow revoked key override to work.
9661         Chnaged are to allow return of a mofified trustlevel. Adapted the
9662         one caller.
9663
9664         * g10.c: New options --emulate-3des-s2k-bug
9665         * passphrase.c (hash_passphrase): Implemented above.
9666
9667         * mainproc.c (proc_tree): Check for standalone signatures.
9668         (do_check_sig): Print a notice for a standalone revocation
9669         (check_sig_and_print): Do not print an error for unchecked standalone
9670         revocations.
9671
9672 Tue Sep 28 20:54:37 CEST 1999  Werner Koch  <wk@gnupg.de>
9673
9674         * encode.c (encode_simple): Use new CTB when we don't have the
9675         length of the file.  This is somewhat strange as the comment above
9676         indicates that this part is actually fixed for PGP 5 - maybe I simply
9677         lost the source line, tsss.
9678
9679         * armor.c (armor_filter): Set a flag if no OpenPGP data has been found.
9680         * verify.c (verify_signatures): Add an error helptext.
9681
9682 Thu Sep 23 19:24:30 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
9683
9684         * openfile.c (open_outfile): Fixed the 8dot3 handling.
9685
9686         * passphrase.c (passphrase_to_dek): Print uid using utf8 func.
9687         * delkey.c (delete_key): Ditto.
9688         * pkclist.c (show_paths,do_edit_ownertrust,do_we_trust): Ditto
9689         (do_we_trust_pre): Ditto.
9690         * trustdb.c (print_user_id,check_uidsigs): Ditto.
9691         * revoke.c (gen_revoke,ask_revoke_sig): Ditto.
9692
9693 Thu Sep 23 09:52:58 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
9694
9695         * verify.c (print_file_status): New.
9696         (verify_one_file): Moved status print to th new fnc. Add error status.
9697         * status.c, status.h (STATUS_FILE_ERROR): New
9698
9699 Wed Sep 22 10:14:17 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
9700
9701         * openfile.c (make_outfile_name): Use case-insenstive compare for
9702         DOS systems.  Add ".pgp" to the list of know extensions.
9703         (open_outfile): For DOS systems try to replace the suffiy instead of
9704         appending it.
9705
9706         * status.c, status.h: Add STATUS_FILE_{START,DONE}.
9707         * verify.c (verify_one_file): Emit these new stati.
9708
9709         * sign.c (clearsign_file): Avoid duplicated Entries in the "Hash:"
9710         line.  Those headers are now only _not_ printed when there are
9711         only old-style keys _and_ all hashs are MD5.
9712
9713 Mon Sep 20 12:24:41 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
9714
9715
9716         * verify.c (verify_files, ferify_one_file): New.
9717         * g10.c:  New command --verify-files
9718
9719 Fri Sep 17 12:56:42 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
9720
9721         * g10.c: Add UK spelling as alias for armor options ;-)
9722
9723         * import.c (append_uid): Fixed a SEGV when there is no selfsig and
9724         no subkey.
9725         (merge_sigs): Ditto.  Removed the assertion.
9726
9727 Wed Sep 15 16:22:17 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
9728
9729         * g10.c: New option --entropy-dll-name
9730
9731 Mon Sep 13 10:51:29 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
9732
9733         * signal.c (got_fatal_signal): Print message using write(2) and
9734         only for development versions.
9735
9736 Mon Sep  6 19:59:08 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
9737
9738         * tdbio.c (tdbio_set_dbname): Use mkdir macro
9739         * ringedit.c (add_keyblock_resource): Ditto.
9740
9741 Fri Sep  3 10:04:45 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
9742
9743         * pkclist.c (build_pk_list): Skip keys set with --encrypt-to also
9744         when asking for a key.
9745
9746         * plaintext.c (handle_plaintext): Make sure that we don't read a
9747         second EOF in the read loop for partial length packets.
9748
9749         * mainproc.c (check_sig_and_print): print user ID as utf-8.
9750
9751 Thu Sep  2 16:40:55 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
9752
9753         * import.c (merge_blocks): First add new subkeys, then merge subkey
9754         certificates.
9755         (merge_sigs): Don't merge subkey signatures here.
9756
9757 Wed Sep  1 15:30:44 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
9758
9759         * keygen.c (ask_expire_interval): Fixed bug related to cpr_xx (tnx
9760         Francis J. Lacoste).
9761
9762 Tue Aug 31 17:20:44 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
9763
9764         * plaintext.c (do_hash): Hash CR,LF for a single CR.
9765         (ask_for_detached_datafile): Changed arguments to be closer to
9766         those of hash_datafiles and cleanup the code a bit.
9767         * mainproc.c (proc_tree): Workaround for pgp5 textmode detached
9768         signatures.  Changed behavior of asking for data file to be the same
9769         as with provided data files.
9770
9771         * keylist.c (list_keyblock): Use UTF8 print functions.
9772
9773 Mon Aug 30 20:38:33 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
9774
9775         * import.c (chk_self_sigs): some s/log_error/log_info/ so that gpg
9776         does not return an error if a key has some invalid packets.
9777
9778         * helptext.c: Fixed some typos and changed the way the
9779         translation works.  The english text is now the keyword for gettext
9780         and not anymore the keyword supplied to the function.  Done after
9781         some discussion with Walter who thinks this is much easier for the
9782         translators.
9783
9784         * misc.c (disable_core_dumps): Don't do it for DOSish systems.
9785
9786         * signal.c (signal_name): Bounds check on signum.
9787
9788 Wed Aug  4 10:34:18 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
9789
9790         * pubring.asc: Updated.
9791
9792         * pkclist.c (do_we_trust_pre,check_signatures_trust): Do not print
9793         the warning about --always_trust when --quiet is used.
9794
9795         * pkclist.c (fpr_info): New and called at several places.
9796
9797         * parse-packet.c (dump_sig_subpkt): List revocation key contents.
9798
9799 Mon Jul 26 09:34:46 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
9800
9801         * pkclist.c (build_pk_list): Fixed typo in format string.
9802
9803         * trustdb.c (create_shadow_dir): Don't translate the error string.
9804
9805         * g10.c (main): Fixed spelling of user-id.
9806         * getkey.c (find_by_name_pk,find_by_name_sk,
9807         find_by_keyid,find_by_keyid_sk): Ditto and translate it.
9808         * import.c (mark_non_selfsigned_uids_valid,delete_inv_parts): Ditto.
9809
9810
9811 Mon Jul 26 01:01:39 CEST 1999  Michael Roth <mroth@nessie.de>
9812
9813         * g10.c, options.h: New options --no-literal and --set-filesize
9814
9815         * encode.c (encode_simple, encode_crypt): Support for the options
9816         --no-literal and --set-filesize.
9817
9818         * sign.c (sign_file): ditto.
9819
9820 Fri Jul 23 13:53:03 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
9821
9822
9823         * ringedit.c (enum_keyblocks): Removed annoying error message in cases
9824         when we have no keyring at all to enum.
9825
9826         * getkey.c (classify_user_id): Rewrote to relax the recognition of
9827         keyIDs and fingerprints (Michael).
9828
9829         * mainproc.c (check_sig_and_print): Print status NO_PUBKEY.
9830         (print_failed_pkenc): Print status NO_SECKEY.
9831
9832         * import.c (mark_non_selfsigned_uids_valid): New.
9833         * g10.c: New option --allow-non-selfsigned-uid.
9834
9835         * pkclist.c (print_fpr): New.
9836         (do_we_trust_pre): Print the fpr before asking whether to use the key
9837         anyway.
9838         (do_edit_ownertrust): Likewise.
9839
9840 Thu Jul 22 20:03:03 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
9841
9842
9843         * ringedit.c (enum_keyblocks): Removed annoying error message in cases
9844         when we have no keyring at all to enum.
9845
9846         * getkey.c (classify_user_id): Rewrote to relax the recognition of
9847         keyIDs and fingerprints (Michael).
9848
9849         * mainproc.c (check_sig_and_print): Print status NO_PUBKEY.
9850         (print_failed_pkenc): Print status NO_SECKEY.
9851
9852         * import.c (mark_non_selfsigned_uids_valid): New.
9853         * g10.c: New option --allow-non-selfsigned-uid.
9854
9855 Thu Jul 15 10:15:35 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
9856
9857         * g10.c: New options --disable-{cipher,pubkey}-algo.
9858
9859 Wed Jul 14 19:42:08 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
9860
9861         * status.h (STATUS_IMPORTED): New.
9862         * import.c (import): Print some status information (Holger Schurig).
9863
9864         * g10.c (main): Make --no-greeting work again. Add a warning when
9865         --force-mds is used.
9866
9867 Tue Jul 13 17:39:25 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
9868
9869         * pkclist.c (do_edit_ownertrust): Changed the way help works.
9870         (build_pk_list): Implemented default recipient stuff.
9871         * g10.c: New options --default-recipient[-self]
9872         (main): Suppress greeting in most cases, entering a passphrase or
9873         a missing value is not considered to be interactive use.
9874         Merged --print-md and --print-mds; the latter is now obsolete.
9875         Changed the way --gen-random works and documented it.
9876         Changed the way --gen-prime works and add a man entry.
9877         * g10.c (MAINTAINER_OPTIONS): Removed.
9878
9879 Mon Jul 12 18:45:57 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
9880
9881         * keyedit.c (keyedit_menu): Add arg sign_mode and changed callers
9882         * g10.c (main): New command --lsign-key.
9883
9884 Mon Jul 12 14:55:34 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
9885
9886         * mainproc.c (kidlist_item): New.
9887         (release_list): Release failed pk-enc-list.
9888         (print_failed_pkenc): New
9889         (proc_encrypted): Print info about failed PK enc.
9890
9891         * openfile.c (make_outfile_name): s/error/info/
9892
9893         * passphrase.c (passphrase_to_dek): Return an empty passphrase when
9894         in batch mode and don't make the warning message fatal
9895         * seckey-cert.c (check_secret_key): Try only once when in batch mode.
9896
9897         * g10.c (make_username): New.
9898
9899 Thu Jul  8 16:21:27 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
9900
9901
9902         * packet.h (PKT_ring_trust): New
9903         * parse-packet.c (parse_trust): Store trust value
9904         * build-packet (build_packet): Ignore ring trust packets.
9905         * mainproc.c (add_ring_trust): New.
9906         (list_node): Print "rtv" records.
9907         * g10.c: New option --with-fingerprint.
9908
9909         * trustdb.c (verify_own_keys): Don't insert if we are dry running
9910         (check_trust): Ditto.
9911
9912 Wed Jul  7 13:08:40 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
9913
9914         * Makefile.am: Support for libtool.
9915
9916         * keygen.c (ask_expire_interval): Hack to allow for an expire date.
9917
9918         * trustdb.c (do_update_trust_record,update_trust_record): Splitted.
9919         (check_trust_record): New.
9920         (check_trust,build_cert_tree): Check the dir record as needed.
9921         (upd_pref_record): Removed.
9922         (make_pref_record): New.
9923         (propagate_validity): Stop as soon as we have enough validity.
9924
9925         * tbdio.c (MAX_CACHE_ENTRIES_HARD): Increased the limit.
9926
9927
9928 Fri Jul  2 11:45:54 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
9929
9930         * g10.c (g10_exit): Dump random stats.
9931
9932         * sig-check.c (check_key_signature,check_key_signature2): Enhanced
9933         version and wrapper for old function.
9934         (do_signature_check,signature_check): Ditto.
9935
9936 Thu Jul  1 12:47:31 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
9937
9938
9939         * keyedit.c (show_key_with_all_names): Print a notice for disabled keys.
9940         (enable_disable_keys): Add functionality
9941         * pkclist.c (edit_ownertrust): preserve disabled state.
9942         (build_pk_list): Skip disabled keys.
9943         * trustdb.c (upd_one_ownertrust): Ditto.
9944         (build_cert_tree): Mask the ownertrust.
9945         (trust_letter): Mask the value.
9946         (do_check): Take disabled flag into account.
9947
9948         * passphrase.c (passphrase_to_dek): Add a pubkey_algo arg and changed
9949         all callers.
9950
9951         * g10.c (utf8_strings): 2 new options.
9952
9953         * trustdb.c (insert_trust_record_by_pk): New, replaces the next one.
9954         (insert_trust_record): Now takes a keyblock as arg.  Changed all
9955         callers to use the appropritae function.
9956
9957         * openfile.c (ask_outfile_name): New.
9958         * plaintext.c (handle_plaintext): Ask for filename if there is
9959         no valid syntax. Don't use fname varbatim but filter it.
9960
9961 Tue Jun 29 21:44:25 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
9962
9963
9964         * trustdb.h (TRUST_FLAG_DISABLED): New.
9965
9966         * status.c (USE_CAPABILITIES): Capabilities support (Remi).
9967
9968         * tdbio.c : Added new fields to the DIR record.
9969         (tdbio_write_record): Fixed the update of the hash tables.
9970         (tdbio_delete_record): Drop the record from the hash tables.
9971         (drop_from_hashtbl): New.
9972
9973         * status.c (cpr_get): Special online help mode.
9974         * helptext.c ("keyedit.cmd"): Removed.
9975         * keyedit.c (keyedit_menu): Use only help system.
9976         (enable_disable_key): New bit doies not yet work.
9977
9978 Sat Jun 26 12:15:59 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
9979
9980
9981         * dearmor.c (enarmor_file): Fixed comment string.
9982         * tdbdump.c (export_ownertrust): Text fix.
9983         * tbio.c (tdbio_invalid): Ditto.
9984
9985         * parse-packet.c (parse_key): Made temp buffer larger.
9986
9987         * Makefile.am (install-data-local): Add missing backslashes
9988
9989 Tue Jun 15 12:21:08 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
9990
9991         * g10.c (main): Made iterated+salted the default S2K method.
9992
9993         * Makefile.am (install-data-local): Use DESTDIR.
9994
9995         * passphrase.c (passphrase_to_dek): Emit missing-passphrase while in
9996         batchmode.
9997
9998         * parse-packet.c (parse_pubkeyenc): Fixed a SEGV.
9999
10000 Mon Jun 14 21:18:54 CEST 1999 Michael Roth <mroth@nessie.de>
10001
10002         * g10.c: New options --openpgp, --no-tty, --emit-version,
10003           --default-comment and --lock-multiple
10004
10005 Thu Jun 10 14:18:23 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
10006
10007         * free-packet.c (free_encrypted): Fixed EOF case (Remi).
10008         (free_plaintext): Ditto.
10009
10010         * helptext.c (keyedit.delsig.unknown): New (Remi).
10011         * keyedit.c (print_and_check_one_sig): Add arg print_without_key and
10012         changed all callers to make use of it (Remi):
10013
10014 Tue Jun  8 13:36:25 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
10015
10016         * keylist.c (print_key_data): New and called elsewhere.
10017         * g10.c: New option --with-key-data
10018
10019 Wed Jun  2 14:17:19 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
10020
10021         * mainproc.c (proc_tree): Yet another bad hack to cope with
10022         broken pgp2 created detached messages in textmode.
10023
10024 Tue Jun  1 16:01:46 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
10025
10026         * openfile.c (make_outfile_name): New.
10027         * plaintext.c (handle_plaintext): Outputfile is now the inputfile
10028         without the suffix.
10029         * g10.c: New option --use-embedded-filename
10030
10031 Mon May 31 19:41:10 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
10032
10033         * g10.c (main): Fix for SHM init (Michael).
10034
10035         * compress.c, encr-data.c, mdfilter.c,
10036           plaintext.c, free-packet.c: Speed patches (Rémi).
10037
10038 Thu May 27 09:40:55 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
10039
10040         * status.c (cpr_get_answer_yes_no_quit): New.
10041         * keyedit.c (menu_delsig): New.
10042         (check_all_keysigs): Splitted.
10043         (print_and_check_one_sig): New.
10044
10045 Wed May 26 14:36:29 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
10046
10047         * build-packet.c (build_sig_subpkt): Support large packets.
10048         * parse-packet.c (enum_sig_subpkt): Replaces parse_sig_subpkt.
10049         * mainproc.c (print_notation_data): Print all notation packets.
10050         * g10.c (add_notation_data): Add a way to specify the critical flag.
10051         (main): Add option --set-policy-url.
10052         (check_policy_url): Basic checks.
10053         * sign.c (mk_notation_and_policy): Replaces mk_notation.
10054
10055         * parse-packet.c (can_handle_critical): Moved decision whether we can
10056         handle critical subpacket to an extra function.
10057
10058 Tue May 25 19:50:32 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
10059
10060         * sign.c (sign_file): Always use compression algo 1 for signed
10061         onyl file becuase we can´ be sure the the verifier supports other
10062         algorithms.
10063
10064         * build-packet.c (build_sig_subpkt): Support for notation data.
10065         * sign.c (sign_file,clearsign_file,make_keysig_packet): Ditto.
10066         (mk_notation): New.
10067         * g10.c (add_notation_data): New and add option -N
10068         * mainproc.c (print_notation_data): New.
10069         (check_sig_and_print): Print any notation data of the signed text.
10070
10071 Sun May 23 14:20:22 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
10072
10073         * pkclist.c (check_signatures_trust): Print a warning and return
10074         immediateley if opt.always_trust is true.
10075
10076         * g10.c (main): Corrected handling of no-default-keyring
10077
10078         * pkclist.c (algo_available): Disable Twofish until we have settled
10079         how to do the MDC.
10080
10081         * hkp.c: Disable everything for mingw32
10082
10083 Sat May 22 22:47:26 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
10084
10085         * mainproc.c (check_sig_and_print): Add sig creation time to the
10086         VALIDSIG status output. Add more info to the ERRSIG output.
10087         * sig-check.c (signature_check): Add sig time after epoch to SIG_ID.
10088
10089         * import.c (import_one): Merge duplicate user IDs.
10090         (collapse_uids): New.
10091         * kbnode.c (move_kbnode): New.
10092         (remove_kbnode): New.
10093         * keyedit.c (keyedit_menu): Call collapse_uids.
10094
10095         * g10.c: new option --logger-fd.
10096
10097         * import.c: s/log_*_f/log_*/
10098
10099 Thu May 20 14:04:08 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
10100
10101         * misc.c (pull_in_libs): do the volatile only for gcc
10102
10103         * sig-check (signature_check): Emit SIG_iD only for classes 0 and 1.
10104
10105         * armor.c (armor_filter): Add detection of PGP2 created clearsigs.
10106         (fake_packet): A tab is not a WS for pgp2 - handle this.
10107         * textfilter.c (len_without_trailing_chars): New.
10108         (copy_clearsig_text): Add pgp2mode arg.
10109         * sign.c (clearsign_file): pass old_style to the above fnc.
10110
10111
10112 Wed May 19 16:04:30 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
10113
10114         * g10.c: New option --interactive.
10115
10116         * mainproc.c (proc_plaintext): Add workaround for pgp2 bug
10117         (do_check_sig): Ditto.
10118         (proc_tree): Ditto.
10119         * plaintext.c (do_hash): Ditto.
10120         (hash_datafiles): Ditto, add an arg, changed all callers.
10121         * mdfilter.c (md_filter): Add support for the alternate hash context.
10122
10123 Mon May 17 21:54:43 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
10124
10125         * parse-packet.c (parse_encrypted): Support for PKT_ENCRYPTED_MDC.
10126         * build-packet.c (do_encrypted_mdc): Ditto.
10127         * cipher.c (write_header): Add mdc hashing.
10128         (cipher_filter): write out the hash.
10129         * mainproc.c (do_proc_packets): Add PKT_ENCRYPTED_MDC.
10130         * encr-data.c (decrypt_data): Add mdc hashing.
10131         (mdc_decode_filter): New.
10132
10133         * parse-packet.c (parse_sig_subpkt): Fixed stupid bug for subpkt
10134         length calculation
10135         (parse_signature): Fixed even more stupid bug.
10136
10137 Sat May  8 19:28:08 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
10138
10139         * build-packet.c (do_signature): Removed MDC hack.
10140         * encode.c (encode_crypt_mdc): Removed.
10141         * mainproc.c (do_check_sig): Removed MDC hack.
10142         (check_sig_and_print): Ditto.
10143         * parse-packet.c (parse_signature): Ditto.
10144         * sig-check.c (mdc_kludge_check): Ditto.
10145         * free-packte.c (copy_signature, free_seckey_enc): Ditto.
10146
10147         * parse-packet.c (parse_signature,parse_key): Store data of
10148         unknown algorithms with mpi_set_opaque inseatd of the old
10149         faked data stuff.
10150         (read_rest): Removed.
10151         (read_rest2): Renamed to read_rest
10152         * build-packet.c (write_fake_data): Use mpi_get_opaque.
10153         * free-packet.c (cp_fake_data): Removed and cahnged all callers
10154         to use mpi_copy.
10155         (free_pubkey_enc,free_seckey_enc,release_public_key_parts,
10156          release_secret_key_parts): Use mpi_free for opaque data.
10157
10158 Thu May  6 14:18:17 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
10159
10160         * trustdb.c (check_trust): Check for revoked subkeys.
10161         * pkclist.c (do_we_trust): Handled revoked subkeys.
10162         (do_we_trust_pre): Ditto.
10163         (check_signatures_trust): Ditto.
10164
10165         * build-packet.c (hash_public_key): Fix for ancient g10 keys.
10166
10167         * mainproc.c (do_proc_packets): Return EOF if no data has been read.
10168         * g10.c (main): Catch errors for default operation.
10169
10170 Thu Apr 29 12:29:22 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
10171
10172         * sign.c (sign_file): Fixed hashing in case of no subpackets.
10173         (clearsign_file): Ditto.
10174         (make_keysig_packet): Ditto.
10175
10176 Wed Apr 28 13:03:03 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
10177
10178         * keyedit.c (keyedit_menu): Add new command revkey.
10179         * (menu_revkey): New.
10180
10181
10182 Mon Apr 26 17:48:15 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
10183
10184         * parse-packet.c (parse_signature): Add the MDC hack.
10185         * build-packet.c (do_signature): Ditto.
10186         * free-packet.c (free_seckey_enc,copy_signature,cmp_signatures): Ditto.
10187         * mainproc.c (do_check_sig): Ditto.
10188         * sig-check.c (mdc_kludge_check): New.
10189         * encode.c (encrypt_mdc_file): New.
10190
10191         * keyedit.c (check_all_keysigs): List revocations.
10192         * (menu_revsig): New.
10193         * sign (make_keysig_packet): Support for class 0x30.
10194
10195 Sun Apr 18 20:48:15 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
10196
10197         * pkclist.c (select_algo_from_prefs): Fixed the case that one key
10198         has no preferences (Remi Guyomarch).
10199
10200         keylist.c (list_keyblock): ulti_hack to propagate trust to all uids.
10201
10202 Sun Apr 18 10:11:28 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
10203
10204         * seckey-cert.c (do_check): Use real IV instead of a 0 one, so that
10205         it works even if the length of the IV doesn't match the blocksize.
10206         Removed the save_iv stuff.
10207         (protect_secret_key): Likewise.  Create the IV here.
10208         * packet.h (PKT_secret_key): Increased size of IV field and add a
10209         ivlen field.
10210         * parse-packet.c (parse_key): Use the len protect.ivlen.
10211         * build-packet.c (do_secret_key). Ditto.
10212
10213         * getkey.c (key_byname): Close keyblocks.
10214
10215         * Makefile.am (gpgm): Removed this
10216         * g10.c: Merged gpg and gpgm
10217
10218         * import.c (import): Utilize option quiet.
10219         * tdbio.c (tdbio_set_dbname): Ditto.
10220         * ringedit.c (add_keyblock_resource,keyring_copy): Ditto.
10221
10222         * keyedit.c (sign_uids): Add some batch support.
10223
10224         * g10.c (main): add call to tty_batchmode.
10225
10226 Fri Apr  9 12:26:25 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
10227
10228         * status.c (write_status_text): Some more status codes.
10229         * passphrase_to_dek (passphrase_to_dek): add a status code.
10230         * seckey_cert.c (check_secret_key): Likewise.
10231
10232         * encr-data.c (decrypt_data): Reverse the last changes
10233         * cipher.c (write_header): Ditto.
10234
10235         * parse-packet.c (parse_key): Dropped kludge for ancient blowfish mode.
10236
10237 Thu Apr  8 09:35:53 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
10238
10239         * mainproc.c (proc_encrypted): Add a new status output
10240         * passphrase.c (passphrase_to_dek): Ditto.
10241         * status.h status.c: Add new status tokens.
10242
10243 Wed Apr  7 20:51:39 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
10244
10245         * encr-data.c (decrypt_data): Fixes for 128 bit blocksize
10246         * cipher.c (write_header): Ditto.
10247         * seckey-cert.c (do_check): Ditto.
10248         (protect_secret_key). Ditto.
10249         * misc.c (print_cipher_algo_note): Twofish is now a standard algo.
10250
10251         * keygen.c (do_create): Fixed spelling (Gaël Quéri)
10252         (ask_keysize): Only allow keysizes up to 4096
10253
10254         * ringedit.c (add_keyblock_resource): chmod newly created secrings.
10255
10256         * import.c (delete_inv_parts): Fixed accidently deleted subkeys.
10257
10258 Tue Apr  6 19:58:12 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
10259
10260         * armor.c: Removed duped include (John Bley)
10261         * mainproc.c: Ditto.
10262
10263         * build-packet.c (hash_public_key): Fixed hashing of the header.
10264
10265         * import.c (delete_inv_parts): Allow import of own non-exportable sigs.
10266
10267 Sat Mar 20 13:59:47 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
10268
10269         * armor.c (fake_packet): Fix for not not-dash-escaped
10270
10271 Sat Mar 20 11:44:21 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
10272
10273         * g10.c (main): Added command --recv-keys
10274         * hkp.c (hkp_import): New.
10275
10276 Wed Mar 17 13:09:03 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
10277
10278         * trustdb.c (check_trust): add new arg add_fnc and changed all callers.
10279         (do_check): Ditto.
10280         (verify_key): Ditto.
10281         (propagate_validity): Use the new add_fnc arg.
10282         (print_user_id): Add the FILE arg.
10283         (propagate_ownertrust): New.
10284         * pkclist.c (add_ownertrust_cb): New and changed the add_ownertrust
10285         logic.
10286
10287         * getkey.c (get_keyblock_bylid): New.
10288         * trustdb.c (print_uid_from_keyblock): New.
10289         (dump_tn_tree_with_colons): New.
10290         (list_trust_path): Add colon print mode.
10291
10292         * trustdb.c (insert_trust_record): Always use the primary key.
10293
10294         * encode.c (encode_simple): Added text_mode filter (Rémi Guyomarch)
10295         (encode_crypt): Ditto.
10296
10297         * mainproc.c (proc_pubkey_enc): Added status ENC_TO.
10298         * armor.c (armor_filter): Added status NODATA.
10299         * passphrase.c (passphrase_to_dek): Always print NEED_PASSPHRASE
10300         * seckey_cert.c (check_secret_key): Added BAD_PASS status.
10301
10302         * g10.c (main): Set g10_opt_homedir.
10303
10304 Sun Mar 14 19:34:36 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
10305
10306         * keygen.c (do_create): Changed wording of the note (Hugh Daniel)
10307
10308 Thu Mar 11 16:39:46 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
10309
10310         * tdbdump.c: New
10311
10312         * trustdb.c (walk_sigrecs,do_list_sigs,list_sigs,
10313         list_records,list_trustdb,export_ownertrust,import_ownertrust): Moved
10314         to tdbdump.c
10315         (init_trustdb): renamed to setup_trustdb.  Changed all callers.
10316         (do_init_trustdb): renamed to init_trustdb().
10317         * trustdb.c (die_invalid_db): replaced by tdbio_invalid.
10318         * tdbio.c (tdbio_invalid): New.
10319
10320         * import.c (delete_inv_parts): Skip non exportable signatures.
10321         * keyedit.c (sign_uid_mk_attrib): New.
10322         (sign_uids): Add the local argument.
10323         (keyedit_menu): New "lsign" command.
10324         * trustdb.c (register_trusted_key): Removed this and all related stuff.
10325         * g10.c (oTrustedKey): Removed option.
10326
10327         * tdbio.h (dir.valcheck): New trustdb field.
10328         * tdbio.c: Add support for this field
10329         (tdbio_read_modify_stamp): New.
10330         (tdbio_write_modify_stamp): New.
10331         * trustdb.c (do_check): Check against this field. Removed cache update.
10332         (verify_key): Add cache update.
10333         (upd_uid_record): Some functional changes.
10334         (upd_cert_record): Ditto
10335
10336 Wed Mar 10 11:26:18 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
10337
10338         * keylist.c (list_keyblock): Fixed segv in uid. Print 'u' as
10339         validity of sks.
10340
10341 Mon Mar  8 20:47:17 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
10342
10343         * getkey.c (classify_user_id): Add new mode 12 (#<lid>).
10344
10345         * seckey-cert.c (check_secret_key): replaced error by info.
10346
10347         * trustdb.c (query_trust_info): Add another arg, changed all callers.
10348         (check_trust): Ditto.
10349         (do_check): Ditto.
10350         (verify_key): Handle namehash.
10351         * keylist.c (list_keyblock): print trust info for user ids.
10352
10353         * sig-check.c (signature_check): Add sig-created to status output.
10354
10355 Tue Mar  2 16:44:57 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
10356
10357         * textfilter.c (copy_clearsig_text): New.
10358         (clearsign): Removed.
10359         * sign.c (clearsign_file): does not use textfiler anymore.
10360
10361         * keygen.c (ask_user_id): print a note about the used charset.
10362
10363 Tue Mar  2 10:38:42 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
10364
10365         * sig-check.c (signature_check): sig-id now works for all algos.
10366
10367         * armor.c (armor_filter): Fixed armor bypassing.
10368
10369 Sun Feb 28 19:11:00 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
10370
10371         * keygen.c (ask_user_id): Don't change the case of email addresses.
10372         (has_invalid_email_chars): Adjusted.
10373
10374         * keylist.c (list_one): Really list serect keys (Remi Guyomarch)
10375
10376         * keyedit.c (menu_select_uid): Add some braces to make egcs happy.
10377         (menu_select_key): Ditto.
10378
10379         * mainproc.c (do_proc_packets): List sym-enc packets (Remi Guyomarch)
10380
10381 Fri Feb 26 17:55:41 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
10382
10383         * pkclist.c (build_pk_list): Return error if there are no recipients.
10384
10385         * sig-check.c (signature_check): New signature id feature.
10386         * armor.c (make_radic64_string): New.
10387
10388         * mainproc.c (proc_pubkey_enc): early check for seckey availability.
10389
10390         * pkclist.c (do_we_trust_pre): print user id before asking.
10391
10392         * ringedit.c (add_keyblock_resource,get_keyblock_handle): Cleaner
10393         handling of default resource.
10394
10395
10396 Thu Feb 25 18:47:39 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
10397
10398         * pkclist.c (algo_available): New.
10399         (select_algo_from_prefs): Check whether algo is available.
10400
10401         * ringedit.c (keyring_copy): Take care of opt.dry_run.
10402         (do_gdbm_store): Ditto.
10403         * openfile.c (open_outfile). Ditto.
10404         (copy_options_file): Ditto.
10405         * trustdb.c (update_trustdb): Ditto.
10406         (clear_trust_checked_flag): Ditto.
10407         (update_trust_record): Ditto.
10408         (insert_trust_record): Ditto.
10409
10410 Wed Feb 24 11:07:27 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
10411
10412         * keylist.c (secret_key_list): Now really list the secret key.
10413
10414         * trustdb.c (do_init_trustdb): New. Init is now deferred.
10415
10416 Mon Feb 22 20:04:00 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
10417
10418         * getkey.c (lookup_sk): Return G10ERR_NO_SECKEY and not x_PUBKEY.
10419
10420 Fri Feb 19 15:49:15 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
10421
10422         * pkclist.c (select_algo_from_prefs): retrieve LID if not there.
10423
10424         * armor.c (fake_packet): Replaced ugly lineending handling.
10425
10426         * g10.c (oNoEncryptTo): New.
10427         * pkclist.c (build_pk_list): Implemented this option.
10428
10429         * g10.c (main): Greeting is now printed to stderr and not to tty.
10430         Use add_to_strlist() instead of direct coding.
10431
10432         * import.c (import): Use iobuf_push_filter2.
10433
10434         * mainproc.c (check_sig_and_print): Print all user ids
10435         for good signatures.
10436         * getkey.c (get_pubkeyblock): New.
10437
10438         * import.c (chk_self_sigs): Fixed SEGV for unbounded class 0x18 keys.
10439         (delete_inv_parts): Delete special marked packets.
10440
10441 Tue Feb 16 14:10:02 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
10442
10443         * g10.c (main): New option --encrypt-to
10444
10445         * pkclist.c (build_pk_list): Implemented encrypt-to.
10446
10447         * parse-packet.c (parse_user_id): Removed the hack to work with
10448         utf-8 strings.
10449
10450         * g10.c (main): Install lockfile cleanup handler.
10451         * tdbio.c (cleanup): Removed: this is now handled by dotlock.
10452
10453 Sat Feb 13 14:13:04 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
10454
10455         * tdbio.c (tdbio_set_dbname): Init lockhandle for a new trustdb
10456
10457 Wed Feb 10 17:15:39 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
10458
10459         * g10.c (main): check for development version now in configure
10460
10461         * tdbio.c (tdbio_write_record): Add uid.validity
10462         (tdbio_read_record) : Ditto.
10463         (tdbio_dump_record) : Ditto.
10464
10465         * keygen.c (keygen_add_std_prefs): Replaced Blowfish by Twofish,
10466         removed MD5 and Tiger.
10467         * pubkey-enc.c (get_it): Suppress warning about missing Blowfish
10468         in preferences in certain cases.
10469
10470         * ringedit.c (lock_rentry,unlock_rentry): New.
10471
10472         * getkey.c (key_byname): Pass ret_kb down to lookup_xx.
10473
10474         * armor.c (armor_filter): No output of of empty comment lines.
10475         Add option --no-version to suppress the output of the version string.
10476
10477         * getkey.c: Release the getkey context for auto context variables.
10478
10479 Sun Jan 24 18:16:26 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
10480
10481         * getkey.c: Changed the internal design to allow simultaneous
10482         lookup of multible user ids
10483         (get_pubkey_bynames): New.
10484         (get_seckey_bynames): New.
10485         (get_seckey_next): New.
10486         (get_seckey_end): New.
10487         * keylist.c (list_one): Use the new functions.
10488
10489         * keylist.c (list_keyblock): add a newline for normal listings.
10490
10491         * g10.c (--recipient): New option name to replace --remote-user
10492
10493
10494 Wed Jan 20 18:59:49 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
10495
10496         * textfilter.c: Mostly rewritten
10497         * plaintext.c (handle_plaintext): Use now text_filter semantics.
10498
10499 Tue Jan 19 19:34:58 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
10500
10501         * export.c (export_pubkeys_stream): New.
10502         (do_export_stream): New.
10503         * g10.c (aSendKeys): New command.
10504         * hkp.c (hkp_export): New.
10505
10506         * compress.c (do_uncompress): Hack for algo 1 and 1.1.3
10507
10508 Sun Jan 17 11:04:33 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
10509
10510         * textfilter.c (text_filter): Now uses iobuf_read_line().
10511         (read_line): Removed.
10512
10513         * armor.c (trim_trailing_spaces): Removed and replaced
10514         by trim_trailing_ws from libutil
10515
10516 Sat Jan 16 12:03:27 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
10517
10518         * hkp.c (hkp_ask_import): Use only the short keyid
10519
10520 Sat Jan 16 09:27:30 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
10521
10522         * import.c (import_key_stream): New
10523         (import): New, moved most of import_keys here.
10524         * g10.c: New option --keyserver
10525         * mainproc.c (check_sig_and_print): Hook to import a pubkey.
10526
10527         * pref.c pref.h : Removed
10528
10529         * hkp.c hkp.h: New
10530
10531 Wed Jan 13 14:10:15 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
10532
10533         * armor.c (radix64_read): Print an error if a bad armor was detected.
10534
10535 Wed Jan 13 12:49:36 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
10536
10537         * armor.c (radix64_read): Now handles malformed armors produced
10538         by some buggy MUAs.
10539
10540 Tue Jan 12 11:17:18 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
10541
10542         * ringedit.c (find_keyblock_bysk): New.
10543
10544         * skc_list.c (is_insecure): New.
10545         (build_sk_list): usage check for insecure keys.
10546
10547         * import.c (chk_self_sigs): Add handling for subkeys.
10548         (delete_inv_parts): Skip unsigned subkeys
10549
10550         * sig-check.c (do_check): Print info if the signature is older
10551         than the key.
10552         * keygen.c (generate_subkeypair): Fail on time warp.
10553         * sign.c (do_sign): Ditto.
10554
10555 Sun Jan 10 15:10:02 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
10556
10557         * armor.c (fake_packet): Fixed not-dash-escaped bug.
10558
10559 Sat Jan  9 16:02:23 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
10560
10561         * sig-check.c (do_check): Output time diff on error
10562
10563         * status.c (STATUS_VALIDSIG): New.
10564         (is_status_enabled): New.
10565         * mainproc.c (check_sig_and_print): Issue that status message.
10566
10567         * plaintext.c (special_md_putc): Removed
10568
10569         * armor.c (armor_filter): print error for truncated lines.
10570
10571         * free-packet.c (free_encrypted): Revomed call to set_block_mode.
10572         (free_plaintext): Ditto.
10573
10574 Thu Jan  7 18:00:58 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
10575
10576         * pkclist.c (add_ownertrust): Fixed return value.
10577
10578         * encr-data.c (decrypt_data): Disabled iobuf_set_limit and
10579         iobuf_pop_filter stuff.
10580         * compress.c (handle_compressed): Disabled iobuf_pop_filter.
10581
10582         * packet.h (PKT_secret_key): Add is_primary flag.
10583         * parse-packet.c (parse_key): Set this flag.
10584         * passphrase.c (passphrase_to_dek): Kludge to print the primary
10585         keyid - changed the API: keyid must now hold 2 keyids.
10586         * getkey.c (get_primary_seckey): New.
10587         * seckey-cert.c (do_check): pass primary keyid to passphrase query
10588
10589         * tbdio.c (open_db): removed the atexit
10590         (tdbio_set_dbname): and moved it to here.
10591
10592         * armor.c: Rewrote large parts.
10593
10594 Tue Dec 29 19:55:38 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
10595
10596         * revoke.c (gen_revoke): Removed compression.
10597
10598         * pkclist.c (do_we_trust_pre): special check for revoked keys
10599
10600         * trustdb.c (update_trust_record): Fixed revoke flag.
10601
10602 Tue Dec 29 14:41:47 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
10603
10604         * misc.c (disable_core_dumps): Check for EINVAL (Atari)
10605
10606         * getkey (merge_one_pk_and_selfsig): Fixed search of expiredate.
10607         (merge_keys_and_selfsig): Ditto.
10608
10609         * free-packet.c (cmp_public_keys): cmp expire only for v3 packets
10610         (cmp_secret_keys): Ditto.
10611         (cmp_public_secret_key): Ditto.
10612
10613 Wed Dec 23 17:12:24 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
10614
10615         * armor.c (find_header): Reset not_dashed at every header
10616
10617 Wed Dec 23 13:18:14 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
10618
10619         * pkclist.c (add_ownertrust): Refresh validity values.
10620
10621         * trustdb.c (enum_cert_paths_print): New arg refresh.
10622
10623         * ringedit.c: Fixed problems fix keyrings
10624         * parse-packet.c (dbg_parse_packet): New debug functions.
10625
10626         * getkey.c (getkey_disable_caches): New.
10627         * import.c (import_keys): Disable caches.
10628
10629 Thu Dec 17 18:31:15 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
10630
10631         * misc.c (trap_unaligned): Only for glibc 1
10632
10633         * sign.c (write_dash_escaped): Now escapes "From " lines
10634         * g10.c: New option --escape-from-lines
10635
10636         * trustdb.c (sort_tsl_list): New
10637         (list_trust_path): Now prints sorted list.
10638         (enum_cert_paths): Likewise.
10639         (enum_cert_paths_print): New.
10640         (print_paths): New printing format.
10641         * pkclist.c (add_ownertrust): New arg quit.
10642         (edit_ownertrust): New quit selection and does not query
10643         the recipients ownertrust anymore.
10644         (add_ownertrust): Print the ceritficate path.
10645
10646
10647 Mon Dec 14 21:18:49 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
10648
10649         * parse-packet.c (parse_signature): Now checks for critical bit
10650         (parse_sig_subpkt): Splitted.
10651         (parse_one_sig_subpkt): New.
10652         * sig-check.c (do_check): handle critical bit.
10653
10654 Sun Dec 13 14:10:56 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
10655
10656         * pcklist.c (select_algo_from_prefs): Preferences should
10657         now work (lost the != ? )
10658
10659 Thu Dec 10 20:15:36 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
10660
10661         * ringedit.c (gdbm_store): Fix for inserts
10662
10663         * g10.c (main): New option --export-all
10664         * export.c (export_pubkeys): New arg.
10665         (do_export): Now may skip old keys.
10666
10667         * status.c: Minor patches for Sun's cc
10668
10669         * keygen.c (ask_algo): Disabled v3 ElGamal choice, rearranged
10670          the numbers.  Add a warning question when a sign+encrypt key
10671          is selected.
10672
10673         * g10.c (do_not_use_RSA): Removed.
10674         * misc.c (print_pubkey_algo_note): New as replacement for the
10675         do_not_use_RSA() and chnaged all callers.
10676         (print_cipher_algo_note): New.
10677         (print_hash_algo_note): New.
10678
10679         * cipher.c (write_header): Add a call to print_cipher_algo_note.
10680         * seckey-cert.c (protect_secret_key): Ditto
10681         * sign.c (do_sign): Add a call to print_digest_algo_note.
10682
10683         * getkey.c (get_long_user_id_string): New.
10684         * mainproc.c (check_sig_and_print): Changed the format of the
10685         status output.
10686
10687         * encrypt.c (write_pubkey_enc_from_list): print used symmetric cipher.
10688
10689         * pkclist.c (do_we_trust): Changed a message.
10690
10691 Wed Dec  9 13:41:06 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
10692
10693         * misc.c (trap_unaligned) [ALPHA]: Only if UAC_SIGBUS is defined.
10694
10695         * sign.c (write_dash_escaped): Add the forgotten patch by Brian Moore.
10696
10697         * compress.c (do_uncompress): Fixed the inflating bug.
10698
10699
10700 Tue Dec  8 13:15:16 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
10701
10702         * trustdb.c (upd_uid_record): Now uses the newest self-signature
10703         (insert_trust_record): Now calls update with recheck set to true.
10704         (register_trusted_key): New.
10705         (verify_own_keys): Enhanced by list of trusted keys.
10706
10707         * g10.c (main): Print a warning when a devel version is used.
10708         (main): New option --trusted-key
10709
10710         * import.c (merge_blocks): Fixed merging of new user ids and
10711         added merging of subkeys.
10712         (append_uid): Ditto.
10713         (merge_keysig): New.
10714         (append_key): New.
10715         * getkey.c (merge_one_pk_and_selfsig): Get the expiration time
10716         from the newest self-signature.
10717         (merge_keys_and_selfsig): Ditto.
10718
10719         * free-packet.c (cmp_secret_key): New.
10720
10721
10722 Fri Nov 27 21:37:41 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
10723
10724         * g10.c: New option --lock-once
10725         * tdbio.c (open_db): Add an atexit
10726         (cleanup): New.
10727         (tdbio_sync): Add locking.
10728         (tdbio_end_transaction): Ditto.
10729         (put_record_into_cache): Ditto.
10730         * ringedit.c (keyring_copy): Ditto.
10731         (cleanup): New.
10732         (add_keyblock_resource): Add an atexit.
10733
10734 Fri Nov 27 15:30:24 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
10735
10736          * armor.c (find_header): Another fix for clearsigs.
10737
10738 Fri Nov 27 12:39:29 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
10739
10740
10741         * status.c (display_help): Removed.
10742         * helptext.c: New and removed the N_() from all cpr_gets.
10743
10744
10745 Fri Nov 20 16:54:52 1998  Werner Koch  (wk@isil.d.shuttle.de)
10746
10747         * g10.c (main): New option --not-dash-escaped
10748         * sign.c (write_dashed_escaped): Ditto.
10749         * armor.c (find_header): Support for NotDashEscaped header.
10750
10751         * getkey.c: print "disabled cache.." only if verbose is used.
10752
10753 Thu Nov 19 07:17:31 1998  Werner Koch  <werner.koch@guug.de>
10754
10755         * parse-packet.c (dump_sig_subpkt): Fixed expire listing
10756         * getkey.c (merge_keys_and_selfsig): Fixed expire calculation.
10757         (merge_one_pk_and_selfsig): Ditto.
10758         * keyedit.c (menu_expire). Ditto.
10759         * keygen.c (keygen_add_key_expire): Ditto.
10760         (ask_expire_interval): New and changed all local function to use
10761         this instead.
10762         (keygen_add_key_expire): Opaque should now be a public key;
10763         changed all callers.
10764
10765         * parse.packet.c (parse): use skip_rest to skip packets.
10766
10767         * keyedit.c (keyedit_menu): New arg for cmdline cmds.
10768
10769 Wed Nov 18 20:33:50 1998  Werner Koch  (wk@isil.d.shuttle.de)
10770
10771         * trustdb.c (check_trustdb): Now rechecks all gived userids.
10772         (collect_paths): Some fixes.
10773         (upd_pref_records): Skips empty items, evaluate all items.
10774
10775         * parse-packet.c (dump_sig_subpkt): Better listing of prefs.
10776         (skip_packet): Now knows about marker packet
10777
10778         * g10.c: removed cmd "--edit-sig".
10779
10780         * pubring.asc: Updated.
10781
10782 Sat Nov 14 14:01:29 1998  Werner Koch  (wk@isil.d.shuttle.de)
10783
10784         * g10.c (main): Changed syntax of --list-trust-path
10785         * trustdb.c (list_trust_path): Replaced max_depth by
10786         opt.max_cert_depth
10787
10788 Fri Nov 13 07:39:58 1998  Werner Koch  <werner.koch@guug.de>
10789
10790         * trustdb.c (collect_paths): Removed a warning message.
10791         (enum_trust_web): Removed.
10792         (enum_cert_paths): New.
10793         * pkclist.c (add_ownertrust): Changed to use enum_cert_paths.
10794         (edit_ownertrust): Now list ceritficates on request.
10795         (show_paths): New.
10796
10797 Wed Nov 11 18:05:44 1998  Werner Koch  <werner.koch@guug.de>
10798
10799         * g10.c (main): New option --max-cert-depth
10800         * tdbio.h: add new fields to ver and dir record.
10801         * tdbio.c: read/write/dump of these fields.
10802         (tdbio_db_matches_options): New.
10803         * trustdb.c: replaced MAC_CERT_DEPTH by opt.max_cert_depth.
10804         (do_check): cache validity and changed other functions
10805         to reset the cached value.
10806
10807         * keylist.c (list_one): Now lists the ownertrust.
10808         * mainproc.c (list_node): Ditto.
10809
10810 Tue Nov 10 10:08:59 1998  Werner Koch  (wk@isil.d.shuttle.de)
10811
10812         * g10.c (g10_exit): Now looks at the new g10_errors_seen.
10813         * mainproc.c (check_sig_and_print): Sets g10_errors_seen.
10814
10815         * *.c : i18n many more strings.
10816
10817         * ringedit.c (locate_keyblock_by_keyid): Add HAVE_LIBGDBM
10818         (locate_keyblock_by_fpr): Ditto.
10819
10820         * g10.c (main): removed unsused "int errors".
10821         (main): Add new option --charset.
10822
10823         * g10.c (main): special message for the unix newbie.
10824
10825 Mon Nov  9 07:17:42 1998  Werner Koch  <werner.koch@guug.de>
10826
10827         * getkey.c (finish_lookup): Kludge to prefere algo 16.
10828
10829         * trustdb.c (new_lid_table): Clear cached item.
10830
10831         * status.c (cpr_get_utf8): New.
10832         * pkclist.c (build_pk_list): Uses this.
10833
10834 Sun Nov  8 17:20:39 1998  Werner Koch  (wk@isil.d.shuttle.de)
10835
10836         * mainproc.c (check_sig_and_print): Why did I use strlen()-1
10837         in the printf? - This truncated the TZ.
10838
10839 Sat Nov  7 15:57:28 1998  me,,,  (wk@tobold)
10840
10841         * getkey.c (lookup): Changes to support a read_next.
10842         (get_pubkey): Fixed a memory leak.
10843
10844         * keylist.c (list_one): Now lists all matching user IDs.
10845
10846 Tue Nov  3 16:19:21 1998  Werner Koch  (wk@isil.d.shuttle.de)
10847
10848         * keygen.c (ask_user_id): Now converted to UTF-8
10849
10850         * g10.c (main): Kludge for pgp clearsigs and textmode.
10851
10852 Fri Oct 30 16:40:39 1998  me,,,  (wk@tobold)
10853
10854         * signal.c (block_all_signals): New.
10855         (unblock_all_signals): New
10856         * tdbio.c (tdbio_end_transaction): Now blocks all signals.
10857
10858         * trustdb.c (new_lid_table): Changed the representation of the
10859         former local_lid_info stuff.
10860
10861         * trustdb.c (update_trust_record): Reorganized the whole thing.
10862         * sig-check.c (check_key_signature): Now handles class 0x28
10863
10864
10865 Wed Oct 28 18:56:33 1998  me,,,  (wk@tobold)
10866
10867         * export.c (do_export): Takes care of the exportable sig flag.
10868
10869 Tue Oct 27 14:53:04 1998  Werner Koch  (wk@isil.d.shuttle.de)
10870
10871         * trustdb.c (update_trust_record): New "fast" parameter.
10872
10873 Sun Oct 25 19:32:05 1998  Werner Koch  (wk@isil.d.shuttle.de)
10874
10875         * openfile.c (copy_options_File): New.
10876         * ringedit.c (add_keyblock_resource): Creates options file
10877         * tdbio.c (tdbio_set_dbname): Ditto.
10878
10879 Sat Oct 24 14:10:53 1998  brian moore <bem@cmc.net>
10880
10881         * mainproc.c (proc_pubkey_enc): Don't release the DEK
10882         (do_proc_packets): Ditto.
10883
10884 Fri Oct 23 06:49:38 1998  me,,,  (wk@tobold)
10885
10886         * keyedit.c (keyedit_menu): Comments are now allowed
10887
10888         * trustdb.c: Rewrote large parts.
10889
10890
10891 Thu Oct 22 15:56:45 1998  Michael Roth  (mroth@nessie.de)
10892
10893         * encode.c: (encode_simple): Only the plain filename without
10894         a given directory is stored in generated packets.
10895         (encode_crypt): Ditto.
10896
10897         * sign.c: (sign_file) Ditto.
10898
10899
10900 Thu Oct 22 10:53:41 1998  Werner Koch  (wk@isil.d.shuttle.de)
10901
10902         * trustdb.c (update_trust_record): Add new optional arg.
10903
10904         * import.c (import_keys): Add statistics output
10905         * trustdb.c (update_trustdb): Ditto.
10906         (insert_trustdb): Ditto.
10907
10908         * tdbio.c (tdbio_begin_transaction): New.
10909         (tdbio_end_transaction): New.
10910         (tdbio_cancel_transaction): New.
10911
10912         * g10.c (main): New option --quit.
10913
10914         * trustdb.c (check_hint_sig): No tests for user-id w/o sig.
10915         This caused an assert while checking the sigs.
10916
10917         * trustdb.c (upd_sig_record): Splitted into several functions.
10918
10919         * import.c (import_keys): New arg "fast".
10920         * g10.c (main): New command --fast-import.
10921
10922 Wed Oct 21 18:19:36 1998  Michael Roth <mroth@nessie.de>
10923
10924         * ringedit.c (add_keyblock_resource): Directory is now created.
10925         * tdbio.c (tdbio_set_dbname): New info message.
10926
10927 Wed Oct 21 11:52:04 1998  Werner Koch  (wk@isil.d.shuttle.de)
10928
10929         * trustdb.c (update_trustdb): released keyblock in loop.
10930
10931         * keylist.c (list_block): New.
10932         (list_all): Changed to use list_block.
10933
10934         * trustdb.c: Completed support for GDBM
10935
10936         * sign.c (only_old_style): Changed the way force_v3 is handled
10937         (sign_file): Ditto.
10938         (clearsign_file): Ditto.
10939
10940         * keygen.c (has_invalid_email_chars): Splitted into mailbox and
10941         host part.
10942
10943         * keylist.c (list_one): Add a merge_keys_and_selfsig.
10944         * mainproc.c (proc_tree): Ditto.
10945
10946 Sun Oct 18 11:49:03 1998  Werner Koch  (wk@isil.d.shuttle.de)
10947
10948         * sign.c (only_old_style): Add option force_v3_sigs
10949         (sign_file): Fixed a bug in sig->version
10950         (clearsign_file): Ditto.
10951
10952         * parse-packet.c (dump_sig_subpkt): New
10953
10954         * keyedit.c (menu_expire): New.
10955         * free-packet.c (cmp_signatures): New
10956
10957
10958 Sat Oct 17 10:22:39 1998  Werner Koch  (wk@isil.d.shuttle.de)
10959
10960         * armor.c: changed output line length from 72 to 64.
10961
10962         * keyedit.c (fix_keyblock): New.
10963
10964 Fri Oct 16 10:24:47 1998  Werner Koch  (wk@isil.d.shuttle.de)
10965
10966         * trustdb.c: Rewrote most.
10967         * tdbio.c: Add cache and generalized hash tables.
10968
10969         * options.h (ENABLE_COMMENT_PACKETS): New but undef'ed.
10970         * encode.c, sign.c, keygen.c: Disabled comment packets.
10971         * export.c (do_export): Comment packets are never exported,
10972         except for those in the secret keyring.
10973
10974         * g10.c (main): Removed option do-no-export-rsa; should be
10975         be replaced by a secpial tool.
10976         * export.c (do_export): Removed the code for the above option.
10977
10978         * armor.c (find_header): Support for new only_keyblocks.
10979         * import.c (import_keys): Only looks for keyblock armors.
10980
10981         * packet.h: replaced valid_days by expiredate and changed all users.
10982         * build-packet.c (do_public_key): calculates valid-days
10983         (do_secret_key): Ditto.
10984         * parse-packet.c (parse_key): expiredate is calucated from the
10985         valid_period in v3 packets.
10986         * keyid.c (do_fingerprint_md): calculates valid_dates.
10987
10988         * keygen.c (add_key_expire): fixed key expiration time for v4 packets.
10989
10990         * armor.c (find_header): A LF in the first 28 bytes
10991         was skipped for non-armored data.
10992
10993 Thu Oct  8 11:35:51 1998  Werner Koch  (wk@isil.d.shuttle.de)
10994
10995         * armor.c (is_armored): Add test on old comment packets.
10996
10997         * tdbio.c (tdbio_search_dir_bypk): fixed memory leak.
10998
10999         * getkey.c: Changed the caching algorithms.
11000
11001 Wed Oct  7 19:33:28 1998  Werner Koch  (wk@isil.d.shuttle.de)
11002
11003         * kbnodes.c (unused_nodes): New.
11004
11005 Wed Oct  7 11:15:36 1998  Werner Koch  (wk@isil.d.shuttle.de)
11006
11007         * keyedit.c (sign_uids): Fixed a problem with SK which could caused
11008         a save of an unprotected key.
11009         (menu_adduid): Ditto.
11010
11011         * keyedit.c (keyedit_menu): Prefs are now correctly listed for
11012         new user ids.
11013
11014         * trustdb.c (update_trust_record): New.
11015         (insert_trust_record): Now makes use of update_trust_record.
11016
11017 Tue Oct  6 16:18:03 1998  Werner Koch  (wk@isil.d.shuttle.de)
11018
11019         * trustdb.c (read_record): replaces most of the tdbio_read_records.
11020         (write_record): Ditto.
11021
11022 Sat Oct  3 11:01:21 1998  Werner Koch  (wk@isil.d.shuttle.de)
11023
11024         * keygen.c (ask_alogo): enable ElGamal enc-only only for addmode.
11025
11026 Wed Sep 30 10:15:33 1998  Werner Koch  (wk@isil.d.shuttle.de)
11027
11028         * import.c (import_one): Fixed update of wrong keyblock.
11029
11030 Tue Sep 29 08:32:08 1998  me,,,  (wk@tobold)
11031
11032         * mainproc.c (proc_plaintext): Display note for special filename.
11033         * plaintext.c (handle_plaintext): Suppress output of special file.
11034
11035 Mon Sep 28 12:57:12 1998  Werner Koch  (wk@isil.d.shuttle.de)
11036
11037         * g10.c (verify_own_keys): Add warning if a key is not protected.
11038
11039         * passphrase (hash_passphrase): Fixed iterated+salted mode and
11040         setup for keysizes > hashsize.
11041
11042         * g10.c (main): New options: --s2k-{cipher,digest,mode}.
11043
11044 Fri Sep 25 09:34:23 1998  Werner Koch  (wk@isil.d.shuttle.de)
11045
11046         * g10.c: Chnaged some help texts.
11047
11048 Tue Sep 22 19:34:39 1998  Werner Koch  (wk@isil.d.shuttle.de)
11049
11050         * passphrase.c (read_passphrase_from_fd): fixed bug for long
11051         passphrases.
11052
11053 Mon Sep 21 11:28:05 1998  Werner Koch  (wk@(none))
11054
11055         * getkey.c (lookup): Add code to use the sub key if the primary one
11056         does not match the usage.
11057
11058         * armor.c (armor_filter): New error message: no valid data found.
11059         (radix64_read): Changes to support multiple messages.
11060         (i18n.h): New.
11061         * mainproc.c (add_onepass_sig): bug fix.
11062
11063 Mon Sep 21 08:03:16 1998  Werner Koch  (wk@isil.d.shuttle.de)
11064
11065         * pkclist.c (do_we_trust): Add keyid to most messages.
11066
11067         * passphrase.c (read_passphrase_from_fd): New.
11068         (have_static_passphrase): New
11069         (get_passphrase_fd): Removed.
11070         (set_passphrase_fd): Removed.
11071         * g10.c (main): passphrase is now read here.
11072
11073         * keyedit.c (keyedit_menu): "help" texts should now translate fine.
11074
11075 Mon Sep 21 06:40:02 1998  Werner Koch  (wk@isil.d.shuttle.de)
11076
11077         * encode.c (encode_simple): Now disables compression
11078         when --rfc1991 is used.
11079         (encode_crypt): Ditto.
11080
11081 Fri Sep 18 16:50:32 1998  Werner Koch  (wk@isil.d.shuttle.de)
11082
11083         * getkey.c (merge_key_and_selfsig): New.
11084
11085 Fri Sep 18 10:20:11 1998  Werner Koch  (wk@isil.d.shuttle.de)
11086
11087         * pkclist.c (select_algo_from_prefs): Removed 3DES kludge.
11088
11089         * seskey.c (make_session_key): Fixed SERIOUS bug introduced
11090         by adding the weak key detection code.
11091
11092         * sign.c (sign_file): Changed aremor header in certain cases.
11093
11094 Tue Sep 15 17:52:55 1998  Werner Koch  (wk@isil.d.shuttle.de)
11095
11096         * mainproc.c (check_sig_and_print): Replaced ascime by asctimestamp.
11097
11098 Mon Sep 14 11:40:52 1998  Werner Koch  (wk@isil.d.shuttle.de)
11099
11100         * seskey.c (make_session_key): Now detects weak keys.
11101
11102         * trustdb (clear_trust_checked_flag): New.
11103
11104         * plaintext.c (handle_plaintext): Does no anymore suppress CR from
11105         cleartext signed messages.
11106
11107 Sun Sep 13 12:54:29 1998  Werner Koch  (wk@isil.d.shuttle.de)
11108
11109         * trustdb.c (insert_trust_record): Fixed a stupid bug in the free
11110         liunked list loops.
11111
11112 Sat Sep 12 15:49:16 1998  Werner Koch  (wk@isil.d.shuttle.de)
11113
11114         * status.c (remove_shmid): New.
11115         (init_shm_comprocess): Now sets permission to the real uid.
11116
11117 Wed Sep  9 11:15:03 1998  Werner Koch  (wk@isil.d.shuttle.de)
11118
11119         * packet.h (PKT_pubkey_enc): New flah throw_keyid, and add logic to
11120         implement it.
11121         * g10.c (main): New Option --throw-keyid
11122
11123         * getkey.c (enum_secret_keys): Add new ar and changed all callers.
11124
11125 Tue Sep  8 20:04:09 1998  Werner Koch  (wk@isil.d.shuttle.de)
11126
11127         * delkey.c (delete_key): Moved from keyedit.c.
11128
11129 Mon Sep  7 16:37:52 1998  Werner Koch  (wk@isil.d.shuttle.de)
11130
11131         * build-packet.c (calc_length_header): New arg new_ctb to correctly
11132         calculate the length of new style packets.
11133
11134         * armor.c (is_armored): Checks for symkey_enc packets.
11135
11136         * pkclist.c (select_algo_from_prefs): 3DEs substitute is now CAST5.
11137
11138 Tue Aug 11 17:54:50 1998  Werner Koch  (wk@isil.d.shuttle.de)
11139
11140         * build-packet.c (do_secret_key): Fixed handling of old keys.
11141
11142         * getkey.c (compare_name): Fixed exact and email matching
11143
11144         * openfile.c (open_outfile): Changed arguments and all callers.
11145
11146 Tue Aug 11 09:14:35 1998  Werner Koch  (wk@isil.d.shuttle.de)
11147
11148         * encode.c (encode_simple): Applied option set-filename and comment.
11149         (encode_crypt): Ditto.
11150         * sign.c (sign_file): Ditto.
11151         * armor.c (armor_filter): Applied option comment.
11152
11153         * encode.c (encode_crypt): Moved init_packet to the begin.
11154         (encode_simple): add an init_packet().
11155
11156         * comment (write_comment): Now enforces a hash sign as the 1st byte.
11157
11158         * import.c (import_one): Add explanation for "no user ids".
11159
11160         * compress.c (do_uncompress): Applied Brian Warner's patch to support
11161         zlib 1.1.3 etc.
11162
11163         * trustdb.c (check_trust): Fixed a problem after inserting new keys.
11164
11165         * getkey (lookup): do not return the primary key if usage is given
11166         (lookup_sk): Ditto and take usage into account.
11167
11168         * status.c (cpr_get_answer_is_yes): add display_help.
11169
11170 Mon Aug 10 10:11:28 1998  Werner Koch  (wk@isil.d.shuttle.de)
11171
11172         * getkey.c (lookup_sk): Now always returns the primary if arg
11173         primary is true.
11174         (lookup): Likewise.
11175         (get_pubkey_byname): Now returns the primary key
11176         (get_seckey_byname): Ditto.
11177
11178
11179 Mon Aug 10 08:34:03 1998  Werner Koch  (wk@isil.d.shuttle.de)
11180
11181         * keyid.c (pubkey_letter): ELG_E is now a small g.
11182
11183 Sat Aug  8 17:26:12 1998  Werner Koch  (wk@isil.d.shuttle.de)
11184
11185         * openfile (overwrite_filep): Changed semantics and all callers.
11186
11187 Sat Aug  8 12:17:07 1998  Werner Koch  (wk@isil.d.shuttle.de)
11188
11189         * status.c (display_help): New.
11190
11191 Thu Aug  6 16:30:41 1998  Werner Koch,mobil,,,  (wk@tobold)
11192
11193         * seskey.c (encode_session_key): Now uses get_random_bits().
11194
11195 Thu Aug  6 07:34:56 1998  Werner Koch,mobil,,,  (wk@tobold)
11196
11197         * ringedit.c (keyring_copy): No more backupfiles for
11198         secret keyrings and add additional warning in case of
11199         a failed secret keyring operation.
11200
11201 Wed Aug  5 11:54:37 1998  Werner Koch  (wk@isil.d.shuttle.de)
11202
11203         * g10.c (check_opts): Moved to main.  Changed def_cipher_algo
11204         semantics and chnaged all users.
11205
11206         * pubkey-enc.c (get_sssion_key): New informational output
11207         about preferences.
11208
11209         * parse-packet.c (parse_symkeyenc): Fixed salted+iterated S2K
11210         (parse_key): Ditto.
11211         * build-packet.c (do_secret_key): Ditto.
11212         (do_symkey_enc): Ditto.
11213
11214 Tue Aug  4 08:59:10 1998  Werner Koch  (wk@isil.d.shuttle.de)
11215
11216         * getkey.c (enum_secret_keys): Now returns only primary keys.
11217
11218         * getkey (lookup): Now sets the new namehash field.
11219
11220         * parse-packet.c (parse_sig_subpkt2): New.
11221
11222         * sign.c (sign_file): one-pass sigs are now emiited reverse.
11223         Preference data is considered when selecting the compress algo.
11224
11225 Wed Jul 29 12:53:03 1998  Werner Koch  (wk@isil.d.shuttle.de)
11226
11227         * free-packet.c (copy_signature): New.
11228
11229         * keygen.c (generate_subkeypair): rewritten
11230         * g10.c (aKeyadd): Removed option --add-key
11231
11232 Mon Jul 27 10:37:28 1998  Werner Koch  (wk@isil.d.shuttle.de)
11233
11234         * seckey-cert.c (do_check): Additional check on cipher blocksize.
11235         (protect_secret_key): Ditto.
11236         * encr-data.c: Support for other blocksizes.
11237         * cipher.c (write_header): Ditto.
11238
11239 Fri Jul 24 16:47:59 1998  Werner Koch  (wk@isil.d.shuttle.de)
11240
11241         * kbnode.c (insert_kbnode): Changed semantics and all callers.
11242         * keyedit.c : More or less a complete rewrite
11243
11244 Wed Jul 22 17:10:04 1998  Werner Koch  (wk@isil.d.shuttle.de)
11245
11246         * build-packet.c (write_sign_packet_header): New.
11247
11248 Tue Jul 21 14:37:09 1998  Werner Koch  (wk@isil.d.shuttle.de)
11249
11250         * import.c (import_one): Now creates a trustdb record.
11251
11252         * g10.c (main): New command --check-trustdb
11253
11254 Mon Jul 20 11:15:07 1998  Werner Koch  (wk@isil.d.shuttle.de)
11255
11256         * genkey.c (generate_keypair): Default key is now DSA with
11257         encryption only ElGamal subkey.
11258
11259 Thu Jul 16 10:58:33 1998  Werner Koch  (wk@isil.d.shuttle.de)
11260
11261         * keyid.c (keyid_from_fingerprint): New.
11262         * getkey.c (get_pubkey_byfprint): New.
11263
11264 Tue Jul 14 18:09:51 1998  Werner Koch  (wk@isil.d.shuttle.de)
11265
11266         * keyid.c (fingerprint_from_pk): Add argument and changed all callers.
11267         (fingerprint_from_sk): Ditto.
11268
11269 Tue Jul 14 10:10:03 1998  Werner Koch  (wk@isil.d.shuttle.de)
11270
11271         * plaintext.c (handle_plaintext): Now returns create error if
11272         the file could not be created or the user responded not to overwrite
11273         the file.
11274         * mainproc.c (proc_plaintext): Tries again if the file could not
11275         be created to check the signature without output.
11276
11277         * misc.c (disable_core_dumps): New.
11278         * g10.c (main): disable coredumps for gpg
11279
11280         * g10.c (MAINTAINER_OPTIONS): New to disable some options
11281
11282 Mon Jul 13 16:47:54 1998  Werner Koch  (wk@isil.d.shuttle.de)
11283
11284         * plaintext.c (hash_datafiles): New arg for better support of
11285         detached sigs. Changed all callers.
11286         * mainproc.c (proc_signature_packets): Ditto.
11287
11288         * g10.c (main): New option "compress-sigs"
11289         * sig.c (sign_file): detached signatures are not anymore compressed
11290         unless the option --compress-sigs is used.
11291
11292 Thu Jul  9 19:54:54 1998  Werner Koch  (wk@isil.d.shuttle.de)
11293
11294         * armor.c: Fixes to allow zero length cleartext signatures
11295
11296 Thu Jul  9 14:52:47 1998  Werner Koch  (wk@isil.d.shuttle.de)
11297
11298         * g10.c (build_list): Now drops setuid.
11299         (main): Changed the way keyrings  and algorithms are registered .
11300
11301 Wed Jul  8 14:17:30 1998  Werner Koch  (wk@isil.d.shuttle.de)
11302
11303         * packet.h (PKT_public_key): Add field keyid.
11304         * parse-packet.c (parse_key): Reset the above field.
11305         * keyid.c (keyid_from_pk): Use above field as cache.
11306
11307         * tdbio.c, tdbio.h: New
11308         * trustdb.c: Moved some functions to tdbio.c.
11309         (print_keyid): New.
11310
11311         * pkclist.c (check_signatures_trust): New.
11312
11313 Wed Jul  8 10:45:28 1998  Werner Koch  (wk@isil.d.shuttle.de)
11314
11315         * plaintext.c (special_md_putc): New.
11316         (handle_plaintext): add clearsig argument
11317         * mainproc.c (proc_plaintext): detection of clearsig
11318         * sign.c (write_dased_escaped): Changed clearsig format
11319
11320 Tue Jul  7 18:56:19 1998  Werner Koch  (wk@isil.d.shuttle.de)
11321
11322         * armor.c (find_header): Now makes sure that there is only one
11323         empty line for clearsigs, as this is what OP now says.
11324
11325 Mon Jul  6 13:09:07 1998  Werner Koch  (wk@isil.d.shuttle.de)
11326
11327         * g10.c (main): New option default-secret-key
11328         * getkey.c (get_seckey_byname): support for this option.
11329
11330 Mon Jul  6 09:03:49 1998  Werner Koch  (wk@isil.d.shuttle.de)
11331
11332         * getkey.c (add_keyring): Keyrings are now added to end of the
11333         list of keyrings.  The first added keyringwill be created.
11334         (add_secret_keyring): Likewise.
11335
11336         * ringedit.c (add_keyblock_resource): Files are created here.
11337
11338         * g10.c (aNOP): Removed
11339
11340         * getkey.c (lookup): Add checking of usage for name lookups
11341         * packet.h (pubkey_usage): Add a field which may be used to store
11342         usage capabilities.
11343         * pkclist.c (build_pk_list): getkey now called with usage arg.
11344         * skclist.c (build_sk_list): Ditto.
11345
11346         * sign.c (clearsign_file): Fixed "Hash:" headers
11347
11348 Sat Jul  4 13:33:31 1998  Werner Koch  (wk@isil.d.shuttle.de)
11349
11350         * trustdb.c (list_ownertrust): New.
11351         * g10.c (aListOwnerTrust): New.
11352
11353         * g10.c (def_pubkey_algo): Removed.
11354
11355         * trustdb.c (verify_private_data): Removed and also the call to it.
11356         (sign_private_data): Removed.
11357
11358 Fri Jul  3 13:26:10 1998  Werner Koch  (wk@isil.d.shuttle.de)
11359
11360         * g10.c (aEditKey): was aEditSig. Changed usage msg.
11361
11362         * keyedit.c: Done some i18n stuff.
11363
11364         * g10.c (do_not_use_RSA): New.
11365         * sign.c (do_sign): Add call to above function.
11366         * encode.c (write_pubkey_enc_from_list): Ditto.
11367
11368 Thu Jul  2 21:01:25 1998  Werner Koch  (wk@isil.d.shuttle.de)
11369
11370         * parse-packet.c: Now is able sto store data of unknown
11371         algorithms.
11372         * free-packet.c: Support for this.
11373         * build-packet.c: Can write data of packet with unknown algos.
11374
11375 Thu Jul  2 11:46:36 1998  Werner Koch  (wk@isil.d.shuttle.de)
11376
11377         * parse-packet.c (parse): fixed 4 byte length header
11378
11379 Wed Jul  1 12:36:55 1998  Werner Koch  (wk@isil.d.shuttle.de)
11380
11381         * packet.h (new_ctb): New field for some packets
11382         * build-packet.c (build_packet): Support for new_ctb
11383         * parse-packet.c (parse): Ditto.
11384
11385 Mon Jun 29 12:54:45 1998  Werner Koch  (wk@isil.d.shuttle.de)
11386
11387         * packet.h: changed all "_cert" to "_key", "subcert" to "subkey".
11388
11389         * free-packet.c (free_packet): Removed memory leak for subkeys.
11390
11391 Sun Jun 28 18:32:27 1998  Werner Koch  (wk@isil.d.shuttle.de)
11392
11393         * import.c (import_keys): Renamed from import_pubkeys.
11394         (import_secret_one): New.
11395
11396         * g10.c (aExportSecret): New.
11397
11398         * export.c (export_seckeys): New.
11399
11400         * parse-packet.c (parse_certificate): Cleaned up.
11401         (parse_packet): Trust packets are now considered as unknown.
11402         (parse_pubkey_warning): New.
11403
11404 Fri Jun 26 10:37:35 1998  Werner Koch  (wk@isil.d.shuttle.de)
11405
11406         * keygen.c (has_invalid_email_chars): New.
11407
11408 Wed Jun 24 16:40:22 1998  Werner Koch  (wk@isil.d.shuttle.de)
11409
11410         * armor.c (armor_filter): Now creates valid onepass_sig packets
11411         with all detected hash algorithms.
11412         * mainproc.c (proc_plaintext): Now uses the hash algos as specified
11413         in the onepass_sig packets (if there are any)
11414
11415 Mon Jun 22 11:54:08 1998  Werner Koch  (wk@isil.d.shuttle.de)
11416
11417         * plaintext.c (handle_plaintext): add arg to disable outout
11418         * mainproc.c (proc_plaintext): disable output when in sigs_only mode.
11419
11420 Thu Jun 18 13:17:27 1998  Werner Koch  (wk@isil.d.shuttle.de)
11421
11422         * keygen.c: Removed all rsa packet stuff, chnaged defaults
11423         for key generation.
11424
11425 Sun Jun 14 21:28:31 1998  Werner Koch  (wk@isil.d.shuttle.de)
11426
11427         * misc.c (checksum_u16): Fixed a stupid bug which caused a
11428         wrong checksum calculation for the secret key protection and
11429         add a backward compatibility option.
11430         * g10.c (main): Add option --emulate-checksum-bug.
11431
11432 Thu Jun 11 13:26:44 1998  Werner Koch  (wk@isil.d.shuttle.de)
11433
11434         * packet.h: Major changes to the structure of public key material
11435         which is now stored in an array and not anaymore in a union of
11436         algorithm specific structures.  These is needed to make the system
11437         more extendable and makes a lot of stuff much simpler. Changed
11438         all over the system.
11439
11440         * dsa.c, rsa.c, elg.c: Removed.
11441
11442 Wed Jun 10 07:22:02 1998  Werner Koch,mobil,,,  (wk@tobold)
11443
11444         * g10.c ("load-extension"): New option.
11445
11446 Mon Jun  8 22:23:37 1998  Werner Koch  (wk@isil.d.shuttle.de)
11447
11448         * seckey-cert.c (do_check): Removed cipher constants
11449         (protect_secret_key): Ditto.
11450
11451 Fri May 29 10:00:28 1998  Werner Koch  (wk@isil.d.shuttle.de)
11452
11453         * trustdb.c (query_trust_info): New.
11454         * keylist.c (list_one): Add output of trust info
11455         * mainproc (list_node): ditto.
11456         * g10.c (main): full trustdb init if -with-colons and any of the
11457         key list modes.
11458
11459 Thu May 28 10:34:42 1998  Werner Koch  (wk@isil.d.shuttle.de)
11460
11461         * status.c (STATUS_RSA_OR_IDEA): New.
11462         * sig-check.c (check_signature): Output special status message.
11463         * pubkey-enc.c (get_session_key): Ditto.
11464
11465         * mainproc.c (check_sig_and_print): Changed format of output.
11466         * passpharse.c (passphrase_to_dek): Likewise.
11467
11468 Wed May 27 13:46:48 1998  Werner Koch  (wk@isil.d.shuttle.de)
11469
11470         * g10.c (aListSecretKeys): New option --list-secret-keys
11471         * keylist.c (std_key_list): Renamed to public_key_list.
11472         (secret_key_list): New
11473         (list_one, list_all): Add support for secret keys.
11474         * getkey.c (get_secret_keyring): New.
11475         * mainproc.c (list_node): Add option --with-colons for secret keys
11476
11477         * sig-check.c (check_key_signature): detection of selfsigs
11478         * mainproc.c (list_node): fixed listing.
11479
11480         * g10.c (aListSecretKeys): New option --always-trust
11481         * pkclist.c (do_we_trust): Override per option added
11482
11483         * status.c (write_status_text): Add a prefix to every output line.
11484
11485 Wed May 27 07:49:21 1998  Werner Koch  (wk@isil.d.shuttle.de)
11486
11487         * g10 (--compress-keys): New.
11488         * options.h (compress_keys): New.
11489         * export.c (export_pubkeys): Only compresses with the new option.
11490
11491 Tue May 26 11:24:33 1998  Werner Koch  (wk@isil.d.shuttle.de)
11492
11493         * passphrase.c (get_last_passphrase): New
11494         (set_next_passphrase): New.
11495         (passphrase_to_dek): add support for the above functions.
11496         * keyedit.c (make_keysig_packet): Add sigclass 0x18,
11497         changed all callers due to a new argument.
11498         * keygen.c (write_keybinding): New
11499         (generate_subkeypair): Add functionality
11500         (ask_algo, ask_keysize, ask_valid_days): Broke out of generate_keypair
11501         (ask_user_id, ask_passphrase): Ditto.
11502
11503 Thu May 21 11:26:13 1998  Werner Koch  (wk@isil.d.shuttle.de)
11504
11505         * g10.c,gpgd.c (main): Does now return an int, so that egcs does
11506         not complain.
11507
11508         * armor.c (fake_packet): Removed erro message and add a noticed
11509         that this part should be fixed.
11510
11511         * sign.c (sign_file): Compression now comes in front of encryption.
11512         * encode.c (encode_simple): Ditto.
11513         (encode_crypt): Ditto.
11514
11515 Tue May 19 16:18:19 1998  Werner Koch  (wk@isil.d.shuttle.de)
11516
11517         * armor.c (fake_packet): Changed assertion to log_error
11518
11519 Sat May 16 16:02:06 1998  Werner Koch  (wk@isil.d.shuttle.de)
11520
11521         * build-packet.c (build_packet): Add SUBKEY packets.
11522
11523 Fri May 15 17:57:23 1998  Werner Koch  (wk@isil.d.shuttle.de)
11524
11525         * sign.c (hash_for): New and used in all places here.
11526         * main.h (DEFAULT_): new macros.
11527         * g10.c  (opt.def_digest_algo): Now set to 0
11528
11529         * compress.c (init_compress): Add support for algo 1
11530         * options.h (def_compress_algo): New
11531         * g10.c (main): New option --compress-algo
11532
11533 Fri May 15 13:23:59 1998  Werner Koch  (wk@isil.d.shuttle.de)
11534
11535         * g10.c (print_mds): New feature to print only one hash,
11536         chnaged formatting.
11537
11538 Thu May 14 15:36:24 1998  Werner Koch  (wk@isil.d.shuttle.de)
11539
11540         * misc.c (trap_unaligned) [__alpha__]: New
11541         * g10.c (trap_unaligned): Add call to this to track down SIGBUS
11542         on Alphas (to avoid the slow emulation code).
11543
11544 Wed May 13 11:48:27 1998  Werner Koch  (wk@isil.d.shuttle.de)
11545
11546         * build-packet.c (do_signature): Support for v4 pakets.
11547         * keyedit.c (make_keysig_packet): Ditto.
11548         * build-packet.c (build_sig_subpkt_from_sig): New.
11549         (build_sig_subpkt): New.
11550
11551         * elg.c (g10_elg_sign): removed keyid_from_skc.
11552         * dsa.c (g10_dsa_sign): Ditto.
11553         * rsa.c (g10_rsa_sign): Ditto.
11554         * keyedit.c (make_keysig_packet): Add call to keyid_from_skc
11555
11556         * sign.c (clearsign_file): Support for v4 signatures.
11557         (sign_file): Ditto.
11558
11559 Wed May  6 09:31:24 1998  Werner Koch  (wk@isil.d.shuttle.de)
11560
11561         * parse-packet.c (do_parse): add support for 5 byte length leader.
11562         (parse_subpkt): Ditto.
11563         * build-packet.c (write_new_header): Ditto.
11564
11565         * packet.h (SIGSUBPKT_): New constants.
11566         * parse-packet.c (parse_sig_subpkt): Changed name, made global,
11567         and arg to return packet length, chnaged all callers
11568
11569
11570 Tue May  5 22:11:59 1998  Werner Koch  (wk@isil.d.shuttle.de)
11571
11572         * keygen.c (gen_dsa): New.
11573         * build_packet.c (do_secret_cert): Support for DSA
11574
11575 Mon May  4 19:01:25 1998  Werner Koch  (wk@isil.d.shuttle.de)
11576
11577         * compress.c: doubled buffer sizes
11578         * parse-packet.c (do_plaintext): now uses iobuf_read/write.
11579
11580 Mon May  4 09:35:53 1998  Werner Koch  (wk@isil.d.shuttle.de)
11581
11582         * seskey.c (encode_md_value): Add optional argument hash_algo,
11583         changed all callers.
11584
11585         * passphrase.c (make_dek_from_passphrase): Removed
11586         * (get_passphrase_hash): Changed name to passphrase_to_dek, add arg,
11587         changed all callers.
11588
11589         * all: Introduced the new ELG identifier and added support for the
11590         encryption only one (which is okay to use by GNUPG for signatures).
11591
11592 Sun May  3 17:50:26 1998  Werner Koch  (wk@isil.d.shuttle.de)
11593
11594         * packet.h (PKT_OLD_COMMENT): New name for type 16.
11595         * parse-packet.c (parse_comment): Now uses type 61
11596
11597 Fri May  1 12:44:39 1998  Werner Koch,mobil,,,  (wk@tobold)
11598
11599         * packet.h (count): Chnaged s2k count from byte to u32.
11600         * seckey-cert.c (do_check): Changed s2k algo 3 to 4, changed
11601         reading of count.
11602         * build-packet.c (do_secret_cert): ditto.
11603         * parse-packet.c (parse_certificate): ditto.
11604
11605         * parse-packet.c (parse_symkeyenc): New.
11606         * build-packet.c (do_symkey_enc): New.
11607
11608 Thu Apr 30 16:33:34 1998  Werner Koch  (wk@isil.d.shuttle.de)
11609
11610         * sign.c (clearsign_file): Fixed "Hash: " armor line.
11611
11612 Tue Apr 28 14:27:42 1998  Werner Koch  (wk@isil.d.shuttle.de)
11613
11614         * parse-packet.c (parse_subpkt): Some new types.
11615
11616 Mon Apr 27 12:53:59 1998  Werner Koch  (wk@isil.d.shuttle.de)
11617
11618         * g10.c (main): Add option --skip-verify.
11619         * mainproc.c (check_sig_and_print): Ditto.
11620
11621         * g10.c (print_mds): Add output for Tiger.
11622
11623         * sign.c (sign_file): Now uses partial length headers if used
11624         in canonical textmode (kludge to fix a bug).
11625
11626         * parse-packet.c (parse_certificate): Changed BLOWFISH id.
11627         * pubkey-enc.c (get_session_key): Ditto.
11628         * seskey.c (make_session_key): Ditto.
11629         * seckey-cert.c (protect_secret_key,do_check): Add BLOWFISH160.
11630
11631 Fri Apr 24 17:38:48 1998  Werner Koch,mobil,,,  (wk@tobold)
11632
11633         * sig-check.c (check_key_signature): Add sig-class 0x14..0x17
11634         * keyedit.c (sign-key): Some changes to start with support of
11635         the above new sig-classes.
11636
11637 Wed Apr 22 09:01:57 1998  Werner Koch,mobil,,,  (wk@tobold)
11638
11639         * getkey.c (compare_name): add email matching
11640
11641 Tue Apr 21 16:17:12 1998  Werner Koch,mobil,,,  (wk@tobold)
11642
11643         * armor.c (armor_filter): fixed missing last LF before CSUM.
11644
11645 Thu Apr  9 11:35:22 1998  Werner Koch  (wk@isil.d.shuttle.de)
11646
11647         * seckey-cert.c (do_check): New; combines all the check functions
11648         into one.
11649
11650         * sign.c: removed all key management functions
11651         * keyedit.c: New.
11652
11653 Thu Apr  9 09:49:36 1998  Werner Koch  (wk@isil.d.shuttle.de)
11654
11655         * import.c (chk_self_sigs): Changed an error message.
11656
11657 Wed Apr  8 16:19:39 1998  Werner Koch  (wk@isil.d.shuttle.de)
11658
11659         * packet.h: packet structs now uses structs from the pubkey,
11660         removed all copy operations from packet to pubkey structs.
11661
11662 Wed Apr  8 13:40:33 1998  Werner Koch  (wk@isil.d.shuttle.de)
11663
11664         * trustdb.c (verify_own_certs): Fixed "public key not found".
11665
11666         * getkey.c (key_byname): New, combines public and secret key search.
11667
11668         * pkclist.c (build_pkc_list): Add new arg usage, changed all callers.
11669         * skclist.c (build_skc_list): Likewise.
11670
11671         * ringedit.c (find_keyblock, keyring_search2): Removed.
11672
11673 Wed Apr  8 09:47:21 1998  Werner Koch  (wk@isil.d.shuttle.de)
11674
11675         * sig-check.c (do_check): Applied small fix from Ulf Möller.
11676
11677 Tue Apr  7 19:28:07 1998  Werner Koch  (wk@isil.d.shuttle.de)
11678
11679         * cipher.c, encr-data.c, seckey-cert.c: Now uses cipher_xxxx
11680         functions instead of blowfish_xxx or cast_xxx
11681
11682 Tue Apr  7 11:04:02 1998  Werner Koch  (wk@isil.d.shuttle.de)
11683
11684         * Makefile.am (g10maint.o): Changed the way it is created.
11685
11686 Mon Apr  6 11:17:08 1998  Werner Koch  (wk@isil.d.shuttle.de)
11687
11688         * misc.c: New.
11689         * keygen.c (checksum,checksum_u16,checksum_mpi): Moved to misc.c
11690         * seckey-cert.c: Kludge for wrong ELG checksum implementation.
11691
11692 Sat Apr  4 20:07:01 1998  Werner Koch  (wk@isil.d.shuttle.de)
11693
11694         * cipher.c (cipher_filter): Support for CAST5
11695         * encr-data.c (decode_filter): Ditto.
11696         (decrypt_data): Ditto.
11697         * seskey.c (make_session_key): Ditto.
11698         * seckey-cert.c (check_elg, check_dsa): Ditto,
11699         (protect_secret_key): Ditto.
11700         * pubkey-enc.c (get_session_key): Ditto.
11701         * passphrase.c (hash_passphrase): Ditto.
11702
11703 Thu Apr  2 20:22:35 1998  Werner Koch  (wk@isil.d.shuttle.de)
11704
11705         * gpgd.c: New
11706
11707 Thu Apr  2 10:38:16 1998  Werner Koch  (wk@isil.d.shuttle.de)
11708
11709         * keygen.c (generate_keypair): Add valid_days stuff.
11710         * trustdb.c (check_trust): Add check for valid_days.
11711
11712 Wed Apr  1 16:15:58 1998  Werner Koch  (wk@isil.d.shuttle.de)
11713
11714         * keygen.c (generate_keypair): Addional question whether the
11715         selected large keysize is really needed.
11716
11717 Wed Apr  1 15:56:33 1998  Werner Koch  (wk@isil.d.shuttle.de)
11718
11719         * seckey-cert.c (protect_secret_key): merged protect_xxx to here.
11720
11721 Wed Apr  1 10:34:46 1998  Werner Koch  (wk@isil.d.shuttle.de)
11722
11723         * Makefile.am (g10maint.c): Changed creation rule, so that it works
11724         on FreeBSD (missing CFLAGS).
11725
11726         * parse-packet.c (parse_subkey): Removed.
11727
11728 Thu Mar 19 15:22:36 1998  Werner Koch  (wk@isil.d.shuttle.de)
11729
11730         * ringedit.c (keyring_enum): Fixed problem with reading too
11731         many packets. Add support to read secret keyrings.
11732
11733         * getkey.c (scan_keyring): Removed
11734         (lookup): New to replace scan_keyring.
11735         (scan_secret_keyring): Removed.
11736         (lookup_skc): New.
11737
11738 Wed Mar 18 11:47:34 1998  Werner Koch  (wk@isil.d.shuttle.de)
11739
11740         * ringedit.c (enum_keyblocks): New read mode 11.
11741
11742         * keyid.c (elg_fingerprint_md): New and changed all other functions
11743         to call this if the packet version is 4 or above.
11744
11745 Tue Mar 17 20:46:16 1998  Werner Koch  (wk@isil.d.shuttle.de)
11746
11747         * parse-packet.c (parse_certificate): Add listing support for subkeys.
11748
11749 Tue Mar 17 20:32:22 1998  Werner Koch  (wk@isil.d.shuttle.de)
11750
11751         * armor.c (is_armored): Allow marker packet.
11752
11753 Thu Mar 12 13:36:49 1998  Werner Koch  (wk@isil.d.shuttle.de)
11754
11755         * trustdb.c (check_trust): Checks timestamp of pubkey.
11756         * sig-check. (do_check): Compares timestamps.
11757
11758 Tue Mar 10 17:01:56 1998  Werner Koch  (wk@isil.d.shuttle.de)
11759
11760         * g10.c (main): Add call to init_signals.
11761         * signal.c: New.
11762
11763 Mon Mar  9 12:43:42 1998  Werner Koch  (wk@isil.d.shuttle.de)
11764
11765         * dsa.c: New
11766         * packet.h, free-packet.c, parse-packet.c : Add support for DSA
11767         * sig-check.c, getkey.c, keyid.c, ringedit.c: Ditto.
11768         * seckey-cert.c: Ditto.
11769
11770         * packet.h : Moved .digest_algo of signature packets to outer
11771         structure. Changed all references
11772
11773 Sun Mar  8 13:06:42 1998  Werner Koch  (wk@isil.d.shuttle.de)
11774
11775         * openfile.c : Support for stdout filename "-".
11776
11777         * mainproc.c (check_sig_and_print): Enhanced status output:
11778         * status.c (write_status_text): New.
11779
11780 Fri Mar  6 16:10:54 1998  Werner Koch  (wk@isil.d.shuttle.de)
11781
11782         * kbnode.c (clone_kbnode): Fixed private_flag.
11783
11784         * mainproc.c (list_node): Output of string "Revoked" as user-id.
11785
11786 Fri Mar  6 14:26:39 1998  Werner Koch  (wk@isil.d.shuttle.de)
11787
11788         * g10.c (main): Add userids to "-kv" and cleaned up this stuff.
11789
11790 Fri Mar  6 12:45:58 1998  Werner Koch  (wk@isil.d.shuttle.de)
11791
11792         * g10.c (main): Changed semantics of the list-... commands
11793         and added a new one. Removed option "-d"
11794
11795         * decrypt.c: New.
11796
11797         * trustdb.c (init_trustdb): Autocreate directory only if it ends
11798         in "/.gnupg".
11799
11800 Thu Mar  5 12:12:11 1998  Werner Koch  (wk@isil.d.shuttle.de)
11801
11802         * mainproc.c (do_proc_packets): New. Common part of proc_packet.
11803         (proc_signature_packets): special version to handle signature data.
11804         * verify.c: New.
11805         * g10.c (aVerify): New.
11806         * plaintext.c (hash_datafiles): New.
11807         * compress.c (handle_compressed): Add callback arg, changed caller.
11808
11809 Thu Mar  5 10:20:06 1998  Werner Koch  (wk@isil.d.shuttle.de)
11810
11811         * g10.c: Is nom the common source for gpg and gpgm
11812         * g10maint.c: Removed
11813         * Makefile.am: Add rule to build g10maint.c
11814
11815 Thu Mar  5 08:43:59 1998  Werner Koch  (wk@isil.d.shuttle.de)
11816
11817         * g10.c (main): Changed the way clear text sigs are faked.
11818
11819 Wed Mar  4 19:47:37 1998  Werner Koch  (wk@isil.d.shuttle.de)
11820
11821         * g10maint.c (aMuttKeyList): New
11822         * keylist.c: New.
11823
11824 Wed Mar  4 17:20:33 1998  Werner Koch  (wk@isil.d.shuttle.de)
11825
11826         * getkey.c (get_pubkey_byname): Kludge to allow 0x prefix.
11827
11828 Tue Mar  3 13:46:55 1998  Werner Koch  (wk@isil.d.shuttle.de)
11829
11830         * g10maint.c (main): New option --gen-random.
11831
11832 Tue Mar  3 09:50:08 1998  Werner Koch  (wk@isil.d.shuttle.de)
11833
11834         * g10.c (aDeleteSecretKey): New.
11835         (aEditSig): Add option "--edit-key" as synonym for "--edit-sig".
11836         (aDeleteSecretKey): New.
11837         * getkey.c (seckey_available): New.
11838         * sign.c (delete_key): Enhanced to delete secret keys, changed all
11839         callers.
11840
11841 Mon Mar  2 21:23:48 1998  Werner Koch  (wk@isil.d.shuttle.de)
11842
11843         * pkc_list.c (build_pkc_list): Add interactive input of user ID.
11844
11845 Mon Mar  2 20:54:05 1998  Werner Koch  (wk@isil.d.shuttle.de)
11846
11847         * pkclist.c (do_we_trust_pre): New.
11848         (add_ownertrust): Add message.
11849         * trustdb.c (enum_trust_web): Quick fix.
11850
11851 Mon Mar  2 13:50:53 1998  Werner Koch  (wk@isil.d.shuttle.de)
11852
11853         * g10.c (main): New action aDeleteKey
11854         * sign.c (delete_key): New.
11855
11856 Sun Mar  1 16:38:58 1998  Werner Koch  (wk@isil.d.shuttle.de)
11857
11858         * trustdb.c (do_check): No returns TRUST_UNDEFINED instead of
11859         eof error.
11860
11861 Fri Feb 27 18:14:03 1998  Werner Koch  (wk@isil.d.shuttle.de)
11862
11863         * armor.c (find_header): Removed trailing CR on headers.
11864
11865 Fri Feb 27 18:02:48 1998  Werner Koch  (wk@isil.d.shuttle.de)
11866
11867         * ringedit.c (keyring_search) [MINGW32]: Open and close file here
11868         because rename does not work on open files. Chnaged callers.
11869
11870 Fri Feb 27 16:43:11 1998  Werner Koch  (wk@isil.d.shuttle.de)
11871
11872         * sig-check.c (do_check): Add an md_enable.
11873         * mainproc.c (do_check_sig): Use md_open in case of detached sig
11874         (proc_tree): Take detached sigs into account.
11875
11876 Fri Feb 27 15:22:46 1998  Werner Koch  (wk@isil.d.shuttle.de)
11877
11878         * g10.c (main): Make use of GNUPGHOME envvar.
11879         * g10main.c (main): Ditto.
11880
11881 Wed Feb 25 11:40:04 1998  Werner Koch  (wk@isil.d.shuttle.de)
11882
11883         * plaintext.c (ask_for_detached_datafile): add opt.verbose to
11884         info output.
11885
11886         * openfile.c (open_sigfile): Try also name ending in ".asc"
11887
11888 Wed Feb 25 08:41:00 1998  Werner Koch  (wk@isil.d.shuttle.de)
11889
11890         * keygen.c (generate_keypair): Fixed memory overflow.
11891
11892 Tue Feb 24 15:51:55 1998  Werner Koch  (wk@isil.d.shuttle.de)
11893
11894         * parse-packet.c (parse_certificate): Support for S2K.
11895         * build-packet.c (do_secret_cert): Ditto.
11896         * keygen.c (gen_elg): Ditto.
11897         * seckey-cert.c (check_elg): Ditto
11898         (protect_elg): Ditto.
11899         * sign.c (chnage_passphrase): Ditto.
11900         * passphrase.c (get_passphrase_hash): Support for a salt and
11901         changed all callers.
11902         (make_dek_from_passphrase): Ditto.
11903
11904 Tue Feb 24 12:30:56 1998  Werner Koch  (wk@isil.d.shuttle.de)
11905
11906         * build-packet.c (hash_public_cert): Disabled debug output.
11907
11908 Fri Feb 20 17:22:28 1998  Werner Koch  (wk@isil.d.shuttle.de)
11909
11910         * trustdb.c (init_trustdb) [MINGW32]: Removed 2nd mkdir arg.
11911         (keyring_copy) [MINGW32]: Add a remove prior to the renames.
11912
11913 Wed Feb 18 18:39:02 1998  Werner Koch  (wk@isil.d.shuttle.de)
11914
11915         * Makefile.am (OMIT_DEPENDENCIES): New.
11916
11917         * rsa.c: Replaced log_bug by BUG.
11918
11919 Wed Feb 18 13:35:58 1998  Werner Koch  (wk@isil.d.shuttle.de)
11920
11921         * mainproc.c (do_check_sig): Now uses hash_public_cert.
11922         * parse-packet.c (parse_certificate): Removed hashing.
11923         * packet.h (public_cert): Removed hash variable.
11924         * free-packet.c (copy_public_cert, free_public_cert): Likewise.
11925
11926         * sig-check.c (check_key_signatures): Changed semantics.
11927
11928 Wed Feb 18 12:11:28 1998  Werner Koch  (wk@isil.d.shuttle.de)
11929
11930         * trustdb.c (do_check): Add handling for revocation certificates.
11931         (build_sigrecs): Ditto.
11932         (check_sigs): Ditto.
11933
11934 Wed Feb 18 09:31:04 1998  Werner Koch  (wk@isil.d.shuttle.de)
11935
11936         * armor.c (armor_filter): Add afx->hdrlines.
11937         * revoke.c (gen_revoke): Add comment line.
11938         * dearmor.c (enarmor_file): Ditto.
11939
11940         * sig-check.c (check_key_signature): Add handling for class 0x20.
11941         * mainproc.c : Ditto.
11942
11943 Tue Feb 17 21:24:17 1998  Werner Koch  (wk@isil.d.shuttle.de)
11944
11945         * armor.c : Add header lines "...ARMORED FILE .."
11946         * dearmor.c (enarmor_file): New.
11947         * g10maint.c (main): New option "--enarmor"
11948
11949 Tue Feb 17 19:03:33 1998  Werner Koch  (wk@isil.d.shuttle.de)
11950
11951         * mainproc.c : Changed a lot, because the packets are now stored
11952         a simple linlked list and not anymore in a complicatd tree structure.
11953
11954 Tue Feb 17 10:14:48 1998  Werner Koch  (wk@isil.d.shuttle.de)
11955
11956         * free_packet.c (cmp_public_certs): New.
11957         (cmp_user_ids): New.
11958
11959         * kbnode.c (clone_kbnode): New.
11960         (release_kbnode): Add clone support.
11961
11962         * ringedit.c (find_keyblock_bypkc): New.
11963
11964         * sign.c (remove_keysigs): Self signatures are now skipped,
11965         changed arguments and all callers.
11966
11967         * import.c : Add functionality.
11968
11969 Tue Feb 17 09:31:40 1998  Werner Koch  (wk@isil.d.shuttle.de)
11970
11971         * options.h (homedir): New option.
11972         * g10.c, g10maint.c, getkey.c, keygen.c, trustdb.c (opt.homedir): New.
11973
11974         * trustdb.c (init_trustdb): mkdir for hoem directory
11975         (sign_private_data): Renamed "sig" to "g10.sig"
11976
11977 Mon Feb 16 20:02:03 1998  Werner Koch  (wk@isil.d.shuttle.de)
11978
11979         * kbnode.c (commit_kbnode): New.
11980         (delete_kbnode): removed unused first arg. Changed all Callers.
11981
11982         * ringedit.c (keyblock_resource_name): New.
11983         (get_keyblock_handle): NULL for filename returns default resource.
11984
11985 Mon Feb 16 19:38:48 1998  Werner Koch  (wk@isil.d.shuttle.de)
11986
11987         * sig-check.s (check_key_signature): Now uses the supplied
11988         public key to check the signature and not any more the one
11989         from the getkey.c
11990         (do_check): New.
11991         (check_signature): Most work moved to do_check.
11992
11993 Mon Feb 16 14:48:57 1998  Werner Koch  (wk@isil.d.shuttle.de)
11994
11995         * armor.c (find_header): Fixed another bug.
11996
11997 Mon Feb 16 12:18:34 1998  Werner Koch  (wk@isil.d.shuttle.de)
11998
11999         * getkey.c (scan_keyring): Add handling of compressed keyrings.
12000
12001 Mon Feb 16 10:44:51 1998  Werner Koch  (wk@isil.d.shuttle.de)
12002
12003         * g10.c, g10maint.c (strusage): Rewrote.
12004         (build_list): New
12005
12006 Mon Feb 16 08:58:41 1998  Werner Koch  (wk@isil.d.shuttle.de)
12007
12008         * armor.c (use_armor): New.
12009
12010 Sat Feb 14 14:30:57 1998  Werner Koch  (wk@isil.d.shuttle.de)
12011
12012         * mainproc.c (proc_tree): Sigclass fix.
12013
12014 Sat Feb 14 14:16:33 1998  Werner Koch  (wk@isil.d.shuttle.de)
12015
12016         * armor.c (armor_filter): Changed version and comment string.
12017         * encode.c, sign.c, keygen.c: Changed all comment packet strings.
12018
12019 Sat Feb 14 12:39:24 1998  Werner Koch  (wk@isil.d.shuttle.de)
12020
12021         * g10.c (aGenRevoke): New command.
12022         * revoke.c: New.
12023         * sign.c (make_keysig_packet): Add support for sigclass 0x20.
12024
12025 Fri Feb 13 20:18:14 1998  Werner Koch  (wk@isil.d.shuttle.de)
12026
12027         * ringedit.c (enum_keyblocks, keyring_enum): New.
12028
12029 Fri Feb 13 19:33:40 1998  Werner Koch  (wk@isil.d.shuttle.de)
12030
12031         * export.c: Add functionality.
12032
12033         * keygen.c (generate_keypair): Moved the leading comment behind the
12034         key packet.
12035         * kbnode.c (walk_kbnode): Fixed.
12036
12037         * g10.c (main): listing armored keys now work.
12038
12039 Fri Feb 13 16:17:43 1998  Werner Koch  (wk@isil.d.shuttle.de)
12040
12041         * parse-packet.c (parse_publickey, parse_signature): Fixed calls
12042         to mpi_read used for ELG b.
12043
12044 Fri Feb 13 15:13:23 1998  Werner Koch  (wk@isil.d.shuttle.de)
12045
12046         * g10.c (main): changed formatting of help output.
12047
12048 Thu Feb 12 22:24:42 1998  Werner Koch  (wk@frodo)
12049
12050         * pubkey-enc.c (get_session_key): rewritten
12051
12052
12053  Copyright 1998,1999,2000,2001,2002,2003,2004,2005,
12054            2006,2007,2008,2009,2010,2011 Free Software Foundation, Inc.
12055
12056  This file is free software; as a special exception the author gives
12057  unlimited permission to copy and/or distribute it, with or without
12058  modifications, as long as this notice is preserved.
12059
12060  This file is distributed in the hope that it will be useful, but
12061  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
12062  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12063
12064 Local Variables:
12065 buffer-read-only: t
12066 End: