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