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