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