57843516536fffa9d9f6cde501948599b1f2280f
[gnupg.git] / g10 / ChangeLog
1 2006-02-27  David Shaw  <dshaw@jabberwocky.com>
2
3         * options.skel: Document auto-key-locate and give a pointer to
4         Simon Josefsson's page for CERT.
5
6 2006-02-24  David Shaw  <dshaw@jabberwocky.com>
7
8         * keydb.h, getkey.c (release_akl), gpg.c (main): Add
9         --no-auto-key-locate.
10
11         * options.h, gpg.c (main): Keep track of each keyserver registered
12         so we can match on them later.
13
14         * keyserver-internal.h, keyserver.c (cmp_keyserver_spec,
15         keyserver_match), gpgv.c: New.  Find a keyserver that matches ours
16         and return its spec.
17
18         * getkey.c (get_pubkey_byname): Use it here to get the
19         per-keyserver options from an earlier keyserver.
20
21 2006-02-23  David Shaw  <dshaw@jabberwocky.com>
22
23         * keyserver.c (parse_keyserver_options): Only change max_cert if
24         it is used.
25
26         * options.c, gpg.c (main), keyserver.c (keyserver_spawn): No
27         special treatment of include-revoked, include-subkeys, and
28         try-dns-srv.  These are keyserver features, and GPG shouldn't get
29         involved here.
30
31         * keyserver.c (parse_keyserver_uri, add_canonical_option): Always
32         append options to the list, as ordering may be significant to the
33         user.
34
35         * gpg.c (add_notation_data): Fix reversed logic for isascii check
36         when adding notations.  Noted by Christian Biere.
37
38         * options.h, keyserver.c (add_canonical_option): New.
39         (parse_keyserver_options): Moved from here.
40         (parse_keyserver_uri): Use it here so each keyserver can have some
41         private options in addition to the main keyserver-options
42         (e.g. per-keyserver auth).
43
44 2006-02-22  David Shaw  <dshaw@jabberwocky.com>
45
46         * options.h, keyserver-internal.h, keyserver.c
47         (keyserver_import_name), getkey.c (free_akl,
48         parse_auto_key_locate, get_pubkey_byname): The obvious next step:
49         allow arbitrary keyservers in the auto-key-locate list.
50
51         * options.h, keyserver.c (parse_keyserver_options): Remove
52         auto-cert-retrieve as it is no longer meaningful.  Add
53         max-cert-size to allow users to pick a max key size retrieved via
54         CERT.
55
56         * options.h, gpg.c (main), mainproc.c (check_sig_and_print),
57         keyserver.c (keyserver_opts): Rename auto-pka-retrieve to
58         honor-pka-record to be consistent with honor-keyserver-url.
59
60         * options.h, keydb.h, g10.c (main), getkey.c
61         (parse_auto_key_locate): Parse a list of key access methods.
62         (get_pubkey_byname): Walk the list here to try and retrieve keys
63         we don't have locally.
64
65 2006-02-21  David Shaw  <dshaw@jabberwocky.com>
66
67         * getkey.c (get_pubkey_byname): Fix minor security problem with
68         PKA when importing at -r time.  The URL in the PKA record may
69         point to a key put in by an attacker.  Fix is to use the
70         fingerprint from the PKA record as the recipient.  This ensures
71         that the PKA record is followed.
72
73         * keyserver-internal.h, keyserver.c (keyserver_import_pka): Return
74         the fingerprint we requested.
75
76         * gpgv.c: Stub keyserver_import_ldap.
77
78         * keyserver-internal.h, keyserver.c (keyserver_import_ldap):
79         Import using the PGP Universal trick of asking
80         ldap://keys.(maildomain) for the key.
81
82 2006-02-20  David Shaw  <dshaw@jabberwocky.com>
83
84         * keyserver.c (parse_keyserver_uri): Include the scheme in the uri
85         even when we've assumed "hkp" when there was no scheme.
86
87 2006-02-14  Werner Koch  <wk@gnupg.org>
88
89         * verify.c (verify_signatures): Print warning also for NO_DATA.
90
91         * mainproc.c (struct mainproc_context): New field any_sig_seen.
92         (add_signature): Set it.
93         (proc_signature_packets): Test and return NO_DATA.
94
95 2006-02-09  Werner Koch  <wk@g10code.com>
96
97         * gpg.c (main) <oLockNever>: Disable random locking.
98
99 2006-02-06  Werner Koch  <wk@g10code.com>
100
101         * ccid-driver.c, ccid-driver.h: Updated from GnuPG 1.9.  Changes:
102         * ccid-driver.h (CCID_DRIVER_ERR_NO_KEYPAD): New.
103         * ccid-driver.c (send_escape_cmd): New args RESULT, RESULTLEN and
104         RESULTMAX.  Changed all callers.
105         (ccid_transceive_escape): New.
106         * ccid-driver.c (special_transport): New
107         (ccid_open_reader, do_close_reader, ccid_shutdown_reader)
108         (bulk_out, bulk_in): Add support for CardMan 4040 reader.
109         * ccid-driver.c (scan_or_find_devices): Factored most code out to
110         (scan_or_find_usb_device): .. new.
111         (make_reader_id): Fixed vendor mask.
112
113 2006-01-24  David Shaw  <dshaw@jabberwocky.com>
114
115         * keyserver.c (parse_keyserver_uri): If there is a path present,
116         set the direct_uri flag so the right keyserver helper is run.
117
118 2006-01-22  David Shaw  <dshaw@jabberwocky.com>
119
120         * keyserver.c (keyserver_spawn): Include the EXEEXT so we can find
121         keyserver helpers on systems that use extensions.
122
123         * misc.c (path_access) [HAVE_DRIVE_LETTERS]: Do the right thing
124         with drive letter systems.
125
126 2006-01-17  David Shaw  <dshaw@jabberwocky.com>
127
128         * keydb.h, passphrase.c (next_to_last_passphrase): New.  "Touch" a
129         passphrase as if it was used (move from next_pw to last_pw).
130
131         * pubkey-enc.c (get_session_key): Use it here to handle the case
132         where a passphrase happens to be correct for a secret key, but yet
133         that key isn't the anonymous recipient (i.e. the secret key could
134         be decrypted, but not the session key).  This also handles the
135         case where a secret key is located on a card and a secret key with
136         no passphrase.  Note this does not fix bug 594 (anonymous
137         recipients on smartcard do not work) - it just prevents the
138         anonymous search from stopping when the card is encountered.
139
140 2006-01-07  David Shaw  <dshaw@jabberwocky.com>
141
142         * keyserver.c (keyserver_refresh): Fix problem when more than one
143         key in a refresh batch has a preferred keyserver set.  Noted by
144         Nicolas Rachinsky.
145
146 2006-01-01  David Shaw  <dshaw@jabberwocky.com>
147
148         * mainproc.c (check_sig_and_print), keyserver.c
149         (keyserver_import_pka), card-util.c (fetch_url): Always require a
150         scheme:// for keyserver URLs except when used as part of the
151         --keyserver command for backwards compatibility.
152
153         * sign.c (write_signature_packets): Lost a digest_algo line.
154
155         * sign.c (hash_for): Add code to detect if the sk lives on a smart
156         card.  If it does, only allow 160-bit hashes, a la DSA.  This
157         involves passing the *sk in, so change all callers.  This is
158         correct for today, given the current 160-bit q in DSA, and the
159         current SHA-1/RIPEMD160 support in the openpgp card.  It will
160         almost certainly need changing down the road.
161
162         * app-openpgp.c (do_sign): Give user error if hash algorithm is
163         not supported by the card.
164
165 2005-12-23  David Shaw  <dshaw@jabberwocky.com>
166
167         * keyserver.c (keyserver_import_pka): New.  Moved from
168         getkey.c:get_pubkey_byname which was getting crowded.
169
170         * keyserver.c (keyserver_import_cert): Import a key found in DNS
171         via CERT records.  Can handle both the PGP (actual key) and IPGP
172         (URL) CERT types.
173
174         * getkey.c (get_pubkey_byname): Call them both here.
175
176         * options.h, keyserver.c (parse_keyserver_options): Add
177         "auto-cert-retrieve" option with optional max size argument.
178
179         * gpgv.c: Stubs.
180
181         * keyserver-internal.h, keyserver.c (keyserver_spawn,
182         keyserver_work, keygerver_getname): New keyserver_getname function
183         to fetch keys by name.
184
185         * getkey.c (get_pubkey_byname): Call it here to enable locating
186         keys by full mailbox from a keyserver a la PKA.  Try PKA first,
187         though, as it is likely to be faster.
188
189 2005-12-20  Werner Koch  <wk@g10code.com>
190
191         * gpg.c: New option --allow-pka-lookup.
192         (parse_trust_model): Add "+pka" variants.
193         (main): Make KEYSERVER_AUTO_PKA_RETRIEVE teh default.
194         * options.h (opt): New fields PKA_TRUST_INCREASE and
195         ALLOW_PKA_LOOKUP.
196         * status.h (STATUS_PKA_TRUST_BAD, STATUS_PKA_TRUST_GOOD): New.
197         * pkclist.c (check_signatures_trust): Increase trust due to valid
198         PKA only if that new option has been set.  Issue new status lines.
199         * trustdb.c (init_trustdb): Print info if this option is active.
200         * getkey.c (get_pubkey_byname): Honor allow-pka-lookup.
201         * mainproc.c (pka_uri_from_sig): Ditto.
202         
203         * trustdb.c (validate_keys): Print no "ultimately trusted keys
204         found" only in non-quiet mode.
205
206 2005-12-19  David Shaw  <dshaw@jabberwocky.com>
207
208         * getkey.c (merge_selfsigs_main): All primary keys can certify.
209
210 2005-12-18  David Shaw  <dshaw@jabberwocky.com>
211
212         * gpg.c (main): Restore convert-sk-to-pk as programs rely on it.
213
214         * keyid.c (usagestr_from_pk): Remove special PUBKEY_USAGE_CERT
215         flag.  It's no longer needed.
216
217 2005-12-14  David Shaw  <dshaw@jabberwocky.com>
218
219         * gpg.c (main): Don't default to import-options convert-sk-to-pk.
220         It causes confusing warning messages when importing a PGP-exported
221         key that contains a secret key without selfsigs followed by the
222         public key.
223
224 2005-12-08  David Shaw  <dshaw@jabberwocky.com>
225
226         * keyserver.c (keyserver_fetch): Switch on fast-import before we
227         --fetch-keys so we don't rebuild the trustdb after each fetch.
228
229 2005-12-08  Werner Koch  <wk@g10code.com>
230
231         * gpg.c (main): Check for DBCS lead byte when converting the
232         homedir.  By Kazuyoshi Kakihara. Fixes PR561.
233
234         * keyserver.c (keyserver_fetch): Made strings translatable.
235
236 2005-12-08  David Shaw  <dshaw@jabberwocky.com>
237
238         * options.h, keyserver.c (curl_cant_handle, keyserver_spawn,
239         keyserver_fetch): Set a flag to indicate that we're doing a direct
240         URI fetch so we can differentiate between a keyserver operation
241         and a URI fetch for protocols like LDAP that can do either.
242
243 2005-12-07  David Shaw  <dshaw@jabberwocky.com>
244
245         * keyserver.c (keyserver_spawn): Don't print "searching for key
246         00000000" when fetching a URI.
247
248         * keyserver-internal.h, keyserver.c (keyserver_fetch): New.  Fetch
249         an arbitrary URI using the keyserver helpers.
250
251         * gpg.c (main): Call it from here for --fetch-keys.
252
253 2005-12-07  Werner Koch  <wk@g10code.com>
254
255         * pkclist.c (do_we_trust): Add NOTREACHED comment.
256
257 2005-11-20  David Shaw  <dshaw@jabberwocky.com>
258
259         * main.h, keylist.c (print_revokers): New.  Print the "rvk"
260         designated revoker record.  Moved from
261         keyedit.c:show_key_with_all_names_colon.
262
263         * keylist.c (list_keyblock_colon): Use it here ...
264
265         * keyedit.c (show_key_with_all_names_colon): ... and here.
266
267 2005-11-19  David Shaw  <dshaw@jabberwocky.com>
268
269         * free-packet.c (copy_secret_key): Copy secret key into secure
270         memory since we may unprotect it.
271
272         * main.h, g10.c (main), revoke.c (gen_desig_revoke): Add local
273         user support so users can use -u with --desig-revoke.  This
274         bypasses the interactive walk over the revocation keys.
275
276 2005-11-17  David Shaw  <dshaw@jabberwocky.com>
277
278         * keyedit.c (keyedit_menu, menu_clean): Simplify clean options to
279         just "clean", and add "minimize".
280
281         * import.c (parse_import_options): Make help text match the export
282         versions of the options.
283
284         * options.h, export.c (parse_export_options, do_export_stream):
285         Reduce clean options to two: clean and minimize.
286
287         * trustdb.h, trustdb.c (clean_one_uid): New function that joins
288         uid and sig cleaning into one for a simple API outside trustdb.
289
290 2005-11-13  David Shaw  <dshaw@jabberwocky.com>
291
292         * armor.c (parse_header_line): A fussy bit of 2440: header lines
293         are delimited with a colon-space pair.  Therefore a line such as
294         "Comment: " (with a trailing space) is actually legal, albeit not
295         particularly useful.
296
297 2005-11-11  David Shaw  <dshaw@jabberwocky.com>
298
299         * trustdb.h, trustdb.c (clean_key): New function to handle key
300         cleaning from one convenient place.
301
302         * options.h, import.c (parse_import_options,
303         clean_sigs_from_all_uids, import_one): Reduce clean options to
304         two: clean and minimize.
305
306         * parse-packet.c (setup_user_id): Remove.
307         (parse_user_id, parse_attribute): Just use xmalloc_clear instead.
308
309         * trustdb.c (clean_uid_from_key, clean_uids_from_key):
310         Significantly simpler implementation.
311
312 2005-11-10  David Shaw  <dshaw@jabberwocky.com>
313
314         * keyedit.c (keyedit_menu, menu_clean_sigs_from_uids): Add
315         "minimize" command.
316
317         * packet.h, keyedit.c (menu_clean_uids_from_key), trustdb.c
318         (clean_uids_from_key): Fix display bug where sigs cleaned for
319         other reasons caused a uid to appear as if it had been compacted.
320
321         * packet.h: Move some flags to a bitfield.  Change all callers.
322
323         * options.h, import.c (parse_import_options,
324         clean_sigs_from_all_uids, import_one): Add import-minimal option.
325         Similar to export-minimal, except it works on the way in.
326
327         * trustdb.h, trustdb.c (clean_sigs_from_uid): Add flag to remove
328         all non-selfsigs from key during cleaning.  Change all callers.
329
330         * export.c (do_export_stream): Use it here for export-minimal so
331         we don't need additional minimize code in the export path.
332
333 2005-11-06  David Shaw  <dshaw@jabberwocky.com>
334
335         * options.skel: Add a section for --encrypt-to.  This is Debian
336         bug 336211 by Javier Fernández-Sanguino Peña.
337
338 2005-11-05  David Shaw  <dshaw@jabberwocky.com>
339
340         * Makefile.am: Include @LIBUSB_CPPFLAGS@ in our CPPFLAGS.
341         Strictly speaking this should be only in gpg_CPPFLAGS, but then we
342         have to compile everything twice for gpg and gpgv.
343
344         * apdu.c (open_pcsc_reader): Fix double free.
345
346         * gpg.c (main) [__APPLE__]: Default the PCSC driver to the OS X
347         location.  Suggested by Patty A. Hardy.
348
349 2005-11-02  David Shaw  <dshaw@jabberwocky.com>
350
351         * trustdb.c (clean_sigs_from_uid): Include sigs from unavailable
352         keys in the sigs that are cleaned.  Suggested by Dirk Traulsen and
353         many others.
354
355 2005-11-01  David Shaw  <dshaw@jabberwocky.com>
356
357         * import.c (import_one): Do collapse_uids() before we do any
358         cleaning so keyserver mangled keys with doubled user IDs can be
359         properly cleaned - possibly sigs on the different user IDs cancel
360         each other out.
361
362         * import.c (parse_import_options), export.c
363         (parse_export_options): List "xxx-clean" before the longer options
364         so we don't end up with a partial match on the longer options.
365
366         * trustdb.c (clean_uids_from_key): Return proper number of cleaned
367         user IDs.  Don't count user IDs as cleaned unless we actually
368         delete something.
369
370 2005-10-27  David Shaw  <dshaw@jabberwocky.com>
371
372         * keyedit.c (menu_addrevoker), getkey.c (finish_lookup): Fix
373         problem with adding a cert-only designated revoker.  Code was
374         looking for a key with sign ability, and not cert ability.  Noted
375         by Timo Schulz.
376
377 2005-10-27  Werner Koch  <wk@g10code.com>
378
379         * gpg.c [__CYGWIN__]: Set default driver to winscard.dll.
380
381         * apdu.c, apdu.h: Updated from gnupg 1.9.  Changes are:
382         * apdu.c [__CYGWIN__]: Make cygwin environment similar to _WIN32.
383         Suggested by John P. Clizbe.
384         * apdu.h (SW_HOST_NO_KEYPAD): New.
385         * apdu.c (host_sw_string): Support new code. 
386         (reader_table_s): New field CHECK_KEYPAD.
387         (new_reader_slot, open_ct_reader, open_pcsc_reader) 
388         (open_ccid_reader, open_rapdu_reader): Initialize it.
389         (check_ccid_keypad): New.
390         (apdu_check_keypad): New.
391         (apdu_send_le): Factored all code out to ...
392         (send_le): .. new.  Takes an additional arg; changed all callers
393         of the orginal function to use this one with a NULL for the new
394         arg.
395         (apdu_send_simple_kp): New.
396         (ct_send_apdu, pcsc_send_apdu, my_rapdu_send_apdu) 
397         (send_apdu_ccid): New arg PININFO.
398         (send_apdu_ccid): Use the new arg.
399
400 2005-10-26  David Shaw  <dshaw@jabberwocky.com>
401
402         * keygen.c (proc_parameter_file): Default key and subkey usage
403         flags to algo capabilities if parameter file doesn't specify them.
404         Noted by Timo Schulz.
405
406 2005-10-18  Werner Koch  <wk@g10code.com>
407
408         * cardglue.c (pin_cb): Fixed prompt for repeated PIN.  Return
409         G10ERR_CANCELED and not just -1.
410         (status_sc_op_failure): New.  Use it where we issue that status.
411         (pin_cb): Append serial number to the need-pin status message.
412         (agent_scd_change_pin): Add arg SERIALNO.  Changed all callers.
413         (agent_scd_writekey): Ditto.
414         (agent_scd_setattr): Ditto.
415         (agent_scd_genkey): Ditto.
416         (agent_scd_checkpin): Pass serialno to the pin_cb.
417
418         * keygen.c (parse_expire_string): Allow setting the expire
419         interval using a "seconds=<n>" syntax.  This is useful for
420         debugging.
421
422 2005-10-17  Werner Koch  <wk@g10code.com>
423
424         * export.c (do_export_stream): Factored some code out to ...
425         (skip_subkey_p): .. new.
426         (subkey_in_list_p, release_subkey_list): New.
427         (new_subkey_list_item): New. 
428         (do_export_stream): Export exactly specified subkeys into one
429         keyblock.
430
431 2005-10-13  David Shaw  <dshaw@jabberwocky.com>
432
433         * keyedit.c (keyedit_menu, menu_backsign): New "backsign" command
434         to add 0x19 backsigs to old keys that don't have them.
435
436         * misc.c (parse_options): Fix build warning.
437
438         * main.h, keygen.c (make_backsig): Make public.
439
440 2005-10-12  David Shaw  <dshaw@jabberwocky.com>
441
442         * options.h, getkey.c (merge_selfsigs_subkey), gpg.c (main),
443         sig-check.c (signature_check2): Add --require-backsigs and
444         --no-require-backsigs.  Currently defaults to
445         --no-require-backsigs.
446
447 2005-10-11  David Shaw  <dshaw@jabberwocky.com>
448
449         * getkey.c (merge_selfsigs_subkey), sig-check.c
450         (signature_check2), keygen.c (make_backsig): Did some backsig
451         interop testing with the PGP folks.  All is well, so I'm turning
452         generation of backsigs on for new keys.  Checking for backsigs on
453         verification is still off.
454
455 2005-10-05  Werner Koch  <wk@g10code.com>
456
457         * g10.c: Renamed to ..
458         * gpg.c: ..this.
459         * Makefile.am: Adjusted accordingly.
460
461 2005-09-22  Werner Koch  <wk@g10code.com>
462
463         * sign.c (write_plaintext_packet): Don't print an empty file
464         warning if the file is actually too large.
465         * encode.c (encode_simple,encode_crypt): Ditto.
466         * progress.c (handle_progress): Adjusted for iobuf_get_filelength
467         change.
468         * photoid.c (generate_photo_id): Ditto.
469
470 2005-09-20  Werner Koch  <wk@g10code.com>
471
472         * mainproc.c (proc_symkey_enc): Take care of a canceled passphrase
473         prompt.
474
475 2005-09-19  David Shaw  <dshaw@jabberwocky.com>
476
477         * keylist.c (reorder_keyblock, do_reorder_keyblock): Reorder
478         attribute IDs as well as regular text IDs.
479
480         * plaintext.c (ask_for_detached_datafile): Use make_filename() on
481         filename so tilde expansion works.
482
483 2005-09-14  David Shaw  <dshaw@jabberwocky.com>
484
485         * main.h, misc.c (parse_options): Add the ability to have help
486         strings in xxx-options commands.
487
488         * keyserver.c (keyserver_opts), import.c (parse_import_options),
489         export.c (parse_export_options), g10.c (parse_list_options, main):
490         Add help strings to xxx-options.
491
492 2005-09-10  David Shaw  <dshaw@jabberwocky.com>
493
494         * keyedit.c (show_names): Moved name display code out from
495         show_key_with_all_names.
496         (keyedit_menu): Call it here for pref and showpref so they can
497         show only the selected user ID.  Suggested by Timo Schulz.
498
499 2005-09-07  Werner Koch  <wk@g10code.com>
500
501         * cardglue.h (GPG_ERR_TOO_LARGE): New.
502
503         * apdu.c, apdu.h, iso7816.c, iso7816.h
504         * ccid-driver.c, ccid-driver.h: Updated from GnuPG 1.9 source.
505         Changes are:
506         * iso7816.c (iso7816_select_path): New.
507         * iso7816.c (iso7816_read_binary): Use Le=0 when reading all
508         data.  Handle 6C00 error and take 6B00 as indication for EOF.
509         * apdu.h (SW_EXACT_LENGTH_P): New.
510         * apdu.c (new_reader_slot, reset_pcsc_reader, pcsc_get_status) 
511         (open_pcsc_reader): Set new reader state IS_T0.
512         (apdu_send_le): When doing T=0 make sure not to send Lc and Le.
513         Problem reported by Carl Meijer.
514         (apdu_send_direct): Initialize RESULTLEN.
515
516         * misc.c (parse_options): Allow meta option "help" to list all
517         options and to exit the program.
518
519 2005-09-02  David Shaw  <dshaw@jabberwocky.com>
520
521         * parse-packet.c (enum_sig_subpkt, parse_signature,
522         parse_attribute_subpkts): Make a number of warnings verbose items.
523         These fire on many slightly mangled keys in the field, so the
524         warning is becoming burdensome.
525
526 2005-09-01  David Shaw  <dshaw@jabberwocky.com>
527
528         * photoid.h, photoid.c (generate_photo_id): Allow passing in a
529         suggested filename.
530
531         * keyedit.c (keyedit_menu, menu_adduid): Call it here so "addphoto
532         filename" works.
533
534 2005-08-31  David Shaw  <dshaw@jabberwocky.com>
535
536         * photoid.c (generate_photo_id): Enable readline completion and
537         tilde expansion for the JPEG prompt.
538
539 2005-08-30  Werner Koch  <wk@g10code.com>
540
541         * passphrase.c (agent_open): Print a warning and not an error in
542         case of a missing agent.  Should fix Debian bug #325578.
543
544 2005-08-26  David Shaw  <dshaw@jabberwocky.com>
545
546         * misc.c (openpgp_pk_algo_usage): Default to allowing CERT for
547         signing algorithms.
548
549         * keyedit.c (sign_uids): Don't request a signing key to make a
550         certification.
551
552         * keygen.c (do_add_key_flags): Force the certify flag on for all
553         primary keys, as the spec requires primary keys must be able to
554         certify (if nothing else, which key is going to issue the user ID
555         signature?)
556         (print_key_flags): Show certify flag.
557         (ask_key_flags, ask_algo): Don't allow setting the C flag for
558         subkeys.
559         
560         * keyid.c (usagestr_from_pk), getkey.c (parse_key_usage):
561         Distinguish between a sign/certify key and a certify-only key.
562
563         * keyedit.c (ask_revoke_sig): Add a revsig --with-colons mode.
564         Suggested by Michael Schierl.
565
566 2005-08-21  David Shaw  <dshaw@jabberwocky.com>
567
568         * Makefile.am: No need to link with curl any longer.
569
570         * main.h, misc.c (path_access): New.  Same as access() but does a
571         PATH search like execlp.
572
573         * keyserver.c (curl_can_handle): Removed.  Replaced by...
574         (curl_cant_handle): We are now relying on curl as the handler of
575         last resort.  This is necessary because PGP LDAP and curl LDAP are
576         apples and oranges.
577         (keyserver_typemap): Only test for ldap and ldaps.
578         (keyserver_spawn): If a given handler is unusable (as determined
579         by path_access()) then try gpgkeys_curl.
580
581         * exec.h, exec.c (make_tempdir, expand_args, exec_write,
582         exec_read): Minor cleanup to use bitfield flags instead of a bunch
583         of integers.
584
585 2005-08-20  David Shaw  <dshaw@jabberwocky.com>
586
587         * g10.c (main): Add aliases sign-with->local-user and
588         user->recipient to make switching from PGP command line to GPG
589         easier.
590
591 2005-08-19  David Shaw  <dshaw@jabberwocky.com>
592
593         * options.skel: Remove the surfnet LDAP keyserver from the list of
594         samples since it is being shut down.
595
596         * getkey.c (classify_user_id): Disable the '.' and '+' search
597         modes since they aren't supported yet.
598
599 2005-08-05  David Shaw  <dshaw@jabberwocky.com>
600
601         * g10.c (main), passphrase.c (set_passphrase_from_string): New
602         --passphrase command line option.  Only useful in very special
603         circumstances.
604
605 2005-08-05  Werner Koch  <wk@g10code.com>
606
607         * gpgv.c (keyserver_import_fprint): New stub.
608
609         * keygen.c (ask_user_id): Moved email checking code out to ..
610         * misc.c (is_valid_mailbox): .. new.
611         * mainproc.c (get_pka_address): Use it here.
612         * getkey.c (get_pubkey_byname): Add falback to auto-retrieve a key
613         via the PKA mechanism.
614
615         * options.h (KEYSERVER_AUTO_PKA_RETRIEVE): New.
616         * keyserver.c (keyserver_opts): Ditto.
617         * mainproc.c (check_sig_and_print): Use it here to retrieve keys
618         from a PKA DNS record.
619
620         * pkclist.c (build_pk_list): Add comments to this function;
621         re-indented it.
622
623 2005-08-04  David Shaw  <dshaw@jabberwocky.com>
624
625         * keygen.c (proc_parameter_file): Sanity check items in keygen
626         batch file.  Noted by Michael Schierl.
627
628         * pkclist.c (do_edit_ownertrust): Don't allow ownertrust level 0.
629         Noted by Michael Schierl.
630
631         * keygen.c (write_keyblock): Don't try and build deleted kbnodes
632         since we start our tree with one.
633
634 2005-08-04  Werner Koch  <wk@g10code.com>
635
636         * export.c (do_export_stream): Skip on-card keys when only subkeys
637         are to be exported.  It does not make sense to replace the on-card
638         key stub by a no-key stub.
639
640         * revoke.c (gen_revoke): Check for non-online keys.
641
642         * seckey-cert.c (is_secret_key_protected): Return -3 for
643         non-online key stubs.  The old code assumes that a protection
644         algorithm is still set but in some cases this one is 0 and thus it
645         won't be possible to decide whether it is unprotected or
646         protected.
647
648 2005-07-28  Werner Koch  <wk@g10code.com>
649
650         * Makefile.am (other_libs): Add SRVLIBS.
651
652         * parse-packet.c (can_handle_critical_notation): We know about
653         pka-address@gnupg.org.
654         * packet.h (PKT_signature): New fields PKA_INFO and PKA_TRIED. 
655         (pka_info_t): New.
656         * free-packet.c (cp_pka_info): New.
657         (free_seckey_enc, copy_signature): Support new fields.
658         * mainproc.c (get_pka_address, pka_uri_from_sig): New.
659         (check_sig_and_print): Try to get the keyserver from the PKA
660         record.
661         * pkclist.c (check_signatures_trust): Adjust the trust based on
662         the PKA.
663         * gpgv.c (parse_keyserver_uri): New stub.
664
665         * keygen.c (has_invalid_email_chars): Moved to ..
666         * misc.c (has_invalid_email_chars): .. here and made global.
667
668 2005-07-27  Werner Koch  <wk@g10code.com>
669
670         * export.c (do_export_stream): Make two strings translatable.
671
672 2005-07-26  David Shaw  <dshaw@jabberwocky.com>
673
674         * keyserver.c (keyserver_typemap): Special-case LDAP since curl
675         will report that it can handle it, and we don't want it to.
676
677 2005-07-26  Werner Koch  <wk@g10code.com>
678
679         * passphrase.c (agent_get_passphrase): Make sure to release the
680         saved codeset.
681         (agent_open): Add arg ORIG_CODESET and switch back to it in case
682         of error.  Changed all callers.
683
684 2005-07-22  David Shaw  <dshaw@jabberwocky.com>
685
686         * keyedit.c (sign_uids): Don't prompt for setting signature expiry
687         to match key expiry unless --ask-cert-expire is set.  Suggested by
688         Peter Palfrader.
689
690 2005-07-22  Werner Koch  <wk@g10code.com>
691
692         * g10.c, options.h: New option --exit-on-status-write-error.
693         * status.c (write_status_text): Make use of this option.
694
695 2005-07-22  David Shaw  <dshaw@jabberwocky.com>
696
697         * options.h, g10.c (main): Removed option --no-interactive-selection.
698         * keyedit.c (keyedit_menu): Use --interactive to enable the uid
699         walking when signing a key with no uids specified to sign.
700
701         * keylist.c (list_keyblock_print): Fix silly typo.  Noted by Greg
702         Sabino Mullane.
703
704 2005-07-20  Werner Koch  <wk@g10code.com>
705
706         * openfile.c (open_outfile): Disable FD caching for created files.
707         * encode.c (encode_simple, encode_crypt): Disable FD caching for
708         input files.
709         * verify.c (verify_one_file): Ditto.
710         * decrypt.c (decrypt_messages): Ditto. This is bug #479.
711
712         * misc.c (get_libexecdir) [W32]: Changed to return the value of
713         program used to create the process.
714         * keyserver.c (keyserver_spawn) [DISABLE_KEYSERVER_PATH]: Don't
715         change the exec-path at all.
716
717 2005-07-20  David Shaw  <dshaw@jabberwocky.com>
718
719         * keyserver.c (curl_can_handle): New.  Do a runtime check against
720         libcurl to see if it can handle a particular protocol.
721         (keyserver_typemap): Call it here.
722
723         * Makefile.am: Pull in libcurl for curl_version_info() if used.
724
725 2005-07-19  Werner Koch  <wk@g10code.com>
726
727         * g10.c, options.h: New option --limit-card-insert-tries.
728         * cardglue.c (open_card): Use it.
729
730         * export.c (parse_export_options): New option
731         export-reset-subkey-passwd.
732         (do_export_stream): Implement it.
733
734         * misc.c (get_libexecdir): New.
735         * keyserver.c (keyserver_spawn): Use it
736
737 2005-07-18  Werner Koch  <wk@g10code.com>
738
739         * tdbio.c (open_db): Check for EROFS.  Suggested by Bryce Nichols.
740
741 2005-07-08  David Shaw  <dshaw@jabberwocky.com>
742
743         * trustdb.c (clean_uids_from_key): Don't keep a valid selfsig
744         around when compacting a uid.  There is no reason to make an
745         attacker's job easier - this way they only have a revocation which
746         is useless in bringing the uid back.
747
748         * keydb.h, kbnode.c (undelete_kbnode): Removed.  No longer needed.
749
750         * import.c (chk_self_sigs): Allow a uid revocation to be enough to
751         allow importing a particular uid (no self sig needed).  This
752         allows importing compacted uids.
753
754 2005-06-20  David Shaw  <dshaw@jabberwocky.com>
755
756         * keygen.c (save_unprotected_key_to_card): Better fix for gcc4
757         warning.
758
759 2005-06-20  Werner Koch  <wk@g10code.com>
760
761         * g10.c, options.h: New option --no-interactive-selection.
762         * keyedit.c (keyedit_menu): Use it.
763
764 2005-06-18  Werner Koch  <wk@g10code.com>
765
766         * parse-packet.c (parse_signature): Use log_info for messages
767         about missing timestamp or keyid.  In case we don't use that key
768         there won't be no further error and thus gpg does not need to
769         return with an error.
770
771 2005-06-13  David Shaw  <dshaw@jabberwocky.com>
772
773         * keygen.c (save_unprotected_key_to_card): Fix gcc4 warning.
774
775         * options.h, import.c (parse_import_options, import_one): Add
776         import-clean-uids option to automatically compact unusable uids
777         when importing.  Like import-clean-sigs, this may nodify the local
778         keyring.
779
780         * trustdb.c (clean_uids_from_key): Only allow selfsigs to be a
781         candidate for re-inclusion.
782
783 2005-06-12  David Shaw  <dshaw@jabberwocky.com>
784
785         * options.h, import.c (parse_import_options,
786         clean_sigs_from_all_uids, import_one): Add import-clean-sigs
787         option to automatically clean a key when importing.  Note that
788         when importing a key that is already on the local keyring, the
789         clean applies to the merged key - i.e. existing superceded or
790         invalid signatures are removed.
791
792         * getkey.c (merge_selfsigs_main, merge_selfsigs_subkey): Make sure
793         that even after keys may be merged together, we only have one
794         chosen selfsig.
795
796 2005-06-09  David Shaw  <dshaw@jabberwocky.com>
797
798         * options.h, import.c (parse_import_options, delete_inv_parts):
799         import-unusable-sigs is now a noop.
800
801         * options.h, export.c (do_export_stream), keyedit.c (keyedit_menu,
802         menu_clean_subkeys_from_key), trustdb.h, trustdb.c
803         (clean_subkeys_from_key): Remove subkey cleaning function.  It is
804         of very limited usefulness since it cannot be used on any subkey
805         that can sign, and can only affect multiple selfsigs on
806         encryption-only subkeys.
807
808         * keydb.h, kbnode.c (undelete_kbnode): New function to undelete a
809         kbnode.
810
811         * trustdb.c (clean_uids_from_key): Further tweak the algorithm so
812         that the last good selfsig is kept when the chosen selfsig is a
813         revocation.
814
815 2005-06-08  David Shaw  <dshaw@jabberwocky.com>
816
817         * trustdb.c (clean_uids_from_key), keyedit.c
818         (menu_clean_uids_from_key): Tweak algorithm to preserve the last
819         selfsig which helps prevent uid resurrections.
820
821         * getkey.c (fixup_uidnode, merge_selfsigs_main): Handle both
822         expired and revoked uids in fixup_uidnode().  No need to special
823         case in merge_selfsigs_main().  This also means that an expired
824         uid will have its selfsig tagged with chosen_selfsig.
825
826 2005-06-07  David Shaw  <dshaw@jabberwocky.com>
827
828         * options.h, g10.c (main), export.c (parse_export_options,
829         do_export_stream): Add export-options export-clean-sigs,
830         export-clean-uids, export-clean-subkeys, and export-clean which is
831         all of the above.  Export-minimal is the same except it also
832         removes all non-selfsigs.  export-unusable-sigs is now a noop.
833
834 2005-06-06  Werner Koch  <wk@g10code.com>
835
836         * cardglue.c (open_card): Emit new CARDCTRL status 5 for no reader
837         available.
838
839 2005-06-02  Werner Koch  <wk@g10code.com>
840
841         * app-openpgp.c (do_writekey): Typo fix.
842
843         * status.c, status.h: Removed STATUS_BAD_PASSPHRASE_PIN.
844
845 2005-06-01  David Shaw  <dshaw@jabberwocky.com>
846
847         * signal.c [HAVE_DOSISH_SYSTEM]: Fix unused function warnings on
848         mingw32.  Noted by Joe Vender.
849
850         * passphrase.c [_WIN32]: Remove unused variables.
851
852 2005-05-31  David Shaw  <dshaw@jabberwocky.com>
853
854         * keyedit.c (menu_clean_uids_from_key,
855         menu_clean_subkeys_from_key), trustdb.c (clean_uids_from_key,
856         clean_subkeys_from_key): Fix mingw32 build warnings.  Noted by Joe
857         Vender.
858
859 2005-05-31  Werner Koch  <wk@g10code.com>
860
861         * keydb.h [!ENABLE_AGENT_SUPPORT]: Define dummy types.
862
863         * cardglue.c (assuan_strerror, assuan_transact): Dummy functions
864         if not build with agent support. 
865
866         * armor.c (check_input): Don't bail out on invalid header lines
867         unless in struict rfc2440 mode.  Suggested by Richard Patterson.
868
869 2005-05-30  Werner Koch  <wk@g10code.com>
870
871         * tlv.c: Add hack to compile without gpg-error.h.
872
873 2005-05-30  David Shaw  <dshaw@jabberwocky.com>
874
875         * trustdb.h, trustdb.c (clean_subkeys_from_key): New.  Walk
876         through the subkeys on a key, and mark any that aren't usable for
877         deletion.  Note that a signing subkey is never marked for deletion
878         since these keys are still useful after expiration or revocation.
879
880         * keyedit.c (menu_clean_subkeys_from_key): New function to call
881         clean_subkeys_from_key() on a key.  Note that the strings here are
882         not marked for translation yet.  The UI is still in flux, and
883         there is no point in annoying the translators twice.
884         (keyedit_menu): Call it here as part of the "clean" command.
885
886 2005-05-29  David Shaw  <dshaw@jabberwocky.com>
887
888         * trustdb.h, trustdb.c (clean_uids_from_key): New.  Walk through
889         the user IDs on a key, and mark any that aren't valid for
890         deletion.
891
892         * keyedit.c (menu_clean_uids_from_key): New function to call
893         clean_uids_from_key() on a key.
894         (keyedit_menu): Call it from here as part of the "clean" command.
895
896 2005-05-26  David Shaw  <dshaw@jabberwocky.com>
897
898         * g10.c (main): Default {export|import}-unusable-sigs to off until
899         the "clean" UI can be finished.
900
901 2005-05-24  Werner Koch  <wk@g10code.com>
902
903         * passphrase.c (ask_passphrase): Unescape the description string.
904         * cardglue.c (unescape_status_string): Removed.  Changed all
905         caller to use ...
906         * misc.c (unescape_percent_string): New.
907
908         * g10.c (add_notation_data): Check number of at-signs.
909
910 2005-05-23  Werner Koch  <wk@g10code.com>
911
912         * app-openpgp.c, app-common.h: Again updated from gnupg 1.9 CVS.
913
914         * cardglue.c (open_card): Check USE_AGENT.
915         (agent_scd_checkpin): Implemented Assuan part.
916         (agent_scd_change_pin): Ditto.
917
918         * g10.c (main): Option --debug-ccid-driver may now be given
919         several times increase the debug level.
920
921         * ccid-driver.c (parse_ccid_descriptor): Mark SCR335 FW version
922         5.14 as good.
923         (do_close_reader): Never do a reset. The caller should instead
924         make sure that the reader has been closed properly.  The new retry
925         code in ccid_slot_status will make sure that the readersatrts up
926         fine even if the last process didn't closed the USB connection
927         properly.
928         (ccid_get_atr): For certain readers try switching to ISO mode.
929         Thanks to Ludovic Rousseau for this hint and the magic numbers.
930         (print_command_failed): New.
931         (bulk_in): Use it here. Add new arg NO_DEBUG.
932         (ccid_slot_status): Disabled debugging.
933
934 2005-05-21  Werner Koch  <wk@g10code.com>
935
936         * cardglue.c (send_status_info): Make CTRL optional.
937         (agent_scd_writekey, inq_writekey_parms): New.
938         (agent_openpgp_storekey): Removed.
939         * cardglue.h: Add a few more error code mappings.
940         * keygen.c (copy_mpi): Removed.
941         (save_unprotected_key_to_card): Changed to use agent_scd_writekey.
942         * app-common.h, app-openpgp.c, tlv.c, tlv.h: Updated from newer
943         version in gnupg 1.9 CVS.
944
945 2005-05-20  Werner Koch  <wk@g10code.com>
946
947         * ccid-driver.c (ccid_transceive): Arghhh.  The seqno is another
948         bit in the R-block than in the I block, this was wrong at one
949         place. Fixes bug #419 and hopefully several others.
950
951 2005-05-19  Werner Koch  <wk@g10code.com>
952
953         * app-common.h, app-openpgp.c, tlv.c, tlv.h: Updated from newer
954         version in gnupg 1.9 CVS.
955
956 2005-05-18  Werner Koch  <wk@g10code.com>
957
958         * passphrase.c (agent_open): Made global and add arg TRY.
959         (agent_close): Made global.
960
961         * app-common.h (app_t): Add a field to store the Assuan context.
962
963 2005-05-13  David Shaw  <dshaw@jabberwocky.com>
964
965         * build-packet.c (do_comment): Removed.
966         (build_packet): Ignore comment packets.
967
968         * export.c (do_export_stream): Don't export comment packets any
969         longer.
970
971         * options.h, g10.c (main): Remove --sk-comments and
972         --no-sk-comments options, and replace with no-op.
973
974 2005-05-11  David Shaw  <dshaw@jabberwocky.com>
975
976         * keygen.c (write_selfsigs): Rename from write_selfsig.  Write the
977         same selfsig into both the pk and sk, so that someone importing
978         their sk (which will get an autoconvert to the pk) won't end up
979         with two selfsigs.
980         (do_generate_keypair): Call it from here.
981
982         * parse-packet.c (can_handle_critical_notation): New.  Check for
983         particular notation tags that we will accept when critical.
984         Currently, that's only preferred-email-encoding@pgp.com, since we
985         know how to handle it (pass it through to a mail program).
986         (can_handle_critical): Call it from here.
987         (parse_one_sig_subpkt): Sanity check that notations are
988         well-formed in that the internal lengths add up to the size of the
989         subpacket.
990
991 2005-05-07  Werner Koch  <wk@g10code.com>
992
993         * ccid-driver.c (do_close_reader): Don't do a reset before close.
994         Some folks reported that it makes the SCR335 hang less often.
995         Look at the source on how to re-enable it.
996
997 2005-05-06  David Shaw  <dshaw@jabberwocky.com>
998
999         * main.h, keygen.c (parse_expire_string, ask_expire_interval),
1000         sign.c (sign_file, clearsign_file, sign_symencrypt_file), g10.c
1001         (main), keyedit.c (sign_uids): Use seconds rather than days
1002         internally to calculate expiration.  We no longer need the
1003         day-based code as we don't generate v3 keys.
1004
1005         * sign.c (sign_file, clearsign_file, sign_symencrypt_file): Use
1006         the default sig expire value when signing in batchmode.
1007
1008 2005-05-05  David Shaw  <dshaw@jabberwocky.com>
1009
1010         * Makefile.am, packet.h, main.h, comment.c: Remove comment.c.  We
1011         don't use any of these functions any longer.
1012
1013         * keygen.c (start_tree): New function to "prime" a KBNODE list.
1014         (do_generate_keypair): Use it here rather than creating and
1015         deleting a comment packet.
1016
1017         * keygen.c (gen_elg, gen_dsa): Do not put public factors in secret
1018         key as a comment.
1019
1020         * options.h, encode.c (encode_simple, encode_crypt), keygen.c
1021         (do_create): Remove disabled comment packet code.
1022
1023         * keygen.c (keygen_set_std_prefs): Add SHA256 and BZip2 to default
1024         preferences.
1025
1026         * options.h, g10.c (main): Add new --default-sig-expire and
1027         --default-cert-expire options.  Suggested by Florian Weimer.
1028
1029         * main.h, keygen.c (parse_expire_string, ask_expire_interval): Use
1030         defaults passed in, or "0" to control what default expiration is.
1031
1032         * keyedit.c (sign_uids), sign.c (sign_file, clearsign_file,
1033         sign_symencrypt_file): Call them here, so that default expiration
1034         is used when --ask-xxxxx-expire is off.
1035
1036 2005-05-03  Werner Koch  <wk@g10code.com>
1037
1038         * passphrase.c (agent_get_passphrase): Add new arg CACHEID.
1039         Changed all callers.
1040         (ask_passphrase): Add new arg CACHEID and use it in agent mode.
1041         Changed all callers.
1042         (passphrase_clear_cache): New arg CACHEID.  Changed all callers.
1043         * cardglue.c (format_cacheid): New.
1044         (pin_cb): Compute a cache ID.
1045         (agent_scd_pksign, agent_scd_pkdecrypt): Use it.
1046         (agent_clear_pin_cache): New.
1047         * card-util.c (change_pin): Clear the PIN cache.
1048         (check_pin_for_key_operation): Ditto.
1049
1050 2005-04-24  David Shaw  <dshaw@jabberwocky.com>
1051
1052         * trustdb.h, trustdb.c (mark_usable_uid_certs): Add flags for the
1053         no-pubkey and chosen revocation cases.
1054         (clean_uid): New function to clean a user ID of unusable (as
1055         defined by mark_usable_uid_certs) certs.
1056
1057         * keyedit.c (keyedit_menu, menu_clean_uids): Call it here for new
1058         "clean" command that removes unusable sigs from a key.
1059
1060         * trustdb.h, keyedit.c (keyedit_menu, menu_select_uid_namehash):
1061         Allow specifying user ID via the namehash from --with-colons
1062         --fixed-list-mode --list-keys.  Suggested by Peter Palfrader.
1063
1064 2005-04-21  David Shaw  <dshaw@jabberwocky.com>
1065
1066         * keyedit.c (sign_uids, keyedit_menu): When the user requests to
1067         sign a key without specifying which user IDs to sign, and declines
1068         to sign all user IDs, walk through the set of user IDs and prompt
1069         for which to sign.
1070
1071         * mainproc.c (symkey_decrypt_seskey): There is no need to have an
1072         extra check for a bad passphrase and/or unknown cipher algorithm
1073         here.  We'll fail quite happily later, and usually with a better
1074         error message to boot.
1075
1076 2005-04-20  Werner Koch  <wk@g10code.com>
1077
1078         * sign.c (sign_file, sign_symencrypt_file): Allow for hash
1079         debugging.
1080
1081 2005-04-16  David Shaw  <dshaw@jabberwocky.com>
1082
1083         * keyserver.c (keyserver_spawn): Free some memory.
1084
1085         * sign.c (hash_for): Comments.
1086
1087 2005-04-11  Werner Koch  <wk@g10code.com>
1088
1089         * g10.c (main, add_notation_data, add_policy_url)
1090         (add_keyserver_url): Use isascii() to protect the isfoo macros and
1091         to replace direct tests.  Possible problems noted by Christian
1092         Biere.
1093         * keyserver.c (parse_keyserver_uri): Ditto.
1094
1095 2005-04-07  Werner Koch  <wk@g10code.com>
1096
1097         * g10.c (main): Declare --pipemode deprecated.
1098         * misc.c (deprecated_command): New.
1099
1100         * ccid-driver.c (ccid_slot_status): Fixed debug messages.
1101
1102         * card-util.c (card_edit): Add command "verify".  Enhanced admin
1103         command to allow optional arguments "on", "off" and "verify".
1104         (card_status): Print private DOs in colon mode.
1105         * app-openpgp.c (do_check_pin): Add hack to allow verification of
1106         CHV3.
1107
1108 2005-04-01  Werner Koch  <wk@g10code.com>
1109
1110         * keygen.c (keygen_set_std_prefs): Explain the chosen order of
1111         AES key sizes. 
1112
1113 2005-04-01  David Shaw  <dshaw@jabberwocky.com>
1114
1115         * mainproc.c (proc_plaintext): Properly handle SIG+LITERAL
1116         (old-style PGP) signatures that use hashes other than SHA-1,
1117         RIPEMD160, or MD5.
1118
1119 2005-03-31  David Shaw  <dshaw@jabberwocky.com>
1120
1121         * exec.h, exec.c (set_exec_path): Remove some dead code and change
1122         all callers.  We no longer need to append to $PATH.
1123
1124 2005-03-31  Werner Koch  <wk@g10code.com>
1125
1126         * passphrase.c (agent_open): Dropped support for W32 - is was
1127         never actually used.  Removed support for the old non-assuan
1128         protocol; there has never been a matured implementation and
1129         gpg-agent is now arround for quite some time.  Rewritten to make
1130         use of the Assuan code from ../util.
1131         (gpga_protocol_codes): Removed.
1132         (readn): Removed.
1133         (agent_close): Simplified for use with Assuan.
1134         (agent_get_passphrase, passphrase_clear_cache): Removed support
1135         for old protocol.  Use only with ENABLE_CARD_SUPPORT defined.
1136         (agent_send_all_options): Take assuan context instead of a file
1137         descriptor.
1138         (agent_send_option): Likewise. Use assuan_transact.
1139         * passphrase.c (writen, readaline): Removed.
1140
1141         * g10.c (main): Print a warning if --use-agent has been used but
1142         it has not been build with support for it.
1143
1144         * keydb.c (keydb_add_resource): Clarify meaning of flags.  Add new
1145         flag 4.  Use log_info for errors registering the default secret key.
1146         * g10.c (main): Flag the default keyrings.
1147
1148 2005-03-30  David Shaw  <dshaw@jabberwocky.com>
1149
1150         * keyserver.c (keyserver_spawn): Don't mess about with the $PATH.
1151         Rather, call keyserver helpers with the full path.  This fixes
1152         some PATH-inspired DLL problems on W32.  Noted by Carlo Luciano
1153         Bianco.
1154
1155 2005-03-30  Werner Koch  <wk@g10code.com>
1156
1157         * cardglue.c (pin_cb): Print a warning if the info string hack is
1158         not there.  This may happen due to typos in the translation.
1159
1160 2005-03-22  Werner Koch  <wk@g10code.com>
1161
1162         * misc.c (w32_shgetfolderpath) [W32]: Changed declaration of
1163         function ptr.  Noted by Tim Costello. 
1164         * apdu.c [W32]: Changed declaration of dlopened function pointers.
1165
1166 2005-03-21  David Shaw  <dshaw@jabberwocky.com>
1167
1168         * gpgv.c: Stubs for tty_enable_completion() &
1169         tty_disable_completion().
1170
1171         * openfile.c (ask_outfile_name): Enable readline completion when
1172         prompting for an output filename.
1173
1174         * plaintext.c (ask_for_detached_datafile): Enable readline
1175         completion when prompting for a detached sig datafile.
1176
1177 2005-03-21  Werner Koch  <wk@g10code.com>
1178
1179         * keyedit.c (command_generator, keyedit_completion): Changed
1180         indentation.
1181         * card-util.c (command_generator, card_edit_completion): Ditto.
1182
1183 2005-03-19  David Shaw  <dshaw@jabberwocky.com>
1184
1185         * card-util.c (command_generator, card_edit_completion)
1186         [GNUPG_MAJOR_VERSION==1 && HAVE_LIBREADLINE]: New functions to
1187         enable command completion in the --card-edit menu.
1188         (card_edit): Call them here.
1189
1190 2005-03-18  David Shaw  <dshaw@jabberwocky.com>
1191
1192         * keyedit.c (command_generator, keyedit_completion)
1193         [HAVE_LIBREADLINE]: New functions to enable command completion in
1194         the --edit-key menu.
1195         (keyedit_menu): Call them here.
1196
1197 2005-03-17  David Shaw  <dshaw@jabberwocky.com>
1198
1199         * getkey.c (get_seckey_byname2): If no explicit default key is
1200         set, don't pick a disabled default.  Noted by David Crick.
1201
1202         * Makefile.am: Calculate GNUPG_LIBEXECDIR directly.  Do not
1203         redefine $libexecdir.
1204
1205         * options.h, keyserver.c (parse_keyserver_options)
1206         (keyserver_spawn): Don't treat 'verbose' and 'include-disabled' as
1207         special.  Just pass them through silently to the keyserver helper.
1208
1209 2005-03-16  Werner Koch  <wk@g10code.com>
1210
1211         * ccid-driver.c (parse_ccid_descriptor): Make SCM workaround
1212         reader type specific.
1213         (scan_or_find_devices): Do not check the interface subclass in the
1214         SPR532 kludge, as this depends on the firmware version.
1215         (ccid_get_atr): Get the Slot status first.  This solves the
1216         problem with readers hanging on recent Linux 2.6.x.
1217         (bulk_in): Add argument TIMEOUT and changed all callers to pass an
1218         appropriate one.  Change the standard timeout from 10 to 5 seconds.
1219         (ccid_slot_status): Add a retry code with an initial short timeout.
1220         (do_close_reader): Do an usb_reset before closing the reader.
1221
1222 2005-03-14  Werner Koch  <wk@g10code.com>
1223
1224         * card-util.c (card_status): Use isotimestamp and not the
1225         localized asctimestamp to match the timezone used in the key
1226         information.
1227
1228         * cardglue.c (pin_cb): Disable debug output.
1229
1230 2005-03-11  Werner Koch  <wk@g10code.com>
1231
1232         * keygen.c (gen_card_key_with_backup): Write status line with the
1233         backup filename.
1234
1235         * status.h, status.h (STATUS_BACKUP_KEY_CREATED): New.
1236
1237 2005-03-10  David Shaw  <dshaw@jabberwocky.com>
1238
1239         * keyserver.c (parse_keyserver_options): Accept honor-http-proxy
1240         as an alias for http-proxy.
1241
1242         * delkey.c (do_delete_key, delete_keys): Fix problem with --expert
1243         preventing --delete-secret-and-public-keys from deleting secret
1244         keys.
1245
1246 2005-03-10  Werner Koch  <wk@g10code.com>
1247
1248         * keyedit.c (keyedit_menu) [W32]: Run the trustdb stale check
1249         earlier.
1250
1251 2005-03-07  Werner Koch  <wk@g10code.com>
1252
1253         * cardglue.c (agent_scd_pkdecrypt, agent_scd_pksign) 
1254         (agent_scd_genkey, agent_scd_setattr, agent_scd_change_pin) 
1255         (agent_scd_checkpin, agent_openpgp_storekey): Make sure to send a
1256         SC_OP_FAILURE after card operations which might change data.
1257         * card-util.c (change_pin): Send a SC_OP_SUCCESS after a PIN has
1258         been changed.
1259         (change_name): Removed a debug output.
1260         * status.h, status.c: New codes BAD_PASSPHRASE_PIN, SC_OP_FAILURE
1261         and SC_OP_SUCCESS.
1262
1263 2005-02-24  David Shaw  <dshaw@jabberwocky.com>
1264
1265         * keyedit.c (keyedit_menu): Only print the key signing hint when
1266         signing from a place where it is useful (i.e. --edit-key and not
1267         --sign-key).
1268
1269 2005-02-16  Werner Koch  <wk@g10code.com>
1270
1271         * card-util.c (fetch_url): Fetch the key from the default
1272         keyserver if no URL is available.
1273
1274 2005-02-15  Werner Koch  <wk@g10code.com>
1275
1276         * passphrase.c (agent_get_passphrase): Don't call free_public_key
1277         if PK is NULL.
1278         (passphrase_clear_cache): Ditto. Removed debug output.
1279         (passphrase_to_dek): Ditto.
1280
1281 2005-02-13  Werner Koch  <wk@g10code.com>
1282
1283         * keyedit.c (cmds): Limit code to 80 columns. Add command
1284         BKUPTOCARD.
1285
1286 2005-02-09  David Shaw  <dshaw@jabberwocky.com>
1287
1288         * encr-data.c (decrypt_data): Use it here to turn off the "quick
1289         check" bytes for PK decryptions.  This is in regards to the Mister
1290         and Zuccherato attack on OpenPGP CFB mode.
1291
1292         * mainproc.c (proc_symkey_enc): Set a flag to indicate that a
1293         particular session key came from a passphrase and not a PK.
1294
1295 2005-02-08  Werner Koch  <wk@g10code.com>
1296
1297         * misc.c (w32_shgetfolderpath): New.
1298         (default_homedir): Use it to avoid problems under Windows95.
1299
1300 2005-02-06  David Shaw  <dshaw@jabberwocky.com>
1301
1302         * trustdb.h, trustdb.c (trustdb_check_or_update): New.  If the
1303         trustdb is dirty and --interactive is set, do an --update-trustdb.
1304         If not interactive, do a --check_trustdb unless
1305         --no-auto-check-trustdb is set.
1306
1307         * import.c (import_keys_internal): Moved from here.
1308
1309         * keyserver.c (keyserver_refresh): Call it here after all
1310         refreshing has happened so that we don't rebuild after each
1311         preferred keyserver set of imports, but do one big rebuild at the
1312         end.  This is Debian bug #293816, noted by Kurt Roeckx.
1313
1314 2005-02-04  David Shaw  <dshaw@jabberwocky.com>
1315
1316         * getkey.c (merge_selfsigs_subkey): Merged away definition from
1317         the backsigs code.
1318
1319 2005-01-31  David Shaw  <dshaw@jabberwocky.com>
1320
1321         * keygen.c (do_generate_keypair): Write the auth key to the card
1322         before the encryption key.  This is a partial workaround for a PGP
1323         bug (as of this writing, all versions including 8.1), that causes
1324         it to try and encrypt to the most recent subkey regardless of
1325         whether that subkey is actually an encryption type.  In this case,
1326         the auth key is an RSA key so it succeeds.
1327
1328 2005-01-27  David Shaw  <dshaw@jabberwocky.com>
1329
1330         * keyid.c (keyid_from_sk, keyid_from_pk): Use 0xFFFFFFFFFFFFFFFF
1331         instead of 0x0000000000000000 for the invalid key ID since
1332         all-zeroes is reserved for the anonymous recipient.
1333
1334         * keyedit.c (change_passphrase), keygen.c (generate_subkeypair):
1335         Fix a string ;)
1336
1337 2005-01-27  Werner Koch  <wk@g10code.com>
1338
1339         * parse-packet.c (listfp): New.
1340         (set_packet_list_mode): Intialize it to stdout or stderr depending
1341         on a global option.  Made all printing in list mode use LISTFP.
1342
1343         * keygen.c (generate_subkeypair): Detect primary key on-card and
1344         ask for the passphrase.  Return an error if the primary key is a
1345         plain stub.
1346
1347         * keyedit.c (change_passphrase): Don't ever change any stub key.
1348         Print a note if a key consists of only stub keys.  Reported by
1349         Dany Nativel.  These are bugs #401 and #402.
1350
1351 2005-01-26  Werner Koch  <wk@g10code.com>
1352
1353         * ccid-driver.c (parse_ccid_descriptor): Need the CSM workaround
1354         also for newer firmware versions.  Need to get a list of fixed
1355         firmware versions and use that.
1356
1357 2005-01-26  David Shaw  <dshaw@jabberwocky.com>
1358
1359         * keyserver.c (parse_keyserver_uri): Allow RFC-2732 IPv6 [literal
1360         address] syntax in keyserver URLs.
1361         (keyserver_typemap): Map ftps if we are supporting it.
1362
1363 2005-01-25  Werner Koch  <wk@g10code.com>
1364
1365         * keygen.c (do_generate_keypair): Don't continue after an error;
1366         fixed at two places. Why at all didn't I used a goto to cleanup,
1367         tsss?
1368
1369         * app-openpgp.c (get_cached_data): New arg GET_IMMEDIATE to bypass
1370         the cache.  Changed all callers.
1371         (get_one_do): Bypass the cache if the value would have been read
1372         directly for v1.1 cards.  It makes things a bit slower but only for
1373         1.0 cards and there are not that many cards out in the wild.  This
1374         is required to fix a caching bug when generating new keys; as a
1375         side effect of the retrieval of the the C4 DO from the 6E DO the
1376         chaced fingerprint will get updated to the old value and later
1377         when signing the generated key the checking of the fingerprint
1378         fails becuase it won't match the new one.  Thanks to Moritz for
1379         analyzing this problem.
1380         (verify_chv3): Removed the CHV status reread logic because we
1381         won't cache the C4 DO anymore.
1382
1383 2005-01-21  David Shaw  <dshaw@grover.jabberwocky.com>
1384
1385         * keyserver.c (free_keyserver_spec): Fix small leak.
1386         (keyserver_typemap): Map https if we are supporting it.
1387
1388 2005-01-20  Werner Koch  <wk@g10code.com>
1389
1390         * cardglue.c (open_card): Issue new CARDCTRL(4) status.
1391
1392         * gpgv.c (tty_fprintf): New stub.
1393
1394         * card-util.c (card_status): Create a secret key stub on the fly
1395         and print more information about a card key.
1396         * import.c (pub_to_sec_keyblock, auto_create_card_key_stub): New.
1397         * getkey.c (get_seckeyblock_byfprint): New.
1398         * keylist.c (print_card_key_info): New.
1399
1400         * g10.c (i18n_init) [W32]: Pass registry key to gettext
1401         initialization.
1402         * gpgv.c (i18n_init) [W32]: Ditto.
1403
1404 2005-01-18  Werner Koch  <wk@g10code.com>
1405
1406         * misc.c (default_homedir): New.  Taken from gnupg 1.9.15.
1407         * g10.c (main): Use it.
1408         * gpgv.c (main): Ditto.
1409
1410         * keylist.c (public_key_list): Do a trustdb staleness check before
1411         opening the keyring.
1412         (secret_key_list): Ditto.
1413
1414 2005-01-10  David Shaw  <dshaw@jabberwocky.com>
1415
1416         * keyedit.c (keyedit_menu): Move command strings outside the
1417         function to get ready for the readline completion code.
1418
1419         * passphrase.c (readline, agent_send_option, agent_open,
1420         agent_get_passphrase, passphrase_clear_cache): Rename readline()
1421         to readaline() to keep readline library namespace clear.
1422
1423 2005-01-06  David Shaw  <dshaw@jabberwocky.com>
1424
1425         * filter.h, armor.c (armor_filter): Use the eol string from the
1426         armor filter context instead of hardcoding '\n' or '\r\n'.  If no
1427         eol string is provided, default to '\n' or '\r\n' as appropriate.
1428         (is_armor_header): Trim tabs in armor header lines as well.
1429
1430         * keyserver.c (keyserver_spawn): Use it here to force '\n' line
1431         endings since the keyserver output file gets a LF->CRLF expansion
1432         on win32.
1433
1434 2005-01-05  David Shaw  <dshaw@jabberwocky.com>
1435
1436         * g10.c (main): Typo.
1437
1438         * armor.c (is_armor_header): Allow CR and LF (not just actual
1439         spaces) in an armor header line (-----BEGIN etc).  This is needed
1440         due to CRLF issues on win32.  As before, --openpgp makes it
1441         strict.
1442
1443 2005-01-03  David Shaw  <dshaw@jabberwocky.com>
1444
1445         * Makefile.am: Use @LIBUSB@ instead of @LIBUSB_LIBS@
1446
1447         * import.c (delete_inv_parts): Comments on import-unusable-sigs.
1448
1449 2005-01-01  David Shaw  <dshaw@jabberwocky.com>
1450
1451         * options.h, import.c (parse_import_options, delete_inv_parts):
1452         Add import-unusable-sigs flag to enable importing unusable
1453         (currently: expired) sigs.
1454
1455         * options.h, export.c (parse_export_options, do_export_stream):
1456         Add export-unusable-sigs flag to enable exporting unusable
1457         (currently: expired) sigs.
1458
1459 2004-12-29  David Shaw  <dshaw@jabberwocky.com>
1460
1461         * packet.h, getkey.c (merge_selfsigs_main, sig_to_revoke_info),
1462         keyid.c (revokestr_from_pk), keyedit.c (show_key_with_all_names):
1463         Show who revoked a key (either the same key or a designated
1464         revoker) and when.
1465
1466 2004-12-28  Werner Koch  <wk@g10code.com>
1467
1468         * ccid-driver.c (find_endpoint): New.
1469         (scan_or_find_devices): Add new args to return endpoint info and
1470         interface number.
1471         (ccid_open_reader, ccid_shutdown_reader): Take care of these new
1472         args.
1473         (bulk_in, bulk_out): Use the correct endpoints.
1474         (ccid_transceive_apdu_level): New.
1475         (ccid_transceive): Divert to above.
1476         (parse_ccid_descriptor): Allow APDU level exchange mode.
1477         (do_close_reader): Pass the interface number to usb_release_interface.
1478
1479 2004-12-24  David Shaw  <dshaw@jabberwocky.com>
1480
1481         * keyserver.c (keyserver_typemap): Only map HTTP and FTP if
1482         libcurl has specifically been selected to handle them.
1483
1484 2004-12-22  David Shaw  <dshaw@jabberwocky.com>
1485
1486         * options.h, keyserver.c (parse_keyserver_uri): Properly parse
1487         auth data from URLs and pass to keyserver helpers.
1488
1489         * keyserver.c (keyserver_typemap): New.  Map certain keyserver
1490         types to a common type (e.g. ldaps -> ldap).  If we are building
1491         with curl, map both http and ftp to curl.
1492
1493         * build-packet.c (build_sig_subpkt): Only allow one preferred
1494         keyserver subpacket at a time.
1495
1496 2004-12-21  David Shaw  <dshaw@jabberwocky.com>
1497
1498         * keyedit.c (menu_set_keyserver_url): Make sure we only operate on
1499         the chosen selfsig so we don't accidentally promote an older
1500         selfsig to chosen.  Discovered by Simon Josefsson and 'Todd'.
1501
1502         * keygen.c (ask_expire_interval): Fix typo.
1503
1504 2004-12-20  David Shaw  <dshaw@jabberwocky.com>
1505
1506         * keylist.c (list_keyblock_print): Secret key listings should
1507         always show everything (expired UIDs, revoked subkeys, etc, etc).
1508
1509         * keyedit.c (keyedit_menu): Add additional help for the "sign"
1510         flags.
1511
1512 2004-12-20  Werner Koch  <wk@g10code.com>
1513
1514         * keygen.c (ask_expire_interval): For better translations chnage 2
1515         strings.
1516
1517         * seckey-cert.c (do_check): Handle case when checksum was okay but
1518         passphrase still wrong.  Roman Pavlik found such a case.
1519
1520 2004-12-20  David Shaw  <dshaw@jabberwocky.com>
1521
1522         * keyedit.c (keyedit_menu): Invisible alias "passwd" as
1523         "password".
1524
1525         * passphrase.c: Don't check for __CYGWIN__, so it is treated as a
1526         unix-like system.
1527
1528         * options.h, g10.c (main), textfilter.c (standard): Use new option
1529         --rfc2440-text to determine whether to filter "<space>\t\r\n" or
1530         just "\r\n" before canonicalizing text line endings.  Default to
1531         "<space>\t\r\n".
1532
1533 2004-12-19  David Shaw  <dshaw@jabberwocky.com>
1534
1535         * keygen.c (keygen_get_std_prefs): Set reference count when
1536         creating the temporary user ID.
1537
1538         * keyedit.c (keyedit_menu): Merge updpref and setpref.  Keep
1539         updpref as an invisible alias.  Add invisible alias for revphoto.
1540         Fix small memory leak when using "setpref" (not all of the uid was
1541         freed).
1542         (menu_revkey): Trigger a trust rebuild after revoking a key.
1543         Don't allow revoking an already-revoked whole key.
1544         (menu_revsubkey): Don't allow revoking an already-revoked subkey.
1545
1546 2004-12-18  David Shaw  <dshaw@jabberwocky.com>
1547
1548         * keyedit.c (menu_revkey): Rename to menu_revsubkey.
1549         (menu_revkey): New.  Revoke a whole key.
1550         (keyedit_menu): Call it here for when 'revkey' is used without any
1551         subkeys selected.  This is to be consistent with the other
1552         functions which are "selected part if selected, whole key if not".
1553
1554         * signal.c: Use only HAVE_LIBREADLINE to detect readline
1555         availability.
1556
1557         * Makefile.am: Link with readline where necessary.
1558
1559 2004-12-17  Werner Koch  <wk@g10code.com>
1560
1561         * passphrase.c (agent_get_passphrase): Define NREAD locally as
1562         size_t or int.
1563
1564         * keylist.c (list_keyblock_print): Make field width an int.
1565         * keyedit.c (show_key_with_all_names): Ditto.
1566
1567 2004-12-16  David Shaw  <dshaw@jabberwocky.com>
1568
1569         * g10.c (main): Add --require-secmem/--no-require-secmem to cause
1570         gpg to exit if it cannot lock memory.  Also remove --nrsign-key
1571         and --nrlsign-key since this can better be done via --edit-key.
1572
1573 2004-12-15  David Shaw  <dshaw@jabberwocky.com>
1574
1575         * apdu.c (apdu_send_le, apdu_send_direct), keylist.c
1576         (status_one_subpacket, print_one_subpacket): Fix some compiler
1577         warnings.
1578
1579         * g10.c (main): Fix --compression-algo to take a string argument
1580         like --compress-algo.
1581
1582         * trustdb.c (uid_trust_string_fixed): For safety, check for a pk.
1583
1584 2004-12-14  David Shaw  <dshaw@jabberwocky.com>
1585
1586         * keyedit.c (keyedit_menu): Re-remove the N_() markers.
1587
1588         * trustdb.c (uid_trust_string_fixed): Show uids as revoked if the
1589         key is revoked.
1590         
1591         * keyedit.c (show_key_with_all_names): Don't show validity for
1592         secret key UIDs.
1593
1594         * keyedit.c (parse_sign_type): New.  Figure out the flags (local,
1595         nonrevoke, trust) for a signature.
1596         (keyedit_menu): Call it here so we can mix and match flags, and
1597         don't need "nrltsign", "ltsign", "tnrsign", etc, etc, etc.
1598
1599 2004-12-14  Werner Koch  <wk@g10code.com>
1600
1601         * passphrase.c (agent_get_passphrase): Removed debug output
1602
1603         * keyserver.c (keyserver_work, keyserver_spawn): Map ldaps to ldap.
1604
1605         * keyedit.c (keyedit_menu): Removed the N_() markers from the
1606         command names.
1607         * card-util.c (card_edit): Ditto.
1608
1609 2004-12-13  Werner Koch  <wk@g10code.com>
1610
1611         * passphrase.c (read_passphrase_from_fd): Fixed memory leak.
1612         Noted by Andrei Darashenka.
1613
1614 2004-12-11  David Shaw  <dshaw@jabberwocky.com>
1615
1616         * keyserver.c (parse_preferred_keyserver): Force preferred
1617         keyserver subpackets to have a URI scheme specified.
1618
1619 2004-12-10  David Shaw  <dshaw@jabberwocky.com>
1620
1621         * options.h, g10.c (main), textfilter.c (standard): Use --rfc2440
1622         or --openpgp directly to determine the end of line hashing rule.
1623
1624         * trustdb.c (uid_trust_string_fixed): Show uids as expired if the
1625         key is expired.
1626
1627 2004-12-10  Werner Koch  <wk@g10code.com>
1628
1629         * app-openpgp.c (send_fprtime_if_not_null): New.
1630         (do_getattr): Add KEY_TIME.
1631         (do_learn_status): Print KEY_TIME.
1632         * cardglue.c (learn_status_cb): Parse KEY-TIME.
1633         * card-util.c (card_status): Print creation time if available.
1634
1635 2004-12-09  David Shaw  <dshaw@jabberwocky.com>
1636
1637         * options.h, g10.c (main), textfilter.c (len_without_trailing_ws):
1638         Removed (not used).
1639         (standard): 2440 says that textmode hashes should canonicalize
1640         line endings to CRLF and remove spaces and tabs.  2440bis-12 says
1641         to just canonicalize to CRLF.  So, we default to the 2440bis-12
1642         behavior, but revert to the strict 2440 behavior if the user
1643         specifies --rfc2440.  In practical terms this makes no difference
1644         to any signatures in the real world except for a textmode detached
1645         signature.
1646
1647 2004-12-09  Werner Koch  <wk@g10code.com>
1648
1649         * passphrase.c (agent_get_passphrase): New args CUSTOM_PROMPT and
1650         CUSTOM_DESCRIPTION.     Changed all callers.
1651
1652         * app-openpgp.c (do_getattr, do_learn_status, do_setattr): Support
1653         the new private DOs.
1654         (do_change_pin): Add a "N" prefix to the strings so that the
1655         callback can act accordingly for a new PIN.  Unfortunately this
1656         breaks existing translations but I see no wother way to overvome
1657         this.
1658
1659         * cardglue.c (learn_status_cb): Ditto.
1660         (agent_release_card_info): Ditto.
1661         (struct pin_cb_info_s): Removed and changed all users.
1662         (pin_cb): Reworked.
1663
1664         * card-util.c (card_status): Print them
1665         (card_edit): New command PRIVATEDO.
1666         (change_private_do): New.
1667
1668 2004-12-09  David Shaw  <dshaw@jabberwocky.com>
1669
1670         * keygen.c (ask_algo): Add a choose-your-own-capabilities option
1671         for DSA.
1672
1673 2004-12-07  David Shaw  <dshaw@jabberwocky.com>
1674
1675         * keygen.c (ask_keysize): Change strings to always use %u instead
1676         of hardcoding key sizes.  Bump default to 2048.  Bump minimum down
1677         to 512, where possible, but require --expert to get there.  DSA is
1678         always 1024 unless --expert is given.
1679
1680 2004-11-29  David Shaw  <dshaw@jabberwocky.com>
1681
1682         * getkey.c (parse_key_usage): New function to parse out key usage
1683         flags.  Set PUBKEY_USAGE_UNKNOWN to handle flags that we don't
1684         understand.
1685         (fixup_uidnode, merge_selfsigs_main, merge_selfsigs_subkey): Call
1686         it from here to remove duplicate code.
1687
1688 2004-11-26  David Shaw  <dshaw@jabberwocky.com>
1689
1690         * export.c (do_export_stream): Allow export-minimal to work with
1691         secret keys, even though a non-selfsig secret key signature is
1692         rare.
1693
1694         * options.h, export.c (parse_export_options, do_export_stream),
1695         import.c (parse_import_options, import_keys_internal): Make the
1696         import-options and export-options distinct since they can be mixed
1697         together as part of keyserver-options.
1698
1699 2004-11-24  David Shaw  <dshaw@jabberwocky.com>
1700
1701         * options.h, export.c (parse_export_options, do_export_stream):
1702         Add "export-minimal" option to disregard any sigs except selfsigs.
1703
1704         * trustdb.c (uid_trust_string_fixed): Use a string that can be
1705         atoi-ed, but also has a comment for the translator.
1706
1707         * trustdb.h, trustdb.c (uid_trust_string_fixed): New.  Return a
1708         fixed-size translatable string similar to trust_value_to_string.
1709         This allows for easier lining up of displays.
1710
1711         * keyedit.c (show_key_with_all_names), keylist.c
1712         (list_keyblock_print): Use it here to print validity strings.
1713
1714         * gpgv.c: Stub.
1715
1716 2004-11-18  Werner Koch  <wk@g10code.com>
1717
1718         * g10.c (S_IRGRP) [HAVE_DOSISH_SYSTEM]: Define to 0.
1719
1720 2004-11-17  Werner Koch  <wk@g10code.com>
1721
1722         * g10.c (open_info_file): New.
1723         (main): Unconditionally implement --status-file, --logger-file,
1724         --attribute-file, --passphrase-file, --command-file.  This is not
1725         generally useful but easy to support and might make scripting
1726         under Windows easier.
1727
1728 2004-11-11  Werner Koch  <wk@g10code.com>
1729
1730         * passphrase.c (readn): Fixed test against EINTR.
1731
1732 2004-11-05  Werner Koch  <wk@g10code.com>
1733
1734         * app-openpgp.c: Made more strings translatable.
1735         (verify_chv3, do_change_pin): Add a special prefix to the prompt
1736         of the Admin PIN prompts.
1737         * passphrase.c (ask_passphrase): Add arg TRYAGAIN_TEXT.  Changed
1738         call callers.
1739         * cardglue.c (pin_cb): Make use of the OPAQUE arg to pass
1740         arguments to the PIN callback.  Use this to implement a way to
1741         check for correct PIN repetition.  Changed all callers to pass an
1742         opaque argument. Improved detection of Admin PIN prompts.
1743
1744 2004-11-04  David Shaw  <dshaw@jabberwocky.com>
1745
1746         * plaintext.c (handle_plaintext): Don't try and create a
1747         zero-length filename when using --use-embedded-filename with input
1748         that has no filename (clearsigned or message generated from a
1749         pipe).
1750
1751         * encode.c (encode_simple, encode_crypt), progress.c
1752         (handle_progress), sign.c (write_plaintext_packet): Fix a few
1753         inconsistent calls (NULL filename means a pipe here, so don't
1754         bother to check it twice).
1755
1756 2004-11-03  David Shaw  <dshaw@jabberwocky.com>
1757
1758         * misc.c (print_digest_algo_note): The latest 2440bis drafts
1759         deprecates MD5, so give a warning.
1760         (print_pubkey_algo_note, print_cipher_algo_note,
1761         print_digest_algo_note): Give the algorithm name in the
1762         experimental algo warning.
1763
1764 2004-11-03  Timo Schulz  <twoaday@g10code.com>
1765
1766         * passphrase.c (readn, writen): Use w32_strerror instead
1767         of just showing the error number.
1768         * misc.c [_WIN32]: Fix warning about missing prototypes.
1769         
1770 2004-10-28  David Shaw  <dshaw@jabberwocky.com>
1771
1772         * skclist.c (build_sk_list): Don't need to warn about
1773         PGP-generated Elgamal signing keys since we no longer support any
1774         Elgamal signing keys.
1775
1776         * sign.c (sign_file, clearsign_file): Use "writing to" instead of
1777         "writing to file" to match other strings.
1778
1779         * pkclist.c (check_signatures_trust): Fix typo.  Noted by Moray
1780         Allan.  This is Debian bug #278708.
1781
1782         * passphrase.c (ask_passphrase, passphrase_to_dek): "password" ->
1783         "passphrase".
1784
1785         * keyedit.c (show_key_with_all_names): Show designated revoker as
1786         part of translatable string.
1787
1788 2004-10-28  Werner Koch  <wk@g10code.com>
1789
1790         * Makefile.am (other_libs): New.  Also include LIBICONV.  Noted by
1791         Tim Mooney.
1792
1793 2004-10-28  Werner Koch  <wk@g10code.com>
1794
1795         * apdu.c (open_pcsc_reader): Removed bad free in error handler.
1796
1797 2004-10-27  David Shaw  <dshaw@jabberwocky.com>
1798
1799         * card-util.c, delkey.c, keygen.c, plaintext.c, keyedit.c,
1800         passphrase.c, revoke.c: Collapse the two different "can't do that
1801         in batch mode" strings into one.
1802
1803         * keylist.c (status_one_subpacket): New.  Send the subpacket data
1804         to the --status interface.
1805
1806         * card-util.c (card_edit): Show when admin is enabled or not.
1807
1808         * status.h, status.c: New STATUS_SIG_SUBPACKET type.
1809
1810         * build-packet.c (build_sig_subpkt): Multiple keyserver URLs are
1811         allowed.
1812
1813         * keyring.c: Make some strings translatable.
1814
1815         * exec.c, sign.c: Change "can't open file" to "can't open" and
1816         "can't create file" to "can't create" to be consistent with other
1817         strings so we don't have to translate both.
1818
1819         * delkey.c, export.c, keyedit.c, pkclist.c, revoke.c, skclist.c:
1820         Fix a few missed possible \"username\" quotes.
1821
1822 2004-10-26  Werner Koch  <wk@g10code.com>
1823
1824         * app-openpgp.c (verify_chv3): The minimum length for CHV3 is
1825         8. Changed string to match the other ones.
1826
1827         * passphrase.c (agent_send_all_options): Try to deduce the ttyname
1828         from stdin.
1829
1830 2004-10-22  Werner Koch  <wk@g10code.com>
1831
1832         * card-util.c (fetch_url): Disable for gnupg 1.9
1833         (card_generate_subkey): Ditto.
1834         (card_store_subkey): Ditto.
1835
1836 2004-10-21  David Shaw  <dshaw@jabberwocky.com>
1837
1838         * options.h, g10.c (main), mainproc.c (check_sig_and_print):
1839         Rename verify-option show-validity to show-uid-validity to match
1840         the similar list-option.
1841
1842         * app-openpgp.c (verify_chv3): Fix typo.
1843
1844 2004-10-21  Werner Koch  <wk@g10code.com>
1845
1846         * app-common.h (app_openpgp_storekey): Add prototype.
1847
1848         * app-openpgp.c (do_sign): Replace asprintf by direct allocation.
1849         This avoids problems with missing vasprintf implementations.
1850
1851         * card-util.c (generate_card_keys): Add a #warning for gnupg 1.9
1852         and use the same string there.
1853
1854 2004-10-20  David Shaw  <dshaw@jabberwocky.com>
1855
1856         * g10.c (parse_list_options): Fix non-constant initializer so we
1857         can build with C89.
1858
1859 2004-10-17  David Shaw  <dshaw@jabberwocky.com>
1860
1861         * keylist.c (print_one_subpacket): The flags field should be hex.
1862
1863 2004-10-17  Werner Koch  <wk@g10code.com>
1864
1865         * passphrase.c (agent_get_passphrase): Cast UIDLEN to int.  Noted
1866         by Christian Cornelssen.
1867
1868 2004-10-16  David Shaw  <dshaw@jabberwocky.com>
1869
1870         * parse-packet.c (parse_one_sig_subpkt, enum_sig_subpkt): Don't
1871         BUG() on unknown subpackets.  Rather, just return them silently.
1872         
1873 2004-10-15  Werner Koch  <wk@g10code.com>
1874
1875         * status.h (STATUS_NEED_PASSPHRASE_PIN): New.
1876         * status.c (get_status_string): Added.
1877         * passphrase.c (ask_passphrase): Moved status printing to ..
1878         * cardglue.c (pin_cb): .. here and issue new status message.
1879
1880         * keyedit.c (sign_uids): Don't include the leading LF in the
1881         translatable string but print them separately.
1882
1883         * apdu.c (apdu_open_remote_reader) [_WIN32]: We don't have ENOSYS.
1884
1885         * app-openpgp.c (parse_login_data): New. 
1886         (app_select_openpgp): Call it.
1887         (do_setattr): Reparse it after change.
1888
1889         * pkclist.c (do_edit_ownertrust): Add a note to translators.
1890         * keygen.c (ask_user_id): Ditto.
1891
1892         * helptext.c: Typo fix.
1893
1894 2004-10-14  David Shaw  <dshaw@jabberwocky.com>
1895
1896         * keylist.c (list_keyblock_print): Show the fingerprint after the
1897         key, not after the first user ID.
1898
1899         * keyedit.c (show_key_with_all_names): Don't show validity if
1900         we're just printing user IDs for signing.
1901
1902         * armor.c (fake_packet): Properly handle the case where the line
1903         is dash-space (i.e. a blank line that was quoted).  Give a warning
1904         for bad dash escaping.
1905
1906 2004-10-14  Werner Koch  <wk@g10code.com>
1907
1908         * export.c (do_export_stream) [ENABLE_SELINUX_HACKS]: Don't allow
1909         secret key export.
1910         * import.c (import_secret_one) [ENABLE_SELINUX_HACKS]: Likewise 
1911
1912         * misc.c (is_secured_filename): New.
1913         * keydb.c (maybe_create_keyring)
1914         * tdbio.c (tdbio_set_dbname)
1915         * plaintext.c (handle_plaintext)
1916         * openfile.c (copy_options_file, open_outfile)
1917         * exec.c (exec_write)
1918         * keygen.c (do_generate_keypair, gen_card_key_with_backup)
1919
1920         * sign.c (sign_file, clearsign_file)
1921         * keyring.c (create_tmp_file, do_copy): Check for secured files
1922         before creating them. 
1923
1924         * keygen.c (print_status_key_created, read_parameter_file):
1925         s/unsigned char/byte/ due to a strange typedef for RISC OS.  Noted
1926         by Stefan.
1927
1928 2004-10-13  David Shaw  <dshaw@jabberwocky.com>
1929
1930         * armor.c (fake_packet): Allow arbitrary dash-escaped lines as per
1931         2440bis-10.  This is bug #158.
1932
1933         * keyserver.c (keyserver_work): Handle keyserver timeouts.
1934
1935         * pkclist.c (do_edit_ownertrust): Different prompt when we're
1936         using direct trust since the meaning is different.
1937
1938         * keyedit.c (trustsig_prompt): Change the strings to match the
1939         ones in pkclist.c:do_edit_ownertrust to make translation easier.
1940
1941         * trustdb.c (trust_model_string, get_validity): Add direct trust
1942         model which applies to the key as a whole and not per-uid.
1943
1944         * options.h, g10.c (parse_trust_model): New.
1945         (main): Call it from here to do string-to-trust-model.
1946
1947 2004-10-13  Werner Koch  <wk@g10code.com>
1948
1949         * tdbdump.c (import_ownertrust): Removed all log_error_f and
1950         reworded the messages.
1951
1952         * dermor.c: Include i18n.h.  Made 2 strings translatable.
1953         
1954         * misc.c (register_secured_file, is_secured_file)
1955         (unregister_secured_file): New.
1956         * keyring.c (do_copy, rename_tmp_file): Implement the SELinux hacks.
1957         (keyring_register_filename): Ditto.
1958         * tdbio.c (open_db): Ditto.
1959         * openfile.c (copy_options_file, open_sigfile): Ditto.
1960         * verify.c (verify_signatures, verify_one_file): Ditto.
1961         * photoid.c (generate_photo_id): Ditto.
1962         * keygen.c (read_parameter_file): Ditto.
1963         * import.c (import_keys_internal): Ditto.
1964         * decrypt.c (decrypt_message, decrypt_messages): Ditto.
1965         * dearmor.c (dearmor_file, enarmor_file): Ditto.
1966         * g10.c (main, print_mds): Ditto.
1967         * exec.c (exec_write, exec_read): Ditto. 
1968         * card-util.c (change_login): Ditto.
1969         * encode.c (encode_simple, encode_crypt): Ditto.
1970
1971         * openfile.c (overwrite_filep, make_outfile_name, open_outfile) 
1972         (open_sigfile): Use iobuf_is_pipe_filename to check for pipes so
1973         that special filesnames are taken into account. This is bug 327.
1974
1975         * tdbdump.c (import_ownertrust): Ditto.
1976
1977         * sign.c (write_plaintext_packet): Ditto.
1978         (sign_file, clearsign_file, sign_symencrypt_file): 
1979
1980         * progress.c (handle_progress): Ditto.
1981         * plaintext.c (handle_plaintext): Ditto.
1982         (ask_for_detached_datafile, hash_datafiles): 
1983
1984         * encode.c (encode_simple, encode_crypt): Ditto. 
1985
1986 2004-10-12  Werner Koch  <wk@g10code.com>
1987
1988         * keygen.c (read_parameter_file): Changed to use iobuf based file
1989         reading to allow the special file name feature to work.
1990
1991         * keygen.c (read_parameter_file): New keyword "Handle".  This is
1992         bug 287.
1993         (print_status_key_not_created): New.
1994         (print_status_key_created): Add new arg HANDLE.
1995         (do_generate_keypair): Print not created status.
1996         * status.c, tatus.h (STATUS_KEY_NOT_CREATED): New. 
1997
1998 2004-10-11  David Shaw  <dshaw@jabberwocky.com>
1999
2000         * pkclist.c (do_edit_ownertrust): Use the same translated string
2001         for showing the user ID as mainproc.c:print_pkenc_list.
2002
2003         * mainproc.c (print_pkenc_list): Allow translating the quotes
2004         around the user ID.
2005
2006         * card-util.c, g10.c, photoid.c, trustdb.c: The last of the \"%s\"
2007         -> `%s' quoting for things that aren't user IDs.
2008
2009         * keyserver.c (keyserver_spawn): If there is no keyserver host,
2010         print the whole URI since it is self-contained.
2011
2012 2004-10-11  Werner Koch  <wk@g10code.com>
2013
2014         * keyserver.c (keyserver_spawn): Print an empty string in log_info
2015         if the host is not set (e.g. finger).
2016
2017 2004-10-10  David Shaw  <dshaw@jabberwocky.com>
2018
2019         * card-util.c, keyedit.c, openfile.c, pkclist.c, delkey.c,
2020         keygen.c, photoid.c, revoke.c: Some yes-or-no prompts end in
2021         "(y/n)".  Some don't.  Consistently use y/n everywhere.
2022
2023         * keygen.c (ask_key_flags): New.
2024         (ask_algo): Call it here in --expert mode so we don't need to
2025         specify each possible variation of RSA capabilities.
2026
2027         * keygen.c (do_add_key_flags): The spec says that all primary keys
2028         MUST be able to certify.  Force the certify flag on for primaries
2029         (and off for subkeys).
2030
2031         * keygen.c (generate_keypair): Fix generating keys with the auth
2032         flag.
2033
2034 2004-10-08  David Shaw  <dshaw@jabberwocky.com>
2035
2036         * encr-data.c (decrypt_data): Give a warning with a weak key, but
2037         still allow to decrypt the message.
2038
2039 2004-10-07  David Shaw  <dshaw@jabberwocky.com>
2040
2041         * pkclist.c (build_pk_list): Keystrify.
2042
2043         * mainproc.c (check_sig_and_print), pkclist.c
2044         (do_edit_ownertrust): Improve translatability of user ID prompts.
2045
2046 2004-10-06  David Shaw  <dshaw@jabberwocky.com>
2047
2048         * helptext.c, pkclist.c (do_we_trust): It is not possible to get
2049         here with a revoked or expired key, so BUG() that case.  Remove
2050         question about overriding revoked/expired.  Also
2051         --keyid-format-ify.
2052         (do_we_trust_pre): Use print_pubkey_info() instead of printing the
2053         info ourselves.
2054
2055         * passphrase.c (passphrase_to_dek): Improve translatability of
2056         user ID prompts.
2057
2058         * keylist.c (print_pubkey_info): Use the user ID the pk was
2059         selected by, if any.
2060
2061         * keyedit.c (sign_uids, ask_revoke_sig): Improve translatability
2062         of user ID prompts.
2063         (ask_revoke_sig, menu_revsig): Try and use common strings for
2064         these two functions so they don't need to be translated twice.
2065
2066         * keyedit.c, keylist.c, keyserver.c, mainproc.c: The
2067         revoked/expired/expires string change of 2004-09-29 was too
2068         simple.  Use two styles for each tag.
2069
2070 2004-10-06  Werner Koch  <wk@g10code.com>
2071
2072         * ccid-driver.c (ccid_open_reader): Store the vendor ID.
2073         (ccid_transceive_secure): New.
2074         (parse_ccid_descriptor): Workaround for an SCM reader problem.
2075         (send_escape_cmd): New.
2076
2077 2004-10-05  David Shaw  <dshaw@jabberwocky.com>
2078
2079         * passphrase.c (agent_get_passphrase): Use keystrs for agent
2080         strings, and fix sprintf warnings.
2081
2082         * keyserver.c (keyserver_spawn): Fix BUG() with certain sets of
2083         mixed regular and preferred keyserver refreshes.  Noted by
2084         Sebastian Wiesinger.
2085
2086         * keyedit.c (show_key_with_all_names): Show uid validity in menu.
2087
2088 2004-10-03  Timo Schulz  <twoaday@g10code.de>
2089
2090         * apdu.c (apdu_open_remote_reader) [_WIN32]: Do not set ENOSYS.
2091         
2092 2004-10-03  David Shaw  <dshaw@jabberwocky.com>
2093
2094         * keyedit.c (print_and_check_one_sig_colon): Fix bad keyids in
2095         colon delsig output.  Noted by Peter Palfrader.
2096         (show_prefs): Do not reference missing selfsig.  Noted by Alex
2097         Moroz.
2098
2099 2004-10-01  Werner Koch  <wk@g10code.com>
2100
2101         * gpgv.c (i18n_init): Always use LC_ALL.
2102
2103 2004-09-30  Werner Koch  <wk@g10code.com>
2104
2105         * app-openpgp.c (verify_chv3) [GNUPG_MAJOR_VERSION!=1]: Typo fix.
2106
2107 2004-09-30  David Shaw  <dshaw@jabberwocky.com>
2108
2109         * gpgv.c, keydb.c (keydb_add_resource): Factored keyring creation
2110         out to ..
2111         (maybe_create_keyring): .. new.  Make sure that we do the checks
2112         in a locked state.  Problem reported by Stefan Haller.  Try to
2113         create the home directory before acquiring a lock for the keyring.
2114         From Werner on stable branch.
2115
2116         * g10.c (main): Blow up if we didn't lose setuid.  From Werner on
2117         stable branch.
2118
2119 2004-09-29  David Shaw  <dshaw@jabberwocky.com>
2120
2121         * keyedit.c, keylist.c, keyserver.c, mainproc.c: Reduce the many
2122         variations of "revoked" ("revoked", "[revoked]", " [revoked]",
2123         "[revoked] ") "and" expired down to two to simplify translation.
2124
2125 2004-09-28  David Shaw  <dshaw@jabberwocky.com>
2126
2127         * keyedit.c (print_and_check_one_sig): Account for the extra space
2128         that show-sig-expire takes up so we do not wrap lines.
2129         (show_key_with_all_names): No need to show subkey revocations as a
2130         seperate line since we now show revocation date in the main subkey
2131         line.
2132
2133         * signal.c (got_fatal_signal): HAVE_DECL_SYS_SIGLIST is defined,
2134         but zero if not found.  Noted by John Clizbe.
2135
2136         * keyserver.c (parse_keyrec): Fix problem with non-expiring keys
2137         appearing expired in --search-keys results.
2138
2139 2004-09-27  Werner Koch  <wk@g10code.com>
2140
2141         * card-util.c (card_edit): Take admin only status from the table.
2142
2143         * app-openpgp.c: Made all strings translatable.
2144         (verify_chv3) [GNUPG_MAJOR_VERSION]: Make opt.allow_admin
2145         available for use in gnupg 2. 
2146         (verify_chv3): Reimplemented countdown showing to use only
2147         functions from this module.  Flush the CVH status cache on a
2148         successful read.
2149         (get_one_do): Hack to bypass the cache for cards versions > 1.0.
2150         (store_fpr): Store the creation date for card version > 1.0.
2151
2152 2004-09-25  David Shaw  <dshaw@jabberwocky.com>
2153
2154         * main.h, g10.c (main), card-util.c (change_pin): If "admin" has
2155         not been issued, skip right to the CHV1/CHV2 PIN change.  No need
2156         to show the unblock or admin PIN change option.
2157         (card_edit): Add "admin" command to add admin commands to the
2158         menu.  Do not allow admin commands until "admin" is given.
2159
2160         * app-openpgp.c (verify_chv3): Show a countdown of how many wrong
2161         admin PINs can be entered before the card is locked.
2162
2163         * options.h, g10.c (main), app-openpgp.c (verify_chv3): Remove
2164         --allow-admin.
2165
2166 2004-09-24  David Shaw  <dshaw@jabberwocky.com>
2167
2168         * main.h: Create S2K_DIGEST_ALGO macro so we do not need to always
2169         set opt.s2k_digest_algo.  This helps fix a problem with PGP 2.x
2170         encrypted symmetric messages.  Change all callers (encode.c,
2171         g10.c, keyedit.c, keygen.c, passphrase.c, sign.c).
2172
2173         * armor.c, cardglue.c, getkey.c, import.c, keygen.c: Be consistent
2174         in some more quoted strings.  Always use 'user ID', not 'user id',
2175         "quotes" for user IDs, etc.
2176
2177         * keyedit.c (keyedit_menu), gpgv.c (agent_scd_getattr (stub)),
2178         keygen.c (copy_mpi, generate_raw_key): Fix a compile problem and a
2179         few warnings when building without card support.
2180
2181 2004-09-23  Werner Koch  <wk@g10code.com>
2182
2183         * card_util.c (generate_card_keys): ask whether backup should be
2184         created.
2185         (card_store_subkey): Factored some code out to ..
2186         * keygen.c (save_unprotected_key_to_card): .. new function.
2187         (gen_card_key_with_backup): New.
2188         (generate_raw_key): New.
2189         (generate_keypair): New arg BACKUP_ENCRYPTION_DIR.  Changed all
2190         callers.
2191         (do_generate_keypair): Divert to gen_card_key_with_backup when
2192         desired.
2193
2194         * apdu.c (open_pcsc_reader): Do not print empty reader string.
2195
2196         * keygen.c (ask_algo): Allow creation of AUTH keys.
2197
2198         * keyid.c (usagestr_from_pk): New.
2199
2200         * app-openpgp.c (app_openpgp_storekey): Call flush_cache.
2201         (get_cached_data): Move local data initialization to ..
2202         (app_select_openpgp): .. here. Read some flags for later use.
2203         (do_getattr): New read-only attribute EXTCAP.
2204
2205         * keyedit.c (keyedit_menu): New command "keytocard"
2206         (keyedit_menu): Bad hack for the not_with_sk element.
2207         (show_key_with_all_names): Print the usage.
2208         (find_pk_from_sknode): New.
2209
2210         * card-util.c (card_store_subkey): New.
2211         (copy_mpi): New.
2212
2213         * cardglue.c (agent_openpgp_storekey): New.
2214
2215 2004-09-22  Werner Koch  <wk@g10code.com>
2216
2217         * card-util.c (card_generate_subkey, generate_card_keys): Factored
2218         common code out to ...
2219         (get_info_for_key_operation, check_pin_for_key_operation)
2220         (restore_forced_chv1, replace_existing_key_p)
2221         (show_card_key_info): ... new functions.
2222
2223 2004-09-21  David Shaw  <dshaw@jabberwocky.com>
2224
2225         * mainproc.c (check_sig_and_print), keyedit.c (show_prefs,
2226         menu_set_keyserver_url): Make sure that keyserver URLs with
2227         control characters inside are printed properly.  In fact, handle
2228         them as UTF8.
2229
2230         * keyedit.c (keyedit_menu): Don't show "addcardkey" in the menu if
2231         we do not have card support.
2232
2233         * keydb.h, keyserver.c (print_keyrec, keyserver_spawn): fpr is an
2234         array of unsigned bytes.
2235
2236 2004-09-20  Werner Koch  <wk@g10code.com>
2237
2238         * g10.c: Make -K an alias for --list-secret-keys.
2239
2240         * keylist.c (print_card_serialno): New. Taken from gnupg 1.9.11.
2241         (list_keyblock_print): Make use of it.
2242         * keyedit.c (show_key_with_all_names): Print the card S/N.
2243
2244         * keyedit.c (keyedit_menu): New command ADDCARDKEY.
2245         * card-util.c (card_generate_subkey): New.
2246         * keygen.c (generate_card_subkeypair): New.
2247         (gen_card_key): New arg IS_PRIMARY; changed all callers.
2248
2249         * cardglue.c (open_card): Use shutdown code if possible.
2250         (check_card_serialno): Ditto.
2251
2252         * ccid-driver.c (do_close_reader): Factored some code out from ...
2253         (ccid_close_reader): ..here.
2254         (ccid_shutdown_reader): New.
2255
2256         * apdu.c (apdu_shutdown_reader): New.
2257         (shutdown_ccid_reader): New.
2258
2259 2004-09-17  Werner Koch  <wk@g10code.com>
2260
2261         * g10.c (list_config): New config option ccid-reader-id.
2262         (gpgconf_list): Add "reader-port".
2263
2264         * apdu.c (open_ccid_reader): New arg PORTSTR.  Pass it to
2265         ccid_open_reader.
2266         (apdu_open_reader): Pass portstr to open_ccid_reader.
2267         (apdu_open_reader): No fallback if a full CCID reader id has been
2268         given.
2269
2270         * ccid-driver.c (ccid_get_reader_list): New.
2271         (ccid_open_reader): Changed API to take a string for the reader.
2272         Removed al the cruft for the libusb development vesion which seems
2273         not to be maintained anymore and there are no packages anyway.
2274         The stable library works just fine.
2275         (struct ccid_reader_id_s): Deleted and replaced everywhere by a
2276         simple string.
2277         (usb_get_string_simple): Removed.
2278         (bulk_in): Do valgrind hack here and not just everywhere.
2279
2280 2004-09-16  David Shaw  <dshaw@jabberwocky.com>
2281
2282         * keyedit.c (show_key_with_all_names, show_prefs): Show preferred
2283         keyserver(s) in "showpref" output.
2284
2285         * keygen.c (keygen_add_keyserver_url), keyedit.c
2286         (menu_set_keyserver_url): Allow setting a keyserver URL of "none"
2287         to remove an existing keyserver URL.
2288
2289         * keyedit.c (menu_set_keyserver_url): Confirm replacement of a
2290         keyserver URL before overwriting the old one.
2291
2292 2004-09-15  David Shaw  <dshaw@jabberwocky.com>
2293
2294         * gpgv.c (agent_scd_getattr): Stub.
2295
2296         * misc.c (get_signature_count): New.  Get the signature count from
2297         a smartcard.
2298         (pct_expando): Call it here so the %c expando becomes the number
2299         of signatures issued.  This allows for notations or the like with
2300         an automatic signature count.
2301
2302         * ccid-driver.c (usb_get_string_simple): Replacement function to
2303         work with older libusb.
2304
2305 2004-09-15  Werner Koch  <wk@g10code.com>
2306
2307         * g10.c [HAVE_LIBUSB]: New option --debug-ccid-driver.
2308
2309         * ccid-driver.c (read_device_info): Removed.
2310         (make_reader_id, scan_or_find_devices): New.
2311         (ccid_open_reader): Simplified by make use of the new functions.
2312         (ccid_set_debug_level): New.  Changed the macros to make use of
2313         it.  It has turned out that it is often useful to enable debugging
2314         at runtime so I added this option.
2315
2316 2004-09-13  David Shaw  <dshaw@jabberwocky.com>
2317
2318         * getkey.c (premerge_public_with_secret): Fix subkey<->binding sig
2319         mismatch when some secret subkeys are missing.  Discovered by
2320         Michael Roth.
2321
2322         * main.h, keylist.c (print_subpackets_colon): Make a public
2323         function.
2324
2325         * keyedit.c (print_and_check_one_sig_colon): New.  Print a
2326         with-colons version of the sig record.
2327         (menu_delsig): Call it here for a with-colons delsig.
2328
2329 2004-09-12  David Shaw  <dshaw@jabberwocky.com>
2330
2331         * options.h, keylist.c (print_one_subpacket,
2332         print_subpackets_colon): Print a spk record for each request
2333         subpacket.
2334         (list_keyblock_colon): Call them here.
2335
2336         * g10.c (parse_subpacket_list, parse_list_options): New.  Make the
2337         list of subpackets we are going to print.
2338         (main): Call them here.
2339
2340 2004-09-11  David Shaw  <dshaw@jabberwocky.com>
2341
2342         * card-util.c (fetch_url, card_edit): Use the pubkey URL stored on
2343         the card to fetch an updated copy.  Works with either straight
2344         URLs or HKP or LDAP keyservers.
2345
2346         * keyserver-internal.h, keyserver.c (keyserver_import_fprint),
2347         import.c (revocation_present): Use a keyserver_spec so the caller
2348         can pass in whatever keyserver they like.
2349
2350 2004-09-10  David Shaw  <dshaw@jabberwocky.com>
2351
2352         * app-openpgp.c (get_cached_data): Avoid mallocing zero since it
2353         breaks us when using --enable-m-guard.
2354
2355         * ccid-driver.c (read_device_info): Fix segfault when usb device
2356         is not accessible.
2357         (ccid_open_reader): Allow working with an even older version of
2358         libusb (usb_busses global instead of usb_get_busses()).
2359
2360 2004-09-09  Werner Koch  <wk@g10code.com>
2361
2362         * cardglue.h: Add members for CA fingerprints.
2363         * cardglue.c (agent_release_card_info): Invalid them.
2364         (learn_status_cb): Store them.
2365
2366         * app-common.h, app-openpgp.c, iso7816.c, iso7816.h
2367         * apdu.c, apdu.h, ccid-driver.c, ccid-driver.h
2368         * card-util.c: Updated from current gnupg-1.9.
2369
2370         Changes are:
2371
2372         * ccid-driver.h (CCID_DRIVER_ERR_ABORTED): New.
2373         * ccid-driver.c (ccid_open_reader): Support the stable 0.1 version
2374         of libusb.
2375         (ccid_get_atr): Handle short messages.
2376         * apdu.c (my_rapdu_get_status): Implemented.
2377         * apdu.c: Include <signal.h>.
2378         * apdu.c (reader_table_s):  Add function pointers for the backends.
2379         (apdu_close_reader, apdu_get_status, apdu_activate) 
2380         (send_apdu): Make use of them.
2381         (new_reader_slot): Intialize them to NULL.
2382         (dump_ccid_reader_status, ct_dump_reader_status): New.
2383         (dump_pcsc_reader_status): New.
2384         (open_ct_reader, open_pcsc_reader, open_ccid_reader) 
2385         (open_osc_reader, open_rapdu_reader): Intialize function pointers.
2386         (ct_activate_card, ct_send_apdu, pcsc_send_apdu, osc_send_apdu) 
2387         (error_string): Removed.  Replaced by apdu_strerror.
2388         (get_ccid_error_string): Removed.
2389         (ct_activate_card): Remove the unused loop.
2390         (reset_ct_reader): Implemented.
2391         (ct_send_apdu): Activate the card if not yet done.
2392         (pcsc_send_apdu): Ditto.
2393         * ccid-driver.h: Add error codes.
2394         * ccid-driver.c: Implement more or less proper error codes all
2395         over the place.
2396         * apdu.c (apdu_send_direct): New.
2397         (get_ccid_error_string): Add some error code mappings.
2398         (send_apdu): Pass error codes along for drivers already supporting
2399         them.
2400         (host_sw_string): New.
2401         (get_ccid_error_string): Use above.
2402         (send_apdu_ccid): Reset the reader if it has not yet been done.
2403         (open_ccid_reader): Don't care if the ATR can't be read.
2404         (apdu_activate_card): New.
2405         (apdu_strerror): New.
2406         (dump_reader_status): Only enable it with opt.VERBOSE.
2407         * iso7816.c (map_sw): Add mappings for the new error codes.
2408         * apdu.c (open_ct_reader, open_pcsc_reader, open_ccid_reader)
2409         (reset_ccid_reader, open_osc_reader): Call dump_reader_status only
2410         in verbose mode.
2411         * app-openpgp.c (do_getattr): Fix for sending CA-FPR.
2412         * app-openpgp.c (app_openpgp_readkey): Fixed check for valid
2413         exponent.
2414         * app-openpgp.c (do_setattr): Sync FORCE_CHV1.
2415         * card-util.c (change_login): Kludge to allow reading data from a
2416         file.
2417         (card_edit): Pass ARG_STRING to change_login.
2418         (card_status): Print CA fingerprints.
2419         (change_cafpr): New.
2420         (card_edit): New command CAFPR.
2421
2422 2004-04-30  Werner Koch  <wk@gnupg.org>
2423
2424         * g10.c (main) <gpgconf>: Use gpg.conf and not /dev/null as
2425         default filename.
2426
2427 2004-04-28  Werner Koch  <wk@gnupg.org>
2428
2429         * card-util.c (card_edit): Remove PIN verification.
2430         (generate_card_keys): New arg SERIALNO.  Do PIN verification here
2431         after resetting forced_chv1.
2432
2433         
2434 2004-09-09  Werner Koch  <wk@g10code.com>
2435
2436         * signal.c (got_fatal_signal): Do readline cleanup.  Print signal
2437         number if we can't print the name. Use new autoconf macro
2438         HAVE_DECL_SYS_SIGLIST.
2439         (get_signal_name): Removed.
2440
2441         * photoid.c: Include ttyio.h.
2442
2443         * parse-packet.c (skip_rest): Removed.  Changed all callers to use
2444         the new iobuf_skip_reset.  Orginal patch by Florian Weimer.
2445
2446 2004-09-07  Werner Koch  <wk@g10code.de>
2447
2448         * photoid.c (generate_photo_id): Use tty_printf and not just
2449         printf.  Put _() around one string.
2450
2451 2004-09-03  David Shaw  <dshaw@jabberwocky.com>
2452
2453         * keyserver.c (parse_keyrec): Force the 'e'xpired flag on as soon
2454         as we know the key is definitely expired.  Some translatable
2455         string cleanup.
2456
2457 2004-08-27  David Shaw  <dshaw@jabberwocky.com>
2458
2459         * encode.c, exec.c, g10.c, sign.c: Some translatable string
2460         cleanup.  Change some "this" to `this'.
2461
2462 2004-08-23  David Shaw  <dshaw@jabberwocky.com>
2463
2464         * keyserver.c (keyserver_spawn): Show log line for what keyserver
2465         action we are taking.
2466
2467         * keyid.c (keystr): If printing a keyid that lacks the high 4
2468         bytes, print the low 4 alone.
2469         (keystr_from_desc): Handle short keyids and warn on v3
2470         fingerprints.
2471
2472         * keydb.h, getkey.c (get_user_id_printable,
2473         get_user_id_string_printable): Rename to get_user_id_native and
2474         get_user_id_string_native and remove the printable stuff since
2475         we're print-ifying valid utf8 characters.  Change all callers in
2476         import.c, sign.c, keylist.c, and encode.c.
2477
2478         * keyserver.c (keyserver_search_prompt): Make sure the search
2479         string is converted from UTF-8 before display.
2480
2481 2004-08-19  Werner Koch  <wk@g10code.de>
2482
2483         * seskey.c (encode_session_key): Changed the zero random byte
2484         substituting code to actually do clever things.  Thanks to
2485         Matthias Urlichs for noting the implementation problem.
2486
2487 2004-08-18  Marcus Brinkmann  <marcus@g10code.de>
2488
2489         * passphrase.c (agent_get_passphrase): Fix detection of gpg-agent
2490         cancellation.
2491
2492 2004-08-08  David Shaw  <dshaw@jabberwocky.com>
2493
2494         * plaintext.c (handle_plaintext): Bigger buffer for extra safety.
2495
2496         * g10.c (main): New alias --throw-keyid for --throw-keyids, so
2497         that it continues to work in old configuration files.  Noted by
2498         Jens Adam.
2499
2500         * pkclist.c (algo_available): --pgp8 now allows blowfish, zlib,
2501         and bzip2.
2502
2503         * status.c (do_get_from_fd): Flush stdout if status isn't flushing
2504         it for us.  This guarantees that any menus that were displayed
2505         before the prompt don't get stuck in a buffer.  Noted by Peter
2506         Palfrader.  This is Debian bug #254072.
2507
2508         * sign.c (update_keysig_packet): Revert change of 2004-05-18.  It
2509         is not appropriate to strip policy and notations when remaking a
2510         sig.  That should only happen when specifically requested by the
2511         user.
2512
2513 2004-08-05  David Shaw  <dshaw@jabberwocky.com>
2514
2515         * armor.c (radix64_read): No armor CRC is legal according to the
2516         spec (the CRC is a MAY).
2517
2518 2004-07-28  David Shaw  <dshaw@jabberwocky.com>
2519
2520         * misc.c (argsplit): Properly split quoted args from the keyword
2521         and trim whitespace afterwards.
2522
2523 2004-07-27  David Shaw  <dshaw@jabberwocky.com>
2524
2525         * misc.c (optsep): Add the ability to understand keyword="quoted
2526         arg with spaces" type options.
2527
2528 2004-07-16  David Shaw  <dshaw@jabberwocky.com>
2529
2530         * keylist.c (list_keyblock_print): Always use the new listing
2531         format where uids are always on a line for themselves.  Mark
2532         expired secret keys as expired.
2533
2534         * options.h, g10.c (main): Rename list show-validity to
2535         show-uid-validity as it only shows for uids.
2536
2537         * armor.c (armor_filter): Do not use padding to get us to 8 bytes
2538         of header.  Rather, use 2+4 as two different chunks.  This avoids
2539         a fake filename of "is".
2540
2541 2004-07-15  David Shaw  <dshaw@jabberwocky.com>
2542
2543         * keyedit.c (sign_uids): Properly handle remaking a self-sig on
2544         revoked or expired user IDs.  Also, once we've established that a
2545         given uid cannot or will not be signed, don't continue to ask
2546         about each sig.
2547
2548         * mainproc.c (proc_symkey_enc), seckey-cert.c (do_check): Check
2549         the S2K hash algorithm before we try to generate a passphrase
2550         using it.  This prevents hitting BUG() when generating a
2551         passphrase using a hash that we don't have.
2552
2553         * sign.c (sign_symencrypt_file): Allow using --force-mdc in --sign
2554         --symmetric messages.
2555
2556         * g10.c (main): Alias --charset as --display-charset to help avoid
2557         the continuing confusion and make room for possible changes in
2558         devel.
2559
2560         * parse-packet.c (parse_plaintext): Show the hex value for the
2561         literal packet mode since it may not be printable.
2562
2563         * keygen.c (make_backsig): Make sure that the backsig was built
2564         successfully before we try and use it.
2565
2566         * status.h, status.c (get_status_string), plaintext.c
2567         (handle_plaintext): New status tags PLAINTEXT and
2568         PLAINTEXT_LENGTH.
2569
2570 2004-06-16  Werner Koch  <wk@gnupg.org>
2571
2572         * free-packet.c (copy_secret_key): Get last fix right.
2573
2574 2004-06-16  Werner Koch  <wk@gnupg.org>
2575
2576         * free-packet.c (copy_secret_key): Fixed memory leak when D is not
2577         NULL.
2578
2579         * passphrase.c (passphrase_to_dek): Added a few comments to the
2580         code.
2581
2582 2004-05-26  David Shaw  <dshaw@jabberwocky.com>
2583
2584         * keyserver.c (keyserver_refresh): Keep track of keys already
2585         fetched so we don't do a regular keyserver fetch if the preferred
2586         keyserver fetch has exhausted the list.
2587
2588 2004-05-23  David Shaw  <dshaw@jabberwocky.com>
2589
2590         * verify.c (verify_signatures): Verify multiple files in the same
2591         order in which we hashed them when issuing the signature.  Noted
2592         by Nicholas Cole.
2593
2594         * pkclist.c (do_edit_ownertrust): Fix a kbnode leak and do another
2595         keyid-format conversion.
2596
2597 2004-05-22  Werner Koch  <wk@gnupg.org>
2598
2599         * trustdb.c (check_regexp): s/EXP/EXPR/.
2600
2601         * keyedit.c (trustsig_prompt): Remoev useless range check.
2602
2603         * options.h: Renamed ctrl to glo_ctrl.  Changed all users.
2604
2605         * ccid-driver.c (ccid_open_reader): Print a warning when CCID
2606         can't be used.
2607
2608 2004-05-21  David Shaw  <dshaw@jabberwocky.com>
2609
2610         * mainproc.c (check_sig_and_print): If we're honoring preferred
2611         keyservers, and auto-key-retrieve is set, try and get a missing
2612         key from the preferred keyserver subpacket when we verify the sig.
2613
2614         * gpgv.c (parse_preferred_keyserver, free_keyserver_spec): Stubs.
2615
2616         * keyserver.c (keyidlist): Use new parse_preferred_keyserver
2617         function.
2618         (keyserver_work): Use the passed-in keyserver spec rather than the
2619         options global one.
2620
2621         * keyserver-internal.h, keyserver.c (parse_preferred_keyserver):
2622         New function to take a sig and return a split out keyserver_spec.
2623         (keyserver_import_keyid): Now takes a keyserver_spec.
2624
2625         * keyserver.c (keyidlist): Go back to the old fast keyid lister.
2626         Only merge selfsigs if we have to for honor-keyserver-url.
2627         (keyserver_refresh): Keyserver URL handler moved here.
2628         (calculate_keyid_fpr): Removed.
2629
2630         * keydb.h, keyid.c (keystr_from_desc): Calculate a key string from
2631         a KEYDB_SEARCH_DESC.
2632
2633         * keyserver.c (keyserver_spawn): Fix keyserver options on tempfile
2634         only platforms.  Noted by Roger Sondermann.
2635
2636 2004-05-20  David Shaw  <dshaw@jabberwocky.com>
2637
2638         * keyserver.c (keyserver_work): Allow --refresh-keys with a
2639         preferred keyserver to happen even if there is no global keyserver
2640         set.
2641
2642         * sig-check.c (do_check_messages): No need to check for Elgamal
2643         signatures any longer.
2644         (do_check_messages, do_check, check_key_signature2):
2645         --keyid-format conversion.
2646
2647         * pkclist.c (show_paths, edit_ownertrust): Remove some unused
2648         code.
2649
2650         * options.h (ctrl): New for member IN_AUTO_KEY_RETRIEVE.
2651
2652         * mainproc.c (check_sig_and_print): track whether we are
2653         retrieving a key.
2654
2655         * status.c (status_currently_allowed): New.
2656         (write_status_text, write_status_text_and_buffer): Use it here.
2657
2658         * g10.c: New command --gpgconf-list.
2659         (gpgconf_list): New.  From Werner on stable branch.
2660
2661 2004-05-19  David Shaw  <dshaw@jabberwocky.com>
2662
2663         * pubkey-enc.c (get_session_key, get_it), keyedit.c
2664         (show_key_with_all_names, show_basic_key_info): --keyid-format
2665         conversion.
2666
2667 2004-05-18  David Shaw  <dshaw@jabberwocky.com>
2668
2669         * sign.c (update_keysig_packet): Policies and notations should be
2670         stripped out when remaking a self-signature.  Noted by Atom
2671         Smasher.
2672
2673         * keyserver.c (parse_keyserver_uri): Fix compiler warnings.
2674
2675 2004-05-11  David Shaw  <dshaw@jabberwocky.com>
2676
2677         * options.h, keyserver-internal.h, keyserver.c
2678         (parse_keyserver_uri): Improved URI parser that keeps track of the
2679         path information and doesn't modify the input string.
2680         (keyserver_spawn): Tell keyserver plugins about the path.
2681
2682 2004-05-11  Werner Koch  <wk@gnupg.org>
2683
2684         * keylist.c (show_policy_url, show_keyserver_url, show_notation) 
2685         (list_one): Use const char* for i18n string helpers.
2686
2687         * keygen.c (do_generate_keypair, read_parameter_file): Really
2688         close the files.
2689         (do_generate_keypair): Create the secret key file using safe
2690         permissions.  Noted by Atom Smasher.
2691
2692 2004-05-10  David Shaw  <dshaw@jabberwocky.com>
2693
2694         * options.h, mainproc.c (symkey_decrypt_seskey), keyserver.c
2695         (struct keyrec, parse_keyrec, keyserver_search_prompt), keyedit.c
2696         (keyedit_menu), g10.c (add_keyserver_url, add_policy_url): Fix
2697         some compiler warnings.
2698
2699 2004-05-08  David Shaw  <dshaw@jabberwocky.com>
2700
2701         * keyedit.c (keyedit_menu, menu_set_keyserver_url): Allow passing
2702         preferred keyserver on "keyserver" command line.  Sanity check
2703         keyserver URL before accepting it.
2704
2705         * keyserver-internal.h, g10.c (main), keyserver.c
2706         (parse_keyserver_uri): Add an option to require the scheme:// and
2707         change all callers.
2708         (free_keyserver_spec): Make public.
2709
2710 2004-05-07  Werner Koch  <wk@gnupg.org>
2711
2712         * sign.c (write_plaintext_packet): Fixed the detection of too
2713         large files in the same way as in encode.c.
2714
2715 2004-05-04  David Shaw  <dshaw@jabberwocky.com>
2716
2717         * keylist.c (show_notation): Use bits to select which sort of
2718         notation to show.  Don't allow a not-shown notation to prevent us
2719         from issuing the proper --status-fd message.
2720
2721         * options.h, g10.c (main): Add show-std/standard-notations and
2722         show-user-notations.  show-notations is both.  Default is to show
2723         standard notations only during verify.  Change all callers.
2724
2725 2004-04-28  David Shaw  <dshaw@jabberwocky.com>
2726
2727         * main.h, keylist.c (show_notation): Add argument to show only
2728         user notations, only standard notations, or both.  Change all
2729         callers.
2730
2731         * keyserver.c (keyserver_spawn): We still need EXEC_TEMPFILE_ONLY.
2732
2733 2004-04-28  Werner Koch  <wk@gnupg.org>
2734
2735         * card-util.c (card_edit): Require PIN only for generate. 
2736
2737         * app-openpgp.c (do_setattr): Sync FORCE_CHV1.
2738
2739 2004-04-27  Werner Koch  <wk@gnupg.org>
2740
2741         * keyserver.c (keyserver_spawn) [EXEC_TEMPFILE_ONLY]: Removed
2742         setting use_temp_file because this option has been removed.
2743
2744         * g10.c: New commands --allow-admin and --deny-admin.
2745         * options.h (opt): Add member ALLOW_ADMIN.
2746
2747         * tlv.h, tlv.c: New.  Copied from gnupg-1.9. 
2748         * cardglue.c (open_card): The serialno is now set internally by
2749         app_select_openpgp; changed invocation.
2750         * cardglue.h (app_t, ctrl_t): New.
2751         (GPG_ERR_EBUSY, GPG_ERR_ENOENT, GPG_ERR_NOT_FOUND, GPG_ERR_BUG) 
2752         (GPG_ERR_NOT_IMPLEMENTED, GPG_ERR_EACCESS): New.
2753         (gpg_err_code_from_errno): New.
2754
2755         * app-common.h, app-openpgp.c, iso7816.c, iso7816.h
2756         * apdu.c, apdu.h, ccid-driver.c, ccid-driver.h
2757         * card-util.c: Updated from current gnupg-1.9.
2758
2759         Changes are:
2760
2761         * app-common.h: New members FNC.DEINIT and APP_LOCAL.
2762         * app-openpgp.c (do_deinit): New.
2763         (get_cached_data, flush_cache_item, flush_cache_after_error)
2764         (flush_cache): New.
2765         (get_one_do): Replaced arg SLOT by APP.  Make used of cached data.
2766         (verify_chv2, verify_chv3): Flush some cache item after error.
2767         (do_change_pin): Ditto.
2768         (do_sign): Ditto.
2769         (do_setattr): Flush cache item.
2770         (do_genkey): Flush the entire cache.
2771         (compare_fingerprint): Use cached data.
2772
2773         * apdu.c (apdu_send_le): Reinitialize RESULTLEN.  Handle
2774         SW_EOF_REACHED like SW_SUCCESS.
2775
2776         * ccid-driver.c (parse_ccid_descriptor): Store some of the reader
2777         features away.  New arg HANDLE
2778         (read_device_info): New arg HANDLE. Changed caller.
2779         (bulk_in): Handle time extension requests.
2780         (ccid_get_atr): Setup parameters and the IFSD.
2781         (compute_edc): New. Factored out code.
2782         (ccid_transceive): Use default NADs when required.
2783
2784         * apdu.h: New pseudo stati SW_HOST_NOT_SUPPORTED,
2785         SW_HOST_LOCKING_FAILED and SW_HOST_BUSY.
2786         * iso7816.c (map_sw): Map it.
2787         
2788         * ccid-driver.c (ccid_slot_status): Add arg STATUSBITS.
2789         * apdu.c (apdu_get_status): New.
2790         (ct_get_status, pcsc_get_status, ocsc_get_status): New stubs.
2791         (get_status_ccid): New.
2792         (apdu_reset): New.
2793         (reset_ct_reader, reset_pcsc_reader, reset_osc_reader): New stubs.
2794         (reset_ccid_reader): New.
2795         (apdu_enum_reader): New.
2796         
2797         * apdu.c (lock_slot, trylock_slot, unlock_slot): New helpers.
2798         (new_reader_slot) [USE_GNU_PTH]: Init mutex.
2799         (apdu_reset, apdu_get_status, apdu_send_le): Run functions
2800         in locked mode.
2801         
2802 2004-04-25  David Shaw  <dshaw@jabberwocky.com>
2803
2804         * getkey.c (get_seckey_byname2): Significantly simplify this
2805         function by using key_byname to do the heavy lifting.  Note that
2806         this also fixes an old problem when the first key on the secret
2807         keyring has an unusable stub primary, but is still chosen.
2808
2809         * getkey.c (key_byname): If namelist is NULL, return the first key
2810         in the keyring.
2811
2812 2004-04-22  David Shaw  <dshaw@jabberwocky.com>
2813
2814         * keygen.c (make_backsig): If DO_BACKSIGS is not defined, do not
2815         create backsigs.
2816
2817         * getkey.c (merge_selfsigs_subkey): Find 0x19 backsigs on subkey
2818         selfsigs and verify they are valid.  If DO_BACKSIGS is not
2819         defined, fake this as always valid.
2820
2821         * packet.h, parse-packet.c (parse_signature): Make parse_signature
2822         non-static so we can parse 0x19s in self-sigs.
2823
2824         * main.h, sig-check.c (check_backsig): Check a 0x19 signature.
2825         (signature_check2): Give a backsig warning if there is no or a bad
2826         0x19 with signatures from a subkey.
2827
2828 2004-04-21  David Shaw  <dshaw@jabberwocky.com>
2829
2830         * parse-packet.c (dump_sig_subpkt, parse_one_sig_subpkt,
2831         can_handle_critical): Parse and display 0x19 signatures.
2832
2833 2004-04-20  David Shaw  <dshaw@jabberwocky.com>
2834
2835         * keyserver.c (parse_keyserver_uri): Do not accept "http" as an
2836         alias for "hkp".  They are not the same thing.
2837
2838 2004-04-19  David Shaw  <dshaw@jabberwocky.com>
2839
2840         * options.h, g10.c (main): Add keyserver-option
2841         honor-keyserver-url.  parse_keyserver_options now returns a
2842         success code.
2843
2844         * keyserver.c (parse_keyserver_options): Return error on failure
2845         to parse.  Currently there is no way to fail as any unrecognized
2846         options get saved to be sent to the keyserver plugins later.
2847         Check length of keyserver option tokens since with =arguments we
2848         must only match the prefix.
2849         (free_keyserver_spec): Moved code from parse_keyserver_url.
2850         (keyserver_work, keyserver_spawn): Pass in a struct keyserver_spec
2851         rather than using the global keyserver option.
2852         (calculate_keyid_fpr): New.  Fills in a KEYDB_SEARCH_DESC for a
2853         key.
2854         (keyidlist): New implementation using get_pubkey_bynames rather
2855         than searching the keydb directly.  If honor-keyserver-url is set,
2856         make up a keyserver_spec and try and fetch that key directly.  Do
2857         not include it in the returned keyidlist in that case.
2858
2859 2004-04-16  David Shaw  <dshaw@jabberwocky.com>
2860
2861         * plaintext.c (handle_plaintext): Accept 'u' as a plaintext mode
2862         that requires end of line conversion.  This is being considered
2863         for a UTF8 text packet.  If this doesn't take place, no major harm
2864         done.  If it does take place, we'll get a jump on starting the
2865         changeover.
2866
2867         * g10.c (main): --no-use-embedded-filename.
2868
2869         * build-packet.c (calc_plaintext, do_plaintext): Do not create
2870         illegal (packet header indicates a size larger than the actual
2871         packet) encrypted data packets when not compressing and using a
2872         filename longer than 255 characters.
2873
2874         * keyedit.c (no_primary_warning): Cleanup. (menu_expire): Don't
2875         give primary warning for subkey expiration changes.  These cannot
2876         reorder primaries.
2877
2878         * keygen.c (gen_elg, gen_dsa, gen_rsa, do_create,
2879         do_generate_keypair, generate_subkeypair): New is_subkey argument
2880         to set whether a generated key is a subkey.  Do not overload the
2881         ret_sk.  This is some early cleanup to do backsigs for signing
2882         subkeys.
2883
2884         * keygen.c (write_keybinding, do_generate_keypair,
2885         generate_subkeypair): Keep track of the unprotected subkey secret
2886         key so we can make a backsig with it.
2887
2888         * keygen.c (make_backsig): New function to add a backsig to a
2889         binding sig of signing subkeys.  Currently disabled.
2890         (write_keybinding): Call it here, for signing subkeys only.
2891
2892         * sign.c (make_keysig_packet): Allow generating 0x19 signatures
2893         (same as 0x18 or 0x28, but used for backsigs).
2894
2895         * packet.h, build-packet.c (build_sig_subpkt): Add new
2896         SIGSUBPKT_SIGNATURE type for embedded signatures.
2897
2898         * main.h, misc.c (optsep, argsplit, optlen, parse_options):
2899         Simplify code and properly handle a partial match against an
2900         option with an argument.
2901
2902         * keyserver-internal.h, keyserver.c (parse_keyserver_options): Use
2903         new optsep and argsplit functions.
2904
2905 2004-04-15  David Shaw  <dshaw@jabberwocky.com>
2906
2907         * main.h, misc.c (argsplit): Refactor argsep into argsplit and
2908         argsep so they can be called separately.
2909
2910         * options.h, keyserver.c (parse_keyserver_options): Remove
2911         duplicate code from parse_keyserver_options by calling the generic
2912         parse_options.
2913
2914         * keyserver.c (keyserver_spawn, keyserver_refresh), g10.c (main),
2915         gpgv.c (main), mainproc.c (check_sig_and_print), import.c
2916         (revocation_present): Change all callers.
2917
2918 2004-04-14  David Shaw  <dshaw@jabberwocky.com>
2919
2920         * packet.h, getkey.c (fixup_uidnode, merge_selfsigs_subkey): Keep
2921         track of which self-sig we actually chose.
2922
2923         * keyedit.c (menu_expire, menu_set_primary_uid,
2924         menu_set_preferences): Use it here to avoid updating non-used
2925         self-sigs and possibly promoting an old self-sig into
2926         consideration again.
2927
2928         * options.h, import.c, keyserver-internal.h, g10.c, mainproc.c,
2929         keyserver.c (parse_keyserver_uri): Parse keyserver URI into a
2930         structure.  Cleanup for new "guess my keyserver" functionality, as
2931         well as refreshing via a preferred keyserver subpacket.
2932
2933         * options.h: Encapsulate keyserver details.  Change all callers.
2934
2935 2004-04-05  Werner Koch  <wk@gnupg.org>
2936
2937         * status.h (STATUS_NEWSIG): New.
2938         * status.c (get_status_string): Add it. 
2939
2940 2004-03-27  David Shaw  <dshaw@jabberwocky.com>
2941
2942         * keyedit.c (keyedit_menu): Request a trustdb update when adding a
2943         new user ID so the new ID gets validity set.  Reported by Owen
2944         Taylor.
2945
2946 2004-03-25  David Shaw  <dshaw@jabberwocky.com>
2947
2948         * options.h, g10.c (main), compress-bz2.c (init_uncompress):
2949         Rename --bzip2-compress-lowmem to --bzip2-decompress-lowmem since
2950         it applies to decompression, not compression.
2951
2952 2004-03-24  David Shaw  <dshaw@jabberwocky.com>
2953
2954         * keyedit.c (sign_uids, show_key_and_fingerprint, ask_revoke_sig,
2955         menu_revsig, menu_showphoto): --keyid-format conversion.
2956         (menu_addrevoker): Use print_pubkey_info() rather than duplicating
2957         code.
2958
2959 2004-03-19  David Shaw  <dshaw@jabberwocky.com>
2960
2961         * trustdb.c (update_min_ownertrust, validate_keys): Do not use
2962         keystr functions in log_debug.
2963
2964         * import.c (import_one): Try and collapse user IDs when importing
2965         a key for the first time.
2966
2967         * keyedit.c (menu_addrevoker): Allow appointing a subkey as a
2968         designated revoker if the user forces it via keyid!, so long as
2969         the subkey can certify.  Also use the proper date string when
2970         prompting for confirmation.
2971
2972         * g10.c (main): Maintain ordering of multiple Comment lines.
2973         Requested by Peter Hyman.
2974
2975 2004-03-17  David Shaw  <dshaw@jabberwocky.com>
2976
2977         * mainproc.c (proc_pubkey_enc, print_pkenc_list, list_node):
2978         --keyid-format conversion.
2979
2980 2004-03-16  David Shaw  <dshaw@jabberwocky.com>
2981
2982         * getkey.c (skip_unusable, merge_selfsigs_main,
2983         premerge_public_with_secret, lookup, get_user_id_string):
2984         --keyid-format conversion.
2985
2986 2004-03-15  David Shaw  <dshaw@jabberwocky.com>
2987
2988         * trustdb.c (add_utk, verify_own_keys, update_min_ownertrust,
2989         get_validity, ask_ownertrust, validate_keys): --keyid-format
2990         conversion.
2991
2992         * import.c (check_prefs_warning, check_prefs): --keyid-format
2993         conversion and a little better text.
2994         (import_one, import_secret_one, import_revoke_cert, chk_self_sigs,
2995         delete_inv_parts, merge_blocks): Still more --keyid-format
2996         conversions.
2997
2998 2004-03-06  David Shaw  <dshaw@jabberwocky.com>
2999
3000         * keylist.c (print_seckey_info, print_pubkey_info): --keyid-format
3001         conversion.
3002         (list_keyblock_print): 0xshort should not push us into the new
3003         list format since it is not much longer than regular 8-character
3004         short keyids.
3005
3006         * keydb.h, keyid.c (keystr_from_pk, keystr_from_sk): New functions
3007         to pull a key string from a key in one step.  This isn't faster
3008         than before, but makes for neater code.
3009
3010         * keylist.c (list_keyblock_print): Use keystr_from_xx here.
3011         (print_key_data): No need to pass a keyid in.
3012
3013 2004-03-05  David Shaw  <dshaw@jabberwocky.com>
3014
3015         * keyid.c (keyid_from_sk): Minor performance boost by caching
3016         secret key keyids so we don't have to calculate them each time.
3017
3018         * getkey.c (merge_selfsigs_subkey): Do not mark subkeys valid if
3019         we do not support their pk algorithm.  This allows for early
3020         (during get_*) rejection of a subkey, and selection of another.
3021
3022         * passphrase.c (passphrase_to_dek): Give a little more information
3023         when we have room to do so.
3024
3025 2004-03-04  David Shaw  <dshaw@jabberwocky.com>
3026
3027         * revoke.c (export_minimal_pk), export.c (do_export_stream),
3028         passphrase.c (passphrase_to_dek), keyserver.c (print_keyrec): A
3029         few more places to use --keyid-format.
3030
3031         * options.h, g10.c (main), export.c (parse_export_options,
3032         do_export_stream): Remove --export-all and the "include-non-rfc"
3033         export-option as they are no longer meaningful with the removal of
3034         v3 Elgamal keys.
3035
3036         * armor.c (fake_packet, armor_filter): Use the 2440 partial length
3037         encoding for the faked plaintext packet.
3038
3039 2004-03-03  David Shaw  <dshaw@jabberwocky.com>
3040
3041         * options.h, g10.c (main), mainproc.c (check_sig_and_print):
3042         Remove verify-option show-long-keyids and replace with
3043         the more general keyid-format.
3044
3045         * build-packet.c (write_header2): Remove call to start old gpg
3046         partial length mode and change all callers.
3047         (do_plaintext): Turn off partial length encoding now that we're
3048         done writing the packet.
3049         (do_comment, do_user_id): Try for a headerlen of 2 since that's
3050         the smallest and most likely encoding for these packets.
3051
3052         * parse-packet.c (parse): Remove call to start old gpg partial
3053         length mode.
3054
3055 2004-03-02  David Shaw  <dshaw@jabberwocky.com>
3056
3057         * options.h, g10.c (main): Add a more flexible --keyid-format
3058         option to replace the list-option (and eventually verify-option)
3059         show-long-keyids.  The format can be short, long, 0xshort, and
3060         0xlong.
3061
3062         * keydb.h, keyid.c (keystr, keystrlen): New functions to generate
3063         a printable keyid.
3064
3065         * keyedit.c (print_and_check_one_sig, show_key_with_all_names),
3066         keylist.c (list_keyblock_print): Use new keystr() function here to
3067         print keyids.
3068
3069         * packet.h, free-packet.c (free_encrypted, free_plaintext),
3070         parse-packet.c (copy_packet, skip_packet, skip_rest, read_rest,
3071         parse_plaintext, parse_encrypted, parse_gpg_control): Use a flag
3072         to indicate partial or indeterminate encoding.  This is the first
3073         step in some minor surgery to remove the old gpg partial length
3074         encoding.
3075
3076 2004-03-01  David Shaw  <dshaw@jabberwocky.com>
3077
3078         * parse-packet.c (parse): Only data-type packets are allowed to
3079         use OpenPGP partial length encoding.
3080
3081 2004-02-25  David Shaw  <dshaw@jabberwocky.com>
3082
3083         * delkey.c (do_delete_key): Allow deleting a public key with a
3084         secret present if --expert is set.
3085
3086         * plaintext.c (handle_plaintext): Make bytecount static so it
3087         works with multiple literal packets inside a message.
3088
3089         * encode.c, helptext.c (keygen.algo, keygen.algo.elg_se), keygen.c
3090         (ask_algo), sig-check.c (do_check_messages), skclist.c
3091         (build_sk_list): Rename "ElGamal" to "Elgamal" as that is the
3092         proper spelling nowadays.  Suggested by Jon Callas.
3093
3094 2004-02-24  David Shaw  <dshaw@jabberwocky.com>
3095
3096         * plaintext.c: Copyright.
3097
3098         * encode.c (encode_simple): Show cipher with --verbose.
3099
3100         * options.h, g10.c (main), keyedit.c (sign_keys): Add
3101         --ask-cert-level option to enable cert level prompts during
3102         sigs. Defaults to on.  Simplify --default-cert-check-level to
3103         --default-cert-level.  If ask-cert-level is off, or batch is on,
3104         use the default-cert-level as the cert level.
3105
3106         * options.h, g10.c (main), trustdb.c (mark_usable_uid_certs):
3107         Simplify --min-cert-check-level to --min-cert-level.
3108
3109 2004-02-22  David Shaw  <dshaw@jabberwocky.com>
3110
3111         * options.h, g10.c (main), trustdb.c (mark_usable_uid_certs): Add
3112         --min-cert-check-level option to specify minimum cert check level.
3113         Defaults to 2 (so 0x11 sigs are ignored).  0x10 sigs cannot be
3114         ignored.
3115
3116 2004-02-21  David Shaw  <dshaw@jabberwocky.com>
3117
3118         * plaintext.c (handle_plaintext): Properly handle a --max-output
3119         of zero (do not limit output at all).
3120
3121         * keyserver.c (keyserver_spawn): Use the full 64-bit keyid in the
3122         INFO header lines, and include "sig:" records for the benefit of
3123         people who store their keys in LDAP servers.  It makes it easy to
3124         do queries for things like "all keys signed by Isabella".
3125
3126         * main.h, misc.c (hextobyte): Removed.  It's in libutil.a now.
3127
3128 2004-02-20  David Shaw  <dshaw@jabberwocky.com>
3129
3130         * keyserver.c (keyserver_export): Disallow user strings that
3131         aren't key IDs.
3132         (keyserver_import): Clarify error message.
3133         (keyserver_spawn): Properly handle 8 bit characters in user IDs in
3134         the info lines during SEND.
3135
3136         * mkdtemp.c: Removed.
3137
3138         * Makefile.am: We get mkdtemp.c from libutil.a now, so don't link
3139         with @LIBOBJS@.
3140
3141         * keyserver.c (keyserver_spawn): Pass the scheme to the keyserver
3142         helper.
3143
3144 2004-02-18  David Shaw  <dshaw@jabberwocky.com>
3145
3146         * options.h, g10.c (main), plaintext.c (handle_plaintext): Add
3147         --max-output option to help people deal with decompression bombs.
3148
3149 2004-02-15  David Shaw  <dshaw@jabberwocky.com>
3150
3151         * build-packet.c (do_user_id): Do not force a header for attribute
3152         packets as they require a new CTB, and we don't support forced
3153         headers for new CTBs yet.
3154
3155 2004-02-14  David Shaw  <dshaw@jabberwocky.com>
3156
3157         * build-packet.c (write_header2): If a suggested header length is
3158         provided along with a zero length, interpret this as an actual
3159         zero length packet and not as an indeterminate length packet.
3160         (do_comment, do_user_id): Use it here as these packets might be
3161         naturally zero length.
3162
3163         * parse-packet.c (parse): Show packet type when failing due to an
3164         indeterminate length packet.
3165
3166         * misc.c (parse_options): Only provide args for the true (i.e. not
3167         "no-xxx") form of options.
3168
3169 2004-02-13  David Shaw  <dshaw@jabberwocky.com>
3170
3171         * keyserver.c (argsep): Move to misc.c.
3172
3173         * main.h, misc.c (parse_options), export.c (parse_export_options),
3174         import.c (parse_import_options), g10.c (main): Use it here to
3175         allow for options with optional arguments.  Change all callers.
3176
3177         * import.c (check_prefs): Some language fixes.
3178         (sec_to_pub_keyblock, import_secret_one): Without knowing the
3179         number of MPIs there are, we cannot try and sk-to-pk-ize a key.
3180
3181 2004-02-12  David Shaw  <dshaw@jabberwocky.com>
3182
3183         * import.c (check_prefs): New function to check preferences on a
3184         public key to ensure that it does not advertise any that we cannot
3185         fulfill.  Use the keyedit command list function to optionally
3186         rewrite the prefs.
3187         (import_one, import_secret_one): Use it here when importing a
3188         public key that we have the secret half of, or when importing a
3189         secret key that we have the public half of.
3190
3191         * main.h, keyedit.c (keyedit_menu): Remove sign_mode and enhance
3192         the more general command list functionality to replace it.
3193
3194         * g10.c (main): Use the general command functionality to implement
3195         --sign-key, --lsign-key, --nrsign-key, and --nrlsign-key.
3196
3197         * import.c (import_one): Do the revocation check even in the case
3198         when a key, a revocation key set in a direct key signature, and a
3199         revocation from that revocation key, all arrive piecemeal.
3200         Needless to say, this is pretty obscure.
3201
3202 2004-02-11  David Shaw  <dshaw@jabberwocky.com>
3203
3204         * options.h, g10.c (main), keylist.c (list_keyblock_print): Add
3205         "show-unusable-subkeys" list-option to show revoked and/or expired
3206         subkeys.
3207
3208 2004-02-10  David Shaw  <dshaw@jabberwocky.com>
3209
3210         * keyedit.c (keyedit_menu): Prompt for subkey removal for both
3211         secret and public subkeys.
3212
3213         * keylist.c (list_keyblock_print), keyedit.c
3214         (show_key_with_all_names): Show the revocation date of a
3215         key/subkey, and general formatting work.
3216
3217         * packet.h, getkey.c (merge_selfsigs_main, merge_selfsigs_subkey,
3218         merge_selfsigs): Keep track of the revocation date of a key.
3219
3220         * keydb.h, keyid.c (revokestr_from_pk): New function to print the
3221         revocation date of a key.
3222
3223         * keygen.c (keygen_set_std_prefs): Build the default preferences
3224         list at runtime as it properly handles algorithms disabled at
3225         build or run time.
3226
3227         * getkey.c (merge_selfsigs_main): Properly handle expired user IDs
3228         when the expired self-sig is not the only self-sig.
3229
3230         * misc.c (compress_algo_to_string): Return NULL on failure like
3231         all of the other xxxx_algo_to_string() functions.
3232
3233         * mainproc.c (list_node): Minor spacing tweak to match --list-keys
3234         output.
3235
3236         * keylist.c (list_keyblock_print), mainproc.c (list_node): Mark
3237         revoked subkeys as revoked.  Requested by Matthew Wilcox.  Revoked
3238         overrides expiration when both apply.
3239
3240         * keyedit.c (show_prefs): Use compress algo constants.
3241         (show_basic_key_info): Make revoked and expired tags translatable.
3242
3243         * g10.c (rm_group): Properly ungroup from a list of groups.
3244
3245 2004-01-30  David Shaw  <dshaw@jabberwocky.com>
3246
3247         * g10.c (main, rm_group): Add --ungroup command to remove a
3248         particular group.
3249         (add_group): When adding a group with the same name as an already
3250         existing group, merge the two groups.
3251         (list_config): Show an error message when listing a config item
3252         that doesn't exist.
3253         (main): Replace -z0 trick for no compression.
3254
3255         * packet.h, keyedit.c (show_key_with_all_names_colon), keylist.c
3256         (list_keyblock_colon), mainproc.c (list_node, proc_tree): Minor
3257         cleanup to remove local_id, which is no longer used.
3258
3259 2004-01-27  David Shaw  <dshaw@jabberwocky.com>
3260
3261         * getkey.c: Set MAX_PK_CACHE_ENTRIES and MAX_UID_CACHE_ENTRIES to
3262         PK_UID_CACHE_SIZE (set in ./configure).
3263
3264         * getkey.c (get_pubkey): When reading key data into the cache,
3265         properly handle keys that are partially (pk, no UIDs) cached
3266         already.  This is Debian bug #176425 and #229549.
3267
3268         * compress.c (init_compress, push_compress_filter2): Do the right
3269         thing (i.e. nothing) with compress algo 0.
3270
3271         * main.h, decrypt.c (decrypt_messages): Accept filenames to
3272         decrypt on stdin.  This is bug #253.
3273
3274 2004-01-23  David Shaw  <dshaw@jabberwocky.com>
3275
3276         * mainproc.c (list_node): Show sigs with --verbose.
3277
3278         * options.h, g10.c (set_screen_dimensions): New function to look
3279         at COLUMNS and LINES.
3280
3281         * keyserver.c (parse_keyrec, keyserver_search_prompt), keyedit.c
3282         (print_and_check_one_sig): Use new screen dimension variables.
3283
3284 2004-01-21  David Shaw  <dshaw@jabberwocky.com>
3285
3286         * g10.c (list_config): New function to dump config options to
3287         stdout.  Currently requires --with-colons.
3288         (collapse_args): New function to turn argc/argv into a single
3289         string.
3290         (main): Use it here to pass list_config() more than one argument
3291         as a single string.
3292         (print_algo_numbers): Helper to print algorithm number for
3293         --list-config "pubkey", "cipher", "hash"/"digest", and "compress"
3294         config options.
3295
3296         * packet.h, getkey.c (merge_selfsigs, merge_selfsigs_main),
3297         pkclist.c (check_signatures_trust): Indicate who has revoked a key
3298         (the owner or a designated revoker).  If a key was revoked by
3299         both, prefer the owner.  If a subkey is already revoked by the
3300         owner, don't allow a designated revokation of the whole key to
3301         override this.  We're still revoked either way, of course.
3302         
3303         * keyedit.c (print_and_check_one_sig, keyedit_menu): Use the
3304         COLUMNS environment variable (if any) to hint how wide the
3305         terminal is.  Disabled on _WIN32.  Suggested by Janusz
3306         A. Urbanowicz.
3307
3308 2004-01-20  David Shaw  <dshaw@jabberwocky.com>
3309
3310         * keylist.c (set_attrib_fd): Open attribute fd in binary
3311         mode. This isn't meaningful on POSIX systems, but the Mingw builds
3312         aren't exactly POSIX.
3313
3314         * trustdb.c (reset_trust_records): New, faster, implementation
3315         that doesn't involve a keyring scan.
3316         (clear_validity): Removed.
3317
3318         * g10.c (main), keydb.h, keydb.c (keydb_rebuild_caches),
3319         keyring.h, keyring.c (keyring_rebuild_cache): Add "noisy" flag so
3320         cache rebuilds can remain noisy when called for itself, and quiet
3321         when called as part of the trustdb rebuild.
3322
3323         * trustdb.c (validate_keys): Rebuild the sig caches before
3324         building the trustdb.  Note that this is going to require some
3325         architectual re-thinking, as it is agonizingly slow.
3326
3327 2004-01-19  David Shaw  <dshaw@jabberwocky.com>
3328
3329         * sig-check.c (check_key_signature2): Comments.
3330
3331         * keyring.c (keyring_rebuild_cache): Clear sig cache for any
3332         signatures that we can no longer process (say, if the user removed
3333         support for a necessary pubkey or digest algorithm).
3334
3335 2004-01-16  David Shaw  <dshaw@jabberwocky.com>
3336
3337         * misc.c (print_cipher_algo_note): May as well call Rijndael AES
3338         at this point.
3339
3340         * keygen.c (do_create), misc.c (openpgp_pk_algo_usage): Remove the
3341         last bits of Elgamal type 20 support.
3342
3343 2004-01-03  Stefan Bellon  <sbellon@sbellon.de>
3344
3345         * compress.c [__riscos__]: Only use RISC OS' own ZLib module if
3346         configured to use it.
3347
3348 2003-12-30  David Shaw  <dshaw@jabberwocky.com>
3349
3350         * options.h, g10.c (main), import.c (parse_import_options,
3351         import_one, import_secret_one), keyserver.c (keyserver_refresh):
3352         Change --merge-only to --import-option merge-only.  Deprecate
3353         --merge-only.
3354
3355 2003-12-29  David Shaw  <dshaw@jabberwocky.com>
3356
3357         * misc.c (pull_in_libs): Dead code.  Removed.
3358
3359         * sig-check.c (check_revocation_keys): Comments.
3360
3361         * getkey.c (merge_selfsigs_main): Don't bother to check designated
3362         revoker sigs if the key is already revoked.
3363
3364         * packet.h, getkey.c (merge_selfsigs_main): New "maybe_revoked"
3365         flag on PKs.  It is set when there is a revocation signature from
3366         a valid revocation key, but the revocation key is not present to
3367         verify the signature.
3368
3369         * pkclist.c (check_signatures_trust): Use it here to give a
3370         warning when showing key trust.
3371
3372         * compress-bz2.c: Include stdio.h.  Solaris 9 has a very old bzip2
3373         library and we can at least guarantee that it won't fail because
3374         of the lack of stdio.h.
3375
3376         * tdbio.c: Fixed format string bugs related to the use of DB_NAME.
3377         Reported by Florian Weimer.
3378
3379 2003-12-28  David Shaw  <dshaw@jabberwocky.com>
3380
3381         * options.h, g10.c (main), keyserver.c (keyserver_opts,
3382         parse_keyserver_uri): honor-http-proxy is no longer an option
3383         since we can do the same thing with http-proxy with no arguments.
3384         Also remove broken-http-proxy since it can be better handled in
3385         the HTTP helper.
3386
3387         * keyserver.c (argsep): New variation on strsep that knows about
3388         optional arguments.
3389         (parse_keyserver_options): Use it here for optional arguments.
3390
3391 2003-12-28  Stefan Bellon  <sbellon@sbellon.de>
3392
3393         * plaintext.c (handle_plaintext) [__riscos__]: Don't mangle
3394         filename if the user specified it.
3395
3396         * g10.c, gpgv.c [__riscos__]: Removal of unnecessary #ifdef
3397         __riscos__ sections.
3398
3399 2003-12-27  David Shaw  <dshaw@jabberwocky.com>
3400
3401         * keyserver.c (strip_leading_space, get_arg): New.
3402         (parse_keyserver_options): Use them here to allow arguments to
3403         keyserver-options.  Since none of our options need arguments yet,
3404         just pass them through whole to the keyserver helper.
3405
3406         * main.h, misc.c (parse_options): Add a "noisy" flag to enable and
3407         disable the messages about which option didn't match or matched
3408         ambiguously.  Change all callers (g10.c, keyserver.c).
3409
3410         * main.h, import.c (import_options), export.c (export_options):
3411         Pass the noisy flag through.
3412
3413 2003-12-17  David Shaw  <dshaw@jabberwocky.com>
3414
3415         * build-packet.c (write_fake_data, do_secret_key), seckey-cert.c
3416         (do_check): Use an unsigned length for mpi_get_opaque.
3417
3418         * options.h: It's impolite to assign -1 to an unsigned
3419         opt.force_ownertrust.
3420
3421         * sig-check.c (cmp_help, do_check), sign.c (do_sign): Remove old
3422         unused code.
3423
3424         * keyid.c (keyid_from_sk): Make sure lowbits is initialized.
3425
3426 2003-12-12  David Shaw  <dshaw@jabberwocky.com>
3427
3428         * sig-check.c (do_check): Move the signing algo and hash checks
3429         from here...
3430         (signature_check2): ... to here.
3431         (check_key_signature2): ... and here.  This is a minor
3432         optimization to avoid fetching a key (which can be expensive,
3433         especially if it is not self-signed, and there are many key
3434         signatures on it which need to be checked for ultimate trust) if
3435         the signature would have failed anyway because of algorithm or
3436         hash problems.
3437
3438 2003-12-10  David Shaw  <dshaw@jabberwocky.com>
3439
3440         * packet.h, build-packet.c (hash_public_key): Remove function ...
3441
3442         * keydb.h, keyid.c (hash_public_key, do_fingerprint_md): ... and
3443         make a new one here that shares code with the fingerprint
3444         calculations.  This removes some duplicated functionality, and is
3445         also around 14% faster.  (Every bit helps).
3446
3447         * import.c (import_one): No longer need the Elgamal import
3448         warning.
3449
3450         * getkey.c (get_pubkey_fast): This one is sort of obscure.
3451         get_pubkey_fast returns the primary key when requesting a subkey,
3452         so if a user has a key signed by a subkey (we don't do this, but
3453         used to), AND that key is not self-signed, AND the algorithm of
3454         the subkey in question is not present in GnuPG, AND the algorithm
3455         of the primary key that owns the subkey in question is present in
3456         GnuPG, then we will try and verify the subkey signature using the
3457         primary key algorithm and hit a BUG().  The fix is to not return a
3458         hit if the keyid is not the primary.  All other users of
3459         get_pubkey_fast already expect a primary only.
3460
3461 2003-12-09  David Shaw  <dshaw@jabberwocky.com>
3462
3463         * keyid.c (do_fingerprint_md): Remove the rules to hash the old v3
3464         Elgamal keys.  They are no longer needed.
3465
3466         * keyid.c (keyid_from_sk, keyid_from_pk, fingerprint_from_pk,
3467         fingerprint_from_sk): Enforce the v3-is-only-RSA rule.  Anything
3468         that isn't RSA gets a zero keyid and fingerprint.
3469
3470         * keyid.c (do_fingerprint_md): Properly handle hashing of keys
3471         that we don't know the structure of by using the opaque MPI.
3472         (do_fingerprint_md_sk): We cannot calculate the fingerprint from a
3473         secret key unless we know the structure (since we can't leave off
3474         the secret key parts), so fail early.....
3475         (keyid_from_sk, fingerprint_from_sk): .... and return all zeroes.
3476
3477 2003-12-03  David Shaw  <dshaw@jabberwocky.com>
3478
3479         * g10.c (strusage, main): Show development version warning in
3480         --version output.
3481         (main): Set --bzip2-compress-level to the default value at
3482         startup.  Remove --emulate-checksum-bug noop.
3483
3484         * options.h, g10.c (main), main.h, seskey.c (do_encode_md,
3485         encode_md_value), sig-check.c (do_check), sign.c (do_sign): Remove
3486         --emulate-md-encode-bug as it only applied to Elgamal signatures,
3487         which are going away.
3488
3489 2003-11-30  David Shaw  <dshaw@jabberwocky.com>
3490
3491         * mainproc.c (proc_symkey_enc, proc_encrypted): Add ability to use
3492         --override-session-key on --symmetric messages (new-style or
3493         old-style).
3494         (proc_pubkey_enc): Move code to show session key from here to
3495         proc_encrypted() so it can work with any type of message.
3496         Suggested by Michael Young.
3497
3498 2003-11-29  David Shaw  <dshaw@jabberwocky.com>
3499
3500         * trustdb.c (validate_keys): Reset the trustdb before checking if
3501         we have any ultimately trusted keys.  This ensures that if we lose
3502         all our ultimately trusted keys, we don't leave behind the old
3503         validity calculations.  Noted by Peter Palfrader.
3504
3505         * revoke.c (gen_desig_revoke): Specify in the comment when a
3506         designated revocation is generated.
3507
3508         * getkey.c (merge_selfsigs_main, merge_selfsigs_subkey,
3509         get_seckey_byname2): Remove Elgamal check since we are removing
3510         type 20 keys altogether.
3511
3512 2003-11-27  David Shaw  <dshaw@jabberwocky.com>
3513
3514         * pkclist.c (build_pk_list): Do not allow an empty PK list in
3515         interactive mode.
3516
3517         * keygen.c (ask_algo): Remove ability to generate Elgamal
3518         sign+encrypt keys.
3519
3520         * getkey.c (merge_selfsigs_main, merge_selfsigs_subkey,
3521         get_seckey_byname2): Disallow use of sign+encrypt Elgamal keys.
3522
3523 2003-11-20  David Shaw  <dshaw@jabberwocky.com>
3524
3525         * seskey.c (do_encode_md): Comment about earlier (pre-PGP 2.3)
3526         encodings.
3527
3528         * misc.c (compress_algo_to_string): Translate "Uncompressed".
3529         Requested by Tommi Vainikainen.
3530         (string_to_compress_algo): Include multi-string for
3531         "uncompressed|none".
3532
3533 2003-11-17  David Shaw  <dshaw@jabberwocky.com>
3534
3535         * options.h, g10.c (main), compress-bz2.c (init_uncompress): Add
3536         --bz2-compress-lowmem to set bzlib "small" flag for low memory
3537         (but slow) decompression.
3538
3539 2003-11-15  David Shaw  <dshaw@jabberwocky.com>
3540
3541         * compress.c (init_compress): Remove compress level 10 trick,
3542         since it is no longer needed.
3543
3544         * g10.c: Fix typoed option name.
3545
3546         * compress-bz2.c (init_compress): Compression level 0 is not
3547         meaningful for bzip2.
3548
3549         * options.h, g10.c (main), compress.c (init_compress),
3550         compress-bz2.c (init_compress): Add --compress-level and
3551         --bzip2-compress-level.  -z sets them both.  Change various
3552         callers.
3553
3554         * encode.c (encode_simple), sign.c (sign_symencrypt_file):
3555         Properly use default_compress_algo (--compress-algo, followed by
3556         the highest --personal-compress-preference, followed by ZIP) to
3557         get the algorithm.
3558
3559 2003-11-14  David Shaw  <dshaw@jabberwocky.com>
3560
3561         * options.h, trustdb.c (trust_model_string, init_trustdb): Add
3562         support for "external" trust model, where the user can provide a
3563         pregenerated trustdb.
3564
3565         * keyedit.c (keyedit_menu): Do not allow editing ownertrust with
3566         an external trust model trustdb.
3567
3568 2003-11-13  David Shaw  <dshaw@jabberwocky.com>
3569
3570         * options.h, g10.c, keyedit.c, keylist.c, mainproc.c: Clarify the
3571         plurarility (or not) of various list and verify options.
3572
3573 2003-11-12  David Shaw  <dshaw@jabberwocky.com>
3574
3575         * g10.c (main): Add --symmetric --sign --encrypt.
3576
3577         * main.h, encode.c (setup_symkey): New.  Prompt for a passphrase
3578         and create a DEK for symmetric encryption.
3579         (write_symkey_enc): New.  Write out symmetrically encrypted
3580         session keys.
3581         (encode_crypt, encrypt_filter): Use them here here when creating a
3582         message that can be decrypted with a passphrase or a pk.
3583
3584         * sign.c (sign_file): Call setup_symkey if we are doing a
3585         --symmetric --sign --encrypt.
3586
3587 2003-11-09  David Shaw  <dshaw@jabberwocky.com>
3588
3589         * mainproc.c (proc_symkey_enc): Don't show algorithm information
3590         when --quiet is set.  Suggested by Duncan Harris.  Also don't fail
3591         with BUG() when processing a --symmetric message with a cipher we
3592         don't have.
3593
3594         * g10.c: Alias --personal-xxx-prefs to --personal-xxx-preferences.
3595
3596         * pkclist.c (build_pk_list): When adding recipients interactively,
3597         allow the user to stop at any point.
3598
3599 2003-10-31  David Shaw  <dshaw@jabberwocky.com>
3600
3601         * trustdb.h, trustdb.c (register_trusted_keyid): New.  Adds a
3602         keyid to the list of ultimately trusted keys.
3603
3604         * keygen.c (do_generate_keypair): Use it here so that the ultimate
3605         ownertrust happens before the trustdb (might be) rebuilt.  Also
3606         fix an error where the newly generated pk is thought to be a
3607         subkey by the trustdb.
3608
3609         * g10.c (main): Fix --export-all do actually do something
3610         different than --export.
3611
3612         * pkclist.c (build_pk_list): Show all recipients rather than
3613         showing each recipient as they are added.
3614
3615         * mainproc.c (proc_symkey_enc, proc_encrypted): Keep a count of
3616         the number of passphrases that can decrypt a symmetric or mixed
3617         symmetric/pk message and include it in the list of keys shown to
3618         the user.
3619
3620 2003-10-30  David Shaw  <dshaw@jabberwocky.com>
3621
3622         * misc.c (compress_algo_to_string, string_to_compress_algo,
3623         check_compress_algo): Add bzip2.
3624
3625         * compress.c (compress_filter): Make static to help force the use
3626         of push_compress_filter.  Remove default algorithm setting since
3627         that is done in push_compress_filter now.
3628
3629         * main.h: Use named algorithm.
3630
3631         * filter.h, compress.c (push_compress_filter,
3632         push_compress_filter2): New.  Figure out which is the appropriate
3633         compression filter to use, and push it into place.
3634
3635         * compress.c (handle_compressed), encode.c (encode_simple,
3636         encode_crypt), sign.c (sign_file, sign_symencrypt_file), import.c
3637         (read_block), export.c (do_export): Use push_compress_filter
3638         instead of pushing the compression filter ourselves.
3639
3640         * compress-bz2.c: New.  Bzlib versions of the compression filter
3641         routines.
3642
3643         * Makefile.am: Include compress-bz2.c if bz2lib is available.
3644
3645 2003-10-30  Werner Koch  <wk@gnupg.org>
3646
3647         * apdu.c (close_ct_reader, close_pcsc_reader): Implemented.
3648         (get_ccid_error_string): New.  Not very useful messages, though.
3649
3650 2003-10-29  Werner Koch  <wk@gnupg.org>
3651
3652         * cardglue.c (open_card): Ask for card insertion.
3653         (check_card_serialno): New.
3654         (agent_scd_pksign, agent_scd_pkdecrypt): Use it here.
3655         * cardglue.c (open_card): Issue insertion status message.
3656         * status.h, status.c (STATUS_CARDCTRL): New.
3657
3658         * status.c (cpr_get_answer_okay_cancel): New.
3659
3660 2003-10-28  Werner Koch  <wk@gnupg.org>
3661
3662         * keylist.c (list_keyblock_print): Denote secrets keys stored on a
3663         card with an '>'. Print the '#' also for subkeys.
3664         (list_keyblock_colon): Introduce new field 15 for sec/ssb to print
3665         the serial number.
3666
3667 2003-10-26  David Shaw  <dshaw@jabberwocky.com>
3668
3669         * g10.c (main): Enhance the version-specific config file code to
3670         try for more specific matches before giving up (e.g. 1.3.3-cvs,
3671         1.3.3, 1.3, 1).
3672
3673 2003-10-25  David Shaw  <dshaw@jabberwocky.com>
3674
3675         * g10.c (main): Add --symmetric --encrypt command.  This generates
3676         a message that can be decrypted via a passphrase or public key
3677         system.
3678
3679         * main.h, encode.c (encode_seskey): Allow passing in an
3680         already-created session key dek.
3681         (encode_simple): Use the actual symmetric cipher when encrypting a
3682         session key for a symmetric message.
3683         (encode_crypt): Add a flag to trigger a hybrid mode that can be
3684         decrypted via a passphrase or a pk.  Change all callers.
3685
3686         * mainproc.c (symkey_decrypt_sesskey): There is no way to tell the
3687         difference here between a bad passphrase and a cipher algorithm
3688         that we don't have, so use a error message that makes that clear.
3689         Use the actual list of ciphers when checking whether a cipher is
3690         invalid.  Return error if the decrypted cipher algorithm is
3691         invalid.
3692         (proc_symkey_enc): In a mixed passphrase/pk message, if a valid
3693         dek already exists from decrypting via pk, do not try to process
3694         the passphrase.
3695         (proc_symkey_enc): Indicate when we're decrypting a session key as
3696         opposed to decrypting data.  If a passphrase is invalid, discard
3697         the dek so we'll keep trying.
3698
3699 2003-10-25  Werner Koch  <wk@gnupg.org>
3700
3701         * ccid-driver.c (ccid_open_reader): Return an error if no USB
3702         devices are found.
3703
3704         * Makefile.am: Replaced INTLLIBS by LIBINTL.
3705
3706         * g10.c (main) [ENABLE_CARD_SUPPORT]: Add a default for
3707         --pcsc-driver.
3708
3709         * cardglue.c (learn_status_cb): Fixed faulty use of !space.
3710
3711 2003-10-24  Werner Koch  <wk@gnupg.org>
3712
3713         * apdu.c (apdu_open_reader): Hacks for PC/SC under Windows.
3714
3715 2003-10-21  Werner Koch  <wk@gnupg.org>
3716
3717         * passphrase.c (ask_passphrase): Add optional promptid arg.
3718         Changed all callers.
3719         * cardglue.c (pin_cb): Use it here, so the machine interface can
3720         tell whether the Admin PIN is requested.
3721
3722         * cardglue.c (agent_scd_checkpin): New.
3723
3724         * misc.c (openpgp_pk_algo_usage): Added AUTH usage.
3725
3726         * app-openpgp.c (check_against_given_fingerprint): New. Factored
3727         out that code elsewhere.
3728         (do_check_pin): New.
3729         * card-util.c (card_edit): New command "passwd".  Add logic to
3730         check the PIN in advance.
3731         (card_status): Add new args to return the serial number.  Changed
3732         all callers.
3733
3734 2003-10-14  David Shaw  <dshaw@jabberwocky.com>
3735
3736         * import.c (import_one): Show the keyid when giving the Elgamal
3737         slow import warning.
3738
3739         * g10.c (main): Older versions used --comment "" to indicate no
3740         comment.  Don't add an empty comment.
3741
3742 2003-10-13  David Shaw  <dshaw@jabberwocky.com>
3743
3744         * keyedit.c (show_key_with_all_names): Ownertrust is only
3745         meaningful for the PGP or classic trust models.  Both validity and
3746         ownertrust are not meaningful for the always trust model.
3747
3748 2003-10-11  Werner Koch  <wk@gnupg.org>
3749
3750         * keygen.c: Always enable the gen_card_key prototype.
3751
3752 2003-10-10  Werner Koch  <wk@gnupg.org>
3753
3754         * cardglue.c (card_close): New.
3755         (agent_scd_change_pin): Implemented.
3756
3757         * ccid-driver.c (ccid_close_reader): New.
3758         * apdu.c (close_ccid_reader, close_ct_reader, close_csc_reader)
3759         (close_osc_reader, apdu_close_reader): New.  Not all are properly
3760         implemented yet.
3761         * g10.c (g10_exit): Use close_card.
3762
3763 2003-10-09  David Shaw  <dshaw@jabberwocky.com>
3764
3765         * g10.c (main): Give a deprecated option warning for
3766         --show-keyring, --show-photos, --show-policy-url, --show-notation,
3767         and their respective no- forms.
3768
3769         * options.skel: Remove show-photos and replace with
3770         list/verify-options show-photos.  Remove no-mangle-dos-filenames.
3771
3772         * misc.c (parse_options): Allow for incomplete (but unambiguous)
3773         options.
3774
3775 2003-10-09  Werner Koch  <wk@gnupg.org>
3776
3777         * ccid-driver.c (ccid_transceive): Add T=1 chaining for sending.
3778
3779         * sign.c (do_sign) [!ENABLE_CARD_SUPPORT]: Return an error for
3780         card keys.
3781
3782         * cardglue.c (agent_scd_pkdecrypt): Implemented.
3783         * pubkey-enc.c (get_it) [ENABLE_CARD_SUPPORT]: Divert decryption
3784         to card
3785
3786 2003-10-08  Werner Koch  <wk@gnupg.org>
3787
3788         * cardglue.c (pin_cb): Detect whether an admin or regular PIN is
3789         requested.
3790         (genkey_status_cb): New.
3791         (agent_scd_genkey): Implemented.
3792
3793         * keygen.c (generate_keypair): New arg CARD_SERIALNO and prepare
3794         parameters for on card key generation. Changed all callers.
3795         (do_generate_keypair): Add new arg card and merged casrd specific
3796         changes from 1.9.
3797         (proc_parameter_file): New arg card, apss it down to
3798         do_generate_keypair and changed all callers.
3799         (gen_card_key): New.
3800
3801         * g10.c: Include cardclue.h.
3802         (main): s/app_set_default_reader_port/card_set_reader_port/.
3803         * cardglue.c (card_set_reader_port): New to address include file
3804         issues.
3805
3806 2003-10-02  Werner Koch  <wk@gnupg.org>
3807
3808         * cardglue.c (learn_status_cb): Release values before assignment
3809         so that it can be used by getattr to update the structure.
3810         (agent_scd_getattr): New.
3811
3812         * keylist.c (print_pubkey_info): Add FP arg for optional printing
3813         to a stream.  Changed all callers.
3814
3815 2003-10-01  Werner Koch  <wk@gnupg.org>
3816
3817         * app-common.h, app-openpgp.c, iso7816.c, iso7816.h, apdu.c
3818         * apdu.h, ccid-driver.c, ccid-driver.h, card-util.c: Updated
3819         from current GnuPG 1.9. Changes over there are:
3820         * card-util.c: Tweaked to use this source also under 1.3. 
3821         (card_edit): New command "forcesig".
3822         * card-util.c (print_name, print_isoname): Use 0 and not LF fro
3823         the max_n arg of tty_print_utf8_string2.
3824         * card-util.c (change_pin): Simplified.  We now have only a PIN
3825         and an Admin PIN.
3826         * ccid-driver.c: Detect GnuPG 1.3 and include appropriate files.
3827         * apdu.c: Ditto.
3828         * app-openpgp.c: Ditto.
3829         * iso7816.c: Ditto.
3830         (generate_keypair): Renamed to ..
3831         (do_generate_keypair): .. this.
3832         * app-common.h [GNUPG_MAJOR_VERSION]: New.
3833         * iso7816.h [GNUPG_MAJOR_VERSION]: Include cardglue.h
3834         * app-openpgp.c (do_change_pin): Make sure CVH1 and CHV2 are
3835         always synced.
3836         (verify_chv2, verify_chv3): New. Factored out common code.
3837         (do_setattr, do_sign, do_auth, do_decipher): Change the names of
3838         the prompts to match that we have only 2 different PINs.
3839         (app_select_openpgp): Check whether the card enforced CHV1.
3840         (convert_sig_counter_value): New. Factor out code from
3841         get_sig_counter.
3842
3843         * Makefile.am (card_support_source): Depend on new AM conditional
3844         to get the ifdef ENABLE_CARD_SUPPORT off the way from source
3845         copied files.
3846         (update-source-from-gnupg-2): Maintainer helper.
3847         
3848 2003-10-01  David Shaw  <dshaw@jabberwocky.com>
3849
3850         * g10.c (main): Add --no-groups to zero --group list.
3851
3852         * encode.c (encode_simple): Allow for 32 bytes (256 bits) of
3853         symmetrically encrypted session key.  Use --s2k-cipher-algo to
3854         choose cipher, rather than the default cipher.
3855
3856         * parse-packet.c (parse_subkeyenc): Give a warning if an
3857         symmetrically encrypted session key is seen without salt.  Show in
3858         --list-packets if a symetrically encrypted session key is present.
3859
3860         * pubkey-enc.c (get_it): Always show cipher-not-in-prefs warning
3861         unless --quiet is set.  Use text name of cipher in warning.
3862
3863 2003-09-30  David Shaw  <dshaw@jabberwocky.com>
3864
3865         * options.h, g10.c (main), mainproc.c (check_sig_and_print): Add
3866         --verify-option show-unusable-uids.
3867
3868         * gpgv.c (check_trustdb_stale): Stub.
3869
3870         * trustdb.c (get_validity): Move the up-to-date check to
3871         check_trustdb_stale (new), so that it can be called before
3872         validity is checked.
3873         
3874         * keylist.c (list_keyblock_print): Disable the overall key
3875         validity display until it can be thought about more.  Use
3876         check_trustdb_stale here to avoid putting the check warning in the
3877         middle of a listed key.
3878
3879         * trustdb.c (init_trustdb): Only verify_own_keys() for those trust
3880         models that it applies to (i.e. classic and OpenPGP).
3881
3882 2003-09-29  Werner Koch  <wk@gnupg.org>
3883
3884         * keygen.c (do_add_key_flags, parse_parameter_usage): Add support
3885         the proposed AUTH key flag.
3886         * getkey.c (fixup_uidnode, merge_selfsigs_main) 
3887         (merge_selfsigs_subkey, premerge_public_with_secret): Ditto.
3888         * keylist.c (print_capabilities): Ditto.
3889
3890         * parse-packet.c (parse_key): Allow to parse the divert-to-card
3891         S2K mode.
3892         * build-packet.c (do_secret_key): Handle divert-to-card S2K
3893         * seckey-cert.c (is_secret_key_protected): Ditto.
3894         (check_secret_key): Ditto.
3895
3896         * keygen.c (do_ask_passphrase): Renamed from ask_passphrase.
3897         * passphrase.c (ask_passphrase): New.
3898
3899 2003-09-28  Werner Koch  <wk@gnupg.org>
3900
3901         * g10.c (main): New commands --card-edit, --card-status and
3902         --change-pin.  New options --ctapi-driver, --pcsc-driver and
3903         --disable-ccid
3904         * options.h (DBG_CARD_IO): New.
3905         * cardglue.c, cardclue.h: Enhanced.
3906         * card-util.c: New. Taken from current the gnupg 1.9 branch.
3907         * app-common.h, app-openpgp.c, iso7816.c, iso7816.h, apdu.c
3908         * apdu.h, ccid-driver.c, ccid-driver.h: New.  Takem from the current
3909         gnupg 1.9 branch withy minor changes to include directives.
3910         * Makefile.am: Added these files.
3911         
3912 2003-09-27  Werner Koch  <wk@gnupg.org>
3913
3914         * sign.c (do_sign) [ENABLE_CARD_SUPPORT]: Divert to card.
3915         * cardglue.c, cardglue.h: New.
3916         * Makefile.am (gpg_LDADD): Added.
3917         (card_support_sources): New.
3918         
3919 2003-09-25  David Shaw  <dshaw@jabberwocky.com>
3920
3921         * options.h, g10.c (main), keylist.c (list_keyblock_print): Add
3922         "show-unusable-uids" list-option to show revoked and/or expired
3923         user IDs.
3924
3925 2003-09-24  David Shaw  <dshaw@jabberwocky.com>
3926
3927         * keyedit.c (show_key_with_all_names): Show names a little neater
3928         by putting the [revoked] or [expired] in the space used for the
3929         [validity].  There is also no point in showing "[unknown]
3930         [revoked]".
3931
3932 2003-09-23  David Shaw  <dshaw@jabberwocky.com>
3933
3934         * sign.c (mk_notation_policy_etc): Capitalize "URL".
3935
3936         * trustdb.c (validate_keys): Give a little more information while
3937         rebuilding trustdb.
3938
3939         * pkclist.c (do_edit_ownertrust): Clarify "don't know".
3940
3941         * g10.c (main): Default to --no-mangle-dos-filenames.
3942
3943         * keydb.h, keyring.c (keyring_search), trustdb.c (search_skipfnc):
3944         Expand the skipfnc to include a pointer to the user ID that
3945         matched.
3946
3947         * getkey.c (skip_disabled): Rename to skip_unusable, and add
3948         checks for expired or revoked user IDs.
3949
3950 2003-09-22  David Shaw  <dshaw@jabberwocky.com>
3951
3952         * g10.c (main): Deprecate --default-comment in favor of
3953         --no-comments.
3954
3955         * options.h, g10.c (main), armor.c (armor_filter): Allow using
3956         --comment multiple times to get multiple Comment: header lines.
3957         --no-comments resets list.
3958
3959 2003-09-11  David Shaw  <dshaw@jabberwocky.com>
3960
3961         * g10.c (main): Trim --help to commonly used options.  Remove -f.
3962
3963 2003-09-08  David Shaw  <dshaw@jabberwocky.com>
3964
3965         * g10.c (main): Error out if --multifile is used with the commands
3966         that don't support it yet (--sign, --clearsign, --detach-sign,
3967         --symmetric, and --store).
3968
3969         * g10.c (main): Add --multifile as an alias to turn --encrypt into
3970         --encrypt-files (plus --verify-files, --decrypt-files).
3971
3972         * encode.c (use_mdc), g10.c (main): Use RFC1991 and RFC2440
3973         directly to check for MDC usability.  Do not set the force_mdc or
3974         disable_mdc flags since there is no point any longer.
3975
3976 2003-09-04  David Shaw  <dshaw@jabberwocky.com>
3977
3978         * armor.c (parse_hash_header, armor_filter), g10.c (print_hex,
3979         print_mds), pkclist.c (algo_available): Drop TIGER/192 support.
3980
3981 2003-09-03  David Shaw  <dshaw@jabberwocky.com>
3982
3983         * keyedit.c (show_key_with_all_names): Fix assertion failure when
3984         using toggle to see a secret key.  Reported by Maxim Britov.
3985
3986 2003-08-31  David Shaw  <dshaw@jabberwocky.com>
3987
3988         * g10.c (add_keyserver_url), keyedit.c (keyedit_menu), sign.c
3989         (mk_notation_policy_etc): Clarify a few strings.  It's a
3990         "preferred keyserver URL".
3991
3992         * g10.c (main): Use "keyserver-url" instead of
3993         "preferred-keyserver" for the sake of short and simple commands.
3994
3995 2003-08-30  David Shaw  <dshaw@jabberwocky.com>
3996
3997         * main.h, keygen.c (keygen_add_keyserver_url): Signature callback
3998         for adding a keyserver URL.
3999
4000         * keyedit.c (keyedit_menu, menu_set_keyserver_url): New command to
4001         set preferred keyserver to specified (or all) user IDs.
4002
4003         * build-packet.c (build_sig_subpkt): Set preferred keyserver flag
4004         while building a preferred keyserver subpacket.
4005
4006         * keylist.c (show_policy_url, show_keyserver_url): URLs might be
4007         UTF8.
4008
4009         * keyedit.c (menu_addrevoker): Fix leaking a few bytes.
4010
4011 2003-08-29  David Shaw  <dshaw@jabberwocky.com>
4012
4013         * keyedit.c (show_key_with_all_names): Use list-option
4014         show-long-keyid in main --edit-key display.
4015
4016         * keyedit.c (print_and_check_one_sig): Use list-option
4017         show-long-keyid in --edit-key "check" function.
4018
4019 2003-08-28  David Shaw  <dshaw@jabberwocky.com>
4020
4021         * passphrase.c (agent_send_all_options): Make use of $GPG_TTY.
4022
4023         * g10.c (main): Disable use-agent if passphrase-fd is given
4024         later. Suggested by Kurt Garloff.
4025
4026         * exec.c, g10.c, gpgv.c, passphrase.c, photoid.c:
4027         s/__MINGW32__/_WIN32/ to help building on native Windows
4028         compilers.  Requested by Brian Gladman.  From Werner on stable
4029         branch.
4030
4031 2003-08-25  David Shaw  <dshaw@jabberwocky.com>
4032
4033         * options.h, g10.c (main): Add list-option
4034         list-preferred-keyserver.
4035
4036         * keyedit.c (change_passphrase): When responding 'no' to the blank
4037         passphrase question, re-prompt for a new passphrase.  This is bug
4038         #202.
4039
4040         * mainproc.c (check_sig_and_print): Use two different preferred
4041         keyserver displays - one if the key is not present (to tell the
4042         user where to get the key), the other if it is present (to tell
4043         the user where the key can be refreshed).
4044
4045         * packet.h, parse-packet.c (parse_signature): Set flag if a
4046         preferred keyserver is present.
4047
4048         * keylist.c (list_keyblock_print): Show keyserver url in listings
4049         with list-option show-keyserver-url.
4050
4051 2003-08-24  David Shaw  <dshaw@jabberwocky.com>
4052
4053         * Makefile.am: Use NETLIBS instead of EGDLIBS.
4054
4055         * mainproc.c (check_sig_and_print): Get the uid validity before
4056         printing any sig results to avoid munging the output with trustdb
4057         warnings.
4058
4059         * g10.c (main): Don't include --show-keyring in --help as it is
4060         deprecated.
4061
4062 2003-08-21  David Shaw  <dshaw@jabberwocky.com>
4063
4064         * gpgv.c: Remove extra semicolon (typo).
4065
4066     &nb