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