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