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