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