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