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