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