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