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