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