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