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