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