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