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