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