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