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