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