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