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