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