Fix bug#1059 (missing status line signature verification done with a
[gnupg.git] / g10 / ChangeLog
1 2009-12-17  Werner Koch  <wk@g10code.com>
2
3         * sig-check.c (do_check_messages): Evaluate the HAS_EXPIRED flag.
4         Fixes bug#1059.
5
6 2009-12-15  Werner Koch  <wk@g10code.com>
7
8         * iso7816.c (do_generate_keypair): s/readonly/read_only/.
9         * keydb.c (keydb_add_resource): Ditto.
10
11         * tdbio.c (tdbio_set_dbname): Do not call log_fatal after creating
12         the directory.  Fixes bug#1169.  Reported by Daniel Leidert.
13
14 2009-09-28  Werner Koch  <wk@g10code.com>
15
16         * trustdb.c (get_validity_info): Take care of a NULL PK.  Fixes
17         bug#1138.
18         (get_validity_string): Ditto.
19
20 2009-09-02  Werner Koch  <wk@g10code.com>
21
22         * app-openpgp.c (do_decipher): Compute required Le.
23         * iso7816.c (iso7816_decipher): Add new arg LE.
24
25         * compress-bz2.c (do_uncompress): Detect unexpected EOF.  Fixes
26         bug#1011.
27
28 2009-08-26  Werner Koch  <wk@g10code.com>
29
30         * keyedit.c (menu_revsig): Check for signature right away.  Fix
31         Debian-bug#543530.
32
33 2009-08-13  Werner Koch  <wk@g10code.com>
34
35         * cardglue.h: Add new error code mappings.
36
37         From GnuPG-2:
38         * app-openpgp.c (change_keyattr_from_string): New.
39         (do_setattr): Support KEY-ATTR.
40         * ccid-driver.c (print_pr_data): Fix 64 bit compat problem.
41         * ccid-driver.c (parse_ccid_descriptor): Enable hack for SCR 3320.
42         * card-util.c (generate_card_keys): Remove special case for
43         GnuPG-2.  Ask for the keysize and change it.
44         (card_generate_subkey): Ask for the keysize and change it.
45         (get_info_for_key_operation): Read KEY-ATTR.
46         (show_keysize_warning, ask_card_keysize): New.
47         (do_change_keysize): New.
48
49 2009-08-11  David Shaw  <dshaw@jabberwocky.com>
50
51         * keyserver.c (keyserver_spawn): Try and detect mis-coded Latin1
52         and convert it to UTF8.  Whether the heuristics succeed or not,
53         the resulting string must be valid UTF8 as LDAP requires that.
54         This is bug 1055.
55
56 2009-08-03  Werner Koch  <wk@g10code.com>
57
58         * card-util.c (generate_card_keys): Ask for off-card keys only if
59         the card supports it.
60         (get_info_for_key_operation): Read EXTCAP.
61         (card_store_subkey): Check for non matching sizes.
62
63         * cardglue.c (agent_scd_writecert, agent_scd_readcert): New stubs.
64         * misc.c (not_in_gpg1_notice): New.
65
66 2009-07-30  Werner Koch  <wk@g10code.com>
67
68         * misc.c (md5_digest_warn): New.
69         (print_digest_algo_note): Divert to new function.
70         * sig-check.c (do_check): Print MD5 warning.
71
72 2009-07-31  David Shaw  <dshaw@jabberwocky.com>
73
74         * gpg.c (main): --pgp6 includes --disable-mdc.
75
76 2009-07-29  Werner Koch  <wk@g10code.com>
77
78         * keygen.c (keygen_set_std_prefs): Remove RMD-160 from the list.
79         Change order to SHA-256, SHA-1, SHA-384, SHA-512, SHA-224.
80         (gen_dsa): Use a 256 bit Q for 2048 bit P.  Round to FIPS allowed
81         values in non-expert mode.
82         (ask_algo): Add arg R_SUBKEY_ALGO.  Change return value semantics.
83         Change presented order of algorithms.  Make RSA+RSA the default.
84         (generate_keypair, generate_subkeypair): Adjust for change.
85
86 2009-07-23  Werner Koch  <wk@g10code.com>
87
88         * keygen.c (generate_keypair): Allow Elgamal > 3072 in BOTH mode.
89         Reported by Jeroen Schot.  Fixes bug#1091.
90         (ask_keysize): Add new arg PRIMARY_KEYSIZE.  Set DSA default to
91         2048.  Print a different prompt for a subkey.
92         (gen_dsa): Remove check for dsa2 option.
93
94         * trustdb.c (how_to_fix_the_trustdb): New.
95         * tdbio.c (tdbio_invalid): Print hints on how to fix the trustdb.
96         * gpg.c (main) <aFixTrustDB>: Print hints.
97
98 2009-07-23  David Shaw  <dshaw@jabberwocky.com>
99
100         * keyserver.c (keyserver_import_ldap): Try a DNS-SD lookup to find
101         a domain-specific LDAP server before resorting to keys.{domain}.
102
103 2009-07-22  Werner Koch  <wk@g10code.com>
104
105         * cardglue.h (struct agent_card_info_s): Add field EXTCAP.
106         * cardglue.c (agent_learn): Read KEY-ATTR.
107         (learn_status_cb): Parse EXTCAP.
108
109 2009-07-21  Werner Koch  <wk@g10code.com>
110
111         * app-common.h, app-openpgp.c, iso7816.c, iso7816.h, apdu.c,
112         * apdu.h, ccid-driver.c, ccid-driver.h, card-util.c: Update from
113         GnuPG 2.0 SVN revision 5084.
114
115         * cardglue.h (GCRY_MD_SHA256): Add more GCRY_MD constants.
116         (gcry_handler_progress_t): Add definition.
117         (struct agent_card_info_s): Add fields apptype, is_v2, key_attr.
118         * cardglue.c (learn_status_cb): Set them.
119         (agent_release_card_info): Release APPTYPE.
120         (unescape_status_string, send_status_direct): New.
121         (gcry_mpi_release, gcry_mpi_set_opaque): New.
122         (gcry_md_algo_name): New.
123         (open_card): s/initialized/ref_count/.
124         (agent_learn): Pass new new flag arg to learn_status.
125         (agent_scd_genkey): Add new arg createtime.
126         * keygen.c (gen_card_key, gen_card_key_with_backup): Add new arg
127         TIMESTAMP.
128         (write_direct_sig, write_selfsigs, write_keybinding)
129         (make_backsig): Ditto.
130         (do_generate_keypair): Pass timestamp to all signing functions.
131         (generate_card_subkeypair): Ditto.
132         * keyedit.c (menu_backsign): Pass a new timestamp to all backsisg.
133
134         * gpg.c (main): Disable keypad support.
135         * options.h (struct): Add field disable_keypad.
136
137 2009-07-17  Werner Koch  <wk@g10code.com>
138
139         * keyring.c (keyring_rebuild_cache): Replace the assert by a
140         proper error message and allow to delete a bad keyblock.
141
142 2009-07-16  Werner Koch  <wk@g10code.com>
143
144         * misc.c (has_invalid_email_chars): Let non-ascii characters pass
145         through.  Fixes bug#1087.
146
147 2009-06-24  Werner Koch  <wk@g10code.com>
148
149         * passphrase.c (passphrase_to_dek): Do not deref a PW of NULL.
150         * revoke.c (gen_revoke): Remove unused malloc of PK.
151
152 2009-06-17  Werner Koch  <wk@g10code.com>
153
154         * parse-packet.c (parse): Use a casted -1 instead of a 32 bit
155         constant to check for a garbled package.  Fixes bug#1040.
156
157 2009-06-05  David Shaw  <dshaw@jabberwocky.com>
158
159         * gpg.c (main): Remove Camellia restriction.
160
161 2009-06-02  Werner Koch  <wk@g10code.com>
162
163         * gpgv.c (tty_cleanup_after_signal): Add new stub.
164
165 2009-05-22  Werner Koch  <wk@g10code.com>
166
167         * signal.c (got_fatal_signal): Call tty_cleanup_after_signal.
168
169 2009-05-20  Werner Koch  <wk@g10code.com>
170
171         * gpg.c (main): Fix --fingerprint/--with-fingerprint command
172         detection.  Fixes bug#1044.
173
174 2009-05-11  Werner Koch  <wk@g10code.com>
175
176         * apdu.c (send_le): Replace log_error by log_info.  Fixes bug#1043.
177
178         * skclist.c (build_sk_list): Use log_info for "duplicated entry".
179         Fixes bug#1045.
180
181         * encode.c (encode_simple, encode_crypt): Print empty file warning
182         only in verbose mode.  Closes bug#1039.
183         * sign.c (write_plaintext_packet): 
184
185 2009-05-06  Werner Koch  <wk@g10code.com>
186
187         * keyring.c (keyring_get_keyblock): Fix memory leak due to
188         ring_trust packets.  Fixes bug#1034.
189
190         * getkey.c (finish_lookup): Remove dead code.
191
192 2009-05-05  Werner Koch  <wk@g10code.com>
193
194         * keygen.c (read_parameter_file): Add keyword "Creation-Date".
195         (output_control_s): s/create/creation/.
196         (enum para_name): Add pCREATIONDATE, pKEYCREATIONDATE.  Remove
197         pCREATETIME.
198         (generate_keypair): Do not set old pCREATETIME.
199         (parse_creation_string): New.
200         (proc_parameter_file): Set pCREATIONDATE.
201         (do_generate_keypair): Remove arg TIMESTAMP. Set it using
202         pKEYCREATIONDATE.
203         (get_parameter_u32): Set a default pKEYCREATIONDATE.
204
205         * tdbio.c (lookup_hashtable): Add const to function args.
206         (cmp_trec_fpr): Ditto.
207         (tdbio_search_trust_byfpr): Remove cast.
208
209         * parse-packet.c (parse): Remove special treatment for compressed
210         new style packets.  Fixes bug#931.
211         
212 2009-04-03  Werner Koch  <wk@g10code.com>
213
214         * gpgv.c (main): Pass readonly flag to keydb_add_resource.
215         * keydb.c (keydb_add_resource): Add arg READONLY.
216
217 2009-03-20  David Shaw  <dshaw@jabberwocky.com>
218
219         * keyring.c (rename_tmp_file): Force a fsync (via iobuf_ioctl) on
220         secret keyring files to be extra safe on filesystems that may not
221         sync data and metadata together (ext4).  Also check return code
222         from the cache invalidation to make sure we're safe over NFS and
223         similar.
224
225 2009-03-14  David Shaw  <dshaw@jabberwocky.com>
226
227         * gpgv.c (strusage): Fix name of program in "Syntax" line.
228
229 2009-02-09  Werner Koch  <wk@g10code.com>
230
231         * keylist.c (print_capabilities): Take care of cert-only keys.
232         Fixes bug#998.
233
234 2009-02-03  David Shaw  <dshaw@jabberwocky.com>
235
236         * keyserver.c (keyserver_typemap): gpgkeys_hkp handles hkps as
237         well.
238
239 2008-12-21  David Shaw  <dshaw@jabberwocky.com>
240
241         * gpg.c (main): Properly handle UTF8 usernames with --sign-key and
242         --lsign-key.
243
244 2008-12-11  Werner Koch  <wk@g10code.com>
245
246         * sig-check.c (check_revocation_keys): Close message digest.
247         (signature_check2): Switch to SHA-1 for SIG_ID computation.  This
248         is to match 2.0.10.
249
250 2008-12-09  Werner Koch  <wk@g10code.com>
251
252         * keygen.c (proc_parameter_file): Check that key and subkey usages
253         are allowed.
254
255 2008-11-18  David Shaw  <dshaw@jabberwocky.com>
256
257         * trustdb.c (validate_one_keyblock): Fix the trust signature
258         calculations so that we lower the trust depth of signatures to fit
259         within the current chain, rather than discarding any signature
260         that does not fit within the trust depth.
261
262 2008-10-03  David Shaw  <dshaw@jabberwocky.com>
263
264         * main.h, mainproc.c (check_sig_and_print),
265          keylist.c (list_keyblock_print), pkclist.c (do_edit_ownertrust),
266          keyedit.c (menu_showphoto), photoid.c (generate_photo_id,
267          show_photos), misc.c (pct_expando): Add %v and %V expandos so
268          that displaying photo IDs can show the attribute validity
269          tag (%v) and string (%V).  Originally by Daniel Gillmor.
270
271 2008-09-24  David Shaw  <dshaw@jabberwocky.com>
272
273         * keyedit.c (keyedit_menu): Fix bug where a modified keyring loses
274         its modified status after a "clean" or "minimize" that doesn't
275         need to do anything.
276
277 2008-09-23  David Shaw  <dshaw@jabberwocky.com>
278
279         * pkclist.c (select_algo_from_prefs): Redo function to rank prefs
280         and pick a consensus winner across all keys.
281
282 2008-09-04  David Shaw  <dshaw@jabberwocky.com>
283
284         * keyserver.c (keyserver_import_cert): Allow keyserver URLs in
285         addition to full URLs in CERT records.
286
287 2008-08-11  Werner Koch  <wk@g10code.com>
288
289         * keygen.c (ask_expire_interval): Check for time overflow of an
290         u32.  Fixes bug #947.  Use SIZEOF_TIME_T for the 2039--2106 check.
291
292 2008-08-01  Werner Koch  <wk@g10code.com>
293
294         * tdbio.c (open_db) [!EROFS]: Move closing parens out of the
295         ifdef.  Reported by Ken Takusagawa.
296
297 2008-04-30  Werner Koch  <wk@g10code.com>
298
299         * getkey.c (parse_auto_key_locate): Ignore nodefault and local
300         methods.
301
302 2008-04-17  David Shaw  <dshaw@jabberwocky.com>
303
304         * parse-packet.c (parse_key): Add constant for Camellia-192.
305
306 2008-04-12  David Shaw  <dshaw@jabberwocky.com>
307
308         * getkey.c (merge_selfsigs_subkey): If there are multiple 0x19
309         backsigs, take the most recent one.
310
311 2008-03-25  Werner Koch  <wk@g10code.com>
312
313         * keyserver.c (parse_keyrec): Take care of char defaulting to
314         unsigned when using hextobyte.
315
316         * options.skel: Make the default keyserver keys.gnupg.net.
317
318 2008-03-23  David Shaw  <dshaw@jabberwocky.com>
319
320         * import.c (collapse_uids): Fix bug 894: possible memory
321         corruption around deduplication of user IDs.
322
323 2008-03-17  David Shaw  <dshaw@jabberwocky.com>
324
325         * parse-packet.c (parse_key): Parse a secret key encrypted with
326         Camellia.
327
328 2008-02-09  Marcus Brinkmann  <marcus@g10code.de>
329
330         * gpg.c (main): New variable default_configname.  Use it if
331         save_configname is NULL (can happen if default configfile does
332         not exist).  Move default configname determination to ...
333         (get_default_configname): ... this new function.
334
335 2008-01-26  Werner Koch  <wk@g10code.com>
336
337         * card-util.c (get_manufacturer): Add vendor 004 and support for
338         the unmanaged range.
339
340 2007-12-14  Werner Koch  <wk@g10code.com>
341
342         * gpg.c (main): Set opt.no_homedir_creation already on the first
343         option parsing pass.  This is required so that the gpg_dearmor
344         tool won't create a ~/.gnupg.
345
346 2007-12-12  Werner Koch  <wk@g10code.com>
347
348         * misc.c (print_pubkey_algo_note): Print a warning for type 20 keys.
349         (openpgp_pk_test_algo, openpgp_pk_algo_usage): Allow type 20 fro
350         encryption only with option --rfc2440.
351         * mainproc.c (proc_pubkey_enc): Ditto.
352
353 2007-12-12  David Shaw  <dshaw@jabberwocky.com>
354
355         * trustdb.c (sanitize_regexp): New.  Protect against dangerous
356         regexps (malloc bombs) by force-commenting any characters aside
357         from the ones we explicitly want.
358         (check_regexp): Use it here before passing the regexp to
359         regcomp().
360
361 2007-12-11  Werner Koch  <wk@g10code.com>
362
363         * mainproc.c (proc_pubkey_enc): Allow type 20 Elgamal key for
364         decryption.
365
366 2007-12-10  Werner Koch  <wk@g10code.com>
367
368         * cardglue.h (gpg_error_from_syserror): New.
369
370         * app-openpgp.c (do_decipher): Take care of cryptograms shorter
371         that 128 bytes.  Fixes bug#851.
372
373         * import.c (auto_create_card_key_stub):  Do not clear the entire
374         fingerprint.  This finally makes the stub creation work.  My past
375         tests seemed to work because there was a key with a all zero
376         fingerprint available (Elgamal signing keys).
377
378 2007-12-08  Werner Koch  <wk@g10code.com>
379
380         * misc.c (openpgp_pk_algo_usage): Allow Elgamal type 20 for
381         encryption.
382
383 2007-12-03  Werner Koch  <wk@g10code.com>
384
385         * keygen.c (ask_key_flags): Add a translation remark and implement
386         a workaround.
387
388 2007-11-28  David Shaw  <dshaw@jabberwocky.com>
389
390         * sig-check.c (do_check): Code to try both the incorrect and
391         correct SHA-224 DER prefixes when verifying a signature.  See the
392         change itself for more discussion.
393
394         * main.h, seskey.c (do_encode_md): Rename to pkcs1_encode_md and
395         make non-static.
396
397         * gpg.c (print_algo_names): New.
398         (list_config): Use it here for the "ciphername" and "digestname"
399         config items so we can get a script-parseable list of the names.
400
401 2007-11-19  Werner Koch  <wk@g10code.com>
402
403         * keyedit.c (keyedit_menu): String grammar fix.
404
405 2007-11-12  Werner Koch  <wk@g10code.com>
406
407         * status.c (do_get_from_fd, do_shm_get): s/bool/getbool/ to
408         overcome problems with Mac OS 10.5 which seems to include
409         stdbool.h silently.
410
411 2007-10-27  David Shaw  <dshaw@jabberwocky.com>
412
413         * parse-packet.c (parse_onepass_sig): Sigclass is hex, so include
414         the 0x.
415
416         * keyserver.c (keyserver_spawn): Cosmetic, but looks cleaner.
417
418 2007-10-23  Werner Koch  <wk@g10code.com>
419
420         Switched entire package to GPLv3+.
421
422 2007-10-22  David Shaw  <dshaw@jabberwocky.com>
423
424         * gpg.c (main): Add --require-cross-certification to
425         --openpgp/--rfc4880 mode.
426
427         * gpg.c (main): Disable --rfc2440-text and --force-v3-sigs by
428         default.  Enable --require-cross-certification by default.
429         --openpgp (--rfc4880) is the same as --rfc2440 except with
430         "--enable-dsa2 --no-rfc2440-text --escape-from-lines".
431
432 2007-10-21  David Shaw  <dshaw@jabberwocky.com>
433
434         * misc.c (compliance_option_string, compliance_failure): Minor
435         cleanup.
436
437         * armor.c (is_armor_header): Comment about 4880.
438
439 2007-10-17  David Shaw  <dshaw@jabberwocky.com>
440
441         * options.h, gpg.c (main), misc.c (compliance_option_string): Add
442         --rfc4880, and make --openpgp an alias to it.  --rfc2440 now
443         stands alone.  For now, use the old 2440 defaults for 4880.
444
445         * keyedit.c (keyedit_menu): Use compliance_option_string() instead
446         of printing the compliance modes here.
447
448 2007-09-02  David Shaw  <dshaw@jabberwocky.com>
449
450         * import.c (collapse_uids): Significant speedup for de-duping user
451         IDs.
452
453 2007-08-24  Werner Koch  <wk@g10code.com>
454
455         * keyring.c (keyring_register_filename): Use same_file_p.
456         Suggested by Kurt Fitzner.
457
458 2007-07-19  David Shaw  <dshaw@jabberwocky.com>
459
460         * gpg.c (main): Fix typo.  Noted by John Clizbe.
461
462         * armor.c (parse_header_line): Improve test so that the header
463         test only allows "Hash" in the signed data section.
464
465 2007-07-18  David Shaw  <dshaw@jabberwocky.com>
466
467         * armor.c (is_armor_tag): New.  Detect if an armor header matches
468         2440bis-21.
469         (parse_header_line): Call it here, as bis-21 requires warning the
470         user (but continuing to process the message) when seeing an
471         unknown header.
472
473 2007-07-09  Werner Koch  <wk@g10code.com>
474
475         * gpg.c: Better print an extra warning if Camellia has been
476         configured.
477
478 2007-07-06  David Shaw  <dshaw@jabberwocky.com>
479
480         * encode.c (encode_crypt): Missed one call to
481         setup_plaintext_name().  This is bug#809.
482
483 2007-06-12  David Shaw  <dshaw@jabberwocky.com>
484
485         * sign.c (mk_notation_policy_etc): expect all sigs that this is
486         called for are >=v4.
487         (write_signature_packets, make_keysig_packet): Only call it for
488         >=v4 sigs.  This allows --force-v3-sigs and --force-v4-certs to
489         enable or disable notations, policies, and keyserver URLs.  This
490         is bug#800.
491
492 2007-05-09  Werner Koch  <wk@g10code.com>
493
494         * openfile.c (overwrite_filep, open_outfile) [W32]: Need to use
495         just "nul".  Though, I am pretty sure that some MSDOS versions
496         grok the extra /dev/.
497
498 2007-05-07  Werner Koch  <wk@g10code.com>
499
500         * openfile.c (open_outfile, overwrite_filep) [W32]: Use "/dev/nul".
501
502 2007-04-16  David Shaw  <dshaw@jabberwocky.com>
503
504         * packet.h, mainproc.c (reset_literals_seen): New function to
505         reset the literals count.
506
507         * verify.c (verify_one_file), decrypt.c (decrypt_messages): Call
508         it here so we allow multiple literals in --multifile mode (in
509         different files - not concatenated together).
510
511         * gpg.c, pkclist.c: #include <strings.h> for strcasecmp if it is
512         present.  Note that autoconf protects us against a strings.h that
513         cannot be used together with string.h.
514
515 2007-04-03  David Shaw  <dshaw@jabberwocky.com>
516
517         * parse-packet.c (parse_marker): New.  Enforce that the marker
518         contains 'P', 'G', 'P', and nothing but.
519         (parse): Call it here.
520         (skip_packet): No longer need to handle marker packets here.
521
522 2007-03-14  David Shaw  <dshaw@jabberwocky.com>
523
524         * keyserver.c: Windows Vista doesn't grok X_OK and so fails
525         access() tests.  Previous versions interpreted X_OK as F_OK
526         anyway, so we'll just use F_OK directly.
527
528 2007-03-08  Werner Koch  <wk@g10code.com>
529
530         * plaintext.c (handle_plaintext): Add two extra fflush for stdout.
531
532 2007-03-06  David Shaw  <dshaw@jabberwocky.com>
533
534         * keyedit.c (keyedit_menu): If we modify the keyblock (via
535         fix_keyblock() or collapse_uids()) make sure we reprocess the
536         keyblock so the flags are correct.  Noted by Robin H. Johnson.
537
538         * getkey.c (fixup_uidnode): Properly clear flags that don't apply
539         to us (revoked, expired) so that we can reprocess a uid.
540
541 2007-03-01  David Shaw  <dshaw@jabberwocky.com>
542
543         * options.h, gpg.c (main), mainproc.c (check_sig_and_print): Allow
544         multiple sig verification again as this is protected via the
545         multiple-messages code.
546
547 2007-02-26  Werner Koch  <wk@g10code.com>
548
549         * gpg.c (main): Add verify option show-primary-uid-only.
550         * options.h (VERIFY_SHOW_PRIMARY_UID_ONLY): New.
551         * mainproc.c (check_sig_and_print): Implement it.
552
553         * status.h (STATUS_ERROR): New status code.
554         * status.c (get_status_string): Ditto.
555         * mainproc.c (proc_plaintext): Emit it if multiple messages are
556         detected.
557
558 2007-02-20  David Shaw  <dshaw@jabberwocky.com>
559
560         * mainproc.c (literals_seen): New.
561         (proc_plaintext): Error out if more than one plaintext packet is
562         encountered
563         
564         * options.h, gpg.c: New option --allow-multiple-messages and --no
565         variant.
566
567 2007-02-13  David Shaw  <dshaw@jabberwocky.com>
568
569         * parse-packet.c (parse_signature): It's hex.
570
571         * getkey.c (merge_selfsigs_subkey): Avoid listing the contents of
572         a backsig when list mode is on.  Noted by Timo Schulz.
573
574 2007-02-04  Werner Koch  <wk@g10code.com>
575
576         * parse-packet.c (parse_signature): Limit bytes read for an
577         unknown alogorithm.  Fixes Debian bug#402592.
578
579 2007-02-01  David Shaw  <dshaw@jabberwocky.com>
580
581         * main.h, keygen.c (ask_expire_interval, parse_expire_string):
582         Pass in the time to use to calculate the expiration offset, rather
583         than querying it internally.  Change all callers.
584
585 2007-01-31  David Shaw  <dshaw@jabberwocky.com>
586
587         * keygen.c (do_generate_keypair, proc_parameter_file)
588         (generate_keypair, generate_subkeypair): Pass a timestamp through
589         to all the gen_xxx functions.
590
591         * keyedit.c (sign_uids): Another multiple to single timestamp
592         operation.
593
594         * sign.c (write_plaintext_packet): Take timestamp from outside.
595         Change all callers.
596         (sign_file, clearsign_file, sign_symencrypt_file): Calculate one
597         timestamp for the whole transaction.  Different timestamps for
598         each step can leak performance information.
599
600         * main.h, keygen.c (ask_expiredate), keyedit.c (menu_expire):
601         Remove the need for ask_expiredate().
602
603 2007-01-30  David Shaw  <dshaw@jabberwocky.com>
604
605         * keygen.c (make_backsig, write_direct_sig, write_selfsigs)
606         (write_keybinding): Have the various selfsigs created during key
607         generation use the timestamp of their parent key.  This helps
608         avoid leaking information about the performance of the machine
609         where the keys were generated.  Noted by Christian Danner.
610
611 2007-01-15  Werner Koch  <wk@g10code.com>
612
613         * parse-packet.c (read_protected_v3_mpi): Make sure to stop
614         reading even for corrupted packets.
615         * keygen.c (generate_user_id): Need to allocate one byte more.
616         Reported by Felix von Leitner.
617
618 2006-12-14  David Shaw  <dshaw@jabberwocky.com>
619
620         * options.skel: Tweak some examples to match reality and update
621         the RFC for CERT now that it is out of draft.
622
623 2006-12-13  David Shaw  <dshaw@jabberwocky.com>
624
625         * Makefile.am: Install options.skel via dist_pkgdata_DATA so that
626         "make uninstall" works properly.
627
628 2006-12-13  Werner Koch  <wk@g10code.com>
629
630         * gpgv.c, gpg.c: Do not include the now removed g10defs.h file.
631
632 2006-12-11  Werner Koch  <wk@g10code.com>
633
634         * seskey.c (encode_session_key, do_encode_md): Use new
635         mpi_nlimb_hint_from_nbytes function.
636         * sign.c (do_sign): Ditto.
637
638         * Makefile.am (AM_CPPFLAGS): Define GNUPG_LIBDIR.
639         * gpgv.c (i18n_init): s/G10_LOCALEDIR/LOCALEDIR/.
640         * gpg.c (i18n_init): Ditto.
641
642 2006-12-07  Werner Koch  <wk@g10code.com>
643
644         * Makefile.am (AM_CPPFLAGS): Define GNUPG_DATADIR.
645         * openfile.c (copy_options_file): Use log_info and not log_error
646         to avoid error returns in case of a missing skeleton file.
647
648 2006-12-04  Werner Koch  <wk@g10code.com>
649
650         * filter.h (armor_filter_context_t): New field REFCOUNT.
651         * armor.c (new_armor_context, release_armor_context) 
652         (push_armor_filter): New.
653         (armor_filter): Call releae_armor_context for IOBUFCTRL_FREE.
654         * import.c (import): Use the new function here instead of the
655         old hack using the iobuf_push_filter2. 
656         * keyserver.c (keyserver_spawn): Ditto.
657
658 2006-12-03  Werner Koch  <wk@g10code.com>
659
660         * keyedit.c (menu_clean): Made strings translatable.
661
662 2006-12-03  David Shaw  <dshaw@jabberwocky.com>
663
664         * keyedit.c (menu_clean): Show "already minimized" rather than
665         "already clean" when a minimized key is minimized again.  From
666         Dirk Traulsen.
667
668 2006-12-02  David Shaw  <dshaw@jabberwocky.com>
669
670         * options.h, gpg.c (main), passphrase.c (passphrase_to_dek): Add
671         --passphrase-repeat option to control how many times gpg will
672         re-prompt for a passphrase to ensure the user has typed it
673         correctly.  Defaults to 1.
674
675 2006-12-02  Werner Koch  <wk@g10code.com>
676
677         * encr-data.c: Allocate DFX context on the heap and not on the
678         stack.  Changes at several places.  Fixes CVE-2006-6235.
679
680 2006-11-27  Werner Koch  <wk@g10code.com>
681
682         * openfile.c (ask_outfile_name): Fixed buffer overflow occurring
683         if make_printable_string returns a longer string.  Fixes bug 728.
684
685 2006-10-23  Werner Koch  <wk@g10code.com>
686
687         * gpg.c (main): New command --gpgconf-list.
688
689 2006-10-12  David Shaw  <dshaw@jabberwocky.com>
690
691         * parse-packet.c (parse_symkeyenc): Show the unpacked as well as
692         the packed s2k iteration count.
693
694         * main.h, options.h, gpg.c (encode_s2k_iterations, main),
695         passphrase.c (hash_passphrase): Add --s2k-count option to specify
696         the number of s2k hash iterations.
697
698 2006-10-06  David Shaw  <dshaw@jabberwocky.com>
699
700         * keyserver.c (keyserver_spawn): Write the 16-digit keyid rather
701         than whatever key selector the user used on the command line.
702
703 2006-10-02  Werner Koch  <wk@g10code.com>
704
705         * encr-data.c (decrypt_data, mdc_decode_filter): Check the MDC
706         right here and don't let parse-packet handle the MDC.
707
708 2006-08-21  Werner Koch  <wk@g10code.com>
709
710         * skclist.c (is_insecure): Also test for uppercase version of the
711         insecure string.
712
713 2006-07-31  Werner Koch  <wk@g10code.com>
714
715         * openfile.c (open_outfile) [USE_ONLY_8DOT3]: Search backwards for
716         the dot.  Fixes bug 654.
717
718         * passphrase.c (agent_open): Use log_info instead of log_error to
719         allow a fallback without having gpg return an error code.  Fixes
720         bug #655.
721
722         * encode.c (encode_crypt_files): Invalidate the whole fd cache.
723         This is a workaround for problems in iobuf's stupid fd cache.
724         * decrypt.c (decrypt_messages): Ditto.
725         * verify.c (verify_files): Ditto.
726
727 2006-07-26  Werner Koch  <wk@g10code.com>
728
729         * keygen.c (gen_card_key_with_backup): Initialize sk_{un}protected.
730
731         * import.c (import): Initialize KEYBLOCK.
732
733         * pkclist.c (edit_ownertrust): Intialize trust to avoid gcc
734         warning.
735
736         * parse-packet.c (parse_comment): Cap comments at 65k.
737         (parse_gpg_control): Skip too large control packets.
738
739 2006-06-28  David Shaw  <dshaw@jabberwocky.com>
740
741         * keydb.h, pkclist.c (select_algo_from_prefs, algo_available):
742         Pass a union for preference hints rather than doing void * games.
743
744         * sign.c (sign_file): Use it here.
745
746         * sign.c (sign_file): When signing with multiple DSA keys, one
747         being DSA1 and one being DSA2 and encrypting at the same time, if
748         the recipient preferences give a hash that can work with the DSA2
749         key, then allow the DSA1 key to be promoted rather than giving up
750         and using hash_for().
751
752         * pkclist.c (algo_available): Automatically enable DSA2 mode when
753         handling a key that clearly isn't DSA1 (i.e. q!=160).
754
755 2006-06-28  Werner Koch  <wk@g10code.com>
756
757         * import.c (check_prefs_warning): Fix change for better
758         translatability.
759
760         * app-openpgp.c (do_writekey): Fixed computation of memmove
761         length.  This led to garbled keys if E was larger than one byte.
762         Thanks to Achim Pietig for hinting at the garbled E.
763
764 2006-06-27  Werner Koch  <wk@g10code.com>
765
766         * gpg.c (reopen_std) [HAVE_W32_SYSTEM]: Do not use it.
767
768 2006-06-22  David Shaw  <dshaw@jabberwocky.com>
769
770         * options.h, gpg.c (main), keygen.c (keygen_upd_std_prefs,
771         keygen_add_std_prefs, proc_parameter_file): Add
772         --default-keyserver-url to specify a keyserver URL at key
773         generation time, and "Keyserver:" keyword for doing the same
774         through a batch file.
775
776         * sign.c (do_sign): Accept a truncated hash even for DSA1 keys (be
777         liberal in what you accept, etc).
778
779 2006-06-12  David Shaw  <dshaw@jabberwocky.com>
780
781         * import.c (import_one): Add a flag (from_sk) so we don't check
782         prefs on an autoconverted public key.  The check should only
783         happen on the sk side.  Noted by Dirk Traulsen.
784
785 2006-06-09  David Shaw  <dshaw@jabberwocky.com>
786
787         * keygen.c (gen_card_key): Add optional argument to return a
788         pointer (not a copy) of the stub secret key for the secret key we
789         just generated on the card.
790         (generate_card_subkeypair): Use it here so that the signing key on
791         the card can use the card to generate the 0x19 backsig on the
792         primary key.  Noted by Janko Heilgeist and Jonas Oberg.
793
794         * parse-packet.c (parse_user_id): Cap the user ID size at 2048
795         bytes.  This prevents a memory allocation attack with a very large
796         user ID.  A very large packet length could even cause the
797         allocation (a u32) to wrap around to a small number.  Noted by
798         Evgeny Legerov on full-disclosure.
799
800 2006-05-25  David Shaw  <dshaw@jabberwocky.com>
801
802         * keygen.c (gen_dsa): Allow generating DSA2 keys
803         (allow specifying sizes > 1024 when --enable-dsa2 is set).  The
804         size of q is set automatically based on the key size.
805         (ask_keysize, generate_keypair): Ask for DSA size when
806         --enable-dsa2 is set.
807
808 2006-05-24  David Shaw  <dshaw@jabberwocky.com>
809
810         * exec.c (make_tempdir): Fix bug with a temporary directory on
811         Win32 that is over 256 bytes long.  Noted by Israel G. Lugo.
812
813 2006-05-23  David Shaw  <dshaw@jabberwocky.com>
814
815         * gpg.c (reopen_std): New function to reopen fd 0, 1, or 2 if we
816         are called with them closed.  This is to protect our
817         keyring/trustdb files from corruption if they get attached to one
818         of the standard fds.  Print a warning if possible that this has
819         happened, and fail completely if we cannot reopen (should never
820         happen).
821         (main): Call it here.
822
823 2006-05-22  David Shaw  <dshaw@jabberwocky.com>
824
825         * parse-packet.c (dump_sig_subpkt, parse_signature),
826         build-packet.c (build_sig_subpkt_from_sig), getkey.c
827         (fixup_uidnode, merge_selfsigs_main, merge_selfsigs_subkey),
828         keygen.c (keygen_add_key_expire): Fix meaning of key expiration
829         and sig expiration subpackets - zero means "never expire"
830         according to 2440, not "expire instantly".
831
832         * getkey.c (get_pubkey_byname), import.c (import_one): Fix key
833         selection problem when auto-key-locate returns a list of keys, not
834         all of which are usable (revoked, expired, etc).  Noted by Simon
835         Josefsson.
836
837 2006-04-26  David Shaw  <dshaw@jabberwocky.com>
838
839         * keyserver.c (direct_uri_map): New.
840         (keyserver_spawn): Used here to add "_uri" to certain gpgkeys_xxx
841         helpers when the meaning is different if a path is provided
842         (i.e. ldap).
843         (keyserver_import_cert): Show warning if there is a CERT
844         fingerprint, but no --keyserver set.
845
846 2006-04-22  David Shaw  <dshaw@jabberwocky.com>
847
848         * keyserver.c: Fix build problem with platforms that stick libcurl
849         in a place not in the regular include search path.
850
851 2006-04-20  David Shaw  <dshaw@jabberwocky.com>
852
853         * options.h, gpg.c (main): Add --enable-dsa2 and --disable-dsa2.
854         Defaults to disable.
855
856         * pkclist.c (algo_available): If --enable-dsa2 is set, we're
857         allowed to truncate hashes to fit DSA keys.
858
859         * sign.c (match_dsa_hash): New.  Return the best match hash for a
860         given q size.
861         (do_sign, hash_for, sign_file): When signing with a DSA key, if it
862         has q==160, assume it is an old DSA key and don't allow truncation
863         unless --enable-dsa2 is also set.  q!=160 always allows truncation
864         since they must be DSA2 keys.
865         (make_keysig_packet): If the user doesn't specify a
866         --cert-digest-algo, use match_dsa_hash to pick the best hash for
867         key signatures.
868
869 2006-04-19  David Shaw  <dshaw@jabberwocky.com>
870
871         * gpg.c (print_mds), armor.c (armor_filter, parse_hash_header):
872         Add SHA-224.
873
874         * sign.c (write_plaintext_packet), encode.c (encode_simple):
875         Factor common literal packet setup code from here, to...
876
877         * main.h, plaintext.c (setup_plaintext_name): Here. New. Make sure
878         the literal packet filename field is UTF-8 encoded.
879
880         * options.h, gpg.c (main): Make sure --set-filename is UTF-8
881         encoded and note when filenames are already UTF-8.
882
883 2006-04-18  David Shaw  <dshaw@jabberwocky.com>
884
885         * keyedit.c (menu_backsign): Give some more verbose errors when we
886         have no need to backsign.
887
888 2006-04-11  David Shaw  <dshaw@jabberwocky.com>
889
890         * options.skel, photoid.c (get_default_photo_command): Find an
891         image viewer at runtime.  Seems FC5 doesn't have xloadimage.
892
893 2006-04-08  David Shaw  <dshaw@jabberwocky.com>
894
895         * getkey.c (parse_auto_key_locate): Fix dupe-removal code.
896
897         * keyedit.c (menu_backsign): Allow backsigning even if the secret
898         subkey doesn't have a binding signature.
899
900         * armor.c (radix64_read): Don't report EOF when reading only a pad
901         (=) character.  The EOF actually starts after the pad.
902
903         * gpg.c (main): Make --export, --send-keys, --recv-keys,
904         --refresh-keys, and --fetch-keys follow their arguments from left
905         to right.  Suggested by Peter Palfrader.
906
907 2006-04-08  Werner Koch  <wk@g10code.com>
908
909         * mainproc.c (list_node): Print ring trust value only if not empty
910         and --with-colons has been given.
911
912 2006-04-05  Werner Koch  <wk@g10code.com>
913
914         * getkey.c (user_id_not_found_utf8): New.
915         (get_primary_uid, get_user_id): Use it.  Fixes Debian bug #205028
916         in the right way.
917
918 2006-04-03  Werner Koch  <wk@g10code.com>
919
920         * import.c (check_prefs_warning): Merged strings for better
921         translation.
922
923         * gpg.c (main) [__GLIBC__]: Default to libpcsclite.so.1.
924
925         * status.h, status.c (STATUS_BEGIN_SIGNING): New.  Suggested by
926         Daiki Ueno.
927         * textfilter.c (copy_clearsig_text): Issue new status code.
928         * sign.c (sign_file, sign_symencrypt_file): Ditto.
929
930 2006-03-31  David Shaw  <dshaw@jabberwocky.com>
931
932         * getkey.c (get_pubkey_byname): Fix missing auto_key_retrieve
933         unlock.  Fix strings to not start with a capital letter as per
934         convention.
935
936 2006-03-30  David Shaw  <dshaw@jabberwocky.com>
937
938         * main.h, seskey.c (encode_md_value): Modify to allow a q size
939         greater than 160 bits as per DSA2.  This will allow us to verify
940         and issue DSA2 signatures for some backwards compatibility once we
941         start generating DSA2 keys.     
942         * sign.c (do_sign), sig-check.c (do_check): Change all callers.
943
944         * sign.c (do_sign): Enforce the 160-bit check for new signatures
945         here since encode_md_value can handle non-160-bit digests now.
946         This will need to come out once the standard for DSA2 is firmed
947         up.
948
949 2006-03-28  Werner Koch  <wk@g10code.com>
950
951         * openfile.c (overwrite_filep): Fix small cpr issue.  Noted by
952         Daiki Ueno.
953
954 2006-03-22  David Shaw  <dshaw@jabberwocky.com>
955
956         * getkey.c (parse_auto_key_locate): Silently strip out duplicates
957         rather than causing an error.
958
959 2006-03-22  Werner Koch  <wk@g10code.com>
960
961         * sig-check.c (signature_check2): Changed warning URL to include faq.
962         * misc.c (idea_cipher_warn): Ditto.
963
964 2006-03-22  David Shaw  <dshaw@jabberwocky.com>
965
966         * mainproc.c (get_pka_address): Fix bug introduced as part of
967         sig_to_notation conversion.  Noted by Peter Palfradrer.
968
969 2006-03-21  Werner Koch  <wk@g10code.com>
970
971         * cardglue.c (agent_scd_pksign): Allow the use of ripemd-160 along
972         with scdaemon.
973
974 2006-03-16  David Shaw  <dshaw@jabberwocky.com>
975
976         * keyserver.c (keyserver_import_cert): Handle the IPGP CERT type
977         for both the fingerprint alone, and fingerprint+URL cases.
978
979         * getkey.c (get_pubkey_byname): Minor cleanup.
980
981 2006-03-13  David Shaw  <dshaw@jabberwocky.com>
982
983         * keyserver-internal.h, keyserver.c (keyserver_import_pka): Use
984         the same API as the other auto-key-locate fetchers.
985
986         * getkey.c (get_pubkey_byname): Use the fingerprint of the key
987         that we actually fetched.  This helps prevent problems where the
988         key that we fetched doesn't have the same name that we used to
989         fetch it.  In the case of CERT and PKA, this is an actual security
990         requirement as the URL might point to a key put in by an attacker.
991         By forcing the use of the fingerprint, we won't use the attacker's
992         key here.
993
994         * keyserver-internal.h, keyserver.c (keyserver_spawn,
995         keyserver_work, keyserver_import_cert, keyserver_import_name,
996         keyserver_import_ldap): Pass fingerprint info through.
997
998         * main.h, import.c (import_one): Optionally return the fingerprint
999         of the key being imported.
1000         (import_keys_internal, import_keys_stream, import): Change all
1001         callers.
1002
1003 2006-03-12  David Shaw  <dshaw@jabberwocky.com>
1004
1005         * sig-check.c (signature_check2): Print the backsig warning when
1006         there is no backsig present.  Give a URL for more information.
1007
1008         * keyedit.c (menu_backsign): Small tweak to work properly with
1009         keys originally generated with older GnuPGs that included comments
1010         in the secret keys.
1011
1012 2006-03-10  Werner Koch  <wk@g10code.com>
1013
1014         * card-util.c (get_manufacturer): Added Vendor 3
1015
1016 2006-03-09  David Shaw  <dshaw@jabberwocky.com>
1017
1018         * build-packet.c (string_to_notation): Add ability to indicate a
1019         notation to be deleted with a '-' prefix.
1020
1021         * keyedit.c (menu_set_notation): Use it here to allow deleting a
1022         notation marked with '-'.  This works with either "-notation" or
1023         "-notation=value".
1024
1025 2006-03-08  David Shaw  <dshaw@jabberwocky.com>
1026
1027         * keyedit.c (menu_set_notation): New function to set notations on
1028         self-signatures.
1029         (keyedit_menu): Call it here.
1030         (tty_print_notations): Helper.
1031         (show_prefs): Show notations in "showpref".
1032
1033         * mainproc.c (get_pka_address)
1034         * keylist.c (show_notation): Remove
1035         duplicate code by using notation functions.
1036
1037         * packet.h, build-packet.c (sig_to_notation)
1038         * keygen.c (keygen_add_notations): Provide printable text for
1039         non-human-readable notation values.
1040         
1041         * packet.h, build-packet.c (sig_to_notation)
1042         * keygen.c (keygen_add_notations): Tweak to handle non-human-readable
1043         notation values.
1044
1045         * options.h, sign.c (mk_notation_policy_etc)
1046         * gpg.c (add_notation_data): Use it here for the various notation
1047         commands.
1048
1049         * packet.h, main.h, keygen.c (keygen_add_notations)
1050         * build-packet.c (string_to_notation, sig_to_notation)
1051         (free_notation): New "one stop shopping" functions to handle
1052         notations and start removing some code duplication.
1053
1054 2006-03-08  Werner Koch  <wk@g10code.com>
1055
1056         * mainproc.c (do_check_sig): Use log_error for standalone revocations.
1057
1058 2006-03-07  David Shaw  <dshaw@jabberwocky.com>
1059
1060         * options.h, mainproc.c (check_sig_and_print), gpg.c (main):
1061         pka-lookups, not pka-lookup.
1062
1063         * options.h, gpg.c (main), keyedit.c [cmds], sig-check.c
1064         (signature_check2): Rename "backsign" to "cross-certify" as a more
1065         accurate name.
1066
1067         * options.h, gpg.c (main, parse_trust_model), pkclist.c
1068         (check_signatures_trust), mainproc.c (check_sig_and_print,
1069         pka_uri_from_sig), trustdb.c (init_trustdb): Some tweaks to PKA so
1070         that it is a verify-option now.
1071
1072 2006-03-07  Werner Koch  <wk@g10code.com>
1073
1074         * mainproc.c (proc_signature_packets): Return any_sig_seen to caller.
1075         (check_sig_and_print): Option to partly allow the old behaviour.
1076         * gpg.c: New option --allow-multisig-verification.
1077
1078 2006-03-06  David Shaw  <dshaw@jabberwocky.com>
1079
1080         * sign.c (make_keysig_packet): Don't use MD5 for a RSA_S key as
1081         that is not a PGP 2.x algorithm.
1082
1083         * mainproc.c (proc_compressed): "Uncompressed" is not a valid
1084         compression algorithm.
1085
1086 2006-03-06  Werner Koch  <wk@g10code.com>
1087
1088         * mainproc.c (check_sig_and_print): Made the composition test more
1089         tight.  This is due to another bug report by Tavis Ormandy.
1090         (add_onepass_sig): Simplified.
1091
1092 2006-03-05  Werner Koch  <wk@g10code.com>
1093
1094         * plaintext.c (handle_plaintext): Replace assert by explict error
1095         conflict message.  Reported by Tavis Ormandy.
1096
1097 2006-03-02  Werner Koch  <wk@g10code.com>
1098
1099         * cardglue.c (check_card_serialno): Don't ask in batch mode.
1100
1101 2006-03-01  David Shaw  <dshaw@jabberwocky.com>
1102
1103         * getkey.c (parse_auto_key_locate): Error if the user selects
1104         "cert" or "pka" when those features are disabled.
1105
1106         * misc.c (has_invalid_email_chars): Fix some C syntax that broke
1107         the compilers on SGI IRIX MIPS and Compaq/DEC OSF/1 Alpha.  Noted
1108         by Nelson H. F. Beebe.
1109
1110 2006-02-27  David Shaw  <dshaw@jabberwocky.com>
1111
1112         * options.skel: Document auto-key-locate and give a pointer to
1113         Simon Josefsson's page for CERT.
1114
1115 2006-02-24  David Shaw  <dshaw@jabberwocky.com>
1116
1117         * keydb.h, getkey.c (release_akl), gpg.c (main): Add
1118         --no-auto-key-locate.
1119
1120         * options.h, gpg.c (main): Keep track of each keyserver registered
1121         so we can match on them later.
1122
1123         * keyserver-internal.h, keyserver.c (cmp_keyserver_spec,
1124         keyserver_match), gpgv.c: New.  Find a keyserver that matches ours
1125         and return its spec.
1126
1127         * getkey.c (get_pubkey_byname): Use it here to get the
1128         per-keyserver options from an earlier keyserver.
1129
1130 2006-02-23  David Shaw  <dshaw@jabberwocky.com>
1131
1132         * keyserver.c (parse_keyserver_options): Only change max_cert if
1133         it is used.
1134
1135         * options.c, gpg.c (main), keyserver.c (keyserver_spawn): No
1136         special treatment of include-revoked, include-subkeys, and
1137         try-dns-srv.  These are keyserver features, and GPG shouldn't get
1138         involved here.
1139
1140         * keyserver.c (parse_keyserver_uri, add_canonical_option): Always
1141         append options to the list, as ordering may be significant to the
1142         user.
1143
1144         * gpg.c (add_notation_data): Fix reversed logic for isascii check
1145         when adding notations.  Noted by Christian Biere.
1146
1147         * options.h, keyserver.c (add_canonical_option): New.
1148         (parse_keyserver_options): Moved from here.
1149         (parse_keyserver_uri): Use it here so each keyserver can have some
1150         private options in addition to the main keyserver-options
1151         (e.g. per-keyserver auth).
1152
1153 2006-02-22  David Shaw  <dshaw@jabberwocky.com>
1154
1155         * options.h, keyserver-internal.h, keyserver.c
1156         (keyserver_import_name), getkey.c (free_akl,
1157         parse_auto_key_locate, get_pubkey_byname): The obvious next step:
1158         allow arbitrary keyservers in the auto-key-locate list.
1159
1160         * options.h, keyserver.c (parse_keyserver_options): Remove
1161         auto-cert-retrieve as it is no longer meaningful.  Add
1162         max-cert-size to allow users to pick a max key size retrieved via
1163         CERT.
1164
1165         * options.h, gpg.c (main), mainproc.c (check_sig_and_print),
1166         keyserver.c (keyserver_opts): Rename auto-pka-retrieve to
1167         honor-pka-record to be consistent with honor-keyserver-url.
1168
1169         * options.h, keydb.h, g10.c (main), getkey.c
1170         (parse_auto_key_locate): Parse a list of key access methods.
1171         (get_pubkey_byname): Walk the list here to try and retrieve keys
1172         we don't have locally.
1173
1174 2006-02-21  David Shaw  <dshaw@jabberwocky.com>
1175
1176         * getkey.c (get_pubkey_byname): Fix minor security problem with
1177         PKA when importing at -r time.  The URL in the PKA record may
1178         point to a key put in by an attacker.  Fix is to use the
1179         fingerprint from the PKA record as the recipient.  This ensures
1180         that the PKA record is followed.
1181
1182         * keyserver-internal.h, keyserver.c (keyserver_import_pka): Return
1183         the fingerprint we requested.
1184
1185         * gpgv.c: Stub keyserver_import_ldap.
1186
1187         * keyserver-internal.h, keyserver.c (keyserver_import_ldap):
1188         Import using the PGP Universal trick of asking
1189         ldap://keys.(maildomain) for the key.
1190
1191 2006-02-20  David Shaw  <dshaw@jabberwocky.com>
1192
1193         * keyserver.c (parse_keyserver_uri): Include the scheme in the uri
1194         even when we've assumed "hkp" when there was no scheme.
1195
1196 2006-02-20  Werner Koch  <wk@g10code.com>
1197
1198         * apdu.c (open_pcsc_reader): As a precaution set LIST to NULL
1199         after free.
1200
1201 2006-02-14  Werner Koch  <wk@gnupg.org>
1202
1203         * verify.c (verify_signatures): Print warning also for NO_DATA.
1204
1205         * mainproc.c (struct mainproc_context): New field any_sig_seen.
1206         (add_signature): Set it.
1207         (proc_signature_packets): Test and return NO_DATA.
1208
1209 2006-02-09  Werner Koch  <wk@g10code.com>
1210
1211         * gpg.c (main) <oLockNever>: Disable random locking.
1212
1213 2006-02-06  Werner Koch  <wk@g10code.com>
1214
1215         * ccid-driver.c, ccid-driver.h: Updated from GnuPG 1.9.  Changes:
1216         * ccid-driver.h (CCID_DRIVER_ERR_NO_KEYPAD): New.
1217         * ccid-driver.c (send_escape_cmd): New args RESULT, RESULTLEN and
1218         RESULTMAX.  Changed all callers.
1219         (ccid_transceive_escape): New.
1220         * ccid-driver.c (special_transport): New
1221         (ccid_open_reader, do_close_reader, ccid_shutdown_reader)
1222         (bulk_out, bulk_in): Add support for CardMan 4040 reader.
1223         * ccid-driver.c (scan_or_find_devices): Factored most code out to
1224         (scan_or_find_usb_device): .. new.
1225         (make_reader_id): Fixed vendor mask.
1226
1227 2006-01-24  David Shaw  <dshaw@jabberwocky.com>
1228
1229         * keyserver.c (parse_keyserver_uri): If there is a path present,
1230         set the direct_uri flag so the right keyserver helper is run.
1231
1232 2006-01-22  David Shaw  <dshaw@jabberwocky.com>
1233
1234         * keyserver.c (keyserver_spawn): Include the EXEEXT so we can find
1235         keyserver helpers on systems that use extensions.
1236
1237         * misc.c (path_access) [HAVE_DRIVE_LETTERS]: Do the right thing
1238         with drive letter systems.
1239
1240 2006-01-17  David Shaw  <dshaw@jabberwocky.com>
1241
1242         * keydb.h, passphrase.c (next_to_last_passphrase): New.  "Touch" a
1243         passphrase as if it was used (move from next_pw to last_pw).
1244
1245         * pubkey-enc.c (get_session_key): Use it here to handle the case
1246         where a passphrase happens to be correct for a secret key, but yet
1247         that key isn't the anonymous recipient (i.e. the secret key could
1248         be decrypted, but not the session key).  This also handles the
1249         case where a secret key is located on a card and a secret key with
1250         no passphrase.  Note this does not fix bug 594 (anonymous
1251         recipients on smartcard do not work) - it just prevents the
1252         anonymous search from stopping when the card is encountered.
1253
1254 2006-01-07  David Shaw  <dshaw@jabberwocky.com>
1255
1256         * keyserver.c (keyserver_refresh): Fix problem when more than one
1257         key in a refresh batch has a preferred keyserver set.  Noted by
1258         Nicolas Rachinsky.
1259
1260 2006-01-01  David Shaw  <dshaw@jabberwocky.com>
1261
1262         * mainproc.c (check_sig_and_print), keyserver.c
1263         (keyserver_import_pka), card-util.c (fetch_url): Always require a
1264         scheme:// for keyserver URLs except when used as part of the
1265         --keyserver command for backwards compatibility.
1266
1267         * sign.c (write_signature_packets): Lost a digest_algo line.
1268
1269         * sign.c (hash_for): Add code to detect if the sk lives on a smart
1270         card.  If it does, only allow 160-bit hashes, a la DSA.  This
1271         involves passing the *sk in, so change all callers.  This is
1272         correct for today, given the current 160-bit q in DSA, and the
1273         current SHA-1/RIPEMD160 support in the openpgp card.  It will
1274         almost certainly need changing down the road.
1275
1276         * app-openpgp.c (do_sign): Give user error if hash algorithm is
1277         not supported by the card.
1278
1279 2005-12-23  David Shaw  <dshaw@jabberwocky.com>
1280
1281         * keyserver.c (keyserver_import_pka): New.  Moved from
1282         getkey.c:get_pubkey_byname which was getting crowded.
1283
1284         * keyserver.c (keyserver_import_cert): Import a key found in DNS
1285         via CERT records.  Can handle both the PGP (actual key) and IPGP
1286         (URL) CERT types.
1287
1288         * getkey.c (get_pubkey_byname): Call them both here.
1289
1290         * options.h, keyserver.c (parse_keyserver_options): Add
1291         "auto-cert-retrieve" option with optional max size argument.
1292
1293         * gpgv.c: Stubs.
1294
1295         * keyserver-internal.h, keyserver.c (keyserver_spawn,
1296         keyserver_work, keygerver_getname): New keyserver_getname function
1297         to fetch keys by name.
1298
1299         * getkey.c (get_pubkey_byname): Call it here to enable locating
1300         keys by full mailbox from a keyserver a la PKA.  Try PKA first,
1301         though, as it is likely to be faster.
1302
1303 2005-12-20  Werner Koch  <wk@g10code.com>
1304
1305         * gpg.c: New option --allow-pka-lookup.
1306         (parse_trust_model): Add "+pka" variants.
1307         (main): Make KEYSERVER_AUTO_PKA_RETRIEVE teh default.
1308         * options.h (opt): New fields PKA_TRUST_INCREASE and
1309         ALLOW_PKA_LOOKUP.
1310         * status.h (STATUS_PKA_TRUST_BAD, STATUS_PKA_TRUST_GOOD): New.
1311         * pkclist.c (check_signatures_trust): Increase trust due to valid
1312         PKA only if that new option has been set.  Issue new status lines.
1313         * trustdb.c (init_trustdb): Print info if this option is active.
1314         * getkey.c (get_pubkey_byname): Honor allow-pka-lookup.
1315         * mainproc.c (pka_uri_from_sig): Ditto.
1316         
1317         * trustdb.c (validate_keys): Print no "ultimately trusted keys
1318         found" only in non-quiet mode.
1319
1320 2005-12-19  David Shaw  <dshaw@jabberwocky.com>
1321
1322         * getkey.c (merge_selfsigs_main): All primary keys can certify.
1323
1324 2005-12-18  David Shaw  <dshaw@jabberwocky.com>
1325
1326         * gpg.c (main): Restore convert-sk-to-pk as programs rely on it.
1327
1328         * keyid.c (usagestr_from_pk): Remove special PUBKEY_USAGE_CERT
1329         flag.  It's no longer needed.
1330
1331 2005-12-14  David Shaw  <dshaw@jabberwocky.com>
1332
1333         * gpg.c (main): Don't default to import-options convert-sk-to-pk.
1334         It causes confusing warning messages when importing a PGP-exported
1335         key that contains a secret key without selfsigs followed by the
1336         public key.
1337
1338 2005-12-08  David Shaw  <dshaw@jabberwocky.com>
1339
1340         * keyserver.c (keyserver_fetch): Switch on fast-import before we
1341         --fetch-keys so we don't rebuild the trustdb after each fetch.
1342
1343 2005-12-08  Werner Koch  <wk@g10code.com>
1344
1345         * gpg.c (main): Check for DBCS lead byte when converting the
1346         homedir.  By Kazuyoshi Kakihara. Fixes PR561.
1347
1348         * keyserver.c (keyserver_fetch): Made strings translatable.
1349
1350 2005-12-08  David Shaw  <dshaw@jabberwocky.com>
1351
1352         * options.h, keyserver.c (curl_cant_handle, keyserver_spawn)
1353         (keyserver_fetch): Set a flag to indicate that we're doing a direct
1354         URI fetch so we can differentiate between a keyserver operation
1355         and a URI fetch for protocols like LDAP that can do either.
1356
1357 2005-12-07  David Shaw  <dshaw@jabberwocky.com>
1358
1359         * keyserver.c (keyserver_spawn): Don't print "searching for key
1360         00000000" when fetching a URI.
1361
1362         * keyserver-internal.h, keyserver.c (keyserver_fetch): New.  Fetch
1363         an arbitrary URI using the keyserver helpers.
1364
1365         * gpg.c (main): Call it from here for --fetch-keys.
1366
1367 2005-12-07  Werner Koch  <wk@g10code.com>
1368
1369         * pkclist.c (do_we_trust): Add NOTREACHED comment.
1370
1371 2005-11-20  David Shaw  <dshaw@jabberwocky.com>
1372
1373         * main.h, keylist.c (print_revokers): New.  Print the "rvk"
1374         designated revoker record.  Moved from
1375         keyedit.c:show_key_with_all_names_colon.
1376
1377         * keylist.c (list_keyblock_colon): Use it here ...
1378
1379         * keyedit.c (show_key_with_all_names_colon): ... and here.
1380
1381 2005-11-19  David Shaw  <dshaw@jabberwocky.com>
1382
1383         * free-packet.c (copy_secret_key): Copy secret key into secure
1384         memory since we may unprotect it.
1385
1386         * main.h, g10.c (main), revoke.c (gen_desig_revoke): Add local
1387         user support so users can use -u with --desig-revoke.  This
1388         bypasses the interactive walk over the revocation keys.
1389
1390 2005-11-17  David Shaw  <dshaw@jabberwocky.com>
1391
1392         * keyedit.c (keyedit_menu, menu_clean): Simplify clean options to
1393         just "clean", and add "minimize".
1394
1395         * import.c (parse_import_options): Make help text match the export
1396         versions of the options.
1397
1398         * options.h, export.c (parse_export_options, do_export_stream):
1399         Reduce clean options to two: clean and minimize.
1400
1401         * trustdb.h, trustdb.c (clean_one_uid): New function that joins
1402         uid and sig cleaning into one for a simple API outside trustdb.
1403
1404 2005-11-13  David Shaw  <dshaw@jabberwocky.com>
1405
1406         * armor.c (parse_header_line): A fussy bit of 2440: header lines
1407         are delimited with a colon-space pair.  Therefore a line such as
1408         "Comment: " (with a trailing space) is actually legal, albeit not
1409         particularly useful.
1410
1411 2005-11-11  David Shaw  <dshaw@jabberwocky.com>
1412
1413         * trustdb.h, trustdb.c (clean_key): New function to handle key
1414         cleaning from one convenient place.
1415
1416         * options.h, import.c (parse_import_options,
1417         clean_sigs_from_all_uids, import_one): Reduce clean options to
1418         two: clean and minimize.
1419
1420         * parse-packet.c (setup_user_id): Remove.
1421         (parse_user_id, parse_attribute): Just use xmalloc_clear instead.
1422
1423         * trustdb.c (clean_uid_from_key, clean_uids_from_key):
1424         Significantly simpler implementation.
1425
1426 2005-11-10  David Shaw  <dshaw@jabberwocky.com>
1427
1428         * keyedit.c (keyedit_menu, menu_clean_sigs_from_uids): Add
1429         "minimize" command.
1430
1431         * packet.h, keyedit.c (menu_clean_uids_from_key), trustdb.c
1432         (clean_uids_from_key): Fix display bug where sigs cleaned for
1433         other reasons caused a uid to appear as if it had been compacted.
1434
1435         * packet.h: Move some flags to a bitfield.  Change all callers.
1436
1437         * options.h, import.c (parse_import_options,
1438         clean_sigs_from_all_uids, import_one): Add import-minimal option.
1439         Similar to export-minimal, except it works on the way in.
1440
1441         * trustdb.h, trustdb.c (clean_sigs_from_uid): Add flag to remove
1442         all non-selfsigs from key during cleaning.  Change all callers.
1443
1444         * export.c (do_export_stream): Use it here for export-minimal so
1445         we don't need additional minimize code in the export path.
1446
1447 2005-11-06  David Shaw  <dshaw@jabberwocky.com>
1448
1449         * options.skel: Add a section for --encrypt-to.  This is Debian
1450         bug 336211 by Javier Fernández-Sanguino Peña.
1451
1452 2005-11-05  David Shaw  <dshaw@jabberwocky.com>
1453
1454         * Makefile.am: Include @LIBUSB_CPPFLAGS@ in our CPPFLAGS.
1455         Strictly speaking this should be only in gpg_CPPFLAGS, but then we
1456         have to compile everything twice for gpg and gpgv.
1457
1458         * apdu.c (open_pcsc_reader): Fix double free.
1459
1460         * gpg.c (main) [__APPLE__]: Default the PCSC driver to the OS X
1461         location.  Suggested by Patty A. Hardy.
1462
1463 2005-11-02  David Shaw  <dshaw@jabberwocky.com>
1464
1465         * trustdb.c (clean_sigs_from_uid): Include sigs from unavailable
1466         keys in the sigs that are cleaned.  Suggested by Dirk Traulsen and
1467         many others.
1468
1469 2005-11-01  David Shaw  <dshaw@jabberwocky.com>
1470
1471         * import.c (import_one): Do collapse_uids() before we do any
1472         cleaning so keyserver mangled keys with doubled user IDs can be
1473         properly cleaned - possibly sigs on the different user IDs cancel
1474         each other out.
1475
1476         * import.c (parse_import_options), export.c
1477         (parse_export_options): List "xxx-clean" before the longer options
1478         so we don't end up with a partial match on the longer options.
1479
1480         * trustdb.c (clean_uids_from_key): Return proper number of cleaned
1481         user IDs.  Don't count user IDs as cleaned unless we actually
1482         delete something.
1483
1484 2005-10-27  David Shaw  <dshaw@jabberwocky.com>
1485
1486         * keyedit.c (menu_addrevoker), getkey.c (finish_lookup): Fix
1487         problem with adding a cert-only designated revoker.  Code was
1488         looking for a key with sign ability, and not cert ability.  Noted
1489         by Timo Schulz.
1490
1491 2005-10-27  Werner Koch  <wk@g10code.com>
1492
1493         * gpg.c [__CYGWIN__]: Set default driver to winscard.dll.
1494
1495         * apdu.c, apdu.h: Updated from gnupg 1.9.  Changes are:
1496         * apdu.c [__CYGWIN__]: Make cygwin environment similar to _WIN32.
1497         Suggested by John P. Clizbe.
1498         * apdu.h (SW_HOST_NO_KEYPAD): New.
1499         * apdu.c (host_sw_string): Support new code. 
1500         (reader_table_s): New field CHECK_KEYPAD.
1501         (new_reader_slot, open_ct_reader, open_pcsc_reader) 
1502         (open_ccid_reader, open_rapdu_reader): Initialize it.
1503         (check_ccid_keypad): New.
1504         (apdu_check_keypad): New.
1505         (apdu_send_le): Factored all code out to ...
1506         (send_le): .. new.  Takes an additional arg; changed all callers
1507         of the orginal function to use this one with a NULL for the new
1508         arg.
1509         (apdu_send_simple_kp): New.
1510         (ct_send_apdu, pcsc_send_apdu, my_rapdu_send_apdu) 
1511         (send_apdu_ccid): New arg PININFO.
1512         (send_apdu_ccid): Use the new arg.
1513
1514 2005-10-26  David Shaw  <dshaw@jabberwocky.com>
1515
1516         * keygen.c (proc_parameter_file): Default key and subkey usage
1517         flags to algo capabilities if parameter file doesn't specify them.
1518         Noted by Timo Schulz.
1519
1520 2005-10-18  Werner Koch  <wk@g10code.com>
1521
1522         * cardglue.c (pin_cb): Fixed prompt for repeated PIN.  Return
1523         G10ERR_CANCELED and not just -1.
1524         (status_sc_op_failure): New.  Use it where we issue that status.
1525         (pin_cb): Append serial number to the need-pin status message.
1526         (agent_scd_change_pin): Add arg SERIALNO.  Changed all callers.
1527         (agent_scd_writekey): Ditto.
1528         (agent_scd_setattr): Ditto.
1529         (agent_scd_genkey): Ditto.
1530         (agent_scd_checkpin): Pass serialno to the pin_cb.
1531
1532         * keygen.c (parse_expire_string): Allow setting the expire
1533         interval using a "seconds=<n>" syntax.  This is useful for
1534         debugging.
1535
1536 2005-10-17  Werner Koch  <wk@g10code.com>
1537
1538         * export.c (do_export_stream): Factored some code out to ...
1539         (skip_subkey_p): .. new.
1540         (subkey_in_list_p, release_subkey_list): New.
1541         (new_subkey_list_item): New. 
1542         (do_export_stream): Export exactly specified subkeys into one
1543         keyblock.
1544
1545 2005-10-13  David Shaw  <dshaw@jabberwocky.com>
1546
1547         * keyedit.c (keyedit_menu, menu_backsign): New "backsign" command
1548         to add 0x19 backsigs to old keys that don't have them.
1549
1550         * misc.c (parse_options): Fix build warning.
1551
1552         * main.h, keygen.c (make_backsig): Make public.
1553
1554 2005-10-12  David Shaw  <dshaw@jabberwocky.com>
1555
1556         * options.h, getkey.c (merge_selfsigs_subkey), gpg.c (main),
1557         sig-check.c (signature_check2): Add --require-backsigs and
1558         --no-require-backsigs.  Currently defaults to
1559         --no-require-backsigs.
1560
1561 2005-10-11  David Shaw  <dshaw@jabberwocky.com>
1562
1563         * getkey.c (merge_selfsigs_subkey), sig-check.c
1564         (signature_check2), keygen.c (make_backsig): Did some backsig
1565         interop testing with the PGP folks.  All is well, so I'm turning
1566         generation of backsigs on for new keys.  Checking for backsigs on
1567         verification is still off.
1568
1569 2005-10-05  Werner Koch  <wk@g10code.com>
1570
1571         * g10.c: Renamed to ..
1572         * gpg.c: ..this.
1573         * Makefile.am: Adjusted accordingly.
1574
1575 2005-09-22  Werner Koch  <wk@g10code.com>
1576
1577         * sign.c (write_plaintext_packet): Don't print an empty file
1578         warning if the file is actually too large.
1579         * encode.c (encode_simple,encode_crypt): Ditto.
1580         * progress.c (handle_progress): Adjusted for iobuf_get_filelength
1581         change.
1582         * photoid.c (generate_photo_id): Ditto.
1583
1584 2005-09-20  Werner Koch  <wk@g10code.com>
1585
1586         * mainproc.c (proc_symkey_enc): Take care of a canceled passphrase
1587         prompt.
1588
1589 2005-09-19  David Shaw  <dshaw@jabberwocky.com>
1590
1591         * keylist.c (reorder_keyblock, do_reorder_keyblock): Reorder
1592         attribute IDs as well as regular text IDs.
1593
1594         * plaintext.c (ask_for_detached_datafile): Use make_filename() on
1595         filename so tilde expansion works.
1596
1597 2005-09-14  David Shaw  <dshaw@jabberwocky.com>
1598
1599         * main.h, misc.c (parse_options): Add the ability to have help
1600         strings in xxx-options commands.
1601
1602         * keyserver.c (keyserver_opts), import.c (parse_import_options),
1603         export.c (parse_export_options), g10.c (parse_list_options, main):
1604         Add help strings to xxx-options.
1605
1606 2005-09-10  David Shaw  <dshaw@jabberwocky.com>
1607
1608         * keyedit.c (show_names): Moved name display code out from
1609         show_key_with_all_names.
1610         (keyedit_menu): Call it here for pref and showpref so they can
1611         show only the selected user ID.  Suggested by Timo Schulz.
1612
1613 2005-09-07  Werner Koch  <wk@g10code.com>
1614
1615         * cardglue.h (GPG_ERR_TOO_LARGE): New.
1616
1617         * apdu.c, apdu.h, iso7816.c, iso7816.h
1618         * ccid-driver.c, ccid-driver.h: Updated from GnuPG 1.9 source.
1619         Changes are:
1620         * iso7816.c (iso7816_select_path): New.
1621         * iso7816.c (iso7816_read_binary): Use Le=0 when reading all
1622         data.  Handle 6C00 error and take 6B00 as indication for EOF.
1623         * apdu.h (SW_EXACT_LENGTH_P): New.
1624         * apdu.c (new_reader_slot, reset_pcsc_reader, pcsc_get_status) 
1625         (open_pcsc_reader): Set new reader state IS_T0.
1626         (apdu_send_le): When doing T=0 make sure not to send Lc and Le.
1627         Problem reported by Carl Meijer.
1628         (apdu_send_direct): Initialize RESULTLEN.
1629
1630         * misc.c (parse_options): Allow meta option "help" to list all
1631         options and to exit the program.
1632
1633 2005-09-02  David Shaw  <dshaw@jabberwocky.com>
1634
1635         * parse-packet.c (enum_sig_subpkt, parse_signature,
1636         parse_attribute_subpkts): Make a number of warnings verbose items.
1637         These fire on many slightly mangled keys in the field, so the
1638         warning is becoming burdensome.
1639
1640 2005-09-01  David Shaw  <dshaw@jabberwocky.com>
1641
1642         * photoid.h, photoid.c (generate_photo_id): Allow passing in a
1643         suggested filename.
1644
1645         * keyedit.c (keyedit_menu, menu_adduid): Call it here so "addphoto
1646         filename" works.
1647
1648 2005-08-31  David Shaw  <dshaw@jabberwocky.com>
1649
1650         * photoid.c (generate_photo_id): Enable readline completion and
1651         tilde expansion for the JPEG prompt.
1652
1653 2005-08-30  Werner Koch  <wk@g10code.com>
1654
1655         * passphrase.c (agent_open): Print a warning and not an error in
1656         case of a missing agent.  Should fix Debian bug #325578.
1657
1658 2005-08-26  David Shaw  <dshaw@jabberwocky.com>
1659
1660         * misc.c (openpgp_pk_algo_usage): Default to allowing CERT for
1661         signing algorithms.
1662
1663         * keyedit.c (sign_uids): Don't request a signing key to make a
1664         certification.
1665
1666         * keygen.c (do_add_key_flags): Force the certify flag on for all
1667         primary keys, as the spec requires primary keys must be able to
1668         certify (if nothing else, which key is going to issue the user ID
1669         signature?)
1670         (print_key_flags): Show certify flag.
1671         (ask_key_flags, ask_algo): Don't allow setting the C flag for
1672         subkeys.
1673         
1674         * keyid.c (usagestr_from_pk), getkey.c (parse_key_usage):
1675         Distinguish between a sign/certify key and a certify-only key.
1676
1677         * keyedit.c (ask_revoke_sig): Add a revsig --with-colons mode.
1678         Suggested by Michael Schierl.
1679
1680 2005-08-21  David Shaw  <dshaw@jabberwocky.com>
1681
1682         * Makefile.am: No need to link with curl any longer.
1683
1684         * main.h, misc.c (path_access): New.  Same as access() but does a
1685         PATH search like execlp.
1686
1687         * keyserver.c (curl_can_handle): Removed.  Replaced by...
1688         (curl_cant_handle): We are now relying on curl as the handler of
1689         last resort.  This is necessary because PGP LDAP and curl LDAP are
1690         apples and oranges.
1691         (keyserver_typemap): Only test for ldap and ldaps.
1692         (keyserver_spawn): If a given handler is unusable (as determined
1693         by path_access()) then try gpgkeys_curl.
1694
1695         * exec.h, exec.c (make_tempdir, expand_args, exec_write,
1696         exec_read): Minor cleanup to use bitfield flags instead of a bunch
1697         of integers.
1698
1699 2005-08-20  David Shaw  <dshaw@jabberwocky.com>
1700
1701         * g10.c (main): Add aliases sign-with->local-user and
1702         user->recipient to make switching from PGP command line to GPG
1703         easier.
1704
1705 2005-08-19  David Shaw  <dshaw@jabberwocky.com>
1706
1707         * options.skel: Remove the surfnet LDAP keyserver from the list of
1708         samples since it is being shut down.
1709
1710         * getkey.c (classify_user_id): Disable the '.' and '+' search
1711         modes since they aren't supported yet.
1712
1713 2005-08-05  David Shaw  <dshaw@jabberwocky.com>
1714
1715         * g10.c (main), passphrase.c (set_passphrase_from_string): New
1716         --passphrase command line option.  Only useful in very special
1717         circumstances.
1718
1719 2005-08-05  Werner Koch  <wk@g10code.com>
1720
1721         * gpgv.c (keyserver_import_fprint): New stub.
1722
1723         * keygen.c (ask_user_id): Moved email checking code out to ..
1724         * misc.c (is_valid_mailbox): .. new.
1725         * mainproc.c (get_pka_address): Use it here.
1726         * getkey.c (get_pubkey_byname): Add falback to auto-retrieve a key
1727         via the PKA mechanism.
1728
1729         * options.h (KEYSERVER_AUTO_PKA_RETRIEVE): New.
1730         * keyserver.c (keyserver_opts): Ditto.
1731         * mainproc.c (check_sig_and_print): Use it here to retrieve keys
1732         from a PKA DNS record.
1733
1734         * pkclist.c (build_pk_list): Add comments to this function;
1735         re-indented it.
1736
1737 2005-08-04  David Shaw  <dshaw@jabberwocky.com>
1738
1739         * keygen.c (proc_parameter_file): Sanity check items in keygen
1740         batch file.  Noted by Michael Schierl.
1741
1742         * pkclist.c (do_edit_ownertrust): Don't allow ownertrust level 0.
1743         Noted by Michael Schierl.
1744
1745         * keygen.c (write_keyblock): Don't try and build deleted kbnodes
1746         since we start our tree with one.
1747
1748 2005-08-04  Werner Koch  <wk@g10code.com>
1749
1750         * export.c (do_export_stream): Skip on-card keys when only subkeys
1751         are to be exported.  It does not make sense to replace the on-card
1752         key stub by a no-key stub.
1753
1754         * revoke.c (gen_revoke): Check for non-online keys.
1755
1756         * seckey-cert.c (is_secret_key_protected): Return -3 for
1757         non-online key stubs.  The old code assumes that a protection
1758         algorithm is still set but in some cases this one is 0 and thus it
1759         won't be possible to decide whether it is unprotected or
1760         protected.
1761
1762 2005-07-28  Werner Koch  <wk@g10code.com>
1763
1764         * Makefile.am (other_libs): Add SRVLIBS.
1765
1766         * parse-packet.c (can_handle_critical_notation): We know about
1767         pka-address@gnupg.org.
1768         * packet.h (PKT_signature): New fields PKA_INFO and PKA_TRIED. 
1769         (pka_info_t): New.
1770         * free-packet.c (cp_pka_info): New.
1771         (free_seckey_enc, copy_signature): Support new fields.
1772         * mainproc.c (get_pka_address, pka_uri_from_sig): New.
1773         (check_sig_and_print): Try to get the keyserver from the PKA
1774         record.
1775         * pkclist.c (check_signatures_trust): Adjust the trust based on
1776         the PKA.
1777         * gpgv.c (parse_keyserver_uri): New stub.
1778
1779         * keygen.c (has_invalid_email_chars): Moved to ..
1780         * misc.c (has_invalid_email_chars): .. here and made global.
1781
1782 2005-07-27  Werner Koch  <wk@g10code.com>
1783
1784         * export.c (do_export_stream): Make two strings translatable.
1785
1786 2005-07-26  David Shaw  <dshaw@jabberwocky.com>
1787
1788         * keyserver.c (keyserver_typemap): Special-case LDAP since curl
1789         will report that it can handle it, and we don't want it to.
1790
1791 2005-07-26  Werner Koch  <wk@g10code.com>
1792
1793         * passphrase.c (agent_get_passphrase): Make sure to release the
1794         saved codeset.
1795         (agent_open): Add arg ORIG_CODESET and switch back to it in case
1796         of error.  Changed all callers.
1797
1798 2005-07-22  David Shaw  <dshaw@jabberwocky.com>
1799
1800         * keyedit.c (sign_uids): Don't prompt for setting signature expiry
1801         to match key expiry unless --ask-cert-expire is set.  Suggested by
1802         Peter Palfrader.
1803
1804 2005-07-22  Werner Koch  <wk@g10code.com>
1805
1806         * g10.c, options.h: New option --exit-on-status-write-error.
1807         * status.c (write_status_text): Make use of this option.
1808
1809 2005-07-22  David Shaw  <dshaw@jabberwocky.com>
1810
1811         * options.h, g10.c (main): Removed option --no-interactive-selection.
1812         * keyedit.c (keyedit_menu): Use --interactive to enable the uid
1813         walking when signing a key with no uids specified to sign.
1814
1815         * keylist.c (list_keyblock_print): Fix silly typo.  Noted by Greg
1816         Sabino Mullane.
1817
1818 2005-07-20  Werner Koch  <wk@g10code.com>
1819
1820         * openfile.c (open_outfile): Disable FD caching for created files.
1821         * encode.c (encode_simple, encode_crypt): Disable FD caching for
1822         input files.
1823         * verify.c (verify_one_file): Ditto.
1824         * decrypt.c (decrypt_messages): Ditto. This is bug #479.
1825
1826         * misc.c (get_libexecdir) [W32]: Changed to return the value of
1827         program used to create the process.
1828         * keyserver.c (keyserver_spawn) [DISABLE_KEYSERVER_PATH]: Don't
1829         change the exec-path at all.
1830
1831 2005-07-20  David Shaw  <dshaw@jabberwocky.com>
1832
1833         * keyserver.c (curl_can_handle): New.  Do a runtime check against
1834         libcurl to see if it can handle a particular protocol.
1835         (keyserver_typemap): Call it here.
1836
1837         * Makefile.am: Pull in libcurl for curl_version_info() if used.
1838
1839 2005-07-19  Werner Koch  <wk@g10code.com>
1840
1841         * g10.c, options.h: New option --limit-card-insert-tries.
1842         * cardglue.c (open_card): Use it.
1843
1844         * export.c (parse_export_options): New option
1845         export-reset-subkey-passwd.
1846         (do_export_stream): Implement it.
1847
1848         * misc.c (get_libexecdir): New.
1849         * keyserver.c (keyserver_spawn): Use it
1850
1851 2005-07-18  Werner Koch  <wk@g10code.com>
1852
1853         * tdbio.c (open_db): Check for EROFS.  Suggested by Bryce Nichols.
1854
1855 2005-07-08  David Shaw  <dshaw@jabberwocky.com>
1856
1857         * trustdb.c (clean_uids_from_key): Don't keep a valid selfsig
1858         around when compacting a uid.  There is no reason to make an
1859         attacker's job easier - this way they only have a revocation which
1860         is useless in bringing the uid back.
1861
1862         * keydb.h, kbnode.c (undelete_kbnode): Removed.  No longer needed.
1863
1864         * import.c (chk_self_sigs): Allow a uid revocation to be enough to
1865         allow importing a particular uid (no self sig needed).  This
1866         allows importing compacted uids.
1867
1868 2005-06-20  David Shaw  <dshaw@jabberwocky.com>
1869
1870         * keygen.c (save_unprotected_key_to_card): Better fix for gcc4
1871         warning.
1872
1873 2005-06-20  Werner Koch  <wk@g10code.com>
1874
1875         * g10.c, options.h: New option --no-interactive-selection.
1876         * keyedit.c (keyedit_menu): Use it.
1877
1878 2005-06-18  Werner Koch  <wk@g10code.com>
1879
1880         * parse-packet.c (parse_signature): Use log_info for messages
1881         about missing timestamp or keyid.  In case we don't use that key
1882         there won't be no further error and thus gpg does not need to
1883         return with an error.
1884
1885 2005-06-13  David Shaw  <dshaw@jabberwocky.com>
1886
1887         * keygen.c (save_unprotected_key_to_card): Fix gcc4 warning.
1888
1889         * options.h, import.c (parse_import_options, import_one): Add
1890         import-clean-uids option to automatically compact unusable uids
1891         when importing.  Like import-clean-sigs, this may nodify the local
1892         keyring.
1893
1894         * trustdb.c (clean_uids_from_key): Only allow selfsigs to be a
1895         candidate for re-inclusion.
1896
1897 2005-06-12  David Shaw  <dshaw@jabberwocky.com>
1898
1899         * options.h, import.c (parse_import_options,
1900         clean_sigs_from_all_uids, import_one): Add import-clean-sigs
1901         option to automatically clean a key when importing.  Note that
1902         when importing a key that is already on the local keyring, the
1903         clean applies to the merged key - i.e. existing superceded or
1904         invalid signatures are removed.
1905
1906         * getkey.c (merge_selfsigs_main, merge_selfsigs_subkey): Make sure
1907         that even after keys may be merged together, we only have one
1908         chosen selfsig.
1909
1910 2005-06-09  David Shaw  <dshaw@jabberwocky.com>
1911
1912         * options.h, import.c (parse_import_options, delete_inv_parts):
1913         import-unusable-sigs is now a noop.
1914
1915         * options.h, export.c (do_export_stream), keyedit.c (keyedit_menu,
1916         menu_clean_subkeys_from_key), trustdb.h, trustdb.c
1917         (clean_subkeys_from_key): Remove subkey cleaning function.  It is
1918         of very limited usefulness since it cannot be used on any subkey
1919         that can sign, and can only affect multiple selfsigs on
1920         encryption-only subkeys.
1921
1922         * keydb.h, kbnode.c (undelete_kbnode): New function to undelete a
1923         kbnode.
1924
1925         * trustdb.c (clean_uids_from_key): Further tweak the algorithm so
1926         that the last good selfsig is kept when the chosen selfsig is a
1927         revocation.
1928
1929 2005-06-08  David Shaw  <dshaw@jabberwocky.com>
1930
1931         * trustdb.c (clean_uids_from_key), keyedit.c
1932         (menu_clean_uids_from_key): Tweak algorithm to preserve the last
1933         selfsig which helps prevent uid resurrections.
1934
1935         * getkey.c (fixup_uidnode, merge_selfsigs_main): Handle both
1936         expired and revoked uids in fixup_uidnode().  No need to special
1937         case in merge_selfsigs_main().  This also means that an expired
1938         uid will have its selfsig tagged with chosen_selfsig.
1939
1940 2005-06-07  David Shaw  <dshaw@jabberwocky.com>
1941
1942         * options.h, g10.c (main), export.c (parse_export_options,
1943         do_export_stream): Add export-options export-clean-sigs,
1944         export-clean-uids, export-clean-subkeys, and export-clean which is
1945         all of the above.  Export-minimal is the same except it also
1946         removes all non-selfsigs.  export-unusable-sigs is now a noop.
1947
1948 2005-06-06  Werner Koch  <wk@g10code.com>
1949
1950         * cardglue.c (open_card): Emit new CARDCTRL status 5 for no reader
1951         available.
1952
1953 2005-06-02  Werner Koch  <wk@g10code.com>
1954
1955         * app-openpgp.c (do_writekey): Typo fix.
1956
1957         * status.c, status.h: Removed STATUS_BAD_PASSPHRASE_PIN.
1958
1959 2005-06-01  David Shaw  <dshaw@jabberwocky.com>
1960
1961         * signal.c [HAVE_DOSISH_SYSTEM]: Fix unused function warnings on
1962         mingw32.  Noted by Joe Vender.
1963
1964         * passphrase.c [_WIN32]: Remove unused variables.
1965
1966 2005-05-31  David Shaw  <dshaw@jabberwocky.com>
1967
1968         * keyedit.c (menu_clean_uids_from_key,
1969         menu_clean_subkeys_from_key), trustdb.c (clean_uids_from_key,
1970         clean_subkeys_from_key): Fix mingw32 build warnings.  Noted by Joe
1971         Vender.
1972
1973 2005-05-31  Werner Koch  <wk@g10code.com>
1974
1975         * keydb.h [!ENABLE_AGENT_SUPPORT]: Define dummy types.
1976
1977         * cardglue.c (assuan_strerror, assuan_transact): Dummy functions
1978         if not build with agent support. 
1979
1980         * armor.c (check_input): Don't bail out on invalid header lines
1981         unless in struict rfc2440 mode.  Suggested by Richard Patterson.
1982
1983 2005-05-30  Werner Koch  <wk@g10code.com>
1984
1985         * tlv.c: Add hack to compile without gpg-error.h.
1986
1987 2005-05-30  David Shaw  <dshaw@jabberwocky.com>
1988
1989         * trustdb.h, trustdb.c (clean_subkeys_from_key): New.  Walk
1990         through the subkeys on a key, and mark any that aren't usable for
1991         deletion.  Note that a signing subkey is never marked for deletion
1992         since these keys are still useful after expiration or revocation.
1993
1994         * keyedit.c (menu_clean_subkeys_from_key): New function to call
1995         clean_subkeys_from_key() on a key.  Note that the strings here are
1996         not marked for translation yet.  The UI is still in flux, and
1997         there is no point in annoying the translators twice.
1998         (keyedit_menu): Call it here as part of the "clean" command.
1999
2000 2005-05-29  David Shaw  <dshaw@jabberwocky.com>
2001
2002         * trustdb.h, trustdb.c (clean_uids_from_key): New.  Walk through
2003         the user IDs on a key, and mark any that aren't valid for
2004         deletion.
2005
2006         * keyedit.c (menu_clean_uids_from_key): New function to call
2007         clean_uids_from_key() on a key.
2008         (keyedit_menu): Call it from here as part of the "clean" command.
2009
2010 2005-05-26  David Shaw  <dshaw@jabberwocky.com>
2011
2012         * g10.c (main): Default {export|import}-unusable-sigs to off until
2013         the "clean" UI can be finished.
2014
2015 2005-05-24  Werner Koch  <wk@g10code.com>
2016
2017         * passphrase.c (ask_passphrase): Unescape the description string.
2018         * cardglue.c (unescape_status_string): Removed.  Changed all
2019         caller to use ...
2020         * misc.c (unescape_percent_string): New.
2021
2022         * g10.c (add_notation_data): Check number of at-signs.
2023
2024 2005-05-23  Werner Koch  <wk@g10code.com>
2025
2026         * app-openpgp.c, app-common.h: Again updated from gnupg 1.9 CVS.
2027
2028         * cardglue.c (open_card): Check USE_AGENT.
2029         (agent_scd_checkpin): Implemented Assuan part.
2030         (agent_scd_change_pin): Ditto.
2031
2032         * g10.c (main): Option --debug-ccid-driver may now be given
2033         several times increase the debug level.
2034
2035         * ccid-driver.c (parse_ccid_descriptor): Mark SCR335 FW version
2036         5.14 as good.
2037         (do_close_reader): Never do a reset. The caller should instead
2038         make sure that the reader has been closed properly.  The new retry
2039         code in ccid_slot_status will make sure that the readersatrts up
2040         fine even if the last process didn't closed the USB connection
2041         properly.
2042         (ccid_get_atr): For certain readers try switching to ISO mode.
2043         Thanks to Ludovic Rousseau for this hint and the magic numbers.
2044         (print_command_failed): New.
2045         (bulk_in): Use it here. Add new arg NO_DEBUG.
2046         (ccid_slot_status): Disabled debugging.
2047
2048 2005-05-21  Werner Koch  <wk@g10code.com>
2049
2050         * cardglue.c (send_status_info): Make CTRL optional.
2051         (agent_scd_writekey, inq_writekey_parms): New.
2052         (agent_openpgp_storekey): Removed.
2053         * cardglue.h: Add a few more error code mappings.
2054         * keygen.c (copy_mpi): Removed.
2055         (save_unprotected_key_to_card): Changed to use agent_scd_writekey.
2056         * app-common.h, app-openpgp.c, tlv.c, tlv.h: Updated from newer
2057         version in gnupg 1.9 CVS.
2058
2059 2005-05-20  Werner Koch  <wk@g10code.com>
2060
2061         * ccid-driver.c (ccid_transceive): Arghhh.  The seqno is another
2062         bit in the R-block than in the I block, this was wrong at one
2063         place. Fixes bug #419 and hopefully several others.
2064
2065 2005-05-19  Werner Koch  <wk@g10code.com>
2066
2067         * app-common.h, app-openpgp.c, tlv.c, tlv.h: Updated from newer
2068         version in gnupg 1.9 CVS.
2069
2070 2005-05-18  Werner Koch  <wk@g10code.com>
2071
2072         * passphrase.c (agent_open): Made global and add arg TRY.
2073         (agent_close): Made global.
2074
2075         * app-common.h (app_t): Add a field to store the Assuan context.
2076
2077 2005-05-13  David Shaw  <dshaw@jabberwocky.com>
2078
2079         * build-packet.c (do_comment): Removed.
2080         (build_packet): Ignore comment packets.
2081
2082         * export.c (do_export_stream): Don't export comment packets any
2083         longer.
2084
2085         * options.h, g10.c (main): Remove --sk-comments and
2086         --no-sk-comments options, and replace with no-op.
2087
2088 2005-05-11  David Shaw  <dshaw@jabberwocky.com>
2089
2090         * keygen.c (write_selfsigs): Rename from write_selfsig.  Write the
2091         same selfsig into both the pk and sk, so that someone importing
2092         their sk (which will get an autoconvert to the pk) won't end up
2093         with two selfsigs.
2094         (do_generate_keypair): Call it from here.
2095
2096         * parse-packet.c (can_handle_critical_notation): New.  Check for
2097         particular notation tags that we will accept when critical.
2098         Currently, that's only preferred-email-encoding@pgp.com, since we
2099         know how to handle it (pass it through to a mail program).
2100         (can_handle_critical): Call it from here.
2101         (parse_one_sig_subpkt): Sanity check that notations are
2102         well-formed in that the internal lengths add up to the size of the
2103         subpacket.
2104
2105 2005-05-07  Werner Koch  <wk@g10code.com>
2106
2107         * ccid-driver.c (do_close_reader): Don't do a reset before close.
2108         Some folks reported that it makes the SCR335 hang less often.
2109         Look at the source on how to re-enable it.
2110
2111 2005-05-06  David Shaw  <dshaw@jabberwocky.com>
2112
2113         * main.h, keygen.c (parse_expire_string, ask_expire_interval),
2114         sign.c (sign_file, clearsign_file, sign_symencrypt_file), g10.c
2115         (main), keyedit.c (sign_uids): Use seconds rather than days
2116         internally to calculate expiration.  We no longer need the
2117         day-based code as we don't generate v3 keys.
2118
2119         * sign.c (sign_file, clearsign_file, sign_symencrypt_file): Use
2120         the default sig expire value when signing in batchmode.
2121
2122 2005-05-05  David Shaw  <dshaw@jabberwocky.com>
2123
2124         * Makefile.am, packet.h, main.h, comment.c: Remove comment.c.  We
2125         don't use any of these functions any longer.
2126
2127         * keygen.c (start_tree): New function to "prime" a KBNODE list.
2128         (do_generate_keypair): Use it here rather than creating and
2129         deleting a comment packet.
2130
2131         * keygen.c (gen_elg, gen_dsa): Do not put public factors in secret
2132         key as a comment.
2133
2134         * options.h, encode.c (encode_simple, encode_crypt), keygen.c
2135         (do_create): Remove disabled comment packet code.
2136
2137         * keygen.c (keygen_set_std_prefs): Add SHA256 and BZip2 to default
2138         preferences.
2139
2140         * options.h, g10.c (main): Add new --default-sig-expire and
2141         --default-cert-expire options.  Suggested by Florian Weimer.
2142
2143         * main.h, keygen.c (parse_expire_string, ask_expire_interval): Use
2144         defaults passed in, or "0" to control what default expiration is.
2145
2146         * keyedit.c (sign_uids), sign.c (sign_file, clearsign_file,
2147         sign_symencrypt_file): Call them here, so that default expiration
2148         is used when --ask-xxxxx-expire is off.
2149
2150 2005-05-03  Werner Koch  <wk@g10code.com>
2151
2152         * passphrase.c (agent_get_passphrase): Add new arg CACHEID.
2153         Changed all callers.
2154         (ask_passphrase): Add new arg CACHEID and use it in agent mode.
2155         Changed all callers.
2156         (passphrase_clear_cache): New arg CACHEID.  Changed all callers.
2157         * cardglue.c (format_cacheid): New.
2158         (pin_cb): Compute a cache ID.
2159         (agent_scd_pksign, agent_scd_pkdecrypt): Use it.
2160         (agent_clear_pin_cache): New.
2161         * card-util.c (change_pin): Clear the PIN cache.
2162         (check_pin_for_key_operation): Ditto.
2163
2164 2005-04-24  David Shaw  <dshaw@jabberwocky.com>
2165
2166         * trustdb.h, trustdb.c (mark_usable_uid_certs): Add flags for the
2167         no-pubkey and chosen revocation cases.
2168         (clean_uid): New function to clean a user ID of unusable (as
2169         defined by mark_usable_uid_certs) certs.
2170
2171         * keyedit.c (keyedit_menu, menu_clean_uids): Call it here for new
2172         "clean" command that removes unusable sigs from a key.
2173
2174         * trustdb.h, keyedit.c (keyedit_menu, menu_select_uid_namehash):
2175         Allow specifying user ID via the namehash from --with-colons
2176         --fixed-list-mode --list-keys.  Suggested by Peter Palfrader.
2177
2178 2005-04-21  David Shaw  <dshaw@jabberwocky.com>
2179
2180         * keyedit.c (sign_uids, keyedit_menu): When the user requests to
2181         sign a key without specifying which user IDs to sign, and declines
2182         to sign all user IDs, walk through the set of user IDs and prompt
2183         for which to sign.
2184
2185         * mainproc.c (symkey_decrypt_seskey): There is no need to have an
2186         extra check for a bad passphrase and/or unknown cipher algorithm
2187         here.  We'll fail quite happily later, and usually with a better
2188         error message to boot.
2189
2190 2005-04-20  Werner Koch  <wk@g10code.com>
2191
2192         * sign.c (sign_file, sign_symencrypt_file): Allow for hash
2193         debugging.
2194
2195 2005-04-16  David Shaw  <dshaw@jabberwocky.com>
2196
2197         * keyserver.c (keyserver_spawn): Free some memory.
2198
2199         * sign.c (hash_for): Comments.
2200
2201 2005-04-11  Werner Koch  <wk@g10code.com>
2202
2203         * g10.c (main, add_notation_data, add_policy_url)
2204         (add_keyserver_url): Use isascii() to protect the isfoo macros and
2205         to replace direct tests.  Possible problems noted by Christian
2206         Biere.
2207         * keyserver.c (parse_keyserver_uri): Ditto.
2208
2209 2005-04-07  Werner Koch  <wk@g10code.com>
2210
2211         * g10.c (main): Declare --pipemode deprecated.
2212         * misc.c (deprecated_command): New.
2213
2214         * ccid-driver.c (ccid_slot_status): Fixed debug messages.
2215
2216         * card-util.c (card_edit): Add command "verify".  Enhanced admin
2217         command to allow optional arguments "on", "off" and "verify".
2218         (card_status): Print private DOs in colon mode.
2219         * app-openpgp.c (do_check_pin): Add hack to allow verification of
2220         CHV3.
2221
2222 2005-04-01  Werner Koch  <wk@g10code.com>
2223
2224         * keygen.c (keygen_set_std_prefs): Explain the chosen order of
2225         AES key sizes. 
2226
2227 2005-04-01  David Shaw  <dshaw@jabberwocky.com>
2228
2229         * mainproc.c (proc_plaintext): Properly handle SIG+LITERAL
2230         (old-style PGP) signatures that use hashes other than SHA-1,
2231         RIPEMD160, or MD5.
2232
2233 2005-03-31  David Shaw  <dshaw@jabberwocky.com>
2234
2235         * exec.h, exec.c (set_exec_path): Remove some dead code and change
2236         all callers.  We no longer need to append to $PATH.
2237
2238 2005-03-31  Werner Koch  <wk@g10code.com>
2239
2240         * passphrase.c (agent_open): Dropped support for W32 - is was
2241         never actually used.  Removed support for the old non-assuan
2242         protocol; there has never been a matured implementation and
2243         gpg-agent is now arround for quite some time.  Rewritten to make
2244         use of the Assuan code from ../util.
2245         (gpga_protocol_codes): Removed.
2246         (readn): Removed.
2247         (agent_close): Simplified for use with Assuan.
2248         (agent_get_passphrase, passphrase_clear_cache): Removed support
2249         for old protocol.  Use only with ENABLE_CARD_SUPPORT defined.
2250         (agent_send_all_options): Take assuan context instead of a file
2251         descriptor.
2252         (agent_send_option): Likewise. Use assuan_transact.
2253         * passphrase.c (writen, readaline): Removed.
2254
2255         * g10.c (main): Print a warning if --use-agent has been used but
2256         it has not been build with support for it.
2257
2258         * keydb.c (keydb_add_resource): Clarify meaning of flags.  Add new
2259         flag 4.  Use log_info for errors registering the default secret key.
2260         * g10.c (main): Flag the default keyrings.
2261
2262 2005-03-30  David Shaw  <dshaw@jabberwocky.com>
2263
2264         * keyserver.c (keyserver_spawn): Don't mess about with the $PATH.
2265         Rather, call keyserver helpers with the full path.  This fixes
2266         some PATH-inspired DLL problems on W32.  Noted by Carlo Luciano
2267         Bianco.
2268
2269 2005-03-30  Werner Koch  <wk@g10code.com>
2270
2271         * cardglue.c (pin_cb): Print a warning if the info string hack is
2272         not there.  This may happen due to typos in the translation.
2273
2274 2005-03-22  Werner Koch  <wk@g10code.com>
2275
2276         * misc.c (w32_shgetfolderpath) [W32]: Changed declaration of
2277         function ptr.  Noted by Tim Costello. 
2278         * apdu.c [W32]: Changed declaration of dlopened function pointers.
2279
2280 2005-03-21  David Shaw  <dshaw@jabberwocky.com>
2281
2282         * gpgv.c: Stubs for tty_enable_completion() &
2283         tty_disable_completion().
2284
2285         * openfile.c (ask_outfile_name): Enable readline completion when
2286         prompting for an output filename.
2287
2288         * plaintext.c (ask_for_detached_datafile): Enable readline
2289         completion when prompting for a detached sig datafile.
2290
2291 2005-03-21  Werner Koch  <wk@g10code.com>
2292
2293         * keyedit.c (command_generator, keyedit_completion): Changed
2294         indentation.
2295         * card-util.c (command_generator, card_edit_completion): Ditto.
2296
2297 2005-03-19  David Shaw  <dshaw@jabberwocky.com>
2298
2299         * card-util.c (command_generator, card_edit_completion)
2300         [GNUPG_MAJOR_VERSION==1 && HAVE_LIBREADLINE]: New functions to
2301         enable command completion in the --card-edit menu.
2302         (card_edit): Call them here.
2303
2304 2005-03-18  David Shaw  <dshaw@jabberwocky.com>
2305
2306         * keyedit.c (command_generator, keyedit_completion)
2307         [HAVE_LIBREADLINE]: New functions to enable command completion in
2308         the --edit-key menu.
2309         (keyedit_menu): Call them here.
2310
2311 2005-03-17  David Shaw  <dshaw@jabberwocky.com>
2312
2313         * getkey.c (get_seckey_byname2): If no explicit default key is
2314         set, don't pick a disabled default.  Noted by David Crick.
2315
2316         * Makefile.am: Calculate GNUPG_LIBEXECDIR directly.  Do not
2317         redefine $libexecdir.
2318
2319         * options.h, keyserver.c (parse_keyserver_options)
2320         (keyserver_spawn): Don't treat 'verbose' and 'include-disabled' as
2321         special.  Just pass them through silently to the keyserver helper.
2322
2323 2005-03-16  Werner Koch  <wk@g10code.com>
2324
2325         * ccid-driver.c (parse_ccid_descriptor): Make SCM workaround
2326         reader type specific.
2327         (scan_or_find_devices): Do not check the interface subclass in the
2328         SPR532 kludge, as this depends on the firmware version.
2329         (ccid_get_atr): Get the Slot status first.  This solves the
2330         problem with readers hanging on recent Linux 2.6.x.
2331         (bulk_in): Add argument TIMEOUT and changed all callers to pass an
2332         appropriate one.  Change the standard timeout from 10 to 5 seconds.
2333         (ccid_slot_status): Add a retry code with an initial short timeout.
2334         (do_close_reader): Do an usb_reset before closing the reader.
2335
2336 2005-03-14  Werner Koch  <wk@g10code.com>
2337
2338         * card-util.c (card_status): Use isotimestamp and not the
2339         localized asctimestamp to match the timezone used in the key
2340         information.
2341
2342         * cardglue.c (pin_cb): Disable debug output.
2343
2344 2005-03-11  Werner Koch  <wk@g10code.com>
2345
2346         * keygen.c (gen_card_key_with_backup): Write status line with the
2347         backup filename.
2348
2349         * status.h, status.h (STATUS_BACKUP_KEY_CREATED): New.
2350
2351 2005-03-10  David Shaw  <dshaw@jabberwocky.com>
2352
2353         * keyserver.c (parse_keyserver_options): Accept honor-http-proxy
2354         as an alias for http-proxy.
2355
2356         * delkey.c (do_delete_key, delete_keys): Fix problem with --expert
2357         preventing --delete-secret-and-public-keys from deleting secret
2358         keys.
2359
2360 2005-03-10  Werner Koch  <wk@g10code.com>
2361
2362         * keyedit.c (keyedit_menu) [W32]: Run the trustdb stale check
2363         earlier.
2364
2365 2005-03-07  Werner Koch  <wk@g10code.com>
2366
2367         * cardglue.c (agent_scd_pkdecrypt, agent_scd_pksign) 
2368         (agent_scd_genkey, agent_scd_setattr, agent_scd_change_pin) 
2369         (agent_scd_checkpin, agent_openpgp_storekey): Make sure to send a
2370         SC_OP_FAILURE after card operations which might change data.
2371         * card-util.c (change_pin): Send a SC_OP_SUCCESS after a PIN has
2372         been changed.
2373         (change_name): Removed a debug output.
2374         * status.h, status.c: New codes BAD_PASSPHRASE_PIN, SC_OP_FAILURE
2375         and SC_OP_SUCCESS.
2376
2377 2005-02-24  David Shaw  <dshaw@jabberwocky.com>
2378
2379         * keyedit.c (keyedit_menu): Only print the key signing hint when
2380         signing from a place where it is useful (i.e. --edit-key and not
2381         --sign-key).
2382
2383 2005-02-16  Werner Koch  <wk@g10code.com>
2384
2385         * card-util.c (fetch_url): Fetch the key from the default
2386         keyserver if no URL is available.
2387
2388 2005-02-15  Werner Koch  <wk@g10code.com>
2389
2390         * passphrase.c (agent_get_passphrase): Don't call free_public_key
2391         if PK is NULL.
2392         (passphrase_clear_cache): Ditto. Removed debug output.
2393         (passphrase_to_dek): Ditto.
2394
2395 2005-02-13  Werner Koch  <wk@g10code.com>
2396
2397         * keyedit.c (cmds): Limit code to 80 columns. Add command
2398         BKUPTOCARD.
2399
2400 2005-02-09  David Shaw  <dshaw@jabberwocky.com>
2401
2402         * encr-data.c (decrypt_data): Use it here to turn off the "quick
2403         check" bytes for PK decryptions.  This is in regards to the Mister
2404         and Zuccherato attack on OpenPGP CFB mode.
2405
2406         * mainproc.c (proc_symkey_enc): Set a flag to indicate that a
2407         particular session key came from a passphrase and not a PK.
2408
2409 2005-02-08  Werner Koch  <wk@g10code.com>
2410
2411         * misc.c (w32_shgetfolderpath): New.
2412         (default_homedir): Use it to avoid problems under Windows95.
2413
2414 2005-02-06  David Shaw  <dshaw@jabberwocky.com>
2415
2416         * trustdb.h, trustdb.c (trustdb_check_or_update): New.  If the
2417         trustdb is dirty and --interactive is set, do an --update-trustdb.
2418         If not interactive, do a --check_trustdb unless
2419         --no-auto-check-trustdb is set.
2420
2421         * import.c (import_keys_internal): Moved from here.
2422
2423         * keyserver.c (keyserver_refresh): Call it here after all
2424         refreshing has happened so that we don't rebuild after each
2425         preferred keyserver set of imports, but do one big rebuild at the
2426         end.  This is Debian bug #293816, noted by Kurt Roeckx.
2427
2428 2005-02-04  David Shaw  <dshaw@jabberwocky.com>
2429
2430         * getkey.c (merge_selfsigs_subkey): Merged away definition from
2431         the backsigs code.
2432
2433 2005-01-31  David Shaw  <dshaw@jabberwocky.com>
2434
2435         * keygen.c (do_generate_keypair): Write the auth key to the card
2436         before the encryption key.  This is a partial workaround for a PGP
2437         bug (as of this writing, all versions including 8.1), that causes
2438         it to try and encrypt to the most recent subkey regardless of
2439         whether that subkey is actually an encryption type.  In this case,
2440         the auth key is an RSA key so it succeeds.
2441
2442 2005-01-27  David Shaw  <dshaw@jabberwocky.com>
2443
2444         * keyid.c (keyid_from_sk, keyid_from_pk): Use 0xFFFFFFFFFFFFFFFF
2445         instead of 0x0000000000000000 for the invalid key ID since
2446         all-zeroes is reserved for the anonymous recipient.
2447
2448         * keyedit.c (change_passphrase), keygen.c (generate_subkeypair):
2449         Fix a string ;)
2450
2451 2005-01-27  Werner Koch  <wk@g10code.com>
2452
2453         * parse-packet.c (listfp): New.
2454         (set_packet_list_mode): Intialize it to stdout or stderr depending
2455         on a global option.  Made all printing in list mode use LISTFP.
2456
2457         * keygen.c (generate_subkeypair): Detect primary key on-card and
2458         ask for the passphrase.  Return an error if the primary key is a
2459         plain stub.
2460
2461         * keyedit.c (change_passphrase): Don't ever change any stub key.
2462         Print a note if a key consists of only stub keys.  Reported by
2463         Dany Nativel.  These are bugs #401 and #402.
2464
2465 2005-01-26  Werner Koch  <wk@g10code.com>
2466
2467         * ccid-driver.c (parse_ccid_descriptor): Need the CSM workaround
2468         also for newer firmware versions.  Need to get a list of fixed
2469         firmware versions and use that.
2470
2471 2005-01-26  David Shaw  <dshaw@jabberwocky.com>
2472
2473         * keyserver.c (parse_keyserver_uri): Allow RFC-2732 IPv6 [literal
2474         address] syntax in keyserver URLs.
2475         (keyserver_typemap): Map ftps if we are supporting it.
2476
2477 2005-01-25  Werner Koch  <wk@g10code.com>
2478
2479         * keygen.c (do_generate_keypair): Don't continue after an error;
2480         fixed at two places. Why at all didn't I used a goto to cleanup,
2481         tsss?
2482
2483         * app-openpgp.c (get_cached_data): New arg GET_IMMEDIATE to bypass
2484         the cache.  Changed all callers.
2485         (get_one_do): Bypass the cache if the value would have been read
2486         directly for v1.1 cards.  It makes things a bit slower but only for
2487         1.0 cards and there are not that many cards out in the wild.  This
2488         is required to fix a caching bug when generating new keys; as a
2489         side effect of the retrieval of the the C4 DO from the 6E DO the
2490         chaced fingerprint will get updated to the old value and later
2491         when signing the generated key the checking of the fingerprint
2492         fails becuase it won't match the new one.  Thanks to Moritz for
2493         analyzing this problem.
2494         (verify_chv3): Removed the CHV status reread logic because we
2495         won't cache the C4 DO anymore.
2496
2497 2005-01-21  David Shaw  <dshaw@jabberwocky.com>
2498
2499         * keyserver.c (free_keyserver_spec): Fix small leak.
2500         (keyserver_typemap): Map https if we are supporting it.
2501
2502 2005-01-20  Werner Koch  <wk@g10code.com>
2503
2504         * cardglue.c (open_card): Issue new CARDCTRL(4) status.
2505
2506         * gpgv.c (tty_fprintf): New stub.
2507
2508         * card-util.c (card_status): Create a secret key stub on the fly
2509         and print more information about a card key.
2510         * import.c (pub_to_sec_keyblock, auto_create_card_key_stub): New.
2511         * getkey.c (get_seckeyblock_byfprint): New.
2512         * keylist.c (print_card_key_info): New.
2513
2514         * g10.c (i18n_init) [W32]: Pass registry key to gettext
2515         initialization.
2516         * gpgv.c (i18n_init) [W32]: Ditto.
2517
2518 2005-01-18  Werner Koch  <wk@g10code.com>
2519
2520         * misc.c (default_homedir): New.  Taken from gnupg 1.9.15.
2521         * g10.c (main): Use it.
2522         * gpgv.c (main): Ditto.
2523
2524         * keylist.c (public_key_list): Do a trustdb staleness check before
2525         opening the keyring.
2526         (secret_key_list): Ditto.
2527
2528 2005-01-10  David Shaw  <dshaw@jabberwocky.com>
2529
2530         * keyedit.c (keyedit_menu): Move command strings outside the
2531         function to get ready for the readline completion code.
2532
2533         * passphrase.c (readline, agent_send_option, agent_open,
2534         agent_get_passphrase, passphrase_clear_cache): Rename readline()
2535         to readaline() to keep readline library namespace clear.
2536
2537 2005-01-06  David Shaw  <dshaw@jabberwocky.com>
2538
2539         * filter.h, armor.c (armor_filter): Use the eol string from the
2540         armor filter context instead of hardcoding '\n' or '\r\n'.  If no
2541         eol string is provided, default to '\n' or '\r\n' as appropriate.
2542         (is_armor_header): Trim tabs in armor header lines as well.
2543
2544         * keyserver.c (keyserver_spawn): Use it here to force '\n' line
2545         endings since the keyserver output file gets a LF->CRLF expansion
2546         on win32.
2547
2548 2005-01-05  David Shaw  <dshaw@jabberwocky.com>
2549
2550         * g10.c (main): Typo.
2551
2552         * armor.c (is_armor_header): Allow CR and LF (not just actual
2553         spaces) in an armor header line (-----BEGIN etc).  This is needed
2554         due to CRLF issues on win32.  As before, --openpgp makes it
2555         strict.
2556
2557 2005-01-03  David Shaw  <dshaw@jabberwocky.com>
2558
2559         * Makefile.am: Use @LIBUSB@ instead of @LIBUSB_LIBS@
2560
2561         * import.c (delete_inv_parts): Comments on import-unusable-sigs.
2562
2563 2005-01-01  David Shaw  <dshaw@jabberwocky.com>
2564
2565         * options.h, import.c (parse_import_options, delete_inv_parts):
2566         Add import-unusable-sigs flag to enable importing unusable
2567         (currently: expired) sigs.
2568
2569         * options.h, export.c (parse_export_options, do_export_stream):
2570         Add export-unusable-sigs flag to enable exporting unusable
2571         (currently: expired) sigs.
2572
2573 2004-12-29  David Shaw  <dshaw@jabberwocky.com>
2574
2575         * packet.h, getkey.c (merge_selfsigs_main, sig_to_revoke_info),
2576         keyid.c (revokestr_from_pk), keyedit.c (show_key_with_all_names):
2577         Show who revoked a key (either the same key or a designated
2578         revoker) and when.
2579
2580 2004-12-28  Werner Koch  <wk@g10code.com>
2581
2582         * ccid-driver.c (find_endpoint): New.
2583         (scan_or_find_devices): Add new args to return endpoint info and
2584         interface number.
2585         (ccid_open_reader, ccid_shutdown_reader): Take care of these new
2586         args.
2587         (bulk_in, bulk_out): Use the correct endpoints.
2588         (ccid_transceive_apdu_level): New.
2589         (ccid_transceive): Divert to above.
2590         (parse_ccid_descriptor): Allow APDU level exchange mode.
2591         (do_close_reader): Pass the interface number to usb_release_interface.
2592
2593 2004-12-24  David Shaw  <dshaw@jabberwocky.com>
2594
2595         * keyserver.c (keyserver_typemap): Only map HTTP and FTP if
2596         libcurl has specifically been selected to handle them.
2597
2598 2004-12-22  David Shaw  <dshaw@jabberwocky.com>
2599
2600         * options.h, keyserver.c (parse_keyserver_uri): Properly parse
2601         auth data from URLs and pass to keyserver helpers.
2602
2603         * keyserver.c (keyserver_typemap): New.  Map certain keyserver
2604         types to a common type (e.g. ldaps -> ldap).  If we are building
2605         with curl, map both http and ftp to curl.
2606
2607         * build-packet.c (build_sig_subpkt): Only allow one preferred
2608         keyserver subpacket at a time.
2609
2610 2004-12-21  David Shaw  <dshaw@jabberwocky.com>
2611
2612         * keyedit.c (menu_set_keyserver_url): Make sure we only operate on
2613         the chosen selfsig so we don't accidentally promote an older
2614         selfsig to chosen.  Discovered by Simon Josefsson and 'Todd'.
2615
2616         * keygen.c (ask_expire_interval): Fix typo.
2617
2618 2004-12-20  David Shaw  <dshaw@jabberwocky.com>
2619
2620         * keylist.c (list_keyblock_print): Secret key listings should
2621         always show everything (expired UIDs, revoked subkeys, etc, etc).
2622
2623         * keyedit.c (keyedit_menu): Add additional help for the "sign"
2624         flags.
2625
2626 2004-12-20  Werner Koch  <wk@g10code.com>
2627
2628         * keygen.c (ask_expire_interval): For better translations chnage 2
2629         strings.
2630
2631         * seckey-cert.c (do_check): Handle case when checksum was okay but
2632         passphrase still wrong.  Roman Pavlik found such a case.
2633
2634 2004-12-20  David Shaw  <dshaw@jabberwocky.com>
2635
2636         * keyedit.c (keyedit_menu): Invisible alias "passwd" as
2637         "password".
2638
2639         * passphrase.c: Don't check for __CYGWIN__, so it is treated as a
2640         unix-like system.
2641
2642         * options.h, g10.c (main), textfilter.c (standard): Use new option
2643         --rfc2440-text to determine whether to filter "<space>\t\r\n" or
2644         just "\r\n" before canonicalizing text line endings.  Default to
2645         "<space>\t\r\n".
2646
2647 2004-12-19  David Shaw  <dshaw@jabberwocky.com>
2648
2649         * keygen.c (keygen_get_std_prefs): Set reference count when
2650         creating the temporary user ID.
2651
2652         * keyedit.c (keyedit_menu): Merge updpref and setpref.  Keep
2653         updpref as an invisible alias.  Add invisible alias for revphoto.
2654         Fix small memory leak when using "setpref" (not all of the uid was
2655         freed).
2656         (menu_revkey): Trigger a trust rebuild after revoking a key.
2657         Don't allow revoking an already-revoked whole key.
2658         (menu_revsubkey): Don't allow revoking an already-revoked subkey.
2659
2660 2004-12-18  David Shaw  <dshaw@jabberwocky.com>
2661
2662         * keyedit.c (menu_revkey): Rename to menu_revsubkey.
2663         (menu_revkey): New.  Revoke a whole key.
2664         (keyedit_menu): Call it here for when 'revkey' is used without any
2665         subkeys selected.  This is to be consistent with the other
2666         functions which are "selected part if selected, whole key if not".
2667
2668         * signal.c: Use only HAVE_LIBREADLINE to detect readline
2669         availability.
2670
2671         * Makefile.am: Link with readline where necessary.
2672
2673 2004-12-17  Werner Koch  <wk@g10code.com>
2674
2675         * passphrase.c (agent_get_passphrase): Define NREAD locally as
2676         size_t or int.
2677
2678         * keylist.c (list_keyblock_print): Make field width an int.
2679         * keyedit.c (show_key_with_all_names): Ditto.
2680
2681 2004-12-16  David Shaw  <dshaw@jabberwocky.com>
2682
2683         * g10.c (main): Add --require-secmem/--no-require-secmem to cause
2684         gpg to exit if it cannot lock memory.  Also remove --nrsign-key
2685         and --nrlsign-key since this can better be done via --edit-key.
2686
2687 2004-12-15  David Shaw  <dshaw@jabberwocky.com>
2688
2689         * apdu.c (apdu_send_le, apdu_send_direct), keylist.c
2690         (status_one_subpacket, print_one_subpacket): Fix some compiler
2691         warnings.
2692
2693         * g10.c (main): Fix --compression-algo to take a string argument
2694         like --compress-algo.
2695
2696         * trustdb.c (uid_trust_string_fixed): For safety, check for a pk.
2697
2698 2004-12-14  David Shaw  <dshaw@jabberwocky.com>
2699
2700         * keyedit.c (keyedit_menu): Re-remove the N_() markers.
2701
2702         * trustdb.c (uid_trust_string_fixed): Show uids as revoked if the
2703         key is revoked.
2704         
2705         * keyedit.c (show_key_with_all_names): Don't show validity for
2706         secret key UIDs.
2707
2708         * keyedit.c (parse_sign_type): New.  Figure out the flags (local,
2709         nonrevoke, trust) for a signature.
2710         (keyedit_menu): Call it here so we can mix and match flags, and
2711         don't need "nrltsign", "ltsign", "tnrsign", etc, etc, etc.
2712
2713 2004-12-14  Werner Koch  <wk@g10code.com>
2714
2715         * passphrase.c (agent_get_passphrase): Removed debug output
2716
2717         * keyserver.c (keyserver_work, keyserver_spawn): Map ldaps to ldap.
2718
2719         * keyedit.c (keyedit_menu): Removed the N_() markers from the
2720         command names.
2721         * card-util.c (card_edit): Ditto.
2722
2723 2004-12-13  Werner Koch  <wk@g10code.com>
2724
2725         * passphrase.c (read_passphrase_from_fd): Fixed memory leak.
2726         Noted by Andrei Darashenka.
2727
2728 2004-12-11  David Shaw  <dshaw@jabberwocky.com>
2729
2730         * keyserver.c (parse_preferred_keyserver): Force preferred
2731         keyserver subpackets to have a URI scheme specified.
2732
2733 2004-12-10  David Shaw  <dshaw@jabberwocky.com>
2734
2735         * options.h, g10.c (main), textfilter.c (standard): Use --rfc2440
2736         or --openpgp directly to determine the end of line hashing rule.
2737
2738         * trustdb.c (uid_trust_string_fixed): Show uids as expired if the
2739         key is expired.
2740
2741 2004-12-10  Werner Koch  <wk@g10code.com>
2742
2743         * app-openpgp.c (send_fprtime_if_not_null): New.
2744         (do_getattr): Add KEY_TIME.
2745         (do_learn_status): Print KEY_TIME.
2746         * cardglue.c (learn_status_cb): Parse KEY-TIME.
2747         * card-util.c (card_status): Print creation time if available.
2748
2749 2004-12-09  David Shaw  <dshaw@jabberwocky.com>
2750
2751         * options.h, g10.c (main), textfilter.c (len_without_trailing_ws):
2752         Removed (not used).
2753         (standard): 2440 says that textmode hashes should canonicalize
2754         line endings to CRLF and remove spaces and tabs.  2440bis-12 says
2755         to just canonicalize to CRLF.  So, we default to the 2440bis-12
2756         behavior, but revert to the strict 2440 behavior if the user
2757         specifies --rfc2440.  In practical terms this makes no difference
2758         to any signatures in the real world except for a textmode detached
2759         signature.
2760
2761 2004-12-09  Werner Koch  <wk@g10code.com>
2762
2763         * passphrase.c (agent_get_passphrase): New args CUSTOM_PROMPT and
2764         CUSTOM_DESCRIPTION.     Changed all callers.
2765
2766         * app-openpgp.c (do_getattr, do_learn_status, do_setattr): Support
2767         the new private DOs.
2768         (do_change_pin): Add a "N" prefix to the strings so that the
2769         callback can act accordingly for a new PIN.  Unfortunately this
2770         breaks existing translations but I see no wother way to overvome
2771         this.
2772
2773         * cardglue.c (learn_status_cb): Ditto.
2774         (agent_release_card_info): Ditto.
2775         (struct pin_cb_info_s): Removed and changed all users.
2776         (pin_cb): Reworked.
2777
2778         * card-util.c (card_status): Print them
2779         (card_edit): New command PRIVATEDO.
2780         (change_private_do): New.
2781
2782 2004-12-09  David Shaw  <dshaw@jabberwocky.com>
2783
2784         * keygen.c (ask_algo): Add a choose-your-own-capabilities option
2785         for DSA.
2786
2787 2004-12-07  David Shaw  <dshaw@jabberwocky.com>
2788
2789         * keygen.c (ask_keysize): Change strings to always use %u instead
2790         of hardcoding key sizes.  Bump default to 2048.  Bump minimum down
2791         to 512, where possible, but require --expert to get there.  DSA is
2792         always 1024 unless --expert is given.
2793
2794 2004-11-29  David Shaw  <dshaw@jabberwocky.com>
2795
2796         * getkey.c (parse_key_usage): New function to parse out key usage
2797         flags.  Set PUBKEY_USAGE_UNKNOWN to handle flags that we don't
2798         understand.
2799         (fixup_uidnode, merge_selfsigs_main, merge_selfsigs_subkey): Call
2800         it from here to remove duplicate code.
2801
2802 2004-11-26  David Shaw  <dshaw@jabberwocky.com>
2803
2804         * export.c (do_export_stream): Allow export-minimal to work with
2805         secret keys, even though a non-selfsig secret key signature is
2806         rare.
2807
2808         * options.h, export.c (parse_export_options, do_export_stream),
2809         import.c (parse_import_options, import_keys_internal): Make the
2810         import-options and export-options distinct since they can be mixed
2811         together as part of keyserver-options.
2812
2813 2004-11-24  David Shaw  <dshaw@jabberwocky.com>
2814
2815         * options.h, export.c (parse_export_options, do_export_stream):
2816         Add "export-minimal" option to disregard any sigs except selfsigs.
2817
2818         * trustdb.c (uid_trust_string_fixed): Use a string that can be
2819         atoi-ed, but also has a comment for the translator.
2820
2821         * trustdb.h, trustdb.c (uid_trust_string_fixed): New.  Return a
2822         fixed-size translatable string similar to trust_value_to_string.
2823         This allows for easier lining up of displays.
2824
2825         * keyedit.c (show_key_with_all_names), keylist.c
2826         (list_keyblock_print): Use it here to print validity strings.
2827
2828         * gpgv.c: Stub.
2829
2830 2004-11-18  Werner Koch  <wk@g10code.com>
2831
2832         * g10.c (S_IRGRP) [HAVE_DOSISH_SYSTEM]: Define to 0.
2833
2834 2004-11-17  Werner Koch  <wk@g10code.com>
2835
2836         * g10.c (open_info_file): New.
2837         (main): Unconditionally implement --status-file, --logger-file,
2838         --attribute-file, --passphrase-file, --command-file.  This is not
2839         generally useful but easy to support and might make scripting
2840         under Windows easier.
2841
2842 2004-11-11  Werner Koch  <wk@g10code.com>
2843
2844         * passphrase.c (readn): Fixed test against EINTR.
2845
2846 2004-11-05  Werner Koch  <wk@g10code.com>
2847
2848         * app-openpgp.c: Made more strings translatable.
2849         (verify_chv3, do_change_pin): Add a special prefix to the prompt
2850         of the Admin PIN prompts.
2851         * passphrase.c (ask_passphrase): Add arg TRYAGAIN_TEXT.  Changed
2852         call callers.
2853         * cardglue.c (pin_cb): Make use of the OPAQUE arg to pass
2854         arguments to the PIN callback.  Use this to implement a way to
2855         check for correct PIN repetition.  Changed all callers to pass an
2856         opaque argument. Improved detection of Admin PIN prompts.
2857
2858 2004-11-04  David Shaw  <dshaw@jabberwocky.com>
2859
2860         * plaintext.c (handle_plaintext): Don't try and create a
2861         zero-length filename when using --use-embedded-filename with input
2862         that has no filename (clearsigned or message generated from a
2863         pipe).
2864
2865         * encode.c (encode_simple, encode_crypt), progress.c
2866         (handle_progress), sign.c (write_plaintext_packet): Fix a few
2867         inconsistent calls (NULL filename means a pipe here, so don't
2868         bother to check it twice).
2869
2870 2004-11-03  David Shaw  <dshaw@jabberwocky.com>
2871
2872         * misc.c (print_digest_algo_note): The latest 2440bis drafts
2873         deprecates MD5, so give a warning.
2874         (print_pubkey_algo_note, print_cipher_algo_note,
2875         print_digest_algo_note): Give the algorithm name in the
2876         experimental algo warning.
2877
2878 2004-11-03  Timo Schulz  <twoaday@g10code.com>
2879
2880         * passphrase.c (readn, writen): Use w32_strerror instead
2881         of just showing the error number.
2882         * misc.c [_WIN32]: Fix warning about missing prototypes.
2883         
2884 2004-10-28  David Shaw  <dshaw@jabberwocky.com>
2885
2886         * skclist.c (build_sk_list): Don't need to warn about
2887         PGP-generated Elgamal signing keys since we no longer support any
2888         Elgamal signing keys.
2889
2890         * sign.c (sign_file, clearsign_file): Use "writing to" instead of
2891         "writing to file" to match other strings.
2892
2893         * pkclist.c (check_signatures_trust): Fix typo.  Noted by Moray
2894         Allan.  This is Debian bug #278708.
2895
2896         * passphrase.c (ask_passphrase, passphrase_to_dek): "password" ->
2897         "passphrase".
2898
2899         * keyedit.c (show_key_with_all_names): Show designated revoker as
2900         part of translatable string.
2901
2902 2004-10-28  Werner Koch  <wk@g10code.com>
2903
2904         * Makefile.am (other_libs): New.  Also include LIBICONV.  Noted by
2905         Tim Mooney.
2906
2907 2004-10-28  Werner Koch  <wk@g10code.com>
2908
2909         * apdu.c (open_pcsc_reader): Removed bad free in error handler.
2910
2911 2004-10-27  David Shaw  <dshaw@jabberwocky.com>
2912
2913         * card-util.c, delkey.c, keygen.c, plaintext.c, keyedit.c,
2914         passphrase.c, revoke.c: Collapse the two different "can't do that
2915         in batch mode" strings into one.
2916
2917         * keylist.c (status_one_subpacket): New.  Send the subpacket data
2918         to the --status interface.
2919
2920         * card-util.c (card_edit): Show when admin is enabled or not.
2921
2922         * status.h, status.c: New STATUS_SIG_SUBPACKET type.
2923
2924         * build-packet.c (build_sig_subpkt): Multiple keyserver URLs are
2925         allowed.
2926
2927         * keyring.c: Make some strings translatable.
2928
2929         * exec.c, sign.c: Change "can't open file" to "can't open" and
2930         "can't create file" to "can't create" to be consistent with other
2931         strings so we don't have to translate both.
2932
2933         * delkey.c, export.c, keyedit.c, pkclist.c, revoke.c, skclist.c:
2934         Fix a few missed possible \"username\" quotes.
2935
2936 2004-10-26  Werner Koch  <wk@g10code.com>
2937
2938         * app-openpgp.c (verify_chv3): The minimum length for CHV3 is
2939         8. Changed string to match the other ones.
2940
2941         * passphrase.c (agent_send_all_options): Try to deduce the ttyname
2942         from stdin.
2943
2944 2004-10-22  Werner Koch  <wk@g10code.com>
2945
2946         * card-util.c (fetch_url): Disable for gnupg 1.9
2947         (card_generate_subkey): Ditto.
2948         (card_store_subkey): Ditto.
2949
2950 2004-10-21  David Shaw  <dshaw@jabberwocky.com>
2951
2952         * options.h, g10.c (main), mainproc.c (check_sig_and_print):
2953         Rename verify-option show-validity to show-uid-validity to match
2954         the similar list-option.
2955
2956         * app-openpgp.c (verify_chv3): Fix typo.
2957
2958 2004-10-21  Werner Koch  <wk@g10code.com>
2959
2960         * app-common.h (app_openpgp_storekey): Add prototype.
2961
2962         * app-openpgp.c (do_sign): Replace asprintf by direct allocation.
2963         This avoids problems with missing vasprintf implementations.
2964
2965         * card-util.c (generate_card_keys): Add a #warning for gnupg 1.9
2966         and use the same string there.
2967
2968 2004-10-20  David Shaw  <dshaw@jabberwocky.com>
2969
2970         * g10.c (parse_list_options): Fix non-constant initializer so we
2971         can build with C89.
2972
2973 2004-10-17  David Shaw  <dshaw@jabberwocky.com>
2974
2975         * keylist.c (print_one_subpacket): The flags field should be hex.
2976
2977 2004-10-17  Werner Koch  <wk@g10code.com>
2978
2979         * passphrase.c (agent_get_passphrase): Cast UIDLEN to int.  Noted
2980         by Christian Cornelssen.
2981
2982 2004-10-16  David Shaw  <dshaw@jabberwocky.com>
2983
2984         * parse-packet.c (parse_one_sig_subpkt, enum_sig_subpkt): Don't
2985         BUG() on unknown subpackets.  Rather, just return them silently.
2986         
2987 2004-10-15  Werner Koch  <wk@g10code.com>
2988
2989         * status.h (STATUS_NEED_PASSPHRASE_PIN): New.
2990         * status.c (get_status_string): Added.
2991         * passphrase.c (ask_passphrase): Moved status printing to ..
2992         * cardglue.c (pin_cb): .. here and issue new status message.
2993
2994         * keyedit.c (sign_uids): Don't include the leading LF in the
2995         translatable string but print them separately.
2996
2997         * apdu.c (apdu_open_remote_reader) [_WIN32]: We don't have ENOSYS.
2998
2999         * app-openpgp.c (parse_login_data): New. 
3000         (app_select_openpgp): Call it.
3001         (do_setattr): Reparse it after change.
3002
3003         * pkclist.c (do_edit_ownertrust): Add a note to translators.
3004         * keygen.c (ask_user_id): Ditto.
3005
3006         * helptext.c: Typo fix.
3007
3008 2004-10-14  David Shaw  <dshaw@jabberwocky.com>
3009
3010         * keylist.c (list_keyblock_print): Show the fingerprint after the
3011         key, not after the first user ID.
3012
3013         * keyedit.c (show_key_with_all_names): Don't show validity if
3014         we're just printing user IDs for signing.
3015
3016         * armor.c (fake_packet): Properly handle the case where the line
3017         is dash-space (i.e. a blank line that was quoted).  Give a warning
3018         for bad dash escaping.
3019
3020 2004-10-14  Werner Koch  <wk@g10code.com>
3021
3022         * export.c (do_export_stream) [ENABLE_SELINUX_HACKS]: Don't allow
3023         secret key export.
3024         * import.c (import_secret_one) [ENABLE_SELINUX_HACKS]: Likewise 
3025
3026         * misc.c (is_secured_filename): New.
3027         * keydb.c (maybe_create_keyring)
3028         * tdbio.c (tdbio_set_dbname)
3029         * plaintext.c (handle_plaintext)
3030         * openfile.c (copy_options_file, open_outfile)
3031         * exec.c (exec_write)
3032         * keygen.c (do_generate_keypair, gen_card_key_with_backup)
3033
3034         * sign.c (sign_file, clearsign_file)
3035         * keyring.c (create_tmp_file, do_copy): Check for secured files
3036         before creating them. 
3037
3038         * keygen.c (print_status_key_created, read_parameter_file):
3039         s/unsigned char/byte/ due to a strange typedef for RISC OS.  Noted
3040         by Stefan.
3041
3042 2004-10-13  David Shaw  <dshaw@jabberwocky.com>
3043
3044         * armor.c (fake_packet): Allow arbitrary dash-escaped lines as per
3045         2440bis-10.  This is bug #158.
3046
3047         * keyserver.c (keyserver_work): Handle keyserver timeouts.
3048
3049         * pkclist.c (do_edit_ownertrust): Different prompt when we're
3050         using direct trust since the meaning is different.
3051
3052         * keyedit.c (trustsig_prompt): Change the strings to match the
3053         ones in pkclist.c:do_edit_ownertrust to make translation easier.
3054
3055         * trustdb.c (trust_model_string, get_validity): Add direct trust
3056         model which applies to the key as a whole and not per-uid.
3057
3058         * options.h, g10.c (parse_trust_model): New.
3059         (main): Call it from here to do string-to-trust-model.
3060
3061 2004-10-13  Werner Koch  <wk@g10code.com>
3062
3063         * tdbdump.c (import_ownertrust): Removed all log_error_f and
3064         reworded the messages.
3065
3066         * dermor.c: Include i18n.h.  Made 2 strings translatable.
3067         
3068         * misc.c (register_secured_file, is_secured_file)
3069         (unregister_secured_file): New.
3070         * keyring.c (do_copy, rename_tmp_file): Implement the SELinux hacks.
3071         (keyring_register_filename): Ditto.
3072         * tdbio.c (open_db): Ditto.
3073         * openfile.c (copy_options_file, open_sigfile): Ditto.
3074         * verify.c (verify_signatures, verify_one_file): Ditto.
3075         * photoid.c (generate_photo_id): Ditto.
3076         * keygen.c (read_parameter_file): Ditto.
3077         * import.c (import_keys_internal): Ditto.
3078         * decrypt.c (decrypt_message, decrypt_messages): Ditto.
3079         * dearmor.c (dearmor_file, enarmor_file): Ditto.
3080         * g10.c (main, print_mds): Ditto.
3081         * exec.c (exec_write, exec_read): Ditto. 
3082         * card-util.c (change_login): Ditto.
3083         * encode.c (encode_simple, encode_crypt): Ditto.
3084
3085         * openfile.c (overwrite_filep, make_outfile_name, open_outfile) 
3086         (open_sigfile): Use iobuf_is_pipe_filename to check for pipes so
3087         that special filesnames are taken into account. This is bug 327.
3088
3089         * tdbdump.c (import_ownertrust): Ditto.
3090
3091         * sign.c (write_plaintext_packet): Ditto.
3092         (sign_file, clearsign_file, sign_symencrypt_file): 
3093
3094         * progress.c (handle_progress): Ditto.
3095         * plaintext.c (handle_plaintext): Ditto.
3096         (ask_for_detached_datafile, hash_datafiles): 
3097
3098         * encode.c (encode_simple, encode_crypt): Ditto. 
3099
3100 2004-10-12  Werner Koch  <wk@g10code.com>
3101
3102         * keygen.c (read_parameter_file): Changed to use iobuf based file
3103         reading to allow the special file name feature to work.
3104
3105         * keygen.c (read_parameter_file): New keyword "Handle".  This is
3106         bug 287.
3107         (print_status_key_not_created): New.
3108         (print_status_key_created): Add new arg HANDLE.
3109         (do_generate_keypair): Print not created status.
3110         * status.c, tatus.h (STATUS_KEY_NOT_CREATED): New. 
3111
3112 2004-10-11  David Shaw  <dshaw@jabberwocky.com>
3113
3114         * pkclist.c (do_edit_ownertrust): Use the same translated string
3115         for showing the user ID as mainproc.c:print_pkenc_list.
3116
3117         * mainproc.c (print_pkenc_list): Allow translating the quotes
3118         around the user ID.
3119
3120         * card-util.c, g10.c, photoid.c, trustdb.c: The last of the \"%s\"
3121         -> `%s' quoting for things that aren't user IDs.
3122
3123         * keyserver.c (keyserver_spawn): If there is no keyserver host,
3124         print the whole URI since it is self-contained.
3125
3126 2004-10-11  Werner Koch  <wk@g10code.com>
3127
3128         * keyserver.c (keyserver_spawn): Print an empty string in log_info
3129         if the host is not set (e.g. finger).
3130
3131 2004-10-10  David Shaw  <dshaw@jabberwocky.com>
3132
3133         * card-util.c, keyedit.c, openfile.c, pkclist.c, delkey.c,
3134         keygen.c, photoid.c, revoke.c: Some yes-or-no prompts end in
3135         "(y/n)".  Some don't.  Consistently use y/n everywhere.
3136
3137         * keygen.c (ask_key_flags): New.
3138         (ask_algo): Call it here in --expert mode so we don't need to
3139         specify each possible variation of RSA capabilities.
3140
3141         * keygen.c (do_add_key_flags): The spec says that all primary keys
3142         MUST be able to certify.  Force the certify flag on for primaries
3143         (and off for subkeys).
3144
3145         * keygen.c (generate_keypair): Fix generating keys with the auth
3146         flag.
3147
3148 2004-10-08  David Shaw  <dshaw@jabberwocky.com>
3149
3150         * encr-data.c (decrypt_data): Give a warning with a weak key, but
3151         still allow to decrypt the message.
3152
3153 2004-10-07  David Shaw  <dshaw@jabberwocky.com>
3154
3155         * pkclist.c (build_pk_list): Keystrify.
3156
3157         * mainproc.c (check_sig_and_print), pkclist.c
3158         (do_edit_ownertrust): Improve translatability of user ID prompts.
3159
3160 2004-10-06  David Shaw  <dshaw@jabberwocky.com>
3161
3162         * helptext.c, pkclist.c (do_we_trust): It is not possible to get
3163         here with a revoked or expired key, so BUG() that case.  Remove
3164         question about overriding revoked/expired.  Also
3165         --keyid-format-ify.
3166         (do_we_trust_pre): Use print_pubkey_info() instead of printing the
3167         info ourselves.
3168
3169         * passphrase.c (passphrase_to_dek): Improve translatability of
3170         user ID prompts.
3171
3172         * keylist.c (print_pubkey_info): Use the user ID the pk was
3173         selected by, if any.
3174
3175         * keyedit.c (sign_uids, ask_revoke_sig): Improve translatability
3176         of user ID prompts.
3177         (ask_revoke_sig, menu_revsig): Try and use common strings for
3178         these two functions so they don't need to be translated twice.
3179
3180         * keyedit.c, keylist.c, keyserver.c, mainproc.c: The
3181         revoked/expired/expires string change of 2004-09-29 was too
3182         simple.  Use two styles for each tag.
3183
3184 2004-10-06  Werner Koch  <wk@g10code.com>
3185
3186         * ccid-driver.c (ccid_open_reader): Store the vendor ID.
3187         (ccid_transceive_secure): New.
3188         (parse_ccid_descriptor): Workaround for an SCM reader problem.
3189         (send_escape_cmd): New.
3190
3191 2004-10-05  David Shaw  <dshaw@jabberwocky.com>
3192
3193         * passphrase.c (agent_get_passphrase): Use keystrs for agent
3194         strings, and fix sprintf warnings.
3195
3196         * keyserver.c (keyserver_spawn): Fix BUG() with certain sets of
3197         mixed regular and preferred keyserver refreshes.  Noted by
3198         Sebastian Wiesinger.
3199
3200         * keyedit.c (show_key_with_all_names): Show uid validity in menu.
3201
3202 2004-10-03  Timo Schulz  <twoaday@g10code.de>
3203
3204         * apdu.c (apdu_open_remote_reader) [_WIN32]: Do not set ENOSYS.
3205         
3206 2004-10-03  David Shaw  <dshaw@jabberwocky.com>
3207
3208         * keyedit.c (print_and_check_one_sig_colon): Fix bad keyids in
3209         colon delsig output.  Noted by Peter Palfrader.
3210         (show_prefs): Do not reference missing selfsig.  Noted by Alex
3211         Moroz.
3212
3213 2004-10-01  Werner Koch  <wk@g10code.com>
3214
3215         * gpgv.c (i18n_init): Always use LC_ALL.
3216
3217 2004-09-30  Werner Koch  <wk@g10code.com>
3218
3219         * app-openpgp.c (verify_chv3) [GNUPG_MAJOR_VERSION!=1]: Typo fix.
3220
3221 2004-09-30  David Shaw  <dshaw@jabberwocky.com>
3222
3223         * gpgv.c, keydb.c (keydb_add_resource): Factored keyring creation
3224         out to ..
3225         (maybe_create_keyring): .. new.  Make sure that we do the checks
3226         in a locked state.  Problem reported by Stefan Haller.  Try to
3227         create the home directory before acquiring a lock for the keyring.
3228         From Werner on stable branch.
3229
3230         * g10.c (main): Blow up if we didn't lose setuid.  From Werner on
3231         stable branch.
3232
3233 2004-09-29  David Shaw  <dshaw@jabberwocky.com>
3234
3235         * keyedit.c, keylist.c, keyserver.c, mainproc.c: Reduce the many
3236         variations of "revoked" ("revoked", "[revoked]", " [revoked]",
3237         "[revoked] ") "and" expired down to two to simplify translation.
3238
3239 2004-09-28  David Shaw  <dshaw@jabberwocky.com>
3240
3241         * keyedit.c (print_and_check_one_sig): Account for the extra space
3242         that show-sig-expire takes up so we do not wrap lines.
3243         (show_key_with_all_names): No need to show subkey revocations as a
3244         seperate line since we now show revocation date in the main subkey
3245         line.
3246
3247         * signal.c (got_fatal_signal): HAVE_DECL_SYS_SIGLIST is defined,
3248         but zero if not found.  Noted by John Clizbe.
3249
3250         * keyserver.c (parse_keyrec): Fix problem with non-expiring keys
3251         appearing expired in --search-keys results.
3252
3253 2004-09-27  Werner Koch  <wk@g10code.com>
3254
3255         * card-util.c (card_edit): Take admin only status from the table.
3256
3257         * app-openpgp.c: Made all strings translatable.
3258         (verify_chv3) [GNUPG_MAJOR_VERSION]: Make opt.allow_admin
3259         available for use in gnupg 2. 
3260         (verify_chv3): Reimplemented countdown showing to use only
3261         functions from this module.  Flush the CVH status cache on a
3262         successful read.
3263         (get_one_do): Hack to bypass the cache for cards versions > 1.0.
3264         (store_fpr): Store the creation date for card version > 1.0.
3265
3266 2004-09-25  David Shaw  <dshaw@jabberwocky.com>
3267
3268         * main.h, g10.c (main), card-util.c (change_pin): If "admin" has
3269         not been issued, skip right to the CHV1/CHV2 PIN change.  No need
3270         to show the unblock or admin PIN change option.
3271         (card_edit): Add "admin" command to add admin commands to the
3272         menu.  Do not allow admin commands until "admin" is given.
3273
3274         * app-openpgp.c (verify_chv3): Show a countdown of how many wrong
3275         admin PINs can be entered before the card is locked.
3276
3277         * options.h, g10.c (main), app-openpgp.c (verify_chv3): Remove
3278         --allow-admin.
3279
3280 2004-09-24  David Shaw  <dshaw@jabberwocky.com>
3281
3282         * main.h: Create S2K_DIGEST_ALGO macro so we do not need to always
3283         set opt.s2k_digest_algo.  This helps fix a problem with PGP 2.x
3284         encrypted symmetric messages.  Change all callers (encode.c,
3285         g10.c, keyedit.c, keygen.c, passphrase.c, sign.c).
3286
3287         * armor.c, cardglue.c, getkey.c, import.c, keygen.c: Be consistent
3288         in some more quoted strings.  Always use 'user ID', not 'user id',
3289         "quotes" for user IDs, etc.
3290
3291         * keyedit.c (keyedit_menu), gpgv.c (agent_scd_getattr (stub)),
3292         keygen.c (copy_mpi, generate_raw_key): Fix a compile problem and a
3293         few warnings when building without card support.
3294
3295 2004-09-23  Werner Koch  <wk@g10code.com>
3296
3297         * card_util.c (generate_card_keys): ask whether backup should be
3298         created.
3299         (card_store_subkey): Factored some code out to ..
3300         * keygen.c (save_unprotected_key_to_card): .. new function.
3301         (gen_card_key_with_backup): New.
3302         (generate_raw_key): New.
3303         (generate_keypair): New arg BACKUP_ENCRYPTION_DIR.  Changed all
3304         callers.
3305         (do_generate_keypair): Divert to gen_card_key_with_backup when
3306         desired.
3307
3308         * apdu.c (open_pcsc_reader): Do not print empty reader string.
3309
3310         * keygen.c (ask_algo): Allow creation of AUTH keys.
3311
3312         * keyid.c (usagestr_from_pk): New.
3313
3314         * app-openpgp.c (app_openpgp_storekey): Call flush_cache.
3315         (get_cached_data): Move local data initialization to ..
3316         (app_select_openpgp): .. here. Read some flags for later use.
3317         (do_getattr): New read-only attribute EXTCAP.
3318
3319         * keyedit.c (keyedit_menu): New command "keytocard"
3320         (keyedit_menu): Bad hack for the not_with_sk element.
3321         (show_key_with_all_names): Print the usage.
3322         (find_pk_from_sknode): New.
3323
3324         * card-util.c (card_store_subkey): New.
3325         (copy_mpi): New.
3326
3327         * cardglue.c (agent_openpgp_storekey): New.
3328
3329 2004-09-22  Werner Koch  <wk@g10code.com>
3330
3331         * card-util.c (card_generate_subkey, generate_card_keys): Factored
3332         common code out to ...
3333         (get_info_for_key_operation, check_pin_for_key_operation)
3334         (restore_forced_chv1, replace_existing_key_p)
3335         (show_card_key_info): ... new functions.
3336
3337 2004-09-21  David Shaw  <dshaw@jabberwocky.com>
3338
3339         * mainproc.c (check_sig_and_print), keyedit.c (show_prefs,
3340         menu_set_keyserver_url): Make sure that keyserver URLs with
3341         control characters inside are printed properly.  In fact, handle
3342         them as UTF8.
3343
3344         * keyedit.c (keyedit_menu): Don't show "addcardkey" in the menu if
3345         we do not have card support.
3346
3347         * keydb.h, keyserver.c (print_keyrec, keyserver_spawn): fpr is an
3348         array of unsigned bytes.
3349
3350 2004-09-20  Werner Koch  <wk@g10code.com>
3351
3352         * g10.c: Make -K an alias for --list-secret-keys.
3353
3354         * keylist.c (print_card_serialno): New. Taken from gnupg 1.9.11.
3355         (list_keyblock_print): Make use of it.
3356         * keyedit.c (show_key_with_all_names): Print the card S/N.
3357
3358         * keyedit.c (keyedit_menu): New command ADDCARDKEY.
3359         * card-util.c (card_generate_subkey): New.
3360         * keygen.c (generate_card_subkeypair): New.
3361         (gen_card_key): New arg IS_PRIMARY; changed all callers.
3362
3363         * cardglue.c (open_card): Use shutdown code if possible.
3364         (check_card_serialno): Ditto.
3365
3366         * ccid-driver.c (do_close_reader): Factored some code out from ...
3367         (ccid_close_reader): ..here.
3368         (ccid_shutdown_reader): New.
3369
3370         * apdu.c (apdu_shutdown_reader): New.
3371         (shutdown_ccid_reader): New.
3372
3373 2004-09-17  Werner Koch  <wk@g10code.com>
3374
3375         * g10.c (list_config): New config option ccid-reader-id.
3376         (gpgconf_list): Add "reader-port".
3377
3378         * apdu.c (open_ccid_reader): New arg PORTSTR.  Pass it to
3379         ccid_open_reader.
3380         (apdu_open_reader): Pass portstr to open_ccid_reader.
3381         (apdu_open_reader): No fallback if a full CCID reader id has been
3382         given.
3383
3384         * ccid-driver.c (ccid_get_reader_list): New.
3385         (ccid_open_reader): Changed API to take a string for the reader.
3386         Removed al the cruft for the libusb development vesion which seems
3387         not to be maintained anymore and there are no packages anyway.
3388         The stable library works just fine.
3389         (struct ccid_reader_id_s): Deleted and replaced everywhere by a
3390         simple string.
3391         (usb_get_string_simple): Removed.
3392         (bulk_in): Do valgrind hack here and not just everywhere.
3393
3394 2004-09-16  David Shaw  <dshaw@jabberwocky.com>
3395
3396         * keyedit.c (show_key_with_all_names, show_prefs): Show preferred
3397         keyserver(s) in "showpref" output.
3398
3399         * keygen.c (keygen_add_keyserver_url), keyedit.c
3400         (menu_set_keyserver_url): Allow setting a keyserver URL of "none"
3401         to remove an existing keyserver URL.
3402
3403         * keyedit.c (menu_set_keyserver_url): Confirm replacement of a
3404         keyserver URL before overwriting the old one.
3405
3406 2004-09-15  David Shaw  <dshaw@jabberwocky.com>
3407
3408         * gpgv.c (agent_scd_getattr): Stub.
3409
3410         * misc.c (get_signature_count): New.  Get the signature count from
3411         a smartcard.
3412         (pct_expando): Call it here so the %c expando becomes the number
3413         of signatures issued.  This allows for notations or the like with
3414         an automatic signature count.
3415
3416         * ccid-driver.c (usb_get_string_simple): Replacement function to
3417         work with older libusb.
3418
3419 2004-09-15  Werner Koch  <wk@g10code.com>
3420
3421         * g10.c [HAVE_LIBUSB]: New option --debug-ccid-driver.
3422
3423         * ccid-driver.c (read_device_info): Removed.
3424         (make_reader_id, scan_or_find_devices): New.
3425         (ccid_open_reader): Simplified by make use of the new functions.
3426         (ccid_set_debug_level): New.  Changed the macros to make use of
3427         it.  It has turned out that it is often useful to enable debugging
3428         at runtime so I added this option.
3429
3430 2004-09-13  David Shaw  <dshaw@jabberwocky.com>
3431
3432         * getkey.c (premerge_public_with_secret): Fix subkey<->binding sig
3433         mismatch when some secret subkeys are missing.  Discovered by
3434         Michael Roth.
3435
3436         * main.h, keylist.c (print_subpackets_colon): Make a public
3437         function.
3438
3439         * keyedit.c (print_and_check_one_sig_colon): New.  Print a
3440         with-colons version of the sig record.
3441         (menu_delsig): Call it here for a with-colons delsig.
3442
3443 2004-09-12  David Shaw  <dshaw@jabberwocky.com>
3444
3445         * options.h, keylist.c (print_one_subpacket,
3446         print_subpackets_colon): Print a spk record for each request
3447         subpacket.
3448         (list_keyblock_colon): Call them here.
3449
3450         * g10.c (parse_subpacket_list, parse_list_options): New.  Make the
3451         list of subpackets we are going to print.
3452         (main): Call them here.
3453
3454 2004-09-11  David Shaw  <dshaw@jabberwocky.com>
3455
3456         * card-util.c (fetch_url, card_edit): Use the pubkey URL stored on
3457         the card to fetch an updated copy.  Works with either straight
3458         URLs or HKP or LDAP keyservers.
3459
3460         * keyserver-internal.h, keyserver.c (keyserver_import_fprint),
3461         import.c (revocation_present): Use a keyserver_spec so the caller
3462         can pass in whatever keyserver they like.
3463
3464 2004-09-10  David Shaw  <dshaw@jabberwocky.com>
3465
3466         * app-openpgp.c (get_cached_data): Avoid mallocing zero since it
3467         breaks us when using --enable-m-guard.
3468
3469         * ccid-driver.c (read_device_info): Fix segfault when usb device
3470         is not accessible.
3471         (ccid_open_reader): Allow working with an even older version of
3472         libusb (usb_busses global instead of usb_get_busses()).
3473
3474 2004-09-09  Werner Koch  <wk@g10code.com>
3475
3476         * cardglue.h: Add members for CA fingerprints.
3477         * cardglue.c (agent_release_card_info): Invalid them.
3478         (learn_status_cb): Store them.
3479
3480         * app-common.h, app-openpgp.c, iso7816.c, iso7816.h
3481         * apdu.c, apdu.h, ccid-driver.c, ccid-driver.h
3482         * card-util.c: Updated from current gnupg-1.9.
3483
3484         Changes are:
3485
3486         * ccid-driver.h (CCID_DRIVER_ERR_ABORTED): New.
3487         * ccid-driver.c (ccid_open_reader): Support the stable 0.1 version
3488         of libusb.
3489         (ccid_get_atr): Handle short messages.
3490         * apdu.c (my_rapdu_get_status): Implemented.
3491         * apdu.c: Include <signal.h>.
3492         * apdu.c (reader_table_s):  Add function pointers for the backends.
3493         (apdu_close_reader, apdu_get_status, apdu_activate) 
3494         (send_apdu): Make use of them.
3495         (new_reader_slot): Intialize them to NULL.
3496         (dump_ccid_reader_status, ct_dump_reader_status): New.
3497         (dump_pcsc_reader_status): New.