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