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