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