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