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