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