Fix a couple of minor bugs.
[gnupg.git] / g10 / ChangeLog
1 2009-06-24  Werner Koch  <wk@g10code.com>
2
3         * passphrase.c (passphrase_to_dek): Do not deref a PW of NULL.
4         * revoke.c (gen_revoke): Remove unused malloc of PK.
5
6 2009-06-17  Werner Koch  <wk@g10code.com>
7
8         * parse-packet.c (parse): Use a casted -1 instead of a 32 bit
9         constant to check for a garbled package.  Fixes bug#1040.
10
11 2009-06-05  David Shaw  <dshaw@jabberwocky.com>
12
13         * gpg.c (main): Remove Camellia restriction.
14
15 2009-06-02  Werner Koch  <wk@g10code.com>
16
17         * gpgv.c (tty_cleanup_after_signal): Add new stub.
18
19 2009-05-22  Werner Koch  <wk@g10code.com>
20
21         * signal.c (got_fatal_signal): Call tty_cleanup_after_signal.
22
23 2009-05-20  Werner Koch  <wk@g10code.com>
24
25         * gpg.c (main): Fix --fingerprint/--with-fingerprint command
26         detection.  Fixes bug#1044.
27
28 2009-05-11  Werner Koch  <wk@g10code.com>
29
30         * apdu.c (send_le): Replace log_error by log_info.  Fixes bug#1043.
31
32         * skclist.c (build_sk_list): Use log_info for "duplicated entry".
33         Fixes bug#1045.
34
35         * encode.c (encode_simple, encode_crypt): Print empty file warning
36         only in verbose mode.  Closes bug#1039.
37         * sign.c (write_plaintext_packet): 
38
39 2009-05-06  Werner Koch  <wk@g10code.com>
40
41         * keyring.c (keyring_get_keyblock): Fix memory leak due to
42         ring_trust packets.  Fixes bug#1034.
43
44         * getkey.c (finish_lookup): Remove dead code.
45
46 2009-05-05  Werner Koch  <wk@g10code.com>
47
48         * keygen.c (read_parameter_file): Add keyword "Creation-Date".
49         (output_control_s): s/create/creation/.
50         (enum para_name): Add pCREATIONDATE, pKEYCREATIONDATE.  Remove
51         pCREATETIME.
52         (generate_keypair): Do not set old pCREATETIME.
53         (parse_creation_string): New.
54         (proc_parameter_file): Set pCREATIONDATE.
55         (do_generate_keypair): Remove arg TIMESTAMP. Set it using
56         pKEYCREATIONDATE.
57         (get_parameter_u32): Set a default pKEYCREATIONDATE.
58
59         * tdbio.c (lookup_hashtable): Add const to function args.
60         (cmp_trec_fpr): Ditto.
61         (tdbio_search_trust_byfpr): Remove cast.
62
63         * parse-packet.c (parse): Remove special treatment for compressed
64         new style packets.  Fixes bug#931.
65         
66 2009-04-03  Werner Koch  <wk@g10code.com>
67
68         * gpgv.c (main): Pass readonly flag to keydb_add_resource.
69         * keydb.c (keydb_add_resource): Add arg READONLY.
70
71 2009-03-20  David Shaw  <dshaw@jabberwocky.com>
72
73         * keyring.c (rename_tmp_file): Force a fsync (via iobuf_ioctl) on
74         secret keyring files to be extra safe on filesystems that may not
75         sync data and metadata together (ext4).  Also check return code
76         from the cache invalidation to make sure we're safe over NFS and
77         similar.
78
79 2009-03-14  David Shaw  <dshaw@jabberwocky.com>
80
81         * gpgv.c (strusage): Fix name of program in "Syntax" line.
82
83 2009-02-09  Werner Koch  <wk@g10code.com>
84
85         * keylist.c (print_capabilities): Take care of cert-only keys.
86         Fixes bug#998.
87
88 2009-02-03  David Shaw  <dshaw@jabberwocky.com>
89
90         * keyserver.c (keyserver_typemap): gpgkeys_hkp handles hkps as
91         well.
92
93 2008-12-21  David Shaw  <dshaw@jabberwocky.com>
94
95         * gpg.c (main): Properly handle UTF8 usernames with --sign-key and
96         --lsign-key.
97
98 2008-12-11  Werner Koch  <wk@g10code.com>
99
100         * sig-check.c (check_revocation_keys): Close message digest.
101         (signature_check2): Switch to SHA-1 for SIG_ID computation.  This
102         is to match 2.0.10.
103
104 2008-12-09  Werner Koch  <wk@g10code.com>
105
106         * keygen.c (proc_parameter_file): Check that key and subkey usages
107         are allowed.
108
109 2008-11-18  David Shaw  <dshaw@jabberwocky.com>
110
111         * trustdb.c (validate_one_keyblock): Fix the trust signature
112         calculations so that we lower the trust depth of signatures to fit
113         within the current chain, rather than discarding any signature
114         that does not fit within the trust depth.
115
116 2008-10-03  David Shaw  <dshaw@jabberwocky.com>
117
118         * main.h, mainproc.c (check_sig_and_print),
119          keylist.c (list_keyblock_print), pkclist.c (do_edit_ownertrust),
120          keyedit.c (menu_showphoto), photoid.c (generate_photo_id,
121          show_photos), misc.c (pct_expando): Add %v and %V expandos so
122          that displaying photo IDs can show the attribute validity
123          tag (%v) and string (%V).  Originally by Daniel Gillmor.
124
125 2008-09-24  David Shaw  <dshaw@jabberwocky.com>
126
127         * keyedit.c (keyedit_menu): Fix bug where a modified keyring loses
128         its modified status after a "clean" or "minimize" that doesn't
129         need to do anything.
130
131 2008-09-23  David Shaw  <dshaw@jabberwocky.com>
132
133         * pkclist.c (select_algo_from_prefs): Redo function to rank prefs
134         and pick a consensus winner across all keys.
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.  Use SIZEOF_TIME_T for the 2039--2106 check.
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-04-30  Werner Koch  <wk@g10code.com>
152
153         * getkey.c (parse_auto_key_locate): Ignore nodefault and local
154         methods.
155
156 2008-04-17  David Shaw  <dshaw@jabberwocky.com>
157
158         * parse-packet.c (parse_key): Add constant for Camellia-192.
159
160 2008-04-12  David Shaw  <dshaw@jabberwocky.com>
161
162         * getkey.c (merge_selfsigs_subkey): If there are multiple 0x19
163         backsigs, take the most recent one.
164
165 2008-03-25  Werner Koch  <wk@g10code.com>
166
167         * keyserver.c (parse_keyrec): Take care of char defaulting to
168         unsigned when using hextobyte.
169
170         * options.skel: Make the default keyserver keys.gnupg.net.
171
172 2008-03-23  David Shaw  <dshaw@jabberwocky.com>
173
174         * import.c (collapse_uids): Fix bug 894: possible memory
175         corruption around deduplication of user IDs.
176
177 2008-03-17  David Shaw  <dshaw@jabberwocky.com>
178
179         * parse-packet.c (parse_key): Parse a secret key encrypted with
180         Camellia.
181
182 2008-02-09  Marcus Brinkmann  <marcus@g10code.de>
183
184         * gpg.c (main): New variable default_configname.  Use it if
185         save_configname is NULL (can happen if default configfile does
186         not exist).  Move default configname determination to ...
187         (get_default_configname): ... this new function.
188
189 2008-01-26  Werner Koch  <wk@g10code.com>
190
191         * card-util.c (get_manufacturer): Add vendor 004 and support for
192         the unmanaged range.
193
194 2007-12-14  Werner Koch  <wk@g10code.com>
195
196         * gpg.c (main): Set opt.no_homedir_creation already on the first
197         option parsing pass.  This is required so that the gpg_dearmor
198         tool won't create a ~/.gnupg.
199
200 2007-12-12  Werner Koch  <wk@g10code.com>
201
202         * misc.c (print_pubkey_algo_note): Print a warning for type 20 keys.
203         (openpgp_pk_test_algo, openpgp_pk_algo_usage): Allow type 20 fro
204         encryption only with option --rfc2440.
205         * mainproc.c (proc_pubkey_enc): Ditto.
206
207 2007-12-12  David Shaw  <dshaw@jabberwocky.com>
208
209         * trustdb.c (sanitize_regexp): New.  Protect against dangerous
210         regexps (malloc bombs) by force-commenting any characters aside
211         from the ones we explicitly want.
212         (check_regexp): Use it here before passing the regexp to
213         regcomp().
214
215 2007-12-11  Werner Koch  <wk@g10code.com>
216
217         * mainproc.c (proc_pubkey_enc): Allow type 20 Elgamal key for
218         decryption.
219
220 2007-12-10  Werner Koch  <wk@g10code.com>
221
222         * cardglue.h (gpg_error_from_syserror): New.
223
224         * app-openpgp.c (do_decipher): Take care of cryptograms shorter
225         that 128 bytes.  Fixes bug#851.
226
227         * import.c (auto_create_card_key_stub):  Do not clear the entire
228         fingerprint.  This finally makes the stub creation work.  My past
229         tests seemed to work because there was a key with a all zero
230         fingerprint available (Elgamal signing keys).
231
232 2007-12-08  Werner Koch  <wk@g10code.com>
233
234         * misc.c (openpgp_pk_algo_usage): Allow Elgamal type 20 for
235         encryption.
236
237 2007-12-03  Werner Koch  <wk@g10code.com>
238
239         * keygen.c (ask_key_flags): Add a translation remark and implement
240         a workaround.
241
242 2007-11-28  David Shaw  <dshaw@jabberwocky.com>
243
244         * sig-check.c (do_check): Code to try both the incorrect and
245         correct SHA-224 DER prefixes when verifying a signature.  See the
246         change itself for more discussion.
247
248         * main.h, seskey.c (do_encode_md): Rename to pkcs1_encode_md and
249         make non-static.
250
251         * gpg.c (print_algo_names): New.
252         (list_config): Use it here for the "ciphername" and "digestname"
253         config items so we can get a script-parseable list of the names.
254
255 2007-11-19  Werner Koch  <wk@g10code.com>
256
257         * keyedit.c (keyedit_menu): String grammar fix.
258
259 2007-11-12  Werner Koch  <wk@g10code.com>
260
261         * status.c (do_get_from_fd, do_shm_get): s/bool/getbool/ to
262         overcome problems with Mac OS 10.5 which seems to include
263         stdbool.h silently.
264
265 2007-10-27  David Shaw  <dshaw@jabberwocky.com>
266
267         * parse-packet.c (parse_onepass_sig): Sigclass is hex, so include
268         the 0x.
269
270         * keyserver.c (keyserver_spawn): Cosmetic, but looks cleaner.
271
272 2007-10-23  Werner Koch  <wk@g10code.com>
273
274         Switched entire package to GPLv3+.
275
276 2007-10-22  David Shaw  <dshaw@jabberwocky.com>
277
278         * gpg.c (main): Add --require-cross-certification to
279         --openpgp/--rfc4880 mode.
280
281         * gpg.c (main): Disable --rfc2440-text and --force-v3-sigs by
282         default.  Enable --require-cross-certification by default.
283         --openpgp (--rfc4880) is the same as --rfc2440 except with
284         "--enable-dsa2 --no-rfc2440-text --escape-from-lines".
285
286 2007-10-21  David Shaw  <dshaw@jabberwocky.com>
287
288         * misc.c (compliance_option_string, compliance_failure): Minor
289         cleanup.
290
291         * armor.c (is_armor_header): Comment about 4880.
292
293 2007-10-17  David Shaw  <dshaw@jabberwocky.com>
294
295         * options.h, gpg.c (main), misc.c (compliance_option_string): Add
296         --rfc4880, and make --openpgp an alias to it.  --rfc2440 now
297         stands alone.  For now, use the old 2440 defaults for 4880.
298
299         * keyedit.c (keyedit_menu): Use compliance_option_string() instead
300         of printing the compliance modes here.
301
302 2007-09-02  David Shaw  <dshaw@jabberwocky.com>
303
304         * import.c (collapse_uids): Significant speedup for de-duping user
305         IDs.
306
307 2007-08-24  Werner Koch  <wk@g10code.com>
308
309         * keyring.c (keyring_register_filename): Use same_file_p.
310         Suggested by Kurt Fitzner.
311
312 2007-07-19  David Shaw  <dshaw@jabberwocky.com>
313
314         * gpg.c (main): Fix typo.  Noted by John Clizbe.
315
316         * armor.c (parse_header_line): Improve test so that the header
317         test only allows "Hash" in the signed data section.
318
319 2007-07-18  David Shaw  <dshaw@jabberwocky.com>
320
321         * armor.c (is_armor_tag): New.  Detect if an armor header matches
322         2440bis-21.
323         (parse_header_line): Call it here, as bis-21 requires warning the
324         user (but continuing to process the message) when seeing an
325         unknown header.
326
327 2007-07-09  Werner Koch  <wk@g10code.com>
328
329         * gpg.c: Better print an extra warning if Camellia has been
330         configured.
331
332 2007-07-06  David Shaw  <dshaw@jabberwocky.com>
333
334         * encode.c (encode_crypt): Missed one call to
335         setup_plaintext_name().  This is bug#809.
336
337 2007-06-12  David Shaw  <dshaw@jabberwocky.com>
338
339         * sign.c (mk_notation_policy_etc): expect all sigs that this is
340         called for are >=v4.
341         (write_signature_packets, make_keysig_packet): Only call it for
342         >=v4 sigs.  This allows --force-v3-sigs and --force-v4-certs to
343         enable or disable notations, policies, and keyserver URLs.  This
344         is bug#800.
345
346 2007-05-09  Werner Koch  <wk@g10code.com>
347
348         * openfile.c (overwrite_filep, open_outfile) [W32]: Need to use
349         just "nul".  Though, I am pretty sure that some MSDOS versions
350         grok the extra /dev/.
351
352 2007-05-07  Werner Koch  <wk@g10code.com>
353
354         * openfile.c (open_outfile, overwrite_filep) [W32]: Use "/dev/nul".
355
356 2007-04-16  David Shaw  <dshaw@jabberwocky.com>
357
358         * packet.h, mainproc.c (reset_literals_seen): New function to
359         reset the literals count.
360
361         * verify.c (verify_one_file), decrypt.c (decrypt_messages): Call
362         it here so we allow multiple literals in --multifile mode (in
363         different files - not concatenated together).
364
365         * gpg.c, pkclist.c: #include <strings.h> for strcasecmp if it is
366         present.  Note that autoconf protects us against a strings.h that
367         cannot be used together with string.h.
368
369 2007-04-03  David Shaw  <dshaw@jabberwocky.com>
370
371         * parse-packet.c (parse_marker): New.  Enforce that the marker
372         contains 'P', 'G', 'P', and nothing but.
373         (parse): Call it here.
374         (skip_packet): No longer need to handle marker packets here.
375
376 2007-03-14  David Shaw  <dshaw@jabberwocky.com>
377
378         * keyserver.c: Windows Vista doesn't grok X_OK and so fails
379         access() tests.  Previous versions interpreted X_OK as F_OK
380         anyway, so we'll just use F_OK directly.
381
382 2007-03-08  Werner Koch  <wk@g10code.com>
383
384         * plaintext.c (handle_plaintext): Add two extra fflush for stdout.
385
386 2007-03-06  David Shaw  <dshaw@jabberwocky.com>
387
388         * keyedit.c (keyedit_menu): If we modify the keyblock (via
389         fix_keyblock() or collapse_uids()) make sure we reprocess the
390         keyblock so the flags are correct.  Noted by Robin H. Johnson.
391
392         * getkey.c (fixup_uidnode): Properly clear flags that don't apply
393         to us (revoked, expired) so that we can reprocess a uid.
394
395 2007-03-01  David Shaw  <dshaw@jabberwocky.com>
396
397         * options.h, gpg.c (main), mainproc.c (check_sig_and_print): Allow
398         multiple sig verification again as this is protected via the
399         multiple-messages code.
400
401 2007-02-26  Werner Koch  <wk@g10code.com>
402
403         * gpg.c (main): Add verify option show-primary-uid-only.
404         * options.h (VERIFY_SHOW_PRIMARY_UID_ONLY): New.
405         * mainproc.c (check_sig_and_print): Implement it.
406
407         * status.h (STATUS_ERROR): New status code.
408         * status.c (get_status_string): Ditto.
409         * mainproc.c (proc_plaintext): Emit it if multiple messages are
410         detected.
411
412 2007-02-20  David Shaw  <dshaw@jabberwocky.com>
413
414         * mainproc.c (literals_seen): New.
415         (proc_plaintext): Error out if more than one plaintext packet is
416         encountered
417         
418         * options.h, gpg.c: New option --allow-multiple-messages and --no
419         variant.
420
421 2007-02-13  David Shaw  <dshaw@jabberwocky.com>
422
423         * parse-packet.c (parse_signature): It's hex.
424
425         * getkey.c (merge_selfsigs_subkey): Avoid listing the contents of
426         a backsig when list mode is on.  Noted by Timo Schulz.
427
428 2007-02-04  Werner Koch  <wk@g10code.com>
429
430         * parse-packet.c (parse_signature): Limit bytes read for an
431         unknown alogorithm.  Fixes Debian bug#402592.
432
433 2007-02-01  David Shaw  <dshaw@jabberwocky.com>
434
435         * main.h, keygen.c (ask_expire_interval, parse_expire_string):
436         Pass in the time to use to calculate the expiration offset, rather
437         than querying it internally.  Change all callers.
438
439 2007-01-31  David Shaw  <dshaw@jabberwocky.com>
440
441         * keygen.c (do_generate_keypair, proc_parameter_file)
442         (generate_keypair, generate_subkeypair): Pass a timestamp through
443         to all the gen_xxx functions.
444
445         * keyedit.c (sign_uids): Another multiple to single timestamp
446         operation.
447
448         * sign.c (write_plaintext_packet): Take timestamp from outside.
449         Change all callers.
450         (sign_file, clearsign_file, sign_symencrypt_file): Calculate one
451         timestamp for the whole transaction.  Different timestamps for
452         each step can leak performance information.
453
454         * main.h, keygen.c (ask_expiredate), keyedit.c (menu_expire):
455         Remove the need for ask_expiredate().
456
457 2007-01-30  David Shaw  <dshaw@jabberwocky.com>
458
459         * keygen.c (make_backsig, write_direct_sig, write_selfsigs)
460         (write_keybinding): Have the various selfsigs created during key
461         generation use the timestamp of their parent key.  This helps
462         avoid leaking information about the performance of the machine
463         where the keys were generated.  Noted by Christian Danner.
464
465 2007-01-15  Werner Koch  <wk@g10code.com>
466
467         * parse-packet.c (read_protected_v3_mpi): Make sure to stop
468         reading even for corrupted packets.
469         * keygen.c (generate_user_id): Need to allocate one byte more.
470         Reported by Felix von Leitner.
471
472 2006-12-14  David Shaw  <dshaw@jabberwocky.com>
473
474         * options.skel: Tweak some examples to match reality and update
475         the RFC for CERT now that it is out of draft.
476
477 2006-12-13  David Shaw  <dshaw@jabberwocky.com>
478
479         * Makefile.am: Install options.skel via dist_pkgdata_DATA so that
480         "make uninstall" works properly.
481
482 2006-12-13  Werner Koch  <wk@g10code.com>
483
484         * gpgv.c, gpg.c: Do not include the now removed g10defs.h file.
485
486 2006-12-11  Werner Koch  <wk@g10code.com>
487
488         * seskey.c (encode_session_key, do_encode_md): Use new
489         mpi_nlimb_hint_from_nbytes function.
490         * sign.c (do_sign): Ditto.
491
492         * Makefile.am (AM_CPPFLAGS): Define GNUPG_LIBDIR.
493         * gpgv.c (i18n_init): s/G10_LOCALEDIR/LOCALEDIR/.
494         * gpg.c (i18n_init): Ditto.
495
496 2006-12-07  Werner Koch  <wk@g10code.com>
497
498         * Makefile.am (AM_CPPFLAGS): Define GNUPG_DATADIR.
499         * openfile.c (copy_options_file): Use log_info and not log_error
500         to avoid error returns in case of a missing skeleton file.
501
502 2006-12-04  Werner Koch  <wk@g10code.com>
503
504         * filter.h (armor_filter_context_t): New field REFCOUNT.
505         * armor.c (new_armor_context, release_armor_context) 
506         (push_armor_filter): New.
507         (armor_filter): Call releae_armor_context for IOBUFCTRL_FREE.
508         * import.c (import): Use the new function here instead of the
509         old hack using the iobuf_push_filter2. 
510         * keyserver.c (keyserver_spawn): Ditto.
511
512 2006-12-03  Werner Koch  <wk@g10code.com>
513
514         * keyedit.c (menu_clean): Made strings translatable.
515
516 2006-12-03  David Shaw  <dshaw@jabberwocky.com>
517
518         * keyedit.c (menu_clean): Show "already minimized" rather than
519         "already clean" when a minimized key is minimized again.  From
520         Dirk Traulsen.
521
522 2006-12-02  David Shaw  <dshaw@jabberwocky.com>
523
524         * options.h, gpg.c (main), passphrase.c (passphrase_to_dek): Add
525         --passphrase-repeat option to control how many times gpg will
526         re-prompt for a passphrase to ensure the user has typed it
527         correctly.  Defaults to 1.
528
529 2006-12-02  Werner Koch  <wk@g10code.com>
530
531         * encr-data.c: Allocate DFX context on the heap and not on the
532         stack.  Changes at several places.  Fixes CVE-2006-6235.
533
534 2006-11-27  Werner Koch  <wk@g10code.com>
535
536         * openfile.c (ask_outfile_name): Fixed buffer overflow occurring
537         if make_printable_string returns a longer string.  Fixes bug 728.
538
539 2006-10-23  Werner Koch  <wk@g10code.com>
540
541         * gpg.c (main): New command --gpgconf-list.
542
543 2006-10-12  David Shaw  <dshaw@jabberwocky.com>
544
545         * parse-packet.c (parse_symkeyenc): Show the unpacked as well as
546         the packed s2k iteration count.
547
548         * main.h, options.h, gpg.c (encode_s2k_iterations, main),
549         passphrase.c (hash_passphrase): Add --s2k-count option to specify
550         the number of s2k hash iterations.
551
552 2006-10-06  David Shaw  <dshaw@jabberwocky.com>
553
554         * keyserver.c (keyserver_spawn): Write the 16-digit keyid rather
555         than whatever key selector the user used on the command line.
556
557 2006-10-02  Werner Koch  <wk@g10code.com>
558
559         * encr-data.c (decrypt_data, mdc_decode_filter): Check the MDC
560         right here and don't let parse-packet handle the MDC.
561
562 2006-08-21  Werner Koch  <wk@g10code.com>
563
564         * skclist.c (is_insecure): Also test for uppercase version of the
565         insecure string.
566
567 2006-07-31  Werner Koch  <wk@g10code.com>
568
569         * openfile.c (open_outfile) [USE_ONLY_8DOT3]: Search backwards for
570         the dot.  Fixes bug 654.
571
572         * passphrase.c (agent_open): Use log_info instead of log_error to
573         allow a fallback without having gpg return an error code.  Fixes
574         bug #655.
575
576         * encode.c (encode_crypt_files): Invalidate the whole fd cache.
577         This is a workaround for problems in iobuf's stupid fd cache.
578         * decrypt.c (decrypt_messages): Ditto.
579         * verify.c (verify_files): Ditto.
580
581 2006-07-26  Werner Koch  <wk@g10code.com>
582
583         * keygen.c (gen_card_key_with_backup): Initialize sk_{un}protected.
584
585         * import.c (import): Initialize KEYBLOCK.
586
587         * pkclist.c (edit_ownertrust): Intialize trust to avoid gcc
588         warning.
589
590         * parse-packet.c (parse_comment): Cap comments at 65k.
591         (parse_gpg_control): Skip too large control packets.
592
593 2006-06-28  David Shaw  <dshaw@jabberwocky.com>
594
595         * keydb.h, pkclist.c (select_algo_from_prefs, algo_available):
596         Pass a union for preference hints rather than doing void * games.
597
598         * sign.c (sign_file): Use it here.
599
600         * sign.c (sign_file): When signing with multiple DSA keys, one
601         being DSA1 and one being DSA2 and encrypting at the same time, if
602         the recipient preferences give a hash that can work with the DSA2
603         key, then allow the DSA1 key to be promoted rather than giving up
604         and using hash_for().
605
606         * pkclist.c (algo_available): Automatically enable DSA2 mode when
607         handling a key that clearly isn't DSA1 (i.e. q!=160).
608
609 2006-06-28  Werner Koch  <wk@g10code.com>
610
611         * import.c (check_prefs_warning): Fix change for better
612         translatability.
613
614         * app-openpgp.c (do_writekey): Fixed computation of memmove
615         length.  This led to garbled keys if E was larger than one byte.
616         Thanks to Achim Pietig for hinting at the garbled E.
617
618 2006-06-27  Werner Koch  <wk@g10code.com>
619
620         * gpg.c (reopen_std) [HAVE_W32_SYSTEM]: Do not use it.
621
622 2006-06-22  David Shaw  <dshaw@jabberwocky.com>
623
624         * options.h, gpg.c (main), keygen.c (keygen_upd_std_prefs,
625         keygen_add_std_prefs, proc_parameter_file): Add
626         --default-keyserver-url to specify a keyserver URL at key
627         generation time, and "Keyserver:" keyword for doing the same
628         through a batch file.
629
630         * sign.c (do_sign): Accept a truncated hash even for DSA1 keys (be
631         liberal in what you accept, etc).
632
633 2006-06-12  David Shaw  <dshaw@jabberwocky.com>
634
635         * import.c (import_one): Add a flag (from_sk) so we don't check
636         prefs on an autoconverted public key.  The check should only
637         happen on the sk side.  Noted by Dirk Traulsen.
638
639 2006-06-09  David Shaw  <dshaw@jabberwocky.com>
640
641         * keygen.c (gen_card_key): Add optional argument to return a
642         pointer (not a copy) of the stub secret key for the secret key we
643         just generated on the card.
644         (generate_card_subkeypair): Use it here so that the signing key on
645         the card can use the card to generate the 0x19 backsig on the
646         primary key.  Noted by Janko Heilgeist and Jonas Oberg.
647
648         * parse-packet.c (parse_user_id): Cap the user ID size at 2048
649         bytes.  This prevents a memory allocation attack with a very large
650         user ID.  A very large packet length could even cause the
651         allocation (a u32) to wrap around to a small number.  Noted by
652         Evgeny Legerov on full-disclosure.
653
654 2006-05-25  David Shaw  <dshaw@jabberwocky.com>
655
656         * keygen.c (gen_dsa): Allow generating DSA2 keys
657         (allow specifying sizes > 1024 when --enable-dsa2 is set).  The
658         size of q is set automatically based on the key size.
659         (ask_keysize, generate_keypair): Ask for DSA size when
660         --enable-dsa2 is set.
661
662 2006-05-24  David Shaw  <dshaw@jabberwocky.com>
663
664         * exec.c (make_tempdir): Fix bug with a temporary directory on
665         Win32 that is over 256 bytes long.  Noted by Israel G. Lugo.
666
667 2006-05-23  David Shaw  <dshaw@jabberwocky.com>
668
669         * gpg.c (reopen_std): New function to reopen fd 0, 1, or 2 if we
670         are called with them closed.  This is to protect our
671         keyring/trustdb files from corruption if they get attached to one
672         of the standard fds.  Print a warning if possible that this has
673         happened, and fail completely if we cannot reopen (should never
674         happen).
675         (main): Call it here.
676
677 2006-05-22  David Shaw  <dshaw@jabberwocky.com>
678
679         * parse-packet.c (dump_sig_subpkt, parse_signature),
680         build-packet.c (build_sig_subpkt_from_sig), getkey.c
681         (fixup_uidnode, merge_selfsigs_main, merge_selfsigs_subkey),
682         keygen.c (keygen_add_key_expire): Fix meaning of key expiration
683         and sig expiration subpackets - zero means "never expire"
684         according to 2440, not "expire instantly".
685
686         * getkey.c (get_pubkey_byname), import.c (import_one): Fix key
687         selection problem when auto-key-locate returns a list of keys, not
688         all of which are usable (revoked, expired, etc).  Noted by Simon
689         Josefsson.
690
691 2006-04-26  David Shaw  <dshaw@jabberwocky.com>
692
693         * keyserver.c (direct_uri_map): New.
694         (keyserver_spawn): Used here to add "_uri" to certain gpgkeys_xxx
695         helpers when the meaning is different if a path is provided
696         (i.e. ldap).
697         (keyserver_import_cert): Show warning if there is a CERT
698         fingerprint, but no --keyserver set.
699
700 2006-04-22  David Shaw  <dshaw@jabberwocky.com>
701
702         * keyserver.c: Fix build problem with platforms that stick libcurl
703         in a place not in the regular include search path.
704
705 2006-04-20  David Shaw  <dshaw@jabberwocky.com>
706
707         * options.h, gpg.c (main): Add --enable-dsa2 and --disable-dsa2.
708         Defaults to disable.
709
710         * pkclist.c (algo_available): If --enable-dsa2 is set, we're
711         allowed to truncate hashes to fit DSA keys.
712
713         * sign.c (match_dsa_hash): New.  Return the best match hash for a
714         given q size.
715         (do_sign, hash_for, sign_file): When signing with a DSA key, if it
716         has q==160, assume it is an old DSA key and don't allow truncation
717         unless --enable-dsa2 is also set.  q!=160 always allows truncation
718         since they must be DSA2 keys.
719         (make_keysig_packet): If the user doesn't specify a
720         --cert-digest-algo, use match_dsa_hash to pick the best hash for
721         key signatures.
722
723 2006-04-19  David Shaw  <dshaw@jabberwocky.com>
724
725         * gpg.c (print_mds), armor.c (armor_filter, parse_hash_header):
726         Add SHA-224.
727
728         * sign.c (write_plaintext_packet), encode.c (encode_simple):
729         Factor common literal packet setup code from here, to...
730
731         * main.h, plaintext.c (setup_plaintext_name): Here. New. Make sure
732         the literal packet filename field is UTF-8 encoded.
733
734         * options.h, gpg.c (main): Make sure --set-filename is UTF-8
735         encoded and note when filenames are already UTF-8.
736
737 2006-04-18  David Shaw  <dshaw@jabberwocky.com>
738
739         * keyedit.c (menu_backsign): Give some more verbose errors when we
740         have no need to backsign.
741
742 2006-04-11  David Shaw  <dshaw@jabberwocky.com>
743
744         * options.skel, photoid.c (get_default_photo_command): Find an
745         image viewer at runtime.  Seems FC5 doesn't have xloadimage.
746
747 2006-04-08  David Shaw  <dshaw@jabberwocky.com>
748
749         * getkey.c (parse_auto_key_locate): Fix dupe-removal code.
750
751         * keyedit.c (menu_backsign): Allow backsigning even if the secret
752         subkey doesn't have a binding signature.
753
754         * armor.c (radix64_read): Don't report EOF when reading only a pad
755         (=) character.  The EOF actually starts after the pad.
756
757         * gpg.c (main): Make --export, --send-keys, --recv-keys,
758         --refresh-keys, and --fetch-keys follow their arguments from left
759         to right.  Suggested by Peter Palfrader.
760
761 2006-04-08  Werner Koch  <wk@g10code.com>
762
763         * mainproc.c (list_node): Print ring trust value only if not empty
764         and --with-colons has been given.
765
766 2006-04-05  Werner Koch  <wk@g10code.com>
767
768         * getkey.c (user_id_not_found_utf8): New.
769         (get_primary_uid, get_user_id): Use it.  Fixes Debian bug #205028
770         in the right way.
771
772 2006-04-03  Werner Koch  <wk@g10code.com>
773
774         * import.c (check_prefs_warning): Merged strings for better
775         translation.
776
777         * gpg.c (main) [__GLIBC__]: Default to libpcsclite.so.1.
778
779         * status.h, status.c (STATUS_BEGIN_SIGNING): New.  Suggested by
780         Daiki Ueno.
781         * textfilter.c (copy_clearsig_text): Issue new status code.
782         * sign.c (sign_file, sign_symencrypt_file): Ditto.
783
784 2006-03-31  David Shaw  <dshaw@jabberwocky.com>
785
786         * getkey.c (get_pubkey_byname): Fix missing auto_key_retrieve
787         unlock.  Fix strings to not start with a capital letter as per
788         convention.
789
790 2006-03-30  David Shaw  <dshaw@jabberwocky.com>
791
792         * main.h, seskey.c (encode_md_value): Modify to allow a q size
793         greater than 160 bits as per DSA2.  This will allow us to verify
794         and issue DSA2 signatures for some backwards compatibility once we
795         start generating DSA2 keys.     
796         * sign.c (do_sign), sig-check.c (do_check): Change all callers.
797
798         * sign.c (do_sign): Enforce the 160-bit check for new signatures
799         here since encode_md_value can handle non-160-bit digests now.
800         This will need to come out once the standard for DSA2 is firmed
801         up.
802
803 2006-03-28  Werner Koch  <wk@g10code.com>
804
805         * openfile.c (overwrite_filep): Fix small cpr issue.  Noted by
806         Daiki Ueno.
807
808 2006-03-22  David Shaw  <dshaw@jabberwocky.com>
809
810         * getkey.c (parse_auto_key_locate): Silently strip out duplicates
811         rather than causing an error.
812
813 2006-03-22  Werner Koch  <wk@g10code.com>
814
815         * sig-check.c (signature_check2): Changed warning URL to include faq.
816         * misc.c (idea_cipher_warn): Ditto.
817
818 2006-03-22  David Shaw  <dshaw@jabberwocky.com>
819
820         * mainproc.c (get_pka_address): Fix bug introduced as part of
821         sig_to_notation conversion.  Noted by Peter Palfradrer.
822
823 2006-03-21  Werner Koch  <wk@g10code.com>
824
825         * cardglue.c (agent_scd_pksign): Allow the use of ripemd-160 along
826         with scdaemon.
827
828 2006-03-16  David Shaw  <dshaw@jabberwocky.com>
829
830         * keyserver.c (keyserver_import_cert): Handle the IPGP CERT type
831         for both the fingerprint alone, and fingerprint+URL cases.
832
833         * getkey.c (get_pubkey_byname): Minor cleanup.
834
835 2006-03-13  David Shaw  <dshaw@jabberwocky.com>
836
837         * keyserver-internal.h, keyserver.c (keyserver_import_pka): Use
838         the same API as the other auto-key-locate fetchers.
839
840         * getkey.c (get_pubkey_byname): Use the fingerprint of the key
841         that we actually fetched.  This helps prevent problems where the
842         key that we fetched doesn't have the same name that we used to
843         fetch it.  In the case of CERT and PKA, this is an actual security
844         requirement as the URL might point to a key put in by an attacker.
845         By forcing the use of the fingerprint, we won't use the attacker's
846         key here.
847
848         * keyserver-internal.h, keyserver.c (keyserver_spawn,
849         keyserver_work, keyserver_import_cert, keyserver_import_name,
850         keyserver_import_ldap): Pass fingerprint info through.
851
852         * main.h, import.c (import_one): Optionally return the fingerprint
853         of the key being imported.
854         (import_keys_internal, import_keys_stream, import): Change all
855         callers.
856
857 2006-03-12  David Shaw  <dshaw@jabberwocky.com>
858
859         * sig-check.c (signature_check2): Print the backsig warning when
860         there is no backsig present.  Give a URL for more information.
861
862         * keyedit.c (menu_backsign): Small tweak to work properly with
863         keys originally generated with older GnuPGs that included comments
864         in the secret keys.
865
866 2006-03-10  Werner Koch  <wk@g10code.com>
867
868         * card-util.c (get_manufacturer): Added Vendor 3
869
870 2006-03-09  David Shaw  <dshaw@jabberwocky.com>
871
872         * build-packet.c (string_to_notation): Add ability to indicate a
873         notation to be deleted with a '-' prefix.
874
875         * keyedit.c (menu_set_notation): Use it here to allow deleting a
876         notation marked with '-'.  This works with either "-notation" or
877         "-notation=value".
878
879 2006-03-08  David Shaw  <dshaw@jabberwocky.com>
880
881         * keyedit.c (menu_set_notation): New function to set notations on
882         self-signatures.
883         (keyedit_menu): Call it here.
884         (tty_print_notations): Helper.
885         (show_prefs): Show notations in "showpref".
886
887         * mainproc.c (get_pka_address)
888         * keylist.c (show_notation): Remove
889         duplicate code by using notation functions.
890
891         * packet.h, build-packet.c (sig_to_notation)
892         * keygen.c (keygen_add_notations): Provide printable text for
893         non-human-readable notation values.
894         
895         * packet.h, build-packet.c (sig_to_notation)
896         * keygen.c (keygen_add_notations): Tweak to handle non-human-readable
897         notation values.
898
899         * options.h, sign.c (mk_notation_policy_etc)
900         * gpg.c (add_notation_data): Use it here for the various notation
901         commands.
902
903         * packet.h, main.h, keygen.c (keygen_add_notations)
904         * build-packet.c (string_to_notation, sig_to_notation)
905         (free_notation): New "one stop shopping" functions to handle
906         notations and start removing some code duplication.
907
908 2006-03-08  Werner Koch  <wk@g10code.com>
909
910         * mainproc.c (do_check_sig): Use log_error for standalone revocations.
911
912 2006-03-07  David Shaw  <dshaw@jabberwocky.com>
913
914         * options.h, mainproc.c (check_sig_and_print), gpg.c (main):
915         pka-lookups, not pka-lookup.
916
917         * options.h, gpg.c (main), keyedit.c [cmds], sig-check.c
918         (signature_check2): Rename "backsign" to "cross-certify" as a more
919         accurate name.
920
921         * options.h, gpg.c (main, parse_trust_model), pkclist.c
922         (check_signatures_trust), mainproc.c (check_sig_and_print,
923         pka_uri_from_sig), trustdb.c (init_trustdb): Some tweaks to PKA so
924         that it is a verify-option now.
925
926 2006-03-07  Werner Koch  <wk@g10code.com>
927
928         * mainproc.c (proc_signature_packets): Return any_sig_seen to caller.
929         (check_sig_and_print): Option to partly allow the old behaviour.
930         * gpg.c: New option --allow-multisig-verification.
931
932 2006-03-06  David Shaw  <dshaw@jabberwocky.com>
933
934         * sign.c (make_keysig_packet): Don't use MD5 for a RSA_S key as
935         that is not a PGP 2.x algorithm.
936
937         * mainproc.c (proc_compressed): "Uncompressed" is not a valid
938         compression algorithm.
939
940 2006-03-06  Werner Koch  <wk@g10code.com>
941
942         * mainproc.c (check_sig_and_print): Made the composition test more
943         tight.  This is due to another bug report by Tavis Ormandy.
944         (add_onepass_sig): Simplified.
945
946 2006-03-05  Werner Koch  <wk@g10code.com>
947
948         * plaintext.c (handle_plaintext): Replace assert by explict error
949         conflict message.  Reported by Tavis Ormandy.
950
951 2006-03-02  Werner Koch  <wk@g10code.com>
952
953         * cardglue.c (check_card_serialno): Don't ask in batch mode.
954
955 2006-03-01  David Shaw  <dshaw@jabberwocky.com>
956
957         * getkey.c (parse_auto_key_locate): Error if the user selects
958         "cert" or "pka" when those features are disabled.
959
960         * misc.c (has_invalid_email_chars): Fix some C syntax that broke
961         the compilers on SGI IRIX MIPS and Compaq/DEC OSF/1 Alpha.  Noted
962         by Nelson H. F. Beebe.
963
964 2006-02-27  David Shaw  <dshaw@jabberwocky.com>
965
966         * options.skel: Document auto-key-locate and give a pointer to
967         Simon Josefsson's page for CERT.
968
969 2006-02-24  David Shaw  <dshaw@jabberwocky.com>
970
971         * keydb.h, getkey.c (release_akl), gpg.c (main): Add
972         --no-auto-key-locate.
973
974         * options.h, gpg.c (main): Keep track of each keyserver registered
975         so we can match on them later.
976
977         * keyserver-internal.h, keyserver.c (cmp_keyserver_spec,
978         keyserver_match), gpgv.c: New.  Find a keyserver that matches ours
979         and return its spec.
980
981         * getkey.c (get_pubkey_byname): Use it here to get the
982         per-keyserver options from an earlier keyserver.
983
984 2006-02-23  David Shaw  <dshaw@jabberwocky.com>
985
986         * keyserver.c (parse_keyserver_options): Only change max_cert if
987         it is used.
988
989         * options.c, gpg.c (main), keyserver.c (keyserver_spawn): No
990         special treatment of include-revoked, include-subkeys, and
991         try-dns-srv.  These are keyserver features, and GPG shouldn't get
992         involved here.
993
994         * keyserver.c (parse_keyserver_uri, add_canonical_option): Always
995         append options to the list, as ordering may be significant to the
996         user.
997
998         * gpg.c (add_notation_data): Fix reversed logic for isascii check
999         when adding notations.  Noted by Christian Biere.
1000
1001         * options.h, keyserver.c (add_canonical_option): New.
1002         (parse_keyserver_options): Moved from here.
1003         (parse_keyserver_uri): Use it here so each keyserver can have some
1004         private options in addition to the main keyserver-options
1005         (e.g. per-keyserver auth).
1006
1007 2006-02-22  David Shaw  <dshaw@jabberwocky.com>
1008
1009         * options.h, keyserver-internal.h, keyserver.c
1010         (keyserver_import_name), getkey.c (free_akl,
1011         parse_auto_key_locate, get_pubkey_byname): The obvious next step:
1012         allow arbitrary keyservers in the auto-key-locate list.
1013
1014         * options.h, keyserver.c (parse_keyserver_options): Remove
1015         auto-cert-retrieve as it is no longer meaningful.  Add
1016         max-cert-size to allow users to pick a max key size retrieved via
1017         CERT.
1018
1019         * options.h, gpg.c (main), mainproc.c (check_sig_and_print),
1020         keyserver.c (keyserver_opts): Rename auto-pka-retrieve to
1021         honor-pka-record to be consistent with honor-keyserver-url.
1022
1023         * options.h, keydb.h, g10.c (main), getkey.c
1024         (parse_auto_key_locate): Parse a list of key access methods.
1025         (get_pubkey_byname): Walk the list here to try and retrieve keys
1026         we don't have locally.
1027
1028 2006-02-21  David Shaw  <dshaw@jabberwocky.com>
1029
1030         * getkey.c (get_pubkey_byname): Fix minor security problem with
1031         PKA when importing at -r time.  The URL in the PKA record may
1032         point to a key put in by an attacker.  Fix is to use the
1033         fingerprint from the PKA record as the recipient.  This ensures
1034         that the PKA record is followed.
1035
1036         * keyserver-internal.h, keyserver.c (keyserver_import_pka): Return
1037         the fingerprint we requested.
1038
1039         * gpgv.c: Stub keyserver_import_ldap.
1040
1041         * keyserver-internal.h, keyserver.c (keyserver_import_ldap):
1042         Import using the PGP Universal trick of asking
1043         ldap://keys.(maildomain) for the key.
1044
1045 2006-02-20  David Shaw  <dshaw@jabberwocky.com>
1046
1047         * keyserver.c (parse_keyserver_uri): Include the scheme in the uri
1048         even when we've assumed "hkp" when there was no scheme.
1049
1050 2006-02-20  Werner Koch  <wk@g10code.com>
1051
1052         * apdu.c (open_pcsc_reader): As a precaution set LIST to NULL
1053         after free.
1054
1055 2006-02-14  Werner Koch  <wk@gnupg.org>
1056
1057         * verify.c (verify_signatures): Print warning also for NO_DATA.
1058
1059         * mainproc.c (struct mainproc_context): New field any_sig_seen.
1060         (add_signature): Set it.
1061         (proc_signature_packets): Test and return NO_DATA.
1062
1063 2006-02-09  Werner Koch  <wk@g10code.com>
1064
1065         * gpg.c (main) <oLockNever>: Disable random locking.
1066
1067 2006-02-06  Werner Koch  <wk@g10code.com>
1068
1069         * ccid-driver.c, ccid-driver.h: Updated from GnuPG 1.9.  Changes:
1070         * ccid-driver.h (CCID_DRIVER_ERR_NO_KEYPAD): New.
1071         * ccid-driver.c (send_escape_cmd): New args RESULT, RESULTLEN and
1072         RESULTMAX.  Changed all callers.
1073         (ccid_transceive_escape): New.
1074         * ccid-driver.c (special_transport): New
1075         (ccid_open_reader, do_close_reader, ccid_shutdown_reader)
1076         (bulk_out, bulk_in): Add support for CardMan 4040 reader.
1077         * ccid-driver.c (scan_or_find_devices): Factored most code out to
1078         (scan_or_find_usb_device): .. new.
1079         (make_reader_id): Fixed vendor mask.
1080
1081 2006-01-24  David Shaw  <dshaw@jabberwocky.com>
1082
1083         * keyserver.c (parse_keyserver_uri): If there is a path present,
1084         set the direct_uri flag so the right keyserver helper is run.
1085
1086 2006-01-22  David Shaw  <dshaw@jabberwocky.com>
1087
1088         * keyserver.c (keyserver_spawn): Include the EXEEXT so we can find
1089         keyserver helpers on systems that use extensions.
1090
1091         * misc.c (path_access) [HAVE_DRIVE_LETTERS]: Do the right thing
1092         with drive letter systems.
1093
1094 2006-01-17  David Shaw  <dshaw@jabberwocky.com>
1095
1096         * keydb.h, passphrase.c (next_to_last_passphrase): New.  "Touch" a
1097         passphrase as if it was used (move from next_pw to last_pw).
1098
1099         * pubkey-enc.c (get_session_key): Use it here to handle the case
1100         where a passphrase happens to be correct for a secret key, but yet
1101         that key isn't the anonymous recipient (i.e. the secret key could
1102         be decrypted, but not the session key).  This also handles the
1103         case where a secret key is located on a card and a secret key with
1104         no passphrase.  Note this does not fix bug 594 (anonymous
1105         recipients on smartcard do not work) - it just prevents the
1106         anonymous search from stopping when the card is encountered.
1107
1108 2006-01-07  David Shaw  <dshaw@jabberwocky.com>
1109
1110         * keyserver.c (keyserver_refresh): Fix problem when more than one
1111         key in a refresh batch has a preferred keyserver set.  Noted by
1112         Nicolas Rachinsky.
1113
1114 2006-01-01  David Shaw  <dshaw@jabberwocky.com>
1115
1116         * mainproc.c (check_sig_and_print), keyserver.c
1117         (keyserver_import_pka), card-util.c (fetch_url): Always require a
1118         scheme:// for keyserver URLs except when used as part of the
1119         --keyserver command for backwards compatibility.
1120
1121         * sign.c (write_signature_packets): Lost a digest_algo line.
1122
1123         * sign.c (hash_for): Add code to detect if the sk lives on a smart
1124         card.  If it does, only allow 160-bit hashes, a la DSA.  This
1125         involves passing the *sk in, so change all callers.  This is
1126         correct for today, given the current 160-bit q in DSA, and the
1127         current SHA-1/RIPEMD160 support in the openpgp card.  It will
1128         almost certainly need changing down the road.
1129
1130         * app-openpgp.c (do_sign): Give user error if hash algorithm is
1131         not supported by the card.
1132
1133 2005-12-23  David Shaw  <dshaw@jabberwocky.com>
1134
1135         * keyserver.c (keyserver_import_pka): New.  Moved from
1136         getkey.c:get_pubkey_byname which was getting crowded.
1137
1138         * keyserver.c (keyserver_import_cert): Import a key found in DNS
1139         via CERT records.  Can handle both the PGP (actual key) and IPGP
1140         (URL) CERT types.
1141
1142         * getkey.c (get_pubkey_byname): Call them both here.
1143
1144         * options.h, keyserver.c (parse_keyserver_options): Add
1145         "auto-cert-retrieve" option with optional max size argument.
1146
1147         * gpgv.c: Stubs.
1148
1149         * keyserver-internal.h, keyserver.c (keyserver_spawn,
1150         keyserver_work, keygerver_getname): New keyserver_getname function
1151         to fetch keys by name.
1152
1153         * getkey.c (get_pubkey_byname): Call it here to enable locating
1154         keys by full mailbox from a keyserver a la PKA.  Try PKA first,
1155         though, as it is likely to be faster.
1156
1157 2005-12-20  Werner Koch  <wk@g10code.com>
1158
1159         * gpg.c: New option --allow-pka-lookup.
1160         (parse_trust_model): Add "+pka" variants.
1161         (main): Make KEYSERVER_AUTO_PKA_RETRIEVE teh default.
1162         * options.h (opt): New fields PKA_TRUST_INCREASE and
1163         ALLOW_PKA_LOOKUP.
1164         * status.h (STATUS_PKA_TRUST_BAD, STATUS_PKA_TRUST_GOOD): New.
1165         * pkclist.c (check_signatures_trust): Increase trust due to valid
1166         PKA only if that new option has been set.  Issue new status lines.
1167         * trustdb.c (init_trustdb): Print info if this option is active.
1168         * getkey.c (get_pubkey_byname): Honor allow-pka-lookup.
1169         * mainproc.c (pka_uri_from_sig): Ditto.
1170         
1171         * trustdb.c (validate_keys): Print no "ultimately trusted keys
1172         found" only in non-quiet mode.
1173
1174 2005-12-19  David Shaw  <dshaw@jabberwocky.com>
1175
1176         * getkey.c (merge_selfsigs_main): All primary keys can certify.
1177
1178 2005-12-18  David Shaw  <dshaw@jabberwocky.com>
1179
1180         * gpg.c (main): Restore convert-sk-to-pk as programs rely on it.
1181
1182         * keyid.c (usagestr_from_pk): Remove special PUBKEY_USAGE_CERT
1183         flag.  It's no longer needed.
1184
1185 2005-12-14  David Shaw  <dshaw@jabberwocky.com>
1186
1187         * gpg.c (main): Don't default to import-options convert-sk-to-pk.
1188         It causes confusing warning messages when importing a PGP-exported
1189         key that contains a secret key without selfsigs followed by the
1190         public key.
1191
1192 2005-12-08  David Shaw  <dshaw@jabberwocky.com>
1193
1194         * keyserver.c (keyserver_fetch): Switch on fast-import before we
1195         --fetch-keys so we don't rebuild the trustdb after each fetch.
1196
1197 2005-12-08  Werner Koch  <wk@g10code.com>
1198
1199         * gpg.c (main): Check for DBCS lead byte when converting the
1200         homedir.  By Kazuyoshi Kakihara. Fixes PR561.
1201
1202         * keyserver.c (keyserver_fetch): Made strings translatable.
1203
1204 2005-12-08  David Shaw  <dshaw@jabberwocky.com>
1205
1206         * options.h, keyserver.c (curl_cant_handle, keyserver_spawn)
1207         (keyserver_fetch): Set a flag to indicate that we're doing a direct
1208         URI fetch so we can differentiate between a keyserver operation
1209         and a URI fetch for protocols like LDAP that can do either.
1210
1211 2005-12-07  David Shaw  <dshaw@jabberwocky.com>
1212
1213         * keyserver.c (keyserver_spawn): Don't print "searching for key
1214         00000000" when fetching a URI.
1215
1216         * keyserver-internal.h, keyserver.c (keyserver_fetch): New.  Fetch
1217         an arbitrary URI using the keyserver helpers.
1218
1219         * gpg.c (main): Call it from here for --fetch-keys.
1220
1221 2005-12-07  Werner Koch  <wk@g10code.com>
1222
1223         * pkclist.c (do_we_trust): Add NOTREACHED comment.
1224
1225 2005-11-20  David Shaw  <dshaw@jabberwocky.com>
1226
1227         * main.h, keylist.c (print_revokers): New.  Print the "rvk"
1228         designated revoker record.  Moved from
1229         keyedit.c:show_key_with_all_names_colon.
1230
1231         * keylist.c (list_keyblock_colon): Use it here ...
1232
1233         * keyedit.c (show_key_with_all_names_colon): ... and here.
1234
1235 2005-11-19  David Shaw  <dshaw@jabberwocky.com>
1236
1237         * free-packet.c (copy_secret_key): Copy secret key into secure
1238         memory since we may unprotect it.
1239
1240         * main.h, g10.c (main), revoke.c (gen_desig_revoke): Add local
1241         user support so users can use -u with --desig-revoke.  This
1242         bypasses the interactive walk over the revocation keys.
1243
1244 2005-11-17  David Shaw  <dshaw@jabberwocky.com>
1245
1246         * keyedit.c (keyedit_menu, menu_clean): Simplify clean options to
1247         just "clean", and add "minimize".
1248
1249         * import.c (parse_import_options): Make help text match the export
1250         versions of the options.
1251
1252         * options.h, export.c (parse_export_options, do_export_stream):
1253         Reduce clean options to two: clean and minimize.
1254
1255         * trustdb.h, trustdb.c (clean_one_uid): New function that joins
1256         uid and sig cleaning into one for a simple API outside trustdb.
1257
1258 2005-11-13  David Shaw  <dshaw@jabberwocky.com>
1259
1260         * armor.c (parse_header_line): A fussy bit of 2440: header lines
1261         are delimited with a colon-space pair.  Therefore a line such as
1262         "Comment: " (with a trailing space) is actually legal, albeit not
1263         particularly useful.
1264
1265 2005-11-11  David Shaw  <dshaw@jabberwocky.com>
1266
1267         * trustdb.h, trustdb.c (clean_key): New function to handle key
1268         cleaning from one convenient place.
1269
1270         * options.h, import.c (parse_import_options,
1271         clean_sigs_from_all_uids, import_one): Reduce clean options to
1272         two: clean and minimize.
1273
1274         * parse-packet.c (setup_user_id): Remove.
1275         (parse_user_id, parse_attribute): Just use xmalloc_clear instead.
1276
1277         * trustdb.c (clean_uid_from_key, clean_uids_from_key):
1278         Significantly simpler implementation.
1279
1280 2005-11-10  David Shaw  <dshaw@jabberwocky.com>
1281
1282         * keyedit.c (keyedit_menu, menu_clean_sigs_from_uids): Add
1283         "minimize" command.
1284
1285         * packet.h, keyedit.c (menu_clean_uids_from_key), trustdb.c
1286         (clean_uids_from_key): Fix display bug where sigs cleaned for
1287         other reasons caused a uid to appear as if it had been compacted.
1288
1289         * packet.h: Move some flags to a bitfield.  Change all callers.
1290
1291         * options.h, import.c (parse_import_options,
1292         clean_sigs_from_all_uids, import_one): Add import-minimal option.
1293         Similar to export-minimal, except it works on the way in.
1294
1295         * trustdb.h, trustdb.c (clean_sigs_from_uid): Add flag to remove
1296         all non-selfsigs from key during cleaning.  Change all callers.
1297
1298         * export.c (do_export_stream): Use it here for export-minimal so
1299         we don't need additional minimize code in the export path.
1300
1301 2005-11-06  David Shaw  <dshaw@jabberwocky.com>
1302
1303         * options.skel: Add a section for --encrypt-to.  This is Debian
1304         bug 336211 by Javier Fernández-Sanguino Peña.
1305
1306 2005-11-05  David Shaw  <dshaw@jabberwocky.com>
1307
1308         * Makefile.am: Include @LIBUSB_CPPFLAGS@ in our CPPFLAGS.
1309         Strictly speaking this should be only in gpg_CPPFLAGS, but then we
1310         have to compile everything twice for gpg and gpgv.
1311
1312         * apdu.c (open_pcsc_reader): Fix double free.
1313
1314         * gpg.c (main) [__APPLE__]: Default the PCSC driver to the OS X
1315         location.  Suggested by Patty A. Hardy.
1316
1317 2005-11-02  David Shaw  <dshaw@jabberwocky.com>
1318
1319         * trustdb.c (clean_sigs_from_uid): Include sigs from unavailable
1320         keys in the sigs that are cleaned.  Suggested by Dirk Traulsen and
1321         many others.
1322
1323 2005-11-01  David Shaw  <dshaw@jabberwocky.com>
1324
1325         * import.c (import_one): Do collapse_uids() before we do any
1326         cleaning so keyserver mangled keys with doubled user IDs can be
1327         properly cleaned - possibly sigs on the different user IDs cancel
1328         each other out.
1329
1330         * import.c (parse_import_options), export.c
1331         (parse_export_options): List "xxx-clean" before the longer options
1332         so we don't end up with a partial match on the longer options.
1333
1334         * trustdb.c (clean_uids_from_key): Return proper number of cleaned
1335         user IDs.  Don't count user IDs as cleaned unless we actually
1336         delete something.
1337
1338 2005-10-27  David Shaw  <dshaw@jabberwocky.com>
1339
1340         * keyedit.c (menu_addrevoker), getkey.c (finish_lookup): Fix
1341         problem with adding a cert-only designated revoker.  Code was
1342         looking for a key with sign ability, and not cert ability.  Noted
1343         by Timo Schulz.
1344
1345 2005-10-27  Werner Koch  <wk@g10code.com>
1346
1347         * gpg.c [__CYGWIN__]: Set default driver to winscard.dll.
1348
1349         * apdu.c, apdu.h: Updated from gnupg 1.9.  Changes are:
1350         * apdu.c [__CYGWIN__]: Make cygwin environment similar to _WIN32.
1351         Suggested by John P. Clizbe.
1352         * apdu.h (SW_HOST_NO_KEYPAD): New.
1353         * apdu.c (host_sw_string): Support new code. 
1354         (reader_table_s): New field CHECK_KEYPAD.
1355         (new_reader_slot, open_ct_reader, open_pcsc_reader) 
1356         (open_ccid_reader, open_rapdu_reader): Initialize it.
1357         (check_ccid_keypad): New.
1358         (apdu_check_keypad): New.
1359         (apdu_send_le): Factored all code out to ...
1360         (send_le): .. new.  Takes an additional arg; changed all callers
1361         of the orginal function to use this one with a NULL for the new
1362         arg.
1363         (apdu_send_simple_kp): New.
1364         (ct_send_apdu, pcsc_send_apdu, my_rapdu_send_apdu) 
1365         (send_apdu_ccid): New arg PININFO.
1366         (send_apdu_ccid): Use the new arg.
1367
1368 2005-10-26  David Shaw  <dshaw@jabberwocky.com>
1369
1370         * keygen.c (proc_parameter_file): Default key and subkey usage
1371         flags to algo capabilities if parameter file doesn't specify them.
1372         Noted by Timo Schulz.
1373
1374 2005-10-18  Werner Koch  <wk@g10code.com>
1375
1376         * cardglue.c (pin_cb): Fixed prompt for repeated PIN.  Return
1377         G10ERR_CANCELED and not just -1.
1378         (status_sc_op_failure): New.  Use it where we issue that status.
1379         (pin_cb): Append serial number to the need-pin status message.
1380         (agent_scd_change_pin): Add arg SERIALNO.  Changed all callers.
1381         (agent_scd_writekey): Ditto.
1382         (agent_scd_setattr): Ditto.
1383         (agent_scd_genkey): Ditto.
1384         (agent_scd_checkpin): Pass serialno to the pin_cb.
1385
1386         * keygen.c (parse_expire_string): Allow setting the expire
1387         interval using a "seconds=<n>" syntax.  This is useful for
1388         debugging.
1389
1390 2005-10-17  Werner Koch  <wk@g10code.com>
1391
1392         * export.c (do_export_stream): Factored some code out to ...
1393         (skip_subkey_p): .. new.
1394         (subkey_in_list_p, release_subkey_list): New.
1395         (new_subkey_list_item): New. 
1396         (do_export_stream): Export exactly specified subkeys into one
1397         keyblock.
1398
1399 2005-10-13  David Shaw  <dshaw@jabberwocky.com>
1400
1401         * keyedit.c (keyedit_menu, menu_backsign): New "backsign" command
1402         to add 0x19 backsigs to old keys that don't have them.
1403
1404         * misc.c (parse_options): Fix build warning.
1405
1406         * main.h, keygen.c (make_backsig): Make public.
1407
1408 2005-10-12  David Shaw  <dshaw@jabberwocky.com>
1409
1410         * options.h, getkey.c (merge_selfsigs_subkey), gpg.c (main),
1411         sig-check.c (signature_check2): Add --require-backsigs and
1412         --no-require-backsigs.  Currently defaults to
1413         --no-require-backsigs.
1414
1415 2005-10-11  David Shaw  <dshaw@jabberwocky.com>
1416
1417         * getkey.c (merge_selfsigs_subkey), sig-check.c
1418         (signature_check2), keygen.c (make_backsig): Did some backsig
1419         interop testing with the PGP folks.  All is well, so I'm turning
1420         generation of backsigs on for new keys.  Checking for backsigs on
1421         verification is still off.
1422
1423 2005-10-05  Werner Koch  <wk@g10code.com>
1424
1425         * g10.c: Renamed to ..
1426         * gpg.c: ..this.
1427         * Makefile.am: Adjusted accordingly.
1428
1429 2005-09-22  Werner Koch  <wk@g10code.com>
1430
1431         * sign.c (write_plaintext_packet): Don't print an empty file
1432         warning if the file is actually too large.
1433         * encode.c (encode_simple,encode_crypt): Ditto.
1434         * progress.c (handle_progress): Adjusted for iobuf_get_filelength
1435         change.
1436         * photoid.c (generate_photo_id): Ditto.
1437
1438 2005-09-20  Werner Koch  <wk@g10code.com>
1439
1440         * mainproc.c (proc_symkey_enc): Take care of a canceled passphrase
1441         prompt.
1442
1443 2005-09-19  David Shaw  <dshaw@jabberwocky.com>
1444
1445         * keylist.c (reorder_keyblock, do_reorder_keyblock): Reorder
1446         attribute IDs as well as regular text IDs.
1447
1448         * plaintext.c (ask_for_detached_datafile): Use make_filename() on
1449         filename so tilde expansion works.
1450
1451 2005-09-14  David Shaw  <dshaw@jabberwocky.com>
1452
1453         * main.h, misc.c (parse_options): Add the ability to have help
1454         strings in xxx-options commands.
1455
1456         * keyserver.c (keyserver_opts), import.c (parse_import_options),
1457         export.c (parse_export_options), g10.c (parse_list_options, main):
1458         Add help strings to xxx-options.
1459
1460 2005-09-10  David Shaw  <dshaw@jabberwocky.com>
1461
1462         * keyedit.c (show_names): Moved name display code out from
1463         show_key_with_all_names.
1464         (keyedit_menu): Call it here for pref and showpref so they can
1465         show only the selected user ID.  Suggested by Timo Schulz.
1466
1467 2005-09-07  Werner Koch  <wk@g10code.com>
1468
1469         * cardglue.h (GPG_ERR_TOO_LARGE): New.
1470
1471         * apdu.c, apdu.h, iso7816.c, iso7816.h
1472         * ccid-driver.c, ccid-driver.h: Updated from GnuPG 1.9 source.
1473         Changes are:
1474         * iso7816.c (iso7816_select_path): New.
1475         * iso7816.c (iso7816_read_binary): Use Le=0 when reading all
1476         data.  Handle 6C00 error and take 6B00 as indication for EOF.
1477         * apdu.h (SW_EXACT_LENGTH_P): New.
1478         * apdu.c (new_reader_slot, reset_pcsc_reader, pcsc_get_status) 
1479         (open_pcsc_reader): Set new reader state IS_T0.
1480         (apdu_send_le): When doing T=0 make sure not to send Lc and Le.
1481         Problem reported by Carl Meijer.
1482         (apdu_send_direct): Initialize RESULTLEN.
1483
1484         * misc.c (parse_options): Allow meta option "help" to list all
1485         options and to exit the program.
1486
1487 2005-09-02  David Shaw  <dshaw@jabberwocky.com>
1488
1489         * parse-packet.c (enum_sig_subpkt, parse_signature,
1490         parse_attribute_subpkts): Make a number of warnings verbose items.
1491         These fire on many slightly mangled keys in the field, so the
1492         warning is becoming burdensome.
1493
1494 2005-09-01  David Shaw  <dshaw@jabberwocky.com>
1495
1496         * photoid.h, photoid.c (generate_photo_id): Allow passing in a
1497         suggested filename.
1498
1499         * keyedit.c (keyedit_menu, menu_adduid): Call it here so "addphoto
1500         filename" works.
1501
1502 2005-08-31  David Shaw  <dshaw@jabberwocky.com>
1503
1504         * photoid.c (generate_photo_id): Enable readline completion and
1505         tilde expansion for the JPEG prompt.
1506
1507 2005-08-30  Werner Koch  <wk@g10code.com>
1508
1509         * passphrase.c (agent_open): Print a warning and not an error in
1510         case of a missing agent.  Should fix Debian bug #325578.
1511
1512 2005-08-26  David Shaw  <dshaw@jabberwocky.com>
1513
1514         * misc.c (openpgp_pk_algo_usage): Default to allowing CERT for
1515         signing algorithms.
1516
1517         * keyedit.c (sign_uids): Don't request a signing key to make a
1518         certification.
1519
1520         * keygen.c (do_add_key_flags): Force the certify flag on for all
1521         primary keys, as the spec requires primary keys must be able to
1522         certify (if nothing else, which key is going to issue the user ID
1523         signature?)
1524         (print_key_flags): Show certify flag.
1525         (ask_key_flags, ask_algo): Don't allow setting the C flag for
1526         subkeys.
1527         
1528         * keyid.c (usagestr_from_pk), getkey.c (parse_key_usage):
1529         Distinguish between a sign/certify key and a certify-only key.
1530
1531         * keyedit.c (ask_revoke_sig): Add a revsig --with-colons mode.
1532         Suggested by Michael Schierl.
1533
1534 2005-08-21  David Shaw  <dshaw@jabberwocky.com>
1535
1536         * Makefile.am: No need to link with curl any longer.
1537
1538         * main.h, misc.c (path_access): New.  Same as access() but does a
1539         PATH search like execlp.
1540
1541         * keyserver.c (curl_can_handle): Removed.  Replaced by...
1542         (curl_cant_handle): We are now relying on curl as the handler of
1543         last resort.  This is necessary because PGP LDAP and curl LDAP are
1544         apples and oranges.
1545         (keyserver_typemap): Only test for ldap and ldaps.
1546         (keyserver_spawn): If a given handler is unusable (as determined
1547         by path_access()) then try gpgkeys_curl.
1548
1549         * exec.h, exec.c (make_tempdir, expand_args, exec_write,
1550         exec_read): Minor cleanup to use bitfield flags instead of a bunch
1551         of integers.
1552
1553 2005-08-20  David Shaw  <dshaw@jabberwocky.com>
1554
1555         * g10.c (main): Add aliases sign-with->local-user and
1556         user->recipient to make switching from PGP command line to GPG
1557         easier.
1558
1559 2005-08-19  David Shaw  <dshaw@jabberwocky.com>
1560
1561         * options.skel: Remove the surfnet LDAP keyserver from the list of
1562         samples since it is being shut down.
1563
1564         * getkey.c (classify_user_id): Disable the '.' and '+' search
1565         modes since they aren't supported yet.
1566
1567 2005-08-05  David Shaw  <dshaw@jabberwocky.com>
1568
1569         * g10.c (main), passphrase.c (set_passphrase_from_string): New
1570         --passphrase command line option.  Only useful in very special
1571         circumstances.
1572
1573 2005-08-05  Werner Koch  <wk@g10code.com>
1574
1575         * gpgv.c (keyserver_import_fprint): New stub.
1576
1577         * keygen.c (ask_user_id): Moved email checking code out to ..
1578         * misc.c (is_valid_mailbox): .. new.
1579         * mainproc.c (get_pka_address): Use it here.
1580         * getkey.c (get_pubkey_byname): Add falback to auto-retrieve a key
1581         via the PKA mechanism.
1582
1583         * options.h (KEYSERVER_AUTO_PKA_RETRIEVE): New.
1584         * keyserver.c (keyserver_opts): Ditto.
1585         * mainproc.c (check_sig_and_print): Use it here to retrieve keys
1586         from a PKA DNS record.
1587
1588         * pkclist.c (build_pk_list): Add comments to this function;
1589         re-indented it.
1590
1591 2005-08-04  David Shaw  <dshaw@jabberwocky.com>
1592
1593         * keygen.c (proc_parameter_file): Sanity check items in keygen
1594         batch file.  Noted by Michael Schierl.
1595
1596         * pkclist.c (do_edit_ownertrust): Don't allow ownertrust level 0.
1597         Noted by Michael Schierl.
1598
1599         * keygen.c (write_keyblock): Don't try and build deleted kbnodes
1600         since we start our tree with one.
1601
1602 2005-08-04  Werner Koch  <wk@g10code.com>
1603
1604         * export.c (do_export_stream): Skip on-card keys when only subkeys
1605         are to be exported.  It does not make sense to replace the on-card
1606         key stub by a no-key stub.
1607
1608         * revoke.c (gen_revoke): Check for non-online keys.
1609
1610         * seckey-cert.c (is_secret_key_protected): Return -3 for
1611         non-online key stubs.  The old code assumes that a protection
1612         algorithm is still set but in some cases this one is 0 and thus it
1613         won't be possible to decide whether it is unprotected or
1614         protected.
1615
1616 2005-07-28  Werner Koch  <wk@g10code.com>
1617
1618         * Makefile.am (other_libs): Add SRVLIBS.
1619
1620         * parse-packet.c (can_handle_critical_notation): We know about
1621         pka-address@gnupg.org.
1622         * packet.h (PKT_signature): New fields PKA_INFO and PKA_TRIED. 
1623         (pka_info_t): New.
1624         * free-packet.c (cp_pka_info): New.
1625         (free_seckey_enc, copy_signature): Support new fields.
1626         * mainproc.c (get_pka_address, pka_uri_from_sig): New.
1627         (check_sig_and_print): Try to get the keyserver from the PKA
1628         record.
1629         * pkclist.c (check_signatures_trust): Adjust the trust based on
1630         the PKA.
1631         * gpgv.c (parse_keyserver_uri): New stub.
1632
1633         * keygen.c (has_invalid_email_chars): Moved to ..
1634         * misc.c (has_invalid_email_chars): .. here and made global.
1635
1636 2005-07-27  Werner Koch  <wk@g10code.com>
1637
1638         * export.c (do_export_stream): Make two strings translatable.
1639
1640 2005-07-26  David Shaw  <dshaw@jabberwocky.com>
1641
1642         * keyserver.c (keyserver_typemap): Special-case LDAP since curl
1643         will report that it can handle it, and we don't want it to.
1644
1645 2005-07-26  Werner Koch  <wk@g10code.com>
1646
1647         * passphrase.c (agent_get_passphrase): Make sure to release the
1648         saved codeset.
1649         (agent_open): Add arg ORIG_CODESET and switch back to it in case
1650         of error.  Changed all callers.
1651
1652 2005-07-22  David Shaw  <dshaw@jabberwocky.com>
1653
1654         * keyedit.c (sign_uids): Don't prompt for setting signature expiry
1655         to match key expiry unless --ask-cert-expire is set.  Suggested by
1656         Peter Palfrader.
1657
1658 2005-07-22  Werner Koch  <wk@g10code.com>
1659
1660         * g10.c, options.h: New option --exit-on-status-write-error.
1661         * status.c (write_status_text): Make use of this option.
1662
1663 2005-07-22  David Shaw  <dshaw@jabberwocky.com>
1664
1665         * options.h, g10.c (main): Removed option --no-interactive-selection.
1666         * keyedit.c (keyedit_menu): Use --interactive to enable the uid
1667         walking when signing a key with no uids specified to sign.
1668
1669         * keylist.c (list_keyblock_print): Fix silly typo.  Noted by Greg
1670         Sabino Mullane.
1671
1672 2005-07-20  Werner Koch  <wk@g10code.com>
1673
1674         * openfile.c (open_outfile): Disable FD caching for created files.
1675         * encode.c (encode_simple, encode_crypt): Disable FD caching for
1676         input files.
1677         * verify.c (verify_one_file): Ditto.
1678         * decrypt.c (decrypt_messages): Ditto. This is bug #479.
1679
1680         * misc.c (get_libexecdir) [W32]: Changed to return the value of
1681         program used to create the process.
1682         * keyserver.c (keyserver_spawn) [DISABLE_KEYSERVER_PATH]: Don't
1683         change the exec-path at all.
1684
1685 2005-07-20  David Shaw  <dshaw@jabberwocky.com>
1686
1687         * keyserver.c (curl_can_handle): New.  Do a runtime check against
1688         libcurl to see if it can handle a particular protocol.
1689         (keyserver_typemap): Call it here.
1690
1691         * Makefile.am: Pull in libcurl for curl_version_info() if used.
1692
1693 2005-07-19  Werner Koch  <wk@g10code.com>
1694
1695         * g10.c, options.h: New option --limit-card-insert-tries.
1696         * cardglue.c (open_card): Use it.
1697
1698         * export.c (parse_export_options): New option
1699         export-reset-subkey-passwd.
1700         (do_export_stream): Implement it.
1701
1702         * misc.c (get_libexecdir): New.
1703         * keyserver.c (keyserver_spawn): Use it
1704
1705 2005-07-18  Werner Koch  <wk@g10code.com>
1706
1707         * tdbio.c (open_db): Check for EROFS.  Suggested by Bryce Nichols.
1708
1709 2005-07-08  David Shaw  <dshaw@jabberwocky.com>
1710
1711         * trustdb.c (clean_uids_from_key): Don't keep a valid selfsig
1712         around when compacting a uid.  There is no reason to make an
1713         attacker's job easier - this way they only have a revocation which
1714         is useless in bringing the uid back.
1715
1716         * keydb.h, kbnode.c (undelete_kbnode): Removed.  No longer needed.
1717
1718         * import.c (chk_self_sigs): Allow a uid revocation to be enough to
1719         allow importing a particular uid (no self sig needed).  This
1720         allows importing compacted uids.
1721
1722 2005-06-20  David Shaw  <dshaw@jabberwocky.com>
1723
1724         * keygen.c (save_unprotected_key_to_card): Better fix for gcc4
1725         warning.
1726
1727 2005-06-20  Werner Koch  <wk@g10code.com>
1728
1729         * g10.c, options.h: New option --no-interactive-selection.
1730         * keyedit.c (keyedit_menu): Use it.
1731
1732 2005-06-18  Werner Koch  <wk@g10code.com>
1733
1734         * parse-packet.c (parse_signature): Use log_info for messages
1735         about missing timestamp or keyid.  In case we don't use that key
1736         there won't be no further error and thus gpg does not need to
1737         return with an error.
1738
1739 2005-06-13  David Shaw  <dshaw@jabberwocky.com>
1740
1741         * keygen.c (save_unprotected_key_to_card): Fix gcc4 warning.
1742
1743         * options.h, import.c (parse_import_options, import_one): Add
1744         import-clean-uids option to automatically compact unusable uids
1745         when importing.  Like import-clean-sigs, this may nodify the local
1746         keyring.
1747
1748         * trustdb.c (clean_uids_from_key): Only allow selfsigs to be a
1749         candidate for re-inclusion.
1750
1751 2005-06-12  David Shaw  <dshaw@jabberwocky.com>
1752
1753         * options.h, import.c (parse_import_options,
1754         clean_sigs_from_all_uids, import_one): Add import-clean-sigs
1755         option to automatically clean a key when importing.  Note that
1756         when importing a key that is already on the local keyring, the
1757         clean applies to the merged key - i.e. existing superceded or
1758         invalid signatures are removed.
1759
1760         * getkey.c (merge_selfsigs_main, merge_selfsigs_subkey): Make sure
1761         that even after keys may be merged together, we only have one
1762         chosen selfsig.
1763
1764 2005-06-09  David Shaw  <dshaw@jabberwocky.com>
1765
1766         * options.h, import.c (parse_import_options, delete_inv_parts):
1767         import-unusable-sigs is now a noop.
1768
1769         * options.h, export.c (do_export_stream), keyedit.c (keyedit_menu,
1770         menu_clean_subkeys_from_key), trustdb.h, trustdb.c
1771         (clean_subkeys_from_key): Remove subkey cleaning function.  It is
1772         of very limited usefulness since it cannot be used on any subkey
1773         that can sign, and can only affect multiple selfsigs on
1774         encryption-only subkeys.
1775
1776         * keydb.h, kbnode.c (undelete_kbnode): New function to undelete a
1777         kbnode.
1778
1779         * trustdb.c (clean_uids_from_key): Further tweak the algorithm so
1780         that the last good selfsig is kept when the chosen selfsig is a
1781         revocation.
1782
1783 2005-06-08  David Shaw  <dshaw@jabberwocky.com>
1784
1785         * trustdb.c (clean_uids_from_key), keyedit.c
1786         (menu_clean_uids_from_key): Tweak algorithm to preserve the last
1787         selfsig which helps prevent uid resurrections.
1788
1789         * getkey.c (fixup_uidnode, merge_selfsigs_main): Handle both
1790         expired and revoked uids in fixup_uidnode().  No need to special
1791         case in merge_selfsigs_main().  This also means that an expired
1792         uid will have its selfsig tagged with chosen_selfsig.
1793
1794 2005-06-07  David Shaw  <dshaw@jabberwocky.com>
1795
1796         * options.h, g10.c (main), export.c (parse_export_options,
1797         do_export_stream): Add export-options export-clean-sigs,
1798         export-clean-uids, export-clean-subkeys, and export-clean which is
1799         all of the above.  Export-minimal is the same except it also
1800         removes all non-selfsigs.  export-unusable-sigs is now a noop.
1801
1802 2005-06-06  Werner Koch  <wk@g10code.com>
1803
1804         * cardglue.c (open_card): Emit new CARDCTRL status 5 for no reader
1805         available.
1806
1807 2005-06-02  Werner Koch  <wk@g10code.com>
1808
1809         * app-openpgp.c (do_writekey): Typo fix.
1810
1811         * status.c, status.h: Removed STATUS_BAD_PASSPHRASE_PIN.
1812
1813 2005-06-01  David Shaw  <dshaw@jabberwocky.com>
1814
1815         * signal.c [HAVE_DOSISH_SYSTEM]: Fix unused function warnings on
1816         mingw32.  Noted by Joe Vender.
1817
1818         * passphrase.c [_WIN32]: Remove unused variables.
1819
1820 2005-05-31  David Shaw  <dshaw@jabberwocky.com>
1821
1822         * keyedit.c (menu_clean_uids_from_key,
1823         menu_clean_subkeys_from_key), trustdb.c (clean_uids_from_key,
1824         clean_subkeys_from_key): Fix mingw32 build warnings.  Noted by Joe
1825         Vender.
1826
1827 2005-05-31  Werner Koch  <wk@g10code.com>
1828
1829         * keydb.h [!ENABLE_AGENT_SUPPORT]: Define dummy types.
1830
1831         * cardglue.c (assuan_strerror, assuan_transact): Dummy functions
1832         if not build with agent support. 
1833
1834         * armor.c (check_input): Don't bail out on invalid header lines
1835         unless in struict rfc2440 mode.  Suggested by Richard Patterson.
1836
1837 2005-05-30  Werner Koch  <wk@g10code.com>
1838
1839         * tlv.c: Add hack to compile without gpg-error.h.
1840
1841 2005-05-30  David Shaw  <dshaw@jabberwocky.com>
1842
1843         * trustdb.h, trustdb.c (clean_subkeys_from_key): New.  Walk
1844         through the subkeys on a key, and mark any that aren't usable for
1845         deletion.  Note that a signing subkey is never marked for deletion
1846         since these keys are still useful after expiration or revocation.
1847
1848         * keyedit.c (menu_clean_subkeys_from_key): New function to call
1849         clean_subkeys_from_key() on a key.  Note that the strings here are
1850         not marked for translation yet.  The UI is still in flux, and
1851         there is no point in annoying the translators twice.
1852         (keyedit_menu): Call it here as part of the "clean" command.
1853
1854 2005-05-29  David Shaw  <dshaw@jabberwocky.com>
1855
1856         * trustdb.h, trustdb.c (clean_uids_from_key): New.  Walk through
1857         the user IDs on a key, and mark any that aren't valid for
1858         deletion.
1859
1860         * keyedit.c (menu_clean_uids_from_key): New function to call
1861         clean_uids_from_key() on a key.
1862         (keyedit_menu): Call it from here as part of the "clean" command.
1863
1864 2005-05-26  David Shaw  <dshaw@jabberwocky.com>
1865
1866         * g10.c (main): Default {export|import}-unusable-sigs to off until
1867         the "clean" UI can be finished.
1868
1869 2005-05-24  Werner Koch  <wk@g10code.com>
1870
1871         * passphrase.c (ask_passphrase): Unescape the description string.
1872         * cardglue.c (unescape_status_string): Removed.  Changed all
1873         caller to use ...
1874         * misc.c (unescape_percent_string): New.
1875
1876         * g10.c (add_notation_data): Check number of at-signs.
1877
1878 2005-05-23  Werner Koch  <wk@g10code.com>
1879
1880         * app-openpgp.c, app-common.h: Again updated from gnupg 1.9 CVS.
1881
1882         * cardglue.c (open_card): Check USE_AGENT.
1883         (agent_scd_checkpin): Implemented Assuan part.
1884         (agent_scd_change_pin): Ditto.
1885
1886         * g10.c (main): Option --debug-ccid-driver may now be given
1887         several times increase the debug level.
1888
1889         * ccid-driver.c (parse_ccid_descriptor): Mark SCR335 FW version
1890         5.14 as good.
1891         (do_close_reader): Never do a reset. The caller should instead
1892         make sure that the reader has been closed properly.  The new retry
1893         code in ccid_slot_status will make sure that the readersatrts up
1894         fine even if the last process didn't closed the USB connection
1895         properly.
1896         (ccid_get_atr): For certain readers try switching to ISO mode.
1897         Thanks to Ludovic Rousseau for this hint and the magic numbers.
1898         (print_command_failed): New.
1899         (bulk_in): Use it here. Add new arg NO_DEBUG.
1900         (ccid_slot_status): Disabled debugging.
1901
1902 2005-05-21  Werner Koch  <wk@g10code.com>
1903
1904         * cardglue.c (send_status_info): Make CTRL optional.
1905         (agent_scd_writekey, inq_writekey_parms): New.
1906         (agent_openpgp_storekey): Removed.
1907         * cardglue.h: Add a few more error code mappings.
1908         * keygen.c (copy_mpi): Removed.
1909         (save_unprotected_key_to_card): Changed to use agent_scd_writekey.
1910         * app-common.h, app-openpgp.c, tlv.c, tlv.h: Updated from newer
1911         version in gnupg 1.9 CVS.
1912
1913 2005-05-20  Werner Koch  <wk@g10code.com>
1914
1915         * ccid-driver.c (ccid_transceive): Arghhh.  The seqno is another
1916         bit in the R-block than in the I block, this was wrong at one
1917         place. Fixes bug #419 and hopefully several others.
1918
1919 2005-05-19  Werner Koch  <wk@g10code.com>
1920
1921         * app-common.h, app-openpgp.c, tlv.c, tlv.h: Updated from newer
1922         version in gnupg 1.9 CVS.
1923
1924 2005-05-18  Werner Koch  <wk@g10code.com>
1925
1926         * passphrase.c (agent_open): Made global and add arg TRY.
1927         (agent_close): Made global.
1928
1929         * app-common.h (app_t): Add a field to store the Assuan context.
1930
1931 2005-05-13  David Shaw  <dshaw@jabberwocky.com>
1932
1933         * build-packet.c (do_comment): Removed.
1934         (build_packet): Ignore comment packets.
1935
1936         * export.c (do_export_stream): Don't export comment packets any
1937         longer.
1938
1939         * options.h, g10.c (main): Remove --sk-comments and
1940         --no-sk-comments options, and replace with no-op.
1941
1942 2005-05-11  David Shaw  <dshaw@jabberwocky.com>
1943
1944         * keygen.c (write_selfsigs): Rename from write_selfsig.  Write the
1945         same selfsig into both the pk and sk, so that someone importing
1946         their sk (which will get an autoconvert to the pk) won't end up
1947         with two selfsigs.
1948         (do_generate_keypair): Call it from here.
1949
1950         * parse-packet.c (can_handle_critical_notation): New.  Check for
1951         particular notation tags that we will accept when critical.
1952         Currently, that's only preferred-email-encoding@pgp.com, since we
1953         know how to handle it (pass it through to a mail program).
1954         (can_handle_critical): Call it from here.
1955         (parse_one_sig_subpkt): Sanity check that notations are
1956         well-formed in that the internal lengths add up to the size of the
1957         subpacket.
1958
1959 2005-05-07  Werner Koch  <wk@g10code.com>
1960
1961         * ccid-driver.c (do_close_reader): Don't do a reset before close.
1962         Some folks reported that it makes the SCR335 hang less often.
1963         Look at the source on how to re-enable it.
1964
1965 2005-05-06  David Shaw  <dshaw@jabberwocky.com>
1966
1967         * main.h, keygen.c (parse_expire_string, ask_expire_interval),
1968         sign.c (sign_file, clearsign_file, sign_symencrypt_file), g10.c
1969         (main), keyedit.c (sign_uids): Use seconds rather than days
1970         internally to calculate expiration.  We no longer need the
1971         day-based code as we don't generate v3 keys.
1972
1973         * sign.c (sign_file, clearsign_file, sign_symencrypt_file): Use
1974         the default sig expire value when signing in batchmode.
1975
1976 2005-05-05  David Shaw  <dshaw@jabberwocky.com>
1977
1978         * Makefile.am, packet.h, main.h, comment.c: Remove comment.c.  We
1979         don't use any of these functions any longer.
1980
1981         * keygen.c (start_tree): New function to "prime" a KBNODE list.
1982         (do_generate_keypair): Use it here rather than creating and
1983         deleting a comment packet.
1984
1985         * keygen.c (gen_elg, gen_dsa): Do not put public factors in secret
1986         key as a comment.
1987
1988         * options.h, encode.c (encode_simple, encode_crypt), keygen.c
1989         (do_create): Remove disabled comment packet code.
1990
1991         * keygen.c (keygen_set_std_prefs): Add SHA256 and BZip2 to default
1992         preferences.
1993
1994         * options.h, g10.c (main): Add new --default-sig-expire and
1995         --default-cert-expire options.  Suggested by Florian Weimer.
1996
1997         * main.h, keygen.c (parse_expire_string, ask_expire_interval): Use
1998         defaults passed in, or "0" to control what default expiration is.
1999
2000         * keyedit.c (sign_uids), sign.c (sign_file, clearsign_file,
2001         sign_symencrypt_file): Call them here, so that default expiration
2002         is used when --ask-xxxxx-expire is off.
2003
2004 2005-05-03  Werner Koch  <wk@g10code.com>
2005
2006         * passphrase.c (agent_get_passphrase): Add new arg CACHEID.
2007         Changed all callers.
2008         (ask_passphrase): Add new arg CACHEID and use it in agent mode.
2009         Changed all callers.
2010         (passphrase_clear_cache): New arg CACHEID.  Changed all callers.
2011         * cardglue.c (format_cacheid): New.
2012         (pin_cb): Compute a cache ID.
2013         (agent_scd_pksign, agent_scd_pkdecrypt): Use it.
2014         (agent_clear_pin_cache): New.
2015         * card-util.c (change_pin): Clear the PIN cache.
2016         (check_pin_for_key_operation): Ditto.
2017
2018 2005-04-24  David Shaw  <dshaw@jabberwocky.com>
2019
2020         * trustdb.h, trustdb.c (mark_usable_uid_certs): Add flags for the
2021         no-pubkey and chosen revocation cases.
2022         (clean_uid): New function to clean a user ID of unusable (as
2023         defined by mark_usable_uid_certs) certs.
2024
2025         * keyedit.c (keyedit_menu, menu_clean_uids): Call it here for new
2026         "clean" command that removes unusable sigs from a key.
2027
2028         * trustdb.h, keyedit.c (keyedit_menu, menu_select_uid_namehash):
2029         Allow specifying user ID via the namehash from --with-colons
2030         --fixed-list-mode --list-keys.  Suggested by Peter Palfrader.
2031
2032 2005-04-21  David Shaw  <dshaw@jabberwocky.com>
2033
2034         * keyedit.c (sign_uids, keyedit_menu): When the user requests to
2035         sign a key without specifying which user IDs to sign, and declines
2036         to sign all user IDs, walk through the set of user IDs and prompt
2037         for which to sign.
2038
2039         * mainproc.c (symkey_decrypt_seskey): There is no need to have an
2040         extra check for a bad passphrase and/or unknown cipher algorithm
2041         here.  We'll fail quite happily later, and usually with a better
2042         error message to boot.
2043
2044 2005-04-20  Werner Koch  <wk@g10code.com>
2045
2046         * sign.c (sign_file, sign_symencrypt_file): Allow for hash
2047         debugging.
2048
2049 2005-04-16  David Shaw  <dshaw@jabberwocky.com>
2050
2051         * keyserver.c (keyserver_spawn): Free some memory.
2052
2053         * sign.c (hash_for): Comments.
2054
2055 2005-04-11  Werner Koch  <wk@g10code.com>
2056
2057         * g10.c (main, add_notation_data, add_policy_url)
2058         (add_keyserver_url): Use isascii() to protect the isfoo macros and
2059         to replace direct tests.  Possible problems noted by Christian
2060         Biere.
2061         * keyserver.c (parse_keyserver_uri): Ditto.
2062
2063 2005-04-07  Werner Koch  <wk@g10code.com>
2064
2065         * g10.c (main): Declare --pipemode deprecated.
2066         * misc.c (deprecated_command): New.
2067
2068         * ccid-driver.c (ccid_slot_status): Fixed debug messages.
2069
2070         * card-util.c (card_edit): Add command "verify".  Enhanced admin
2071         command to allow optional arguments "on", "off" and "verify".
2072         (card_status): Print private DOs in colon mode.
2073         * app-openpgp.c (do_check_pin): Add hack to allow verification of
2074         CHV3.
2075
2076 2005-04-01  Werner Koch  <wk@g10code.com>
2077
2078         * keygen.c (keygen_set_std_prefs): Explain the chosen order of
2079         AES key sizes. 
2080
2081 2005-04-01  David Shaw  <dshaw@jabberwocky.com>
2082
2083         * mainproc.c (proc_plaintext): Properly handle SIG+LITERAL
2084         (old-style PGP) signatures that use hashes other than SHA-1,
2085         RIPEMD160, or MD5.
2086
2087 2005-03-31  David Shaw  <dshaw@jabberwocky.com>
2088
2089         * exec.h, exec.c (set_exec_path): Remove some dead code and change
2090         all callers.  We no longer need to append to $PATH.
2091
2092 2005-03-31  Werner Koch  <wk@g10code.com>
2093
2094         * passphrase.c (agent_open): Dropped support for W32 - is was
2095         never actually used.  Removed support for the old non-assuan
2096         protocol; there has never been a matured implementation and
2097         gpg-agent is now arround for quite some time.  Rewritten to make
2098         use of the Assuan code from ../util.
2099         (gpga_protocol_codes): Removed.
2100         (readn): Removed.
2101         (agent_close): Simplified for use with Assuan.
2102         (agent_get_passphrase, passphrase_clear_cache): Removed support
2103         for old protocol.  Use only with ENABLE_CARD_SUPPORT defined.
2104         (agent_send_all_options): Take assuan context instead of a file
2105         descriptor.
2106         (agent_send_option): Likewise. Use assuan_transact.
2107         * passphrase.c (writen, readaline): Removed.
2108
2109         * g10.c (main): Print a warning if --use-agent has been used but
2110         it has not been build with support for it.
2111
2112         * keydb.c (keydb_add_resource): Clarify meaning of flags.  Add new
2113         flag 4.  Use log_info for errors registering the default secret key.
2114         * g10.c (main): Flag the default keyrings.
2115
2116 2005-03-30  David Shaw  <dshaw@jabberwocky.com>
2117
2118         * keyserver.c (keyserver_spawn): Don't mess about with the $PATH.
2119         Rather, call keyserver helpers with the full path.  This fixes
2120         some PATH-inspired DLL problems on W32.  Noted by Carlo Luciano
2121         Bianco.
2122
2123 2005-03-30  Werner Koch  <wk@g10code.com>
2124
2125         * cardglue.c (pin_cb): Print a warning if the info string hack is
2126         not there.  This may happen due to typos in the translation.
2127
2128 2005-03-22  Werner Koch  <wk@g10code.com>
2129
2130         * misc.c (w32_shgetfolderpath) [W32]: Changed declaration of
2131         function ptr.  Noted by Tim Costello. 
2132         * apdu.c [W32]: Changed declaration of dlopened function pointers.
2133
2134 2005-03-21  David Shaw  <dshaw@jabberwocky.com>
2135
2136         * gpgv.c: Stubs for tty_enable_completion() &
2137         tty_disable_completion().
2138
2139         * openfile.c (ask_outfile_name): Enable readline completion when
2140         prompting for an output filename.
2141
2142         * plaintext.c (ask_for_detached_datafile): Enable readline
2143         completion when prompting for a detached sig datafile.
2144
2145 2005-03-21  Werner Koch  <wk@g10code.com>
2146
2147         * keyedit.c (command_generator, keyedit_completion): Changed
2148         indentation.
2149         * card-util.c (command_generator, card_edit_completion): Ditto.
2150
2151 2005-03-19  David Shaw  <dshaw@jabberwocky.com>
2152
2153         * card-util.c (command_generator, card_edit_completion)
2154         [GNUPG_MAJOR_VERSION==1 && HAVE_LIBREADLINE]: New functions to
2155         enable command completion in the --card-edit menu.
2156         (card_edit): Call them here.
2157
2158 2005-03-18  David Shaw  <dshaw@jabberwocky.com>
2159
2160         * keyedit.c (command_generator, keyedit_completion)
2161         [HAVE_LIBREADLINE]: New functions to enable command completion in
2162         the --edit-key menu.
2163         (keyedit_menu): Call them here.
2164
2165 2005-03-17  David Shaw  <dshaw@jabberwocky.com>
2166
2167         * getkey.c (get_seckey_byname2): If no explicit default key is
2168         set, don't pick a disabled default.  Noted by David Crick.
2169
2170         * Makefile.am: Calculate GNUPG_LIBEXECDIR directly.  Do not
2171         redefine $libexecdir.
2172
2173         * options.h, keyserver.c (parse_keyserver_options)
2174         (keyserver_spawn): Don't treat 'verbose' and 'include-disabled' as
2175         special.  Just pass them through silently to the keyserver helper.
2176
2177 2005-03-16  Werner Koch  <wk@g10code.com>
2178
2179         * ccid-driver.c (parse_ccid_descriptor): Make SCM workaround
2180         reader type specific.
2181         (scan_or_find_devices): Do not check the interface subclass in the
2182         SPR532 kludge, as this depends on the firmware version.
2183         (ccid_get_atr): Get the Slot status first.  This solves the
2184         problem with readers hanging on recent Linux 2.6.x.
2185         (bulk_in): Add argument TIMEOUT and changed all callers to pass an
2186         appropriate one.  Change the standard timeout from 10 to 5 seconds.
2187         (ccid_slot_status): Add a retry code with an initial short timeout.
2188         (do_close_reader): Do an usb_reset before closing the reader.
2189
2190 2005-03-14  Werner Koch  <wk@g10code.com>
2191
2192         * card-util.c (card_status): Use isotimestamp and not the
2193         localized asctimestamp to match the timezone used in the key
2194         information.
2195
2196         * cardglue.c (pin_cb): Disable debug output.
2197
2198 2005-03-11  Werner Koch  <wk@g10code.com>
2199
2200         * keygen.c (gen_card_key_with_backup): Write status line with the
2201         backup filename.
2202
2203         * status.h, status.h (STATUS_BACKUP_KEY_CREATED): New.
2204
2205 2005-03-10  David Shaw  <dshaw@jabberwocky.com>
2206
2207         * keyserver.c (parse_keyserver_options): Accept honor-http-proxy
2208         as an alias for http-proxy.
2209
2210         * delkey.c (do_delete_key, delete_keys): Fix problem with --expert
2211         preventing --delete-secret-and-public-keys from deleting secret
2212         keys.
2213
2214 2005-03-10  Werner Koch  <wk@g10code.com>
2215
2216         * keyedit.c (keyedit_menu) [W32]: Run the trustdb stale check
2217         earlier.
2218
2219 2005-03-07  Werner Koch  <wk@g10code.com>
2220
2221         * cardglue.c (agent_scd_pkdecrypt, agent_scd_pksign) 
2222         (agent_scd_genkey, agent_scd_setattr, agent_scd_change_pin) 
2223         (agent_scd_checkpin, agent_openpgp_storekey): Make sure to send a
2224         SC_OP_FAILURE after card operations which might change data.
2225         * card-util.c (change_pin): Send a SC_OP_SUCCESS after a PIN has
2226         been changed.
2227         (change_name): Removed a debug output.
2228         * status.h, status.c: New codes BAD_PASSPHRASE_PIN, SC_OP_FAILURE
2229         and SC_OP_SUCCESS.
2230
2231 2005-02-24  David Shaw  <dshaw@jabberwocky.com>
2232
2233         * keyedit.c (keyedit_menu): Only print the key signing hint when
2234         signing from a place where it is useful (i.e. --edit-key and not
2235         --sign-key).
2236
2237 2005-02-16  Werner Koch  <wk@g10code.com>
2238
2239         * card-util.c (fetch_url): Fetch the key from the default
2240         keyserver if no URL is available.
2241
2242 2005-02-15  Werner Koch  <wk@g10code.com>
2243
2244         * passphrase.c (agent_get_passphrase): Don't call free_public_key
2245         if PK is NULL.
2246         (passphrase_clear_cache): Ditto. Removed debug output.
2247         (passphrase_to_dek): Ditto.
2248
2249 2005-02-13  Werner Koch  <wk@g10code.com>
2250
2251         * keyedit.c (cmds): Limit code to 80 columns. Add command
2252         BKUPTOCARD.
2253
2254 2005-02-09  David Shaw  <dshaw@jabberwocky.com>
2255
2256         * encr-data.c (decrypt_data): Use it here to turn off the "quick
2257         check" bytes for PK decryptions.  This is in regards to the Mister
2258         and Zuccherato attack on OpenPGP CFB mode.
2259
2260         * mainproc.c (proc_symkey_enc): Set a flag to indicate that a
2261         particular session key came from a passphrase and not a PK.
2262
2263 2005-02-08  Werner Koch  <wk@g10code.com>
2264
2265         * misc.c (w32_shgetfolderpath): New.
2266         (default_homedir): Use it to avoid problems under Windows95.
2267
2268 2005-02-06  David Shaw  <dshaw@jabberwocky.com>
2269
2270         * trustdb.h, trustdb.c (trustdb_check_or_update): New.  If the
2271         trustdb is dirty and --interactive is set, do an --update-trustdb.
2272         If not interactive, do a --check_trustdb unless
2273         --no-auto-check-trustdb is set.
2274
2275         * import.c (import_keys_internal): Moved from here.
2276
2277         * keyserver.c (keyserver_refresh): Call it here after all
2278         refreshing has happened so that we don't rebuild after each
2279         preferred keyserver set of imports, but do one big rebuild at the
2280         end.  This is Debian bug #293816, noted by Kurt Roeckx.
2281
2282 2005-02-04  David Shaw  <dshaw@jabberwocky.com>
2283
2284         * getkey.c (merge_selfsigs_subkey): Merged away definition from
2285         the backsigs code.
2286
2287 2005-01-31  David Shaw  <dshaw@jabberwocky.com>
2288
2289         * keygen.c (do_generate_keypair): Write the auth key to the card
2290         before the encryption key.  This is a partial workaround for a PGP
2291         bug (as of this writing, all versions including 8.1), that causes
2292         it to try and encrypt to the most recent subkey regardless of
2293         whether that subkey is actually an encryption type.  In this case,
2294         the auth key is an RSA key so it succeeds.
2295
2296 2005-01-27  David Shaw  <dshaw@jabberwocky.com>
2297
2298         * keyid.c (keyid_from_sk, keyid_from_pk): Use 0xFFFFFFFFFFFFFFFF
2299         instead of 0x0000000000000000 for the invalid key ID since
2300         all-zeroes is reserved for the anonymous recipient.
2301
2302         * keyedit.c (change_passphrase), keygen.c (generate_subkeypair):
2303         Fix a string ;)
2304
2305 2005-01-27  Werner Koch  <wk@g10code.com>
2306
2307         * parse-packet.c (listfp): New.
2308         (set_packet_list_mode): Intialize it to stdout or stderr depending
2309         on a global option.  Made all printing in list mode use LISTFP.
2310
2311         * keygen.c (generate_subkeypair): Detect primary key on-card and
2312         ask for the passphrase.  Return an error if the primary key is a
2313         plain stub.
2314
2315         * keyedit.c (change_passphrase): Don't ever change any stub key.
2316         Print a note if a key consists of only stub keys.  Reported by
2317         Dany Nativel.  These are bugs #401 and #402.
2318
2319 2005-01-26  Werner Koch  <wk@g10code.com>
2320
2321         * ccid-driver.c (parse_ccid_descriptor): Need the CSM workaround
2322         also for newer firmware versions.  Need to get a list of fixed
2323         firmware versions and use that.
2324
2325 2005-01-26  David Shaw  <dshaw@jabberwocky.com>
2326
2327         * keyserver.c (parse_keyserver_uri): Allow RFC-2732 IPv6 [literal
2328         address] syntax in keyserver URLs.
2329         (keyserver_typemap): Map ftps if we are supporting it.
2330
2331 2005-01-25  Werner Koch  <wk@g10code.com>
2332
2333         * keygen.c (do_generate_keypair): Don't continue after an error;
2334         fixed at two places. Why at all didn't I used a goto to cleanup,
2335         tsss?
2336
2337         * app-openpgp.c (get_cached_data): New arg GET_IMMEDIATE to bypass
2338         the cache.  Changed all callers.
2339         (get_one_do): Bypass the cache if the value would have been read
2340         directly for v1.1 cards.  It makes things a bit slower but only for
2341         1.0 cards and there are not that many cards out in the wild.  This
2342         is required to fix a caching bug when generating new keys; as a
2343         side effect of the retrieval of the the C4 DO from the 6E DO the
2344         chaced fingerprint will get updated to the old value and later
2345         when signing the generated key the checking of the fingerprint
2346         fails becuase it won't match the new one.  Thanks to Moritz for
2347         analyzing this problem.
2348         (verify_chv3): Removed the CHV status reread logic because we
2349         won't cache the C4 DO anymore.
2350
2351 2005-01-21  David Shaw  <dshaw@jabberwocky.com>
2352
2353         * keyserver.c (free_keyserver_spec): Fix small leak.
2354         (keyserver_typemap): Map https if we are supporting it.
2355
2356 2005-01-20  Werner Koch  <wk@g10code.com>
2357
2358         * cardglue.c (open_card): Issue new CARDCTRL(4) status.
2359
2360         * gpgv.c (tty_fprintf): New stub.
2361
2362         * card-util.c (card_status): Create a secret key stub on the fly
2363         and print more information about a card key.
2364         * import.c (pub_to_sec_keyblock, auto_create_card_key_stub): New.
2365         * getkey.c (get_seckeyblock_byfprint): New.
2366         * keylist.c (print_card_key_info): New.
2367
2368         * g10.c (i18n_init) [W32]: Pass registry key to gettext
2369         initialization.
2370         * gpgv.c (i18n_init) [W32]: Ditto.
2371
2372 2005-01-18  Werner Koch  <wk@g10code.com>
2373
2374         * misc.c (default_homedir): New.  Taken from gnupg 1.9.15.
2375         * g10.c (main): Use it.
2376         * gpgv.c (main): Ditto.
2377
2378         * keylist.c (public_key_list): Do a trustdb staleness check before
2379         opening the keyring.
2380         (secret_key_list): Ditto.
2381
2382 2005-01-10  David Shaw  <dshaw@jabberwocky.com>
2383
2384         * keyedit.c (keyedit_menu): Move command strings outside the
2385         function to get ready for the readline completion code.
2386
2387         * passphrase.c (readline, agent_send_option, agent_open,
2388         agent_get_passphrase, passphrase_clear_cache): Rename readline()
2389         to readaline() to keep readline library namespace clear.
2390
2391 2005-01-06  David Shaw  <dshaw@jabberwocky.com>
2392
2393         * filter.h, armor.c (armor_filter): Use the eol string from the
2394         armor filter context instead of hardcoding '\n' or '\r\n'.  If no
2395         eol string is provided, default to '\n' or '\r\n' as appropriate.
2396         (is_armor_header): Trim tabs in armor header lines as well.
2397
2398         * keyserver.c (keyserver_spawn): Use it here to force '\n' line
2399         endings since the keyserver output file gets a LF->CRLF expansion
2400         on win32.
2401
2402 2005-01-05  David Shaw  <dshaw@jabberwocky.com>
2403
2404         * g10.c (main): Typo.
2405
2406         * armor.c (is_armor_header): Allow CR and LF (not just actual
2407         spaces) in an armor header line (-----BEGIN etc).  This is needed
2408         due to CRLF issues on win32.  As before, --openpgp makes it
2409         strict.
2410
2411 2005-01-03  David Shaw  <dshaw@jabberwocky.com>
2412
2413         * Makefile.am: Use @LIBUSB@ instead of @LIBUSB_LIBS@
2414
2415         * import.c (delete_inv_parts): Comments on import-unusable-sigs.
2416
2417 2005-01-01  David Shaw  <dshaw@jabberwocky.com>
2418
2419         * options.h, import.c (parse_import_options, delete_inv_parts):
2420         Add import-unusable-sigs flag to enable importing unusable
2421         (currently: expired) sigs.
2422
2423         * options.h, export.c (parse_export_options, do_export_stream):
2424         Add export-unusable-sigs flag to enable exporting unusable
2425         (currently: expired) sigs.
2426
2427 2004-12-29  David Shaw  <dshaw@jabberwocky.com>
2428
2429         * packet.h, getkey.c (merge_selfsigs_main, sig_to_revoke_info),
2430         keyid.c (revokestr_from_pk), keyedit.c (show_key_with_all_names):
2431         Show who revoked a key (either the same key or a designated
2432         revoker) and when.
2433
2434 2004-12-28  Werner Koch  <wk@g10code.com>
2435
2436         * ccid-driver.c (find_endpoint): New.
2437         (scan_or_find_devices): Add new args to return endpoint info and
2438         interface number.
2439         (ccid_open_reader, ccid_shutdown_reader): Take care of these new
2440         args.
2441         (bulk_in, bulk_out): Use the correct endpoints.
2442         (ccid_transceive_apdu_level): New.
2443         (ccid_transceive): Divert to above.
2444         (parse_ccid_descriptor): Allow APDU level exchange mode.
2445         (do_close_reader): Pass the interface number to usb_release_interface.
2446
2447 2004-12-24  David Shaw  <dshaw@jabberwocky.com>
2448
2449         * keyserver.c (keyserver_typemap): Only map HTTP and FTP if
2450         libcurl has specifically been selected to handle them.
2451
2452 2004-12-22  David Shaw  <dshaw@jabberwocky.com>
2453
2454         * options.h, keyserver.c (parse_keyserver_uri): Properly parse
2455         auth data from URLs and pass to keyserver helpers.
2456
2457         * keyserver.c (keyserver_typemap): New.  Map certain keyserver
2458         types to a common type (e.g. ldaps -> ldap).  If we are building
2459         with curl, map both http and ftp to curl.
2460
2461         * build-packet.c (build_sig_subpkt): Only allow one preferred
2462         keyserver subpacket at a time.
2463
2464 2004-12-21  David Shaw  <dshaw@jabberwocky.com>
2465
2466         * keyedit.c (menu_set_keyserver_url): Make sure we only operate on
2467         the chosen selfsig so we don't accidentally promote an older
2468         selfsig to chosen.  Discovered by Simon Josefsson and 'Todd'.
2469
2470         * keygen.c (ask_expire_interval): Fix typo.
2471
2472 2004-12-20  David Shaw  <dshaw@jabberwocky.com>
2473
2474         * keylist.c (list_keyblock_print): Secret key listings should
2475         always show everything (expired UIDs, revoked subkeys, etc, etc).
2476
2477         * keyedit.c (keyedit_menu): Add additional help for the "sign"
2478         flags.
2479
2480 2004-12-20  Werner Koch  <wk@g10code.com>
2481
2482         * keygen.c (ask_expire_interval): For better translations chnage 2
2483         strings.
2484
2485         * seckey-cert.c (do_check): Handle case when checksum was okay but
2486         passphrase still wrong.  Roman Pavlik found such a case.
2487
2488 2004-12-20  David Shaw  <dshaw@jabberwocky.com>
2489
2490         * keyedit.c (keyedit_menu): Invisible alias "passwd" as
2491         "password".
2492
2493         * passphrase.c: Don't check for __CYGWIN__, so it is treated as a
2494         unix-like system.
2495
2496         * options.h, g10.c (main), textfilter.c (standard): Use new option
2497         --rfc2440-text to determine whether to filter "<space>\t\r\n" or
2498         just "\r\n" before canonicalizing text line endings.  Default to
2499         "<space>\t\r\n".
2500
2501 2004-12-19  David Shaw  <dshaw@jabberwocky.com>
2502
2503         * keygen.c (keygen_get_std_prefs): Set reference count when
2504         creating the temporary user ID.
2505
2506         * keyedit.c (keyedit_menu): Merge updpref and setpref.  Keep
2507         updpref as an invisible alias.  Add invisible alias for revphoto.
2508         Fix small memory leak when using "setpref" (not all of the uid was
2509         freed).
2510         (menu_revkey): Trigger a trust rebuild after revoking a key.
2511         Don't allow revoking an already-revoked whole key.
2512         (menu_revsubkey): Don't allow revoking an already-revoked subkey.
2513
2514 2004-12-18  David Shaw  <dshaw@jabberwocky.com>
2515
2516         * keyedit.c (menu_revkey): Rename to menu_revsubkey.
2517         (menu_revkey): New.  Revoke a whole key.
2518         (keyedit_menu): Call it here for when 'revkey' is used without any
2519         subkeys selected.  This is to be consistent with the other
2520         functions which are "selected part if selected, whole key if not".
2521
2522         * signal.c: Use only HAVE_LIBREADLINE to detect readline
2523         availability.
2524
2525         * Makefile.am: Link with readline where necessary.
2526
2527 2004-12-17  Werner Koch  <wk@g10code.com>
2528
2529         * passphrase.c (agent_get_passphrase): Define NREAD locally as
2530         size_t or int.
2531
2532         * keylist.c (list_keyblock_print): Make field width an int.
2533         * keyedit.c (show_key_with_all_names): Ditto.
2534
2535 2004-12-16  David Shaw  <dshaw@jabberwocky.com>
2536
2537         * g10.c (main): Add --require-secmem/--no-require-secmem to cause
2538         gpg to exit if it cannot lock memory.  Also remove --nrsign-key
2539         and --nrlsign-key since this can better be done via --edit-key.
2540
2541 2004-12-15  David Shaw  <dshaw@jabberwocky.com>
2542
2543         * apdu.c (apdu_send_le, apdu_send_direct), keylist.c
2544         (status_one_subpacket, print_one_subpacket): Fix some compiler
2545         warnings.
2546
2547         * g10.c (main): Fix --compression-algo to take a string argument
2548         like --compress-algo.
2549
2550         * trustdb.c (uid_trust_string_fixed): For safety, check for a pk.
2551
2552 2004-12-14  David Shaw  <dshaw@jabberwocky.com>
2553
2554         * keyedit.c (keyedit_menu): Re-remove the N_() markers.
2555
2556         * trustdb.c (uid_trust_string_fixed): Show uids as revoked if the
2557         key is revoked.
2558         
2559         * keyedit.c (show_key_with_all_names): Don't show validity for
2560         secret key UIDs.
2561
2562         * keyedit.c (parse_sign_type): New.  Figure out the flags (local,
2563         nonrevoke, trust) for a signature.
2564         (keyedit_menu): Call it here so we can mix and match flags, and
2565         don't need "nrltsign", "ltsign", "tnrsign", etc, etc, etc.
2566
2567 2004-12-14  Werner Koch  <wk@g10code.com>
2568
2569         * passphrase.c (agent_get_passphrase): Removed debug output
2570
2571         * keyserver.c (keyserver_work, keyserver_spawn): Map ldaps to ldap.
2572
2573         * keyedit.c (keyedit_menu): Removed the N_() markers from the
2574         command names.
2575         * card-util.c (card_edit): Ditto.
2576
2577 2004-12-13  Werner Koch  <wk@g10code.com>
2578
2579         * passphrase.c (read_passphrase_from_fd): Fixed memory leak.
2580         Noted by Andrei Darashenka.
2581
2582 2004-12-11  David Shaw  <dshaw@jabberwocky.com>
2583
2584         * keyserver.c (parse_preferred_keyserver): Force preferred
2585         keyserver subpackets to have a URI scheme specified.
2586
2587 2004-12-10  David Shaw  <dshaw@jabberwocky.com>
2588
2589         * options.h, g10.c (main), textfilter.c (standard): Use --rfc2440
2590         or --openpgp directly to determine the end of line hashing rule.
2591
2592         * trustdb.c (uid_trust_string_fixed): Show uids as expired if the
2593         key is expired.
2594
2595 2004-12-10  Werner Koch  <wk@g10code.com>
2596
2597         * app-openpgp.c (send_fprtime_if_not_null): New.
2598         (do_getattr): Add KEY_TIME.
2599         (do_learn_status): Print KEY_TIME.
2600         * cardglue.c (learn_status_cb): Parse KEY-TIME.
2601         * card-util.c (card_status): Print creation time if available.
2602
2603 2004-12-09  David Shaw  <dshaw@jabberwocky.com>
2604
2605         * options.h, g10.c (main), textfilter.c (len_without_trailing_ws):
2606         Removed (not used).
2607         (standard): 2440 says that textmode hashes should canonicalize
2608         line endings to CRLF and remove spaces and tabs.  2440bis-12 says
2609         to just canonicalize to CRLF.  So, we default to the 2440bis-12
2610         behavior, but revert to the strict 2440 behavior if the user
2611         specifies --rfc2440.  In practical terms this makes no difference
2612         to any signatures in the real world except for a textmode detached
2613         signature.
2614
2615 2004-12-09  Werner Koch  <wk@g10code.com>
2616
2617         * passphrase.c (agent_get_passphrase): New args CUSTOM_PROMPT and
2618         CUSTOM_DESCRIPTION.     Changed all callers.
2619
2620         * app-openpgp.c (do_getattr, do_learn_status, do_setattr): Support
2621         the new private DOs.
2622         (do_change_pin): Add a "N" prefix to the strings so that the
2623         callback can act accordingly for a new PIN.  Unfortunately this
2624         breaks existing translations but I see no wother way to overvome
2625         this.
2626
2627         * cardglue.c (learn_status_cb): Ditto.
2628         (agent_release_card_info): Ditto.
2629         (struct pin_cb_info_s): Removed and changed all users.
2630         (pin_cb): Reworked.
2631
2632         * card-util.c (card_status): Print them
2633         (card_edit): New command PRIVATEDO.
2634         (change_private_do): New.
2635
2636 2004-12-09  David Shaw  <dshaw@jabberwocky.com>
2637
2638         * keygen.c (ask_algo): Add a choose-your-own-capabilities option
2639         for DSA.
2640
2641 2004-12-07  David Shaw  <dshaw@jabberwocky.com>
2642
2643         * keygen.c (ask_keysize): Change strings to always use %u instead
2644         of hardcoding key sizes.  Bump default to 2048.  Bump minimum down
2645         to 512, where possible, but require --expert to get there.  DSA is
2646         always 1024 unless --expert is given.
2647
2648 2004-11-29  David Shaw  <dshaw@jabberwocky.com>
2649
2650         * getkey.c (parse_key_usage): New function to parse out key usage
2651         flags.  Set PUBKEY_USAGE_UNKNOWN to handle flags that we don't
2652         understand.
2653         (fixup_uidnode, merge_selfsigs_main, merge_selfsigs_subkey): Call
2654         it from here to remove duplicate code.
2655
2656 2004-11-26  David Shaw  <dshaw@jabberwocky.com>
2657
2658         * export.c (do_export_stream): Allow export-minimal to work with
2659         secret keys, even though a non-selfsig secret key signature is
2660         rare.
2661
2662         * options.h, export.c (parse_export_options, do_export_stream),
2663         import.c (parse_import_options, import_keys_internal): Make the
2664         import-options and export-options distinct since they can be mixed
2665         together as part of keyserver-options.
2666
2667 2004-11-24  David Shaw  <dshaw@jabberwocky.com>
2668
2669         * options.h, export.c (parse_export_options, do_export_stream):
2670         Add "export-minimal" option to disregard any sigs except selfsigs.
2671
2672         * trustdb.c (uid_trust_string_fixed): Use a string that can be
2673         atoi-ed, but also has a comment for the translator.
2674
2675         * trustdb.h, trustdb.c (uid_trust_string_fixed): New.  Return a
2676         fixed-size translatable string similar to trust_value_to_string.
2677         This allows for easier lining up of displays.
2678
2679         * keyedit.c (show_key_with_all_names), keylist.c
2680         (list_keyblock_print): Use it here to print validity strings.
2681
2682         * gpgv.c: Stub.
2683
2684 2004-11-18  Werner Koch  <wk@g10code.com>
2685
2686         * g10.c (S_IRGRP) [HAVE_DOSISH_SYSTEM]: Define to 0.
2687
2688 2004-11-17  Werner Koch  <wk@g10code.com>
2689
2690         * g10.c (open_info_file): New.
2691         (main): Unconditionally implement --status-file, --logger-file,
2692         --attribute-file, --passphrase-file, --command-file.  This is not
2693         generally useful but easy to support and might make scripting
2694         under Windows easier.
2695
2696 2004-11-11  Werner Koch  <wk@g10code.com>
2697
2698         * passphrase.c (readn): Fixed test against EINTR.
2699
2700 2004-11-05  Werner Koch  <wk@g10code.com>
2701
2702         * app-openpgp.c: Made more strings translatable.
2703         (verify_chv3, do_change_pin): Add a special prefix to the prompt
2704         of the Admin PIN prompts.
2705         * passphrase.c (ask_passphrase): Add arg TRYAGAIN_TEXT.  Changed
2706         call callers.
2707         * cardglue.c (pin_cb): Make use of the OPAQUE arg to pass
2708         arguments to the PIN callback.  Use this to implement a way to
2709         check for correct PIN repetition.  Changed all callers to pass an
2710         opaque argument. Improved detection of Admin PIN prompts.
2711
2712 2004-11-04  David Shaw  <dshaw@jabberwocky.com>
2713
2714         * plaintext.c (handle_plaintext): Don't try and create a
2715         zero-length filename when using --use-embedded-filename with input
2716         that has no filename (clearsigned or message generated from a
2717         pipe).
2718
2719         * encode.c (encode_simple, encode_crypt), progress.c
2720         (handle_progress), sign.c (write_plaintext_packet): Fix a few
2721         inconsistent calls (NULL filename means a pipe here, so don't
2722         bother to check it twice).
2723
2724 2004-11-03  David Shaw  <dshaw@jabberwocky.com>
2725
2726         * misc.c (print_digest_algo_note): The latest 2440bis drafts
2727         deprecates MD5, so give a warning.
2728         (print_pubkey_algo_note, print_cipher_algo_note,
2729         print_digest_algo_note): Give the algorithm name in the
2730         experimental algo warning.
2731
2732 2004-11-03  Timo Schulz  <twoaday@g10code.com>
2733
2734         * passphrase.c (readn, writen): Use w32_strerror instead
2735         of just showing the error number.
2736         * misc.c [_WIN32]: Fix warning about missing prototypes.
2737         
2738 2004-10-28  David Shaw  <dshaw@jabberwocky.com>
2739
2740         * skclist.c (build_sk_list): Don't need to warn about
2741         PGP-generated Elgamal signing keys since we no longer support any
2742         Elgamal signing keys.
2743
2744         * sign.c (sign_file, clearsign_file): Use "writing to" instead of
2745         "writing to file" to match other strings.
2746
2747         * pkclist.c (check_signatures_trust): Fix typo.  Noted by Moray
2748         Allan.  This is Debian bug #278708.
2749
2750         * passphrase.c (ask_passphrase, passphrase_to_dek): "password" ->
2751         "passphrase".
2752
2753         * keyedit.c (show_key_with_all_names): Show designated revoker as
2754         part of translatable string.
2755
2756 2004-10-28  Werner Koch  <wk@g10code.com>
2757
2758         * Makefile.am (other_libs): New.  Also include LIBICONV.  Noted by
2759         Tim Mooney.
2760
2761 2004-10-28  Werner Koch  <wk@g10code.com>
2762
2763         * apdu.c (open_pcsc_reader): Removed bad free in error handler.
2764
2765 2004-10-27  David Shaw  <dshaw@jabberwocky.com>
2766
2767         * card-util.c, delkey.c, keygen.c, plaintext.c, keyedit.c,
2768         passphrase.c, revoke.c: Collapse the two different "can't do that
2769         in batch mode" strings into one.
2770
2771         * keylist.c (status_one_subpacket): New.  Send the subpacket data
2772         to the --status interface.
2773
2774         * card-util.c (card_edit): Show when admin is enabled or not.
2775
2776         * status.h, status.c: New STATUS_SIG_SUBPACKET type.
2777
2778         * build-packet.c (build_sig_subpkt): Multiple keyserver URLs are
2779         allowed.
2780
2781         * keyring.c: Make some strings translatable.
2782
2783         * exec.c, sign.c: Change "can't open file" to "can't open" and
2784         "can't create file" to "can't create" to be consistent with other
2785         strings so we don't have to translate both.
2786
2787         * delkey.c, export.c, keyedit.c, pkclist.c, revoke.c, skclist.c:
2788         Fix a few missed possible \"username\" quotes.
2789
2790 2004-10-26  Werner Koch  <wk@g10code.com>
2791
2792         * app-openpgp.c (verify_chv3): The minimum length for CHV3 is
2793         8. Changed string to match the other ones.
2794
2795         * passphrase.c (agent_send_all_options): Try to deduce the ttyname
2796         from stdin.
2797
2798 2004-10-22  Werner Koch  <wk@g10code.com>
2799
2800         * card-util.c (fetch_url): Disable for gnupg 1.9
2801         (card_generate_subkey): Ditto.
2802         (card_store_subkey): Ditto.
2803
2804 2004-10-21  David Shaw  <dshaw@jabberwocky.com>
2805
2806         * options.h, g10.c (main), mainproc.c (check_sig_and_print):
2807         Rename verify-option show-validity to show-uid-validity to match
2808         the similar list-option.
2809
2810         * app-openpgp.c (verify_chv3): Fix typo.
2811
2812 2004-10-21  Werner Koch  <wk@g10code.com>
2813
2814         * app-common.h (app_openpgp_storekey): Add prototype.
2815
2816         * app-openpgp.c (do_sign): Replace asprintf by direct allocation.
2817         This avoids problems with missing vasprintf implementations.
2818
2819         * card-util.c (generate_card_keys): Add a #warning for gnupg 1.9
2820         and use the same string there.
2821
2822 2004-10-20  David Shaw  <dshaw@jabberwocky.com>
2823
2824         * g10.c (parse_list_options): Fix non-constant initializer so we
2825         can build with C89.
2826
2827 2004-10-17  David Shaw  <dshaw@jabberwocky.com>
2828
2829         * keylist.c (print_one_subpacket): The flags field should be hex.
2830
2831 2004-10-17  Werner Koch  <wk@g10code.com>
2832
2833         * passphrase.c (agent_get_passphrase): Cast UIDLEN to int.  Noted
2834         by Christian Cornelssen.
2835
2836 2004-10-16  David Shaw  <dshaw@jabberwocky.com>
2837
2838         * parse-packet.c (parse_one_sig_subpkt, enum_sig_subpkt): Don't
2839         BUG() on unknown subpackets.  Rather, just return them silently.
2840         
2841 2004-10-15  Werner Koch  <wk@g10code.com>
2842
2843         * status.h (STATUS_NEED_PASSPHRASE_PIN): New.
2844         * status.c (get_status_string): Added.
2845         * passphrase.c (ask_passphrase): Moved status printing to ..
2846         * cardglue.c (pin_cb): .. here and issue new status message.
2847
2848         * keyedit.c (sign_uids): Don't include the leading LF in the
2849         translatable string but print them separately.
2850
2851         * apdu.c (apdu_open_remote_reader) [_WIN32]: We don't have ENOSYS.
2852
2853         * app-openpgp.c (parse_login_data): New. 
2854         (app_select_openpgp): Call it.
2855         (do_setattr): Reparse it after change.
2856
2857         * pkclist.c (do_edit_ownertrust): Add a note to translators.
2858         * keygen.c (ask_user_id): Ditto.
2859
2860         * helptext.c: Typo fix.
2861
2862 2004-10-14  David Shaw  <dshaw@jabberwocky.com>
2863
2864         * keylist.c (list_keyblock_print): Show the fingerprint after the
2865         key, not after the first user ID.
2866
2867         * keyedit.c (show_key_with_all_names): Don't show validity if
2868         we're just printing user IDs for signing.
2869
2870         * armor.c (fake_packet): Properly handle the case where the line
2871         is dash-space (i.e. a blank line that was quoted).  Give a warning
2872         for bad dash escaping.
2873
2874 2004-10-14  Werner Koch  <wk@g10code.com>
2875
2876         * export.c (do_export_stream) [ENABLE_SELINUX_HACKS]: Don't allow
2877         secret key export.
2878         * import.c (import_secret_one) [ENABLE_SELINUX_HACKS]: Likewise 
2879
2880         * misc.c (is_secured_filename): New.
2881         * keydb.c (maybe_create_keyring)
2882         * tdbio.c (tdbio_set_dbname)
2883         * plaintext.c (handle_plaintext)
2884         * openfile.c (copy_options_file, open_outfile)
2885         * exec.c (exec_write)
2886         * keygen.c (do_generate_keypair, gen_card_key_with_backup)
2887
2888         * sign.c (sign_file, clearsign_file)
2889         * keyring.c (create_tmp_file, do_copy): Check for secured files
2890         before creating them. 
2891
2892         * keygen.c (print_status_key_created, read_parameter_file):
2893         s/unsigned char/byte/ due to a strange typedef for RISC OS.  Noted
2894         by Stefan.
2895
2896 2004-10-13  David Shaw  <dshaw@jabberwocky.com>
2897
2898         * armor.c (fake_packet): Allow arbitrary dash-escaped lines as per
2899         2440bis-10.  This is bug #158.
2900
2901         * keyserver.c (keyserver_work): Handle keyserver timeouts.
2902
2903         * pkclist.c (do_edit_ownertrust): Different prompt when we're
2904         using direct trust since the meaning is different.
2905
2906         * keyedit.c (trustsig_prompt): Change the strings to match the
2907         ones in pkclist.c:do_edit_ownertrust to make translation easier.
2908
2909         * trustdb.c (trust_model_string, get_validity): Add direct trust
2910         model which applies to the key as a whole and not per-uid.
2911
2912         * options.h, g10.c (parse_trust_model): New.
2913         (main): Call it from here to do string-to-trust-model.
2914
2915 2004-10-13  Werner Koch  <wk@g10code.com>
2916
2917         * tdbdump.c (import_ownertrust): Removed all log_error_f and
2918         reworded the messages.
2919
2920         * dermor.c: Include i18n.h.  Made 2 strings translatable.
2921         
2922         * misc.c (register_secured_file, is_secured_file)
2923         (unregister_secured_file): New.
2924         * keyring.c (do_copy, rename_tmp_file): Implement the SELinux hacks.
2925         (keyring_register_filename): Ditto.
2926         * tdbio.c (open_db): Ditto.
2927         * openfile.c (copy_options_file, open_sigfile): Ditto.
2928         * verify.c (verify_signatures, verify_one_file): Ditto.
2929         * photoid.c (generate_photo_id): Ditto.
2930         * keygen.c (read_parameter_file): Ditto.
2931         * import.c (import_keys_internal): Ditto.
2932         * decrypt.c (decrypt_message, decrypt_messages): Ditto.
2933         * dearmor.c (dearmor_file, enarmor_file): Ditto.
2934         * g10.c (main, print_mds): Ditto.
2935         * exec.c (exec_write, exec_read): Ditto. 
2936         * card-util.c (change_login): Ditto.
2937         * encode.c (encode_simple, encode_crypt): Ditto.
2938
2939         * openfile.c (overwrite_filep, make_outfile_name, open_outfile) 
2940         (open_sigfile): Use iobuf_is_pipe_filename to check for pipes so
2941         that special filesnames are taken into account. This is bug 327.
2942
2943         * tdbdump.c (import_ownertrust): Ditto.
2944
2945         * sign.c (write_plaintext_packet): Ditto.
2946         (sign_file, clearsign_file, sign_symencrypt_file): 
2947
2948         * progress.c (handle_progress): Ditto.
2949         * plaintext.c (handle_plaintext): Ditto.
2950         (ask_for_detached_datafile, hash_datafiles): 
2951
2952         * encode.c (encode_simple, encode_crypt): Ditto. 
2953
2954 2004-10-12  Werner Koch  <wk@g10code.com>
2955
2956         * keygen.c (read_parameter_file): Changed to use iobuf based file
2957         reading to allow the special file name feature to work.
2958
2959         * keygen.c (read_parameter_file): New keyword "Handle".  This is
2960         bug 287.
2961         (print_status_key_not_created): New.
2962         (print_status_key_created): Add new arg HANDLE.
2963         (do_generate_keypair): Print not created status.
2964         * status.c, tatus.h (STATUS_KEY_NOT_CREATED): New. 
2965
2966 2004-10-11  David Shaw  <dshaw@jabberwocky.com>
2967
2968         * pkclist.c (do_edit_ownertrust): Use the same translated string
2969         for showing the user ID as mainproc.c:print_pkenc_list.
2970
2971         * mainproc.c (print_pkenc_list): Allow translating the quotes
2972         around the user ID.
2973
2974         * card-util.c, g10.c, photoid.c, trustdb.c: The last of the \"%s\"
2975         -> `%s' quoting for things that aren't user IDs.
2976
2977         * keyserver.c (keyserver_spawn): If there is no keyserver host,
2978         print the whole URI since it is self-contained.
2979
2980 2004-10-11  Werner Koch  <wk@g10code.com>
2981
2982         * keyserver.c (keyserver_spawn): Print an empty string in log_info
2983         if the host is not set (e.g. finger).
2984
2985 2004-10-10  David Shaw  <dshaw@jabberwocky.com>
2986
2987         * card-util.c, keyedit.c, openfile.c, pkclist.c, delkey.c,
2988         keygen.c, photoid.c, revoke.c: Some yes-or-no prompts end in
2989         "(y/n)".  Some don't.  Consistently use y/n everywhere.
2990
2991         * keygen.c (ask_key_flags): New.
2992         (ask_algo): Call it here in --expert mode so we don't need to
2993         specify each possible variation of RSA capabilities.
2994
2995         * keygen.c (do_add_key_flags): The spec says that all primary keys
2996         MUST be able to certify.  Force the certify flag on for primaries
2997         (and off for subkeys).
2998
2999         * keygen.c (generate_keypair): Fix generating keys with the auth
3000         flag.
3001
3002 2004-10-08  David Shaw  <dshaw@jabberwocky.com>
3003
3004         * encr-data.c (decrypt_data): Give a warning with a weak key, but
3005         still allow to decrypt the message.
3006
3007 2004-10-07  David Shaw  <dshaw@jabberwocky.com>
3008
3009         * pkclist.c (build_pk_list): Keystrify.
3010
3011         * mainproc.c (check_sig_and_print), pkclist.c
3012         (do_edit_ownertrust): Improve translatability of user ID prompts.
3013
3014 2004-10-06  David Shaw  <dshaw@jabberwocky.com>
3015
3016         * helptext.c, pkclist.c (do_we_trust): It is not possible to get
3017         here with a revoked or expired key, so BUG() that case.  Remove
3018         question about overriding revoked/expired.  Also
3019         --keyid-format-ify.
3020         (do_we_trust_pre): Use print_pubkey_info() instead of printing the
3021         info ourselves.
3022
3023         * passphrase.c (passphrase_to_dek): Improve translatability of
3024         user ID prompts.
3025
3026         * keylist.c (print_pubkey_info): Use the user ID the pk was
3027         selected by, if any.
3028
3029         * keyedit.c (sign_uids, ask_revoke_sig): Improve translatability
3030         of user ID prompts.
3031         (ask_revoke_sig, menu_revsig): Try and use common strings for
3032         these two functions so they don't need to be translated twice.
3033
3034         * keyedit.c, keylist.c, keyserver.c, mainproc.c: The
3035         revoked/expired/expires string change of 2004-09-29 was too
3036         simple.  Use two styles for each tag.
3037
3038 2004-10-06  Werner Koch  <wk@g10code.com>
3039
3040         * ccid-driver.c (ccid_open_reader): Store the vendor ID.
3041         (ccid_transceive_secure): New.
3042         (parse_ccid_descriptor): Workaround for an SCM reader problem.
3043         (send_escape_cmd): New.
3044
3045 2004-10-05  David Shaw  <dshaw@jabberwocky.com>
3046
3047         * passphrase.c (agent_get_passphrase): Use keystrs for agent
3048         strings, and fix sprintf warnings.
3049
3050         * keyserver.c (keyserver_spawn): Fix BUG() with certain sets of
3051         mixed regular and preferred keyserver refreshes.  Noted by
3052         Sebastian Wiesinger.
3053
3054         * keyedit.c (show_key_with_all_names): Show uid validity in menu.
3055
3056 2004-10-03  Timo Schulz  <twoaday@g10code.de>
3057
3058         * apdu.c (apdu_open_remote_reader) [_WIN32]: Do not set ENOSYS.
3059         
3060 2004-10-03  David Shaw  <dshaw@jabberwocky.com>
3061
3062         * keyedit.c (print_and_check_one_sig_colon): Fix bad keyids in
3063         colon delsig output.  Noted by Peter Palfrader.
3064         (show_prefs): Do not reference missing selfsig.  Noted by Alex
3065         Moroz.
3066
3067 2004-10-01  Werner Koch  <wk@g10code.com>
3068
3069         * gpgv.c (i18n_init): Always use LC_ALL.
3070
3071 2004-09-30  Werner Koch  <wk@g10code.com>
3072
3073         * app-openpgp.c (verify_chv3) [GNUPG_MAJOR_VERSION!=1]: Typo fix.
3074
3075 2004-09-30  David Shaw  <dshaw@jabberwocky.com>
3076
3077         * gpgv.c, keydb.c (keydb_add_resource): Factored keyring creation
3078         out to ..
3079         (maybe_create_keyring): .. new.  Make sure that we do the checks
3080         in a locked state.  Problem reported by Stefan Haller.  Try to
3081         create the home directory before acquiring a lock for the keyring.
3082         From Werner on stable branch.
3083
3084         * g10.c (main): Blow up if we didn't lose setuid.  From Werner on
3085         stable branch.
3086
3087 2004-09-29  David Shaw  <dshaw@jabberwocky.com>
3088
3089         * keyedit.c, keylist.c, keyserver.c, mainproc.c: Reduce the many
3090         variations of "revoked" ("revoked", "[revoked]", " [revoked]",
3091         "[revoked] ") "and" expired down to two to simplify translation.
3092
3093 2004-09-28  David Shaw  <dshaw@jabberwocky.com>
3094
3095         * keyedit.c (print_and_check_one_sig): Account for the extra space
3096         that show-sig-expire takes up so we do not wrap lines.
3097         (show_key_with_all_names): No need to show subkey revocations as a
3098         seperate line since we now show revocation date in the main subkey
3099         line.
3100
3101         * signal.c (got_fatal_signal): HAVE_DECL_SYS_SIGLIST is defined,
3102         but zero if not found.  Noted by John Clizbe.
3103
3104         * keyserver.c (parse_keyrec): Fix problem with non-expiring keys
3105         appearing expired in --search-keys results.
3106
3107 2004-09-27  Werner Koch  <wk@g10code.com>
3108
3109         * card-util.c (card_edit): Take admin only status from the table.
3110
3111         * app-openpgp.c: Made all strings translatable.
3112         (verify_chv3) [GNUPG_MAJOR_VERSION]: Make opt.allow_admin
3113         available for use in gnupg 2. 
3114         (verify_chv3): Reimplemented countdown showing to use only
3115         functions from this module.  Flush the CVH status cache on a
3116         successful read.
3117         (get_one_do): Hack to bypass the cache for cards versions > 1.0.
3118         (store_fpr): Store the creation date for card version > 1.0.
3119
3120 2004-09-25  David Shaw  <dshaw@jabberwocky.com>
3121
3122         * main.h, g10.c (main), card-util.c (change_pin): If "admin" has
3123         not been issued, skip right to the CHV1/CHV2 PIN change.  No need
3124         to show the unblock or admin PIN change option.
3125         (card_edit): Add "admin" command to add admin commands to the
3126         menu.  Do not allow admin commands until "admin" is given.
3127
3128         * app-openpgp.c (verify_chv3): Show a countdown of how many wrong
3129         admin PINs can be entered before the card is locked.
3130
3131         * options.h, g10.c (main), app-openpgp.c (verify_chv3): Remove
3132         --allow-admin.
3133
3134 2004-09-24  David Shaw  <dshaw@jabberwocky.com>
3135
3136         * main.h: Create S2K_DIGEST_ALGO macro so we do not need to always
3137         set opt.s2k_digest_algo.  This helps fix a problem with PGP 2.x
3138         encrypted symmetric messages.  Change all callers (encode.c,
3139         g10.c, keyedit.c, keygen.c, passphrase.c, sign.c).
3140
3141         * armor.c, cardglue.c, getkey.c, import.c, keygen.c: Be consistent
3142         in some more quoted strings.  Always use 'user ID', not 'user id',
3143         "quotes" for user IDs, etc.
3144
3145         * keyedit.c (keyedit_menu), gpgv.c (agent_scd_getattr (stub)),
3146         keygen.c (copy_mpi, generate_raw_key): Fix a compile problem and a
3147         few warnings when building without card support.
3148
3149 2004-09-23  Werner Koch  <wk@g10code.com>
3150
3151         * card_util.c (generate_card_keys): ask whether backup should be
3152         created.
3153         (card_store_subkey): Factored some code out to ..
3154         * keygen.c (save_unprotected_key_to_card): .. new function.
3155         (gen_card_key_with_backup): New.
3156         (generate_raw_key): New.
3157         (generate_keypair): New arg BACKUP_ENCRYPTION_DIR.  Changed all
3158         callers.
3159         (do_generate_keypair): Divert to gen_card_key_with_backup when
3160         desired.
3161
3162         * apdu.c (open_pcsc_reader): Do not print empty reader string.
3163
3164         * keygen.c (ask_algo): Allow creation of AUTH keys.
3165
3166         * keyid.c (usagestr_from_pk): New.
3167
3168         * app-openpgp.c (app_openpgp_storekey): Call flush_cache.
3169         (get_cached_data): Move local data initialization to ..
3170         (app_select_openpgp): .. here. Read some flags for later use.
3171         (do_getattr): New read-only attribute EXTCAP.
3172
3173         * keyedit.c (keyedit_menu): New command "keytocard"
3174         (keyedit_menu): Bad hack for the not_with_sk element.
3175         (show_key_with_all_names): Print the usage.
3176         (find_pk_from_sknode): New.
3177
3178         * card-util.c (card_store_subkey): New.
3179         (copy_mpi): New.
3180
3181         * cardglue.c (agent_openpgp_storekey): New.
3182
3183 2004-09-22  Werner Koch  <wk@g10code.com>
3184
3185         * card-util.c (card_generate_subkey, generate_card_keys): Factored
3186         common code out to ...
3187         (get_info_for_key_operation, check_pin_for_key_operation)
3188         (restore_forced_chv1, replace_existing_key_p)
3189         (show_card_key_info): ... new functions.
3190
3191 2004-09-21  David Shaw  <dshaw@jabberwocky.com>
3192
3193         * mainproc.c (check_sig_and_print), keyedit.c (show_prefs,
3194         menu_set_keyserver_url): Make sure that keyserver URLs with
3195         control characters inside are printed properly.  In fact, handle
3196         them as UTF8.
3197
3198         * keyedit.c (keyedit_menu): Don't show "addcardkey" in the menu if
3199         we do not have card support.
3200
3201         * keydb.h, keyserver.c (print_keyrec, keyserver_spawn): fpr is an
3202         array of unsigned bytes.
3203
3204 2004-09-20  Werner Koch  <wk@g10code.com>
3205
3206         * g10.c: Make -K an alias for --list-secret-keys.
3207
3208         * keylist.c (print_card_serialno): New. Taken from gnupg 1.9.11.
3209         (list_keyblock_print): Make use of it.
3210         * keyedit.c (show_key_with_all_names): Print the card S/N.
3211
3212         * keyedit.c (keyedit_menu): New command ADDCARDKEY.
3213         * card-util.c (card_generate_subkey): New.
3214         * keygen.c (generate_card_subkeypair): New.
3215         (gen_card_key): New arg IS_PRIMARY; changed all callers.
3216
3217         * cardglue.c (open_card): Use shutdown code if possible.
3218         (check_card_serialno): Ditto.
3219
3220         * ccid-driver.c (do_close_reader): Factored some code out from ...
3221         (ccid_close_reader): ..here.
3222         (ccid_shutdown_reader): New.
3223
3224         * apdu.c (apdu_shutdown_reader): New.
3225         (shutdown_ccid_reader): New.
3226
3227 2004-09-17  Werner Koch  <wk@g10code.com>
3228
3229         * g10.c (list_config): New config option ccid-reader-id.
3230         (gpgconf_list): Add "reader-port".
3231
3232         * apdu.c (open_ccid_reader): New arg PORTSTR.  Pass it to
3233         ccid_open_reader.
3234         (apdu_open_reader): Pass portstr to open_ccid_reader.
3235         (apdu_open_reader): No fallback if a full CCID reader id has been
3236         given.
3237
3238         * ccid-driver.c (ccid_get_reader_list): New.
3239         (ccid_open_reader): Changed API to take a string for the reader.
3240         Removed al the cruft for the libusb development vesion which seems
3241         not to be maintained anymore and there are no packages anyway.
3242         The stable library works just fine.
3243         (struct ccid_reader_id_s): Deleted and replaced everywhere by a
3244         simple string.
3245         (usb_get_string_simple): Removed.
3246         (bulk_in): Do valgrind hack here and not just everywhere.
3247
3248 2004-09-16  David Shaw  <dshaw@jabberwocky.com>
3249
3250         * keyedit.c (show_key_with_all_names, show_prefs): Show preferred
3251         keyserver(s) in "showpref" output.
3252
3253         * keygen.c (keygen_add_keyserver_url), keyedit.c
3254         (menu_set_keyserver_url): Allow setting a keyserver URL of "none"
3255         to remove an existing keyserver URL.
3256
3257         * keyedit.c (menu_set_keyserver_url): Confirm replacement of a
3258         keyserver URL before overwriting the old one.
3259
3260 2004-09-15  David Shaw  <dshaw@jabberwocky.com>
3261
3262         * gpgv.c (agent_scd_getattr): Stub.
3263
3264         * misc.c (get_signature_count): New.  Get the signature count from
3265         a smartcard.
3266         (pct_expando): Call it here so the %c expando becomes the number
3267         of signatures issued.  This allows for notations or the like with
3268         an automatic signature count.
3269
3270         * ccid-driver.c (usb_get_string_simple): Replacement function to
3271         work with older libusb.
3272
3273 2004-09-15  Werner Koch  <wk@g10code.com>
3274
3275         * g10.c [HAVE_LIBUSB]: New option --debug-ccid-driver.
3276
3277         * ccid-driver.c (read_device_info): Removed.
3278         (make_reader_id, scan_or_find_devices): New.
3279         (ccid_open_reader): Simplified by make use of the new functions.
3280         (ccid_set_debug_level): New.  Changed the macros to make use of
3281         it.  It has turned out that it is often useful to enable debugging
3282         at runtime so I added this option.
3283
3284 2004-09-13  David Shaw  <dshaw@jabberwocky.com>
3285
3286         * getkey.c (premerge_public_with_secret): Fix subkey<->binding sig
3287         mismatch when some secret subkeys are missing.  Discovered by
3288         Michael Roth.
3289
3290         * main.h, keylist.c (print_subpackets_colon): Make a public
3291         function.
3292
3293         * keyedit.c (print_and_check_one_sig_colon): New.  Print a
3294         with-colons version of the sig record.
3295         (menu_delsig): Call it here for a with-colons delsig.
3296
3297 2004-09-12  David Shaw  <dshaw@jabberwocky.com>
3298
3299         * options.h, keylist.c (print_one_subpacket,
3300         print_subpackets_colon): Print a spk record for each request
3301         subpacket.
3302         (list_keyblock_colon): Call them here.
3303
3304         * g10.c (parse_subpacket_list, parse_list_options): New.  Make the
3305         list of subpackets we are going to print.
3306         (main): Call them here.
3307
3308 2004-09-11  David Shaw  <dshaw@jabberwocky.com>
3309
3310         * card-util.c (fetch_url, card_edit): Use the pubkey URL stored on
3311         the card to fetch an updated copy.  Works with either straight
3312         URLs or HKP or LDAP keyservers.
3313
3314         * keyserver-internal.h, keyserver.c (keyserver_import_fprint),
3315         import.c (revocation_present): Use a keyserver_spec so the caller
3316         can pass in whatever keyserver they like.
3317
3318 2004-09-10  David Shaw  <dshaw@jabberwocky.com>
3319
3320         * app-openpgp.c (get_cached_data): Avoid mallocing zero since it
3321         breaks us when using --enable-m-guard.
3322
3323         * ccid-driver.c (read_device_info): Fix segfault when usb device
3324         is not accessible.
3325         (ccid_open_reader): Allow working with an even older version of
3326         libusb (usb_busses global instead of usb_get_busses()).
3327
3328 2004-09-09  Werner Koch  <wk@g10code.com>
3329
3330         * cardglue.h: Add members for CA fingerprints.
3331         * cardglue.c (agent_release_card_info): Invalid them.
3332         (learn_status_cb): Store them.
3333
3334         * app-common.h, app-openpgp.c, iso7816.c, iso7816.h
3335         * apdu.c, apdu.h, ccid-driver.c, ccid-driver.h
3336         * card-util.c: Updated from current gnupg-1.9.
3337
3338         Changes are:
3339
3340         * ccid-driver.h (CCID_DRIVER_ERR_ABORTED): New.
3341         * ccid-driver.c (ccid_open_reader): Support the stable 0.1 version
3342         of libusb.
3343         (ccid_get_atr): Handle short messages.
3344         * apdu.c (my_rapdu_get_status): Implemented.
3345         * apdu.c: Include <signal.h>.
3346         * apdu.c (reader_table_s):  Add function pointers for the backends.
3347         (apdu_close_reader, apdu_get_status, apdu_activate) 
3348         (send_apdu): Make use of them.
3349         (new_reader_slot): Intialize them to NULL.
3350         (dump_ccid_reader_status, ct_dump_reader_status): New.
3351         (dump_pcsc_reader_status): New.
3352         (open_ct_reader, open_pcsc_reader, open_ccid_reader) 
3353         (open_osc_reader, open_rapdu_reader): Intialize function pointers.
3354         (ct_activate_card, ct_send_apdu, pcsc_send_apdu, osc_send_apdu) 
3355         (error_string): Removed.  Replaced by apdu_strerror.
3356         (get_ccid_error_string): Removed.
3357         (ct_activate_card): Remove the unused loop.
3358         (reset_ct_reader): Implemented.
3359         (ct_send_apdu): Activate the card if not yet done.
3360         (pcsc_send_apdu): Ditto.
3361         * ccid-driver.h: Add error codes.
3362         * ccid-driver.c: Implement more or less proper error codes all
3363         over the place.
3364         * apdu.c (apdu_send_direct): New.
3365         (get_ccid_error_string): Add some error code mappings.
3366         (send_apdu): Pass error codes along for drivers already supporting
3367         them.
3368         (host_sw_string): New.
3369         (get_ccid_error_string): Use above.
3370         (send_apdu_ccid): Reset the reader if it has not yet been done.
3371         (open_ccid_reader): Don't care if the ATR can't be read.
3372         (apdu_activate_card): New.
3373         (apdu_strerror): New.
3374         (dump_reader_status): Only enable it with opt.VERBOSE.
3375         * iso7816.c (map_sw): Add mappings for the new error codes.
3376         * apdu.c (open_ct_reader, open_pcsc_reader, open_ccid_reader)
3377         (reset_ccid_reader, open_osc_reader): Call dump_reader_status only
3378         in verbose mode.
3379         * app-openpgp.c (do_getattr): Fix for sending CA-FPR.
3380         * app-openpgp.c (app_openpgp_readkey): Fixed check for valid
3381         exponent.
3382         * app-openpgp.c (do_setattr): Sync FORCE_CHV1.
3383         * card-util.c (change_login): Kludge to allow reading data from a
3384         file.
3385         (card_edit): Pass ARG_STRING to change_login.
3386         (card_status): Print CA fingerprints.
3387         (change_cafpr): New.
3388         (card_edit): New command CAFPR.
3389
3390 2004-04-30  Werner Koch  <wk@gnupg.org>
3391
3392         * g10.c (main) <gpgconf>: Use gpg.conf and not /dev/null as
3393         default filename.
3394
3395 2004-04-28  Werner Koch  <wk@gnupg.org>
3396
3397         * card-util.c (card_edit): Remove PIN verification.
3398         (generate_card_keys): New arg SERIALNO.  Do PIN verification here
3399         after resetting forced_chv1.
3400
3401         
3402 2004-09-09  Werner Koch  <wk@g10code.com>
3403
3404         * signal.c (got_fatal_signal): Do readline cleanup.  Print signal
3405         number if we can't print the name. Use new autoconf macro
3406         HAVE_DECL_SYS_SIGLIST.
3407         (get_signal_name): Removed.
3408
3409         * photoid.c: Include ttyio.h.
3410
3411         * parse-packet.c (skip_rest): Removed.  Changed all callers to use
3412         the new iobuf_skip_reset.  Orginal patch by Florian Weimer.
3413
3414 2004-09-07  Werner Koch  <wk@g10code.de>
3415
3416         * photoid.c (generate_photo_id): Use tty_printf and not just
3417         printf.  Put _() around one string.
3418
3419 2004-09-03  David Shaw  <dshaw@jabberwocky.com>
3420
3421         * keyserver.c (parse_keyrec): Force the 'e'xpired flag on as soon
3422         as we know the key is definitely expired.  Some translatable
3423         string cleanup.
3424
3425 2004-08-27  David Shaw  <dshaw@jabberwocky.com>
3426
3427         * encode.c, exec.c, g10.c, sign.c: Some translatable string
3428         cleanup.  Change some "this" to `this'.
3429
3430 2004-08-23  David Shaw  <dshaw@jabberwocky.com>
3431
3432         * keyserver.c (keyserver_spawn): Show log line for what keyserver
3433         action we are taking.
3434
3435         * keyid.c (keystr): If printing a keyid that lacks the high 4
3436         bytes, print the low 4 alone.
3437         (keystr_from_desc): Handle short keyids and warn on v3
3438         fingerprints.
3439
3440         * keydb.h, getkey.c (get_user_id_printable,
3441         get_user_id_string_printable): Rename to get_user_id_native and
3442         get_user_id_string_native and remove the printable stuff since
3443         we're print-ifying valid utf8 characters.  Change all callers in
3444         import.c, sign.c, keylist.c, and encode.c.
3445
3446         * keyserver.c (keyserver_search_prompt): Make sure the search
3447         string is converted from UTF-8 before display.
3448
3449 2004-08-19  Werner Koch  <wk@g10code.de>
3450
3451         * seskey.c (encode_session_key): Changed the zero random byte
3452         substituting code to actually do clever things.  Thanks to
3453         Matthias Urlichs for noting the implementation problem.
3454
3455 2004-08-18  Marcus Brinkmann  <marcus@g10code.de>
3456
3457         * passphrase.c (agent_get_passphrase): Fix detection of gpg-agent
3458         cancellation.
3459
3460 2004-08-08  David Shaw  <dshaw@jabberwocky.com>
3461
3462         * plaintext.c (handle_plaintext): Bigger buffer for extra safety.
3463
3464         * g10.c (main): New alias --throw-keyid for --throw-keyids, so
3465         that it continues to work in old configuration files.  Noted by
3466         Jens Adam.
3467
3468         * pkclist.c (algo_available): --pgp8 now allows blowfish, zlib,
3469         and bzip2.
3470
3471         * status.c (do_get_from_fd): Flush stdout if status isn't flushing
3472         it for us.  This guarantees that any menus that were displayed
3473         before the prompt don't get stuck in a buffer.  Noted by Peter
3474         Palfrader.  This is Debian bug #254072.
3475
3476         * sign.c (update_keysig_packet): Revert change of 2004-05-18.  It
3477         is not appropriate to strip policy and notations when remaking a
3478         sig.  That should only happen when specifically requested by the
3479         user.
3480
3481 2004-08-05  David Shaw  <dshaw@jabberwocky.com>
3482
3483         * armor.c (radix64_read): No armor CRC is legal according to the
3484         spec (the CRC is a MAY).
3485
3486 2004-07-28  David Shaw  <dshaw@jabberwocky.com>
3487
3488         * misc.c (argsplit): Properly split quoted args from the keyword
3489         and trim whitespace afterwards.
3490
3491 2004-07-27  David Shaw  <dshaw@jabberwocky.com>
3492
3493         * misc.c (optsep): Add the ability to understand keyword="quoted
3494         arg with spaces" type options.
3495