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