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