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