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