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