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