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