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