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