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