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