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