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