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