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