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