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