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