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