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