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