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