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