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