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