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