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