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