No more warnings for AMD64 (at least when cross-compiling). Thus tehre is a
[gnupg.git] / sm / ChangeLog
1 2006-11-21  Werner Koch  <wk@g10code.com>
2
3         * certdump.c (my_funopen_hook_ret_t): New.
4         (format_name_writer): Use it for the return value.
5
6 2006-11-14  Werner Koch  <wk@g10code.com>
7
8         * server.c (skip_options): Skip leading spaces.
9         (has_option): Honor "--".
10         (cmd_export): Add option --data to do an inline export.  Skip all
11         options.
12
13         * certdump.c (gpgsm_fpr_and_name_for_status): New.
14         * verify.c (gpgsm_verify): Use it to print correct status messages.
15
16 2006-11-11  Werner Koch  <wk@g10code.com>
17
18         * server.c (skip_options): New.
19
20 2006-10-24  Marcus Brinkmann  <marcus@g10code.de>
21
22         * Makefile.am (AM_CFLAGS): Add $(LIBASSUAN_CFLAGS).
23
24 2006-10-23  Werner Koch  <wk@g10code.com>
25
26         * gpgsm.c (main): Remap common cipher algo names to their OIDs.
27         (main): New command --gpgconf-test.
28
29 2006-10-20  Werner Koch  <wk@g10code.com>
30
31         * keydb.c (classify_user_id): Parse keygrip for the '&' identifier.
32
33 2006-10-18  Werner Koch  <wk@g10code.com>
34
35         * keylist.c (list_cert_raw): Also test for GPG_ERR_NO_VALUE when
36         testing for GPG_ERR_NO_DATA.
37         * certlist.c (cert_usage_p, gpgsm_find_cert): Ditto.
38         * certchain.c (check_cert_policy): Ditto.
39
40         * keylist.c (list_cert_std, list_cert_raw): Print "none" for no
41         chain length available.
42
43 2006-10-17  Werner Koch  <wk@g10code.com>
44
45         * gpgsm.c: No need for pth.h.  
46         (main): or to init it. It used to be hack for W32.
47
48         * sign.c (gpgsm_get_default_cert): Changed to return only
49         certificates usable for signing.
50
51 2006-10-16  Werner Koch  <wk@g10code.com>
52
53         * certchain.c (already_asked_marktrusted) 
54         (set_already_asked_marktrusted): New.
55         (gpgsm_validate_chain) <not trusted>: Keep track of certificates
56         we already asked for.
57
58 2006-10-11  Werner Koch  <wk@g10code.com>
59
60         * certreqgen.c (proc_parameters, create_request): Allow for
61         creation directly from a card.
62         * call-agent.c (gpgsm_agent_readkey): New arg FROMCARD.
63         (gpgsm_scd_pksign): New.
64
65 2006-10-06  Werner Koch  <wk@g10code.com>
66
67         * Makefile.am (AM_CFLAGS): Use PTH version of libassuan.
68         (gpgsm_LDADD): Ditto.
69
70 2006-10-05  Werner Koch  <wk@g10code.com>
71
72         * certcheck.c (do_encode_md): Check that the has algo is valid.
73
74 2006-10-02  Marcus Brinkmann  <marcus@g10code.de>
75
76         * server.c (register_commands): New commands DUMPKEYS and
77         DUMPSECRETKEYS.
78         (cmd_dumpkeys, cmd_dumpsecretkeys): New functions.
79         (option_handler): Support with-key-data option.
80
81 2006-09-26  Werner Koch  <wk@g10code.com>
82
83         * certchain.c (gpgsm_validate_chain): More changes for the relax
84         feature.  Use certificate reference counting instead of the old
85         explicit tests. Added a missing free. 
86
87 2006-09-25  Werner Koch  <wk@g10code.com>
88
89         * gpgsm.h (struct rootca_flags_s): New.
90         * call-agent.c (istrusted_status_cb): New.
91         (gpgsm_agent_istrusted): New arg ROOTCA_FLAGS.
92         * keylist.c (list_cert_colon): Use dummy for new arg.
93         * certchain.c (gpgsm_validate_chain): Make use of the relax flag
94         for root certificates.
95         (unknown_criticals): Ignore a GPG_ERR_NO_VALUE.
96
97 2006-09-20  Werner Koch  <wk@g10code.com>
98
99         * gpgsm.c: Add alias command --dump-cert.
100
101         * Makefile.am:  Changes to allow parallel make runs.
102
103 2006-09-18  Werner Koch  <wk@g10code.com>
104
105         * gpgsm.c (main): Use this to import standard certificates.
106         * keydb.c (keydb_add_resource): New arg AUTO_CREATED.
107
108 2006-09-14  Werner Koch  <wk@g10code.com>
109
110         Replaced all call gpg_error_from_errno(errno) by
111         gpg_error_from_syserror().
112
113 2006-09-13  Werner Koch  <wk@g10code.com>
114
115         * keylist.c (list_internal_keys): Print marker line to FP and not
116         to stdout.
117
118         * gpgsm.c (main): All list key list commands now make ose of
119         --output. Cleaned up calls to list modes.  New command
120         --dump-chain.  Renamed --list-sigs to --list-chain and added an
121         alias for the old one.
122
123         * server.c (cmd_message): Changed to use assuan_command_parse_fd.
124         (option_handler): New option list-to-output.
125         (do_listkeys): Use it.
126
127 2006-09-06  Werner Koch  <wk@g10code.com>
128
129         * gpgsm.h (OUT_OF_CORE): Removed and changed all callers to
130         out_of_core.
131         (CTRL): Removed and changed everywhere to ctrl_t.
132         (CERTLIST): Ditto.
133
134         Replaced all Assuan error codes by libgpg-error codes.  Removed
135         all map_to_assuan_status and map_assuan_err.
136         
137         * gpgsm.c (main): Call assuan_set_assuan_err_source to have Assuan
138         switch to gpg-error codes.  
139         * server.c (set_error): Adjusted.
140
141 2006-08-29  Werner Koch  <wk@g10code.com>
142
143         * call-agent.c (gpgsm_agent_pkdecrypt): Allow decryption using
144         complete S-expressions as implemented by the current gpg-agent.
145
146         * gpgsm.c (main): Implement --output for encrypt, decrypt, sign
147         and export.
148
149 2006-07-03  Werner Koch  <wk@g10code.com>
150
151         * certreqgen.c (proc_parameters): Print the component label of a
152         faulty DN.
153
154 2006-06-26  Werner Koch  <wk@g10code.com>
155
156         * certdump.c (gpgsm_cert_log_name): New.
157         * certchain.c (is_cert_still_valid): Log the name of the certificate.
158
159 2006-06-20  Werner Koch  <wk@g10code.com>
160
161         * gpgsm.c (gpgsm_init_default_ctrl): Take care of the command line
162         option --include-certs.
163
164         * keylist.c (list_cert_raw): Print the certid.
165
166 2006-05-23  Werner Koch  <wk@g10code.com>
167
168         * keydb.c (hextobyte): Deleted as it is now defined in jnlib.
169
170         * Makefile.am (gpgsm_LDADD): Include ZLIBS.
171
172 2006-05-19  Marcus Brinkmann  <marcus@g10code.de>
173
174         * keydb.c (keydb_insert_cert): Do not lock here, but only check if
175         it is locked.
176         (keydb_store_cert): Lock here.
177
178         * keydb.h (keydb_delete): Accept new argument UNLOCK.
179         * keydb.c (keydb_delete): Likewise.  Only unlock if this is set.
180         * delete.c (delete_one): Add new argument to invocation of
181         keydb_delete.
182         
183 2006-05-15  Werner Koch  <wk@g10code.com>
184
185         * keylist.c (print_names_raw): Sanitize URI.
186
187 2006-03-21  Werner Koch  <wk@g10code.com>
188
189         * certchain.c (get_regtp_ca_info): New.
190         (allowed_ca): Use it.
191
192 2006-03-20  Werner Koch  <wk@g10code.com>
193
194         * qualified.c (gpgsm_is_in_qualified_list): New optional arg COUNTRY.
195
196 2006-02-17  Werner Koch  <wk@g10code.com>
197
198         * call-dirmngr.c (start_dirmngr): Print name of dirmngr to be started.
199
200 2005-11-23  Werner Koch  <wk@g10code.com>
201
202         * gpgsm.h: New member QUALSIG_APPROVAL.
203         * sign.c (gpgsm_sign): Print a warning if a certificate is not
204         qualified.
205         * qualified.c (gpgsm_qualified_consent): Include a note that this
206         is not approved software.
207         (gpgsm_not_qualified_warning): New.
208         * gpgsm.c (main): Prepared to print a note whether the software
209         has been approved.
210
211 2005-11-13  Werner Koch  <wk@g10code.com>
212
213         * call-agent.c (gpgsm_agent_get_confirmation): New.
214
215         * keylist.c (list_cert_std): Print qualified status.
216         * qualified.c: New.
217         * certchain.c (gpgsm_validate_chain): Check for qualified
218         certificates.
219
220         * certchain.c (gpgsm_basic_cert_check): Release keydb handle when
221         no-chain-validation is used.
222
223 2005-11-11  Werner Koch  <wk@g10code.com>
224
225         * keylist.c (print_capabilities): Print is_qualified status.
226
227 2005-10-28  Werner Koch  <wk@g10code.com>
228
229         * certdump.c (pretty_print_sexp): New.
230         (gpgsm_print_name2): Use it here.  This allows proper printing of
231         DNS names as used with server certificates.
232
233 2005-10-10  Werner Koch  <wk@g10code.com>
234
235         * keylist.c: Add pkaAdress OID as reference.
236
237 2005-10-08  Marcus Brinkmann  <marcus@g10code.de>
238
239         * Makefile.am (gpgsm_LDADD): Add ../gl/libgnu.a after
240         ../common/libcommon.a.
241
242 2005-09-13  Werner Koch  <wk@g10code.com>
243
244         * verify.c (gpgsm_verify): Print a note if the unknown algorithm
245         is MD2.
246         * sign.c (gpgsm_sign): Ditto.
247         * certcheck.c (gpgsm_check_cert_sig): Ditto.
248
249 2005-09-08  Werner Koch  <wk@g10code.com>
250
251         * export.c (popen_protect_tool): Add option --have-cert.  We
252         probably lost this option with 1.9.14 due to restructuring of
253         export.c.
254
255 2005-07-21  Werner Koch  <wk@g10code.com>
256
257         * gpgsm.c (main): New options --no-log-file and --debug-none.
258
259         * certreqgen.c (get_parameter, get_parameter_value): Add SEQ arg
260         to allow enumeration.  Changed all callers.
261         (create_request): Process DNS and URI parameters.
262
263 2005-07-20  Werner Koch  <wk@g10code.com>
264
265         * keylist.c (email_kludge): Reworked.
266
267         * certdump.c (gpgsm_print_serial, gpgsm_dump_serial): Cast printf
268         arg to unsigned.
269         * call-dirmngr.c (gpgsm_dirmngr_run_command): Ditto
270
271 2005-07-19  Werner Koch  <wk@g10code.com>
272
273         * fingerprint.c (gpgsm_get_certid): Cast printf arg to unsigned.
274         Bug accidently introduced while solving the #$%^& gcc
275         signed/unsigned char* warnings.
276
277 2005-06-15  Werner Koch  <wk@g10code.com>
278
279         * delete.c (delete_one): Changed FPR to unsigned.
280         * encrypt.c (encrypt_dek): Made ENCVAL unsigned.
281         (gpgsm_encrypt): Ditto.
282         * sign.c (gpgsm_sign): Made SIGVAL unsigned.
283         * base64.c (base64_reader_cb): Need to use some casting to get
284         around signed/unsigned char* warnings.
285         * certcheck.c (gpgsm_check_cms_signature): Ditto.
286         (gpgsm_create_cms_signature): Changed arg R_SIGVAL to unsigned char*.
287         (do_encode_md): Made NFRAME a size_t.
288         * certdump.c (gpgsm_print_serial): Fixed signed/unsigned warning.
289         (gpgsm_dump_serial): Ditto.
290         (gpgsm_format_serial): Ditto.
291         (gpgsm_dump_string): Ditto.
292         (gpgsm_dump_cert): Ditto.
293         (parse_dn_part): Ditto.
294         (gpgsm_print_name2): Ditto.
295         * keylist.c (email_kludge): Ditto.
296         * certreqgen.c (proc_parameters, create_request): Ditto.
297         (create_request): Ditto.
298         * call-agent.c (gpgsm_agent_pksign): Made arg R_BUF unsigned.
299         (struct cipher_parm_s): Made CIPHERTEXT unsigned.
300         (struct genkey_parm_s): Ditto.
301         * server.c (strcpy_escaped_plus): Made arg S signed char*.
302         * fingerprint.c (gpgsm_get_fingerprint): Made ARRAY unsigned.
303         (gpgsm_get_keygrip): Ditto.
304         * keydb.c (keydb_insert_cert): Made DIGEST unsigned.
305         (keydb_update_cert): Ditto.
306         (classify_user_id): Apply cast to signed/unsigned assignment.
307         (hextobyte): Ditto.
308
309 2005-06-01  Werner Koch  <wk@g10code.com>
310
311         * misc.c: Include setenv.h.
312
313 2005-04-21  Werner Koch  <wk@g10code.com>
314
315         * gpgsm.c: New options --{enable,disable}-trusted-cert-crl-check.
316         * certchain.c (gpgsm_validate_chain): Make use of it.
317
318         * certchain.c (gpgsm_validate_chain): Check revocations even for
319         expired certificates.  This is required because on signature
320         verification an expired key is fine whereas a revoked one is not.
321
322 2005-04-20  Werner Koch  <wk@g10code.com>
323
324         * Makefile.am (AM_CFLAGS): Add PTH_CFLAGS as noted by several folks.
325
326 2005-04-19  Werner Koch  <wk@g10code.com>
327
328         * certchain.c (check_cert_policy): Print the diagnostic for a open
329         failure of policies.txt only in verbose mode or when it is not
330         ENOENT.
331
332 2005-04-17  Werner Koch  <wk@g10code.com>
333
334         * call-dirmngr.c (inq_certificate): Add new inquire SENDCERT_SKI.
335         * certlist.c (gpgsm_find_cert): Add new arg KEYID and implement
336         this filter.  Changed all callers.
337
338         * certchain.c (find_up_search_by_keyid): New helper.
339         (find_up): Also try using the AKI.keyIdentifier.
340         (find_up_external): Ditto.
341
342 2005-04-15  Werner Koch  <wk@g10code.com>
343
344         * keylist.c (list_cert_raw): Print the subjectKeyIdentifier as
345         well as the keyIdentifier part of the authorityKeyIdentifier.
346
347 2005-03-31  Werner Koch  <wk@g10code.com>
348
349         * call-dirmngr.c (start_dirmngr): Use PATHSEP_C instead of ':'.
350         * call-agent.c (start_agent): Ditto.
351
352 2005-03-17  Werner Koch  <wk@g10code.com>
353
354         * certcheck.c: Fixed use of DBG_CRYPTO and DBG_X509.
355
356         * certchain.c (gpgsm_basic_cert_check): Dump certificates after a
357         failed gcry_pk_verify.
358         (find_up): Do an external lookup also for an authorityKeyIdentifier
359         lookup. Factored external lookup code out to ..
360         (find_up_external): .. new.
361
362 2005-03-03  Werner Koch  <wk@g10code.com>
363
364         * Makefile.am (gpgsm_LDADD): Added PTH_LIBS.  Noted by Kazu Yamamoto.
365
366 2005-01-13  Werner Koch  <wk@g10code.com>
367
368         * certreqgen.c (proc_parameters): Cast printf arg.
369
370 2004-12-22  Werner Koch  <wk@g10code.com>
371
372         * gpgsm.c (set_binary): New.
373         (main, open_read, open_fwrite): Use it.
374
375 2004-12-21  Werner Koch  <wk@g10code.com>
376
377         * gpgsm.c (main): Use default_homedir().
378         (main) [W32]: Default to disabled CRL checks.
379
380 2004-12-20  Werner Koch  <wk@g10code.com>
381
382         * call-agent.c (start_agent): Before starting a pipe server start
383         to connect to a server on the standard socket.  Use PATHSEP
384         * call-dirmngr.c (start_dirmngr): Use PATHSEP.
385
386         * import.c: Include unistd.h for dup and close.
387
388 2004-12-18  Werner Koch  <wk@g10code.com>
389
390         * gpgsm.h (map_assuan_err): Define in terms of
391         map_assuan_err_with_source.
392         * call-agent.c (start_agent): Pass error source to
393         send_pinentry_environment.
394
395 2004-12-17  Werner Koch  <wk@g10code.com>
396
397         * call-dirmngr.c (isvalid_status_cb, lookup_status_cb)
398         (run_command_status_cb): Return cancel status if gpgsm_status
399         returned an error.
400
401         * server.c (gpgsm_status, gpgsm_status2) 
402         (gpgsm_status_with_err_code): Return an error code.
403         (gpgsm_status2): Always call va_end().
404
405 2004-12-15  Werner Koch  <wk@g10code.com>
406
407         * call-dirmngr.c (lookup_status_cb): Send progress messages
408         upstream.
409         (isvalid_status_cb): Ditto.
410         (gpgsm_dirmngr_isvalid): Put CTRL into status CB parameters.
411         (gpgsm_dirmngr_run_command, run_command_status_cb): Pass CTRL to
412         status callback and handle PROGRESS.
413
414         * misc.c (setup_pinentry_env) [W32]: Don't use it.
415
416         * gpgsm.c (main) [W32]: Init Pth because we need it for the socket
417         operations and to resolve libassuan symbols.
418         (run_protect_tool) [W32]: Disable it.
419
420         * Makefile.am (gpgsm_LDADD): Move LIBASSUAN_LIBS more to the end.
421
422 2004-12-07  Werner Koch  <wk@g10code.com>
423
424         * Makefile.am (gpgsm_LDADD): Put libassuan before jnlib because
425         under W32 we need the w32 pth code from jnlib.
426
427         * misc.c (setup_pinentry_env) [W32]: Disabled.
428
429 2004-12-06  Werner Koch  <wk@g10code.com>
430
431         * gpgsm.c (run_protect_tool) [_WIN32]: Disabled.
432
433         * import.c (popen_protect_tool): Simplified by making use of
434         gnupg_spawn_process.
435         (parse_p12): Likewise, using gnupg_wait_process.
436         * export.c (popen_protect_tool): Ditto.
437         (export_p12): Ditto.
438
439         * keydb.c: Don't define DIRSEP_S here.
440
441 2004-12-02  Werner Koch  <wk@g10code.com>
442
443         * certchain.c (gpgsm_basic_cert_check): Dump certs with bad
444         signature for debugging.
445         (gpgsm_validate_chain): Ditto.
446
447 2004-11-29  Werner Koch  <wk@g10code.com>
448
449         * gpgsm.c (set_debug): Changed to use a globals DEBUG_LEVEL and
450         DEBUG_VALUE.
451         (main): Made DEBUG_LEVEL global and introduced DEBUG_VALUE.  This
452         now allows to add debug flags on top of a debug-level setting.
453
454 2004-11-23  Werner Koch  <wk@g10code.com>
455
456         * gpgsm.c: New option --prefer-system-dirmngr.
457         * call-dirmngr.c (start_dirmngr): Implement this option.
458
459 2004-10-22  Werner Koch  <wk@g10code.com>
460
461         * certreqgen.c (gpgsm_genkey): Remove the NEW from the certificate
462         request PEM header.  This is according to the Sphinx standard.
463
464 2004-10-08  Moritz Schulte  <moritz@g10code.com>
465
466         * certchain.c (gpgsm_validate_chain): Do not use keydb_new() in
467         case the no_chain_validation-return-short-cut is used (fixes
468         memory leak).
469
470 2004-10-04  Werner Koch  <wk@g10code.com>
471
472         * misc.c (setup_pinentry_env): Try hard to set a default for GPG_TTY.
473
474 2004-09-30  Werner Koch  <wk@g10code.com>
475
476         * gpgsm.c (i18n_init): Always use LC_ALL.
477
478         * certdump.c (gpgsm_format_name): Factored code out to ..
479         (gpgsm_format_name2): .. new.
480         (gpgsm_print_name): Factored code out to ..
481         (gpgsm_print_name2): .. new.
482         (print_dn_part): New arg TRANSLATE.  Changed all callers.
483         (print_dn_parts): Ditto.
484         (gpgsm_format_keydesc): Do not translate the SUBJECT; we require
485         it to stay UTF-8 but we still want to filter out bad control
486         characters.
487
488         * Makefile.am: Adjusted for gettext 0.14.
489
490         * keylist.c (list_cert_colon): Make sure that the expired flag has
491         a higher precedence than the invalid flag. 
492
493 2004-09-29  Werner Koch  <wk@g10code.com>
494
495         * import.c (parse_p12): Write an error status line for bad
496         passphrases. Add new arg CTRL and changed caller.
497         * export.c (export_p12): Likewise.
498
499 2004-09-14  Werner Koch  <wk@g10code.com>
500
501         * certchain.c (gpgsm_validate_chain): Give expired certificates a
502         higher error precedence and don't bother to check any CRL in that
503         case.
504
505 2004-08-24  Werner Koch  <wk@g10code.de>
506
507         * certlist.c: Fixed typo in ocsp OID.
508
509 2004-08-18  Werner Koch  <wk@g10code.de>
510
511         * certlist.c (gpgsm_cert_use_ocsp_p): New.
512         (cert_usage_p): Support it here.
513         * call-dirmngr.c (gpgsm_dirmngr_isvalid): Use it here.
514
515 2004-08-17  Marcus Brinkmann  <marcus@g10code.de>
516
517         * import.c: Fix typo in last change.
518
519 2004-08-17  Werner Koch  <wk@g10code.de>
520
521         * import.c (check_and_store): Do a full validation if
522         --with-validation is set.
523
524         * certchain.c (gpgsm_basic_cert_check): Print more detailed error
525         messages.
526         
527         * certcheck.c (do_encode_md): Partly support DSA.  Add new arg
528         PKALGO. Changed all callers to pass it.
529         (pk_algo_from_sexp): New.
530
531 2004-08-16  Werner Koch  <wk@g10code.de>
532
533         * gpgsm.c: New option --fixed-passphrase.
534         * import.c (popen_protect_tool): Pass it to the protect-tool.
535
536         * server.c (cmd_encrypt): Use DEFAULT_RECPLIST and not recplist
537         for encrypt-to keys.
538
539 2004-08-06  Werner Koch  <wk@g10code.com>
540
541         * gpgsm.c: New option --with-ephemeral-keys.
542         * keylist.c (list_internal_keys): Set it here.
543         (list_cert_raw): And indicate those keys.  Changed all our callers
544         to pass the new arg HD through.
545
546 2004-07-23  Werner Koch  <wk@g10code.de>
547
548         * certreqgen.c (proc_parameters): Do not allow key length below
549         1024.
550
551 2004-07-22  Werner Koch  <wk@g10code.de>
552
553         * keylist.c (list_cert_raw): Print the keygrip.
554
555 2004-07-20  Werner Koch  <wk@gnupg.org>
556
557         * certchain.c (gpgsm_validate_chain): The trust check didn't
558         worked anymore, probably due to the changes at 2003-03-04.  Fixed.
559
560 2004-06-06  Werner Koch  <wk@gnupg.org>
561
562         * certreqgen.c (get_parameter_uint, create_request): Create
563         an extension for key usage when requested. 
564
565 2004-05-12  Werner Koch  <wk@gnupg.org>
566
567         * gpgsm.c (main): Install emergency_cleanup also as an atexit
568         handler.
569
570         * verify.c (gpgsm_verify): Removed the separate error code
571         handling for KSBA.  We use shared error codes anyway.
572
573         * export.c (export_p12): Removed debugging code.
574
575         * encrypt.c (gpgsm_encrypt): Put the session key in to secure memory.
576
577 2004-05-11  Werner Koch  <wk@gnupg.org>
578
579         * sign.c (gpgsm_sign): Include the error source in the final error
580         message.
581         * decrypt.c (gpgsm_decrypt): Ditto.
582
583         * fingerprint.c (gpgsm_get_key_algo_info): New.
584         * sign.c (gpgsm_sign): Don't assume RSA in the status line.
585         * keylist.c (list_cert_colon): Really print the algorithm and key
586         length.
587         (list_cert_raw, list_cert_std): Ditto.
588         (list_cert_colon): Reorganized to be able to tell whether a root
589         certificate is trusted.
590
591         * gpgsm.c: New option --debug-allow-core-dump.
592
593         * gpgsm.h (opt): Add member CONFIG_FILENAME.
594         * gpgsm.c (main): Use it here instead of the local var.
595
596         * server.c (gpgsm_server): Print some additional information with
597         the hello in verbose mode.
598
599 2004-04-30  Werner Koch  <wk@gnupg.org>
600
601         * import.c (check_and_store): Do not update the stats for hidden
602         imports of issuer certs.
603         (popen_protect_tool): Request statusmessages from the protect-tool.
604         (parse_p12): Detect status messages. Add new arg STATS and update them.
605         (print_imported_summary): Include secret key stats.
606
607 2004-04-28  Werner Koch  <wk@gnupg.org>
608
609         * gpgsm.c: New command --keydb-clear-some-cert-flags.
610         * keydb.c (keydb_clear_some_cert_flags): New.
611         (keydb_update_keyblock, keydb_set_flags): Change error code
612         CONFLICT to NOT_LOCKED.
613
614 2004-04-26  Werner Koch  <wk@gnupg.org>
615
616         * gpgsm.c (main) <gpgconf>: Do not use /dev/null as default config
617         filename.
618
619         * call-agent.c (gpgsm_agent_pksign, gpgsm_agent_pkdecrypt) 
620         (gpgsm_agent_genkey, gpgsm_agent_istrusted) 
621         (gpgsm_agent_marktrusted, gpgsm_agent_havekey) 
622         (gpgsm_agent_passwd): Add new arg CTRL and changed all callers.
623         (start_agent): New arg CTRL.  Send progress item when starting a
624         new agent.
625         * sign.c (gpgsm_get_default_cert, get_default_signer): New arg
626         CTRL to be passed down to the agent function.
627         * decrypt.c (prepare_decryption): Ditto.
628         * certreqgen.c (proc_parameters, read_parameters): Ditto.
629         * certcheck.c (gpgsm_create_cms_signature): Ditto.
630
631 2004-04-23  Werner Koch  <wk@gnupg.org>
632
633         * keydb.c (keydb_add_resource): Try to compress the file on init.
634
635         * keylist.c (oidtranstbl): New.  OIDs collected from several sources.
636         (print_name_raw, print_names_raw, list_cert_raw): New.
637         (gpgsm_list_keys): Check the dump mode and pass it down as
638         necessary.
639
640 2004-04-22  Werner Koch  <wk@gnupg.org>
641
642         * gpgsm.c (main): New commands --dump-keys, --dump-external-keys,
643         --dump-secret-keys.
644
645 2004-04-13  Werner Koch  <wk@gnupg.org>
646
647         * misc.c (setup_pinentry_env): New.
648         * import.c (popen_protect_tool): Call it.
649         * export.c (popen_protect_tool): Call it.
650
651 2004-04-08  Werner Koch  <wk@gnupg.org>
652
653         * decrypt.c (gpgsm_decrypt): Return GPG_ERR_NO_DATA if it is not a 
654         encrypted message.
655
656 2004-04-07  Werner Koch  <wk@gnupg.org>
657
658         * gpgsm.c: New option --force-crl-refresh.
659         * call-dirmngr.c (gpgsm_dirmngr_isvalid): Pass option to dirmngr.
660
661 2004-04-05  Werner Koch  <wk@gnupg.org>
662
663         * server.c (get_status_string): Add STATUS_NEWSIG.
664         * verify.c (gpgsm_verify): Print STATUS_NEWSIG for each signature.
665
666         * certchain.c (gpgsm_validate_chain) <gpgsm_cert_use_cer_p>: Do
667         not just warn if a cert is not suitable; bail out immediately.
668
669 2004-04-01  Werner Koch  <wk@gnupg.org>
670
671         * call-dirmngr.c (isvalid_status_cb): New.
672         (unhexify_fpr): New. Taken from ../g10/call-agent.c
673         (gpgsm_dirmngr_isvalid): Add new arg CTRL, changed caller to pass
674         it thru.  Detect need to check the respondert cert and do that.
675         * certchain.c (gpgsm_validate_chain): Add new arg FLAGS.  Changed
676         all callers.
677
678 2004-03-24  Werner Koch  <wk@gnupg.org>
679
680         * sign.c (gpgsm_sign): Include a short list of capabilities.
681
682 2004-03-17  Werner Koch  <wk@gnupg.org>
683
684         * gpgsm.c (main) <gpgconf>: Fixed default value quoting.
685
686 2004-03-16  Werner Koch  <wk@gnupg.org>
687
688         * gpgsm.c (main): Implemented --gpgconf-list.
689
690 2004-03-15  Werner Koch  <wk@gnupg.org>
691
692         * keylist.c (list_cert_colon): Hack to set the expired flag.
693
694 2004-03-09  Werner Koch  <wk@gnupg.org>
695
696         * gpgsm.c (main): Correctly intitialze USE_OCSP flag.
697
698         * keydb.c (keydb_delete): s/GPG_ERR_CONFLICT/GPG_ERR_NOT_LOCKED/
699
700 2004-03-04  Werner Koch  <wk@gnupg.org>
701
702         * call-dirmngr.c (gpgsm_dirmngr_isvalid): New arg ISSUER_CERT.
703
704         * certchain.c (is_cert_still_valid): New.  Code moved from ...
705         (gpgsm_validate_chain): ... here because we now need to check at
706         two places and at a later stage, so that we can pass the issuer
707         cert down to the dirmngr.
708
709 2004-03-03  Werner Koch  <wk@gnupg.org>
710
711         * call-agent.c (start_agent): Replaced pinentry setup code by a
712         call to a new common function.
713
714         * certdump.c (gpgsm_format_keydesc): Make sure the string is
715         returned as utf-8.
716
717         * export.c (gpgsm_export): Make sure that we don't export more
718         than one certificate.
719
720 2004-03-02  Werner Koch  <wk@gnupg.org>
721
722         * export.c (create_duptable, destroy_duptable)
723         (insert_duptable): New.
724         (gpgsm_export): Avoid duplicates.
725
726 2004-02-26  Werner Koch  <wk@gnupg.org>
727
728         * certchain.c (compare_certs): New.
729         (gpgsm_validate_chain): Fixed infinite certificate checks after
730         bad signatures.
731
732 2004-02-24  Werner Koch  <wk@gnupg.org>
733
734         * keylist.c (list_cert_colon): Print the fingerprint as the
735         cert-id for root certificates.
736
737 2004-02-21  Werner Koch  <wk@gnupg.org>
738
739         * keylist.c (list_internal_keys): Return error codes.
740         (list_external_keys, gpgsm_list_keys): Ditto.
741         * server.c (do_listkeys): Ditto.
742
743         * gpgsm.c (main): Display a key description for --passwd.
744         * call-agent.c (gpgsm_agent_passwd): New arg DESC.
745
746 2004-02-20  Werner Koch  <wk@gnupg.org>
747
748         * gpgsm.c (main): New option --debug-ignore-expiration.
749         * certchain.c (gpgsm_validate_chain): Use it here.
750
751         * certlist.c (cert_usage_p): Apply extKeyUsage.
752
753 2004-02-19  Werner Koch  <wk@gnupg.org>
754
755         * export.c (export_p12, popen_protect_tool)
756         (gpgsm_p12_export): New.
757         * gpgsm.c (main): New command --export-secret-key-p12. 
758
759 2004-02-18  Werner Koch  <wk@gnupg.org>
760
761         * gpgsm.c (set_debug): Set the new --debug-level flags.
762         (main): New option --gpgconf-list.  
763         (main): Do not setup -u and -r keys when not required.
764         (main): Setup the used character set.
765
766         * keydb.c (keydb_add_resource): Print a hint to start the
767         gpg-agent.
768
769 2004-02-17  Werner Koch  <wk@gnupg.org>
770
771         * gpgsm.c: Fixed value parsing for --with-validation.
772         * call-agent.c (start_agent): Ignore an empty GPG_AGENT_INFO.
773         * call-dirmngr.c (start_dirmngr): Likewise for DIRMNGR_INFO.
774
775         * gpgsm.c: New option --with-md5-fingerprint.
776         * keylist.c (list_cert_std): Print MD5 fpr.
777
778         * gpgsm.c: New options --with-validation.
779         * server.c (option_handler): New option "with-validation".
780         * keylist.c (list_cert_std, list_internal_keys): New args CTRL and
781         WITH_VALIDATION. Changed callers to set it.
782         (list_external_cb, list_external_keys): Pass CTRL to the callback.
783         (list_cert_colon): Add arg CTRL.  Check validation if requested.
784         * certchain.c (unknown_criticals, allowed_ca, check_cert_policy) 
785         (gpgsm_validate_chain): New args LISTMODE and FP.
786         (do_list): New helper for info output.
787         (find_up): New arg FIND_NEXT.
788         (gpgsm_validate_chain): After a bad signature try again with other
789         CA certificates.
790
791         * import.c (print_imported_status): New arg NEW_CERT. Print
792         additional STATUS_IMPORT_OK becuase that is what gpgme expects.
793         (check_and_store): Always call above function after import.
794         * server.c (get_status_string): Added STATUS_IMPORT_OK.
795
796 2004-02-13  Werner Koch  <wk@gnupg.org>
797
798         * certcheck.c (gpgsm_create_cms_signature): Format a description
799         for use by the pinentry.
800         * decrypt.c (gpgsm_decrypt): Ditto. Free HEXKEYGRIP.
801         * certdump.c (format_name_cookie, format_name_writer) 
802         (gpgsm_format_name): New.
803         (gpgsm_format_serial): New.
804         (gpgsm_format_keydesc): New.
805         * call-agent.c (gpgsm_agent_pksign): New arg DESC.
806         (gpgsm_agent_pkdecrypt): Ditto.
807
808         * encrypt.c (init_dek): Check for too weak algorithms.
809
810         * import.c (parse_p12, popen_protect_tool): New.
811
812         * base64.c (gpgsm_create_reader): New arg ALLOW_MULTI_PEM.
813         Changed all callers.
814         (base64_reader_cb): Handle it here.
815         (gpgsm_reader_eof_seen): New.
816         (base64_reader_cb): Set a flag for EOF.
817         (simple_reader_cb): Ditto.
818
819 2004-02-12  Werner Koch  <wk@gnupg.org>
820
821         * gpgsm.h, gpgsm.c: New option --protect-tool-program.
822         * gpgsm.c (run_protect_tool): Use it.
823
824 2004-02-11  Werner Koch  <wk@gnupg.org>
825
826         * Makefile.am (AM_CPPFLAGS): Pass directory constants via -D; this
827         will allow to override directory names at make time.
828
829 2004-02-02  Werner Koch  <wk@gnupg.org>
830
831         * import.c (check_and_store): Import certificates even with
832         missing issuer's cert.  Fixed an "depending on the verbose
833         setting" bug.
834
835         * certchain.c (gpgsm_validate_chain): Mark revoked certs in the
836         keybox.
837
838         * keylist.c (list_cert_colon): New arg VALIDITY; use it to print a
839         revoked flag.
840         (list_internal_keys): Retrieve validity flag.
841         (list_external_cb): Pass 0 as validity flag.
842         * keydb.c (keydb_get_flags, keydb_set_flags): New.
843         (keydb_set_cert_flags): New.
844         (lock_all): Return a proper error code.
845         (keydb_lock): New.
846         (keydb_delete): Don't lock but check that it has been locked.
847         (keydb_update_keyblock): Ditto.
848         * delete.c (delete_one): Take a lock.
849
850 2004-01-30  Werner Koch  <wk@gnupg.org>
851
852         * certchain.c (check_cert_policy): Fixed read error checking.
853         (check_cert_policy): With no critical policies issue only a
854         warning if the policy file does not exists.
855
856         * sign.c (add_certificate_list): Decrement N for the first cert.
857
858 2004-01-29  Werner Koch  <wk@gnupg.org>
859
860         * certdump.c (parse_dn_part): Map common OIDs to human readable
861         labels.  Make sure that a value won't get truncated if it includes
862         a Nul.
863
864 2004-01-28  Werner Koch  <wk@gnupg.org>
865
866         * certchain.c (gpgsm_validate_chain): Changed the message printed
867         for an untrusted root certificate.
868
869 2004-01-27  Werner Koch  <wk@gnupg.org>
870
871         * certdump.c (parse_dn_part): Pretty print the nameDistinguisher OID.
872         (print_dn_part): Do not delimit multiple RDN by " + ".  Handle
873         multi-valued RDNs in a special way, i.e. in the order specified by
874         the certificate.
875         (print_dn_parts): Simplified. 
876
877 2004-01-16  Werner Koch  <wk@gnupg.org>
878
879         * sign.c (gpgsm_sign): Print an error message on all failures.
880         * decrypt.c (gpgsm_decrypt): Ditto.
881
882 2003-12-17  Werner Koch  <wk@gnupg.org>
883
884         * server.c (gpgsm_server): Add arg DEFAULT_RECPLIST.
885         (cmd_encrypt): Add all enrypt-to marked certs to the list.
886         * encrypt.c (gpgsm_encrypt): Check that real recipients are
887         available.
888         * gpgsm.c (main): Make the --encrypt-to and --no-encrypt-to
889         options work.  Pass the list of recients to gpgsm_server.
890         * gpgsm.h (certlist_s): Add field IS_ENCRYPT_TO.
891         (opt): Add NO_ENCRYPT_TO.
892         * certlist.c (gpgsm_add_to_certlist): New arg IS_ENCRYPT_TO.
893         Changed all callers and ignore duplicate entries.
894         (is_cert_in_certlist): New.
895         (gpgsm_add_cert_to_certlist): New.
896
897         * certdump.c (gpgsm_print_serial): Cleaned up cast use in strtoul.
898         (gpgsm_dump_serial): Ditto.
899
900         * decrypt.c (gpgsm_decrypt): Replaced ERR by RC.
901
902 2003-12-16  Werner Koch  <wk@gnupg.org>
903
904         * gpgsm.c (main): Set the prefixes for assuan logging.
905
906         * sign.c (gpgsm_sign): Add validation checks for the default
907         certificate.
908
909         * gpgsm.c: Add -k as alias for --list-keys and -K for
910         --list-secret-keys.
911
912 2003-12-15  Werner Koch  <wk@gnupg.org>
913
914         * encrypt.c (init_dek): Use gry_create_nonce for the IV; there is
915         not need for real strong random here and it even better protect
916         the random bits used for the key.
917
918 2003-12-01  Werner Koch  <wk@gnupg.org>
919
920         * gpgsm.c, gpgsm.h: New options --{enable,disable}-ocsp.
921         (gpgsm_init_default_ctrl): Set USE_OCSP to the default value.
922         * certchain.c (gpgsm_validate_chain): Handle USE_OCSP.
923         * call-dirmngr.c (gpgsm_dirmngr_isvalid): Add arg USE_OCSP and
924         proceed accordingly.
925
926 2003-11-19  Werner Koch  <wk@gnupg.org>
927
928         * verify.c (gpgsm_verify): Use "0" instead of an empty string for
929         the VALIDSIG status.
930
931 2003-11-18  Werner Koch  <wk@gnupg.org>
932
933         * verify.c (gpgsm_verify): Fixed for changes API of gcry_md_info.
934
935         * certchain.c (unknown_criticals): Fixed an error code test.
936
937 2003-11-12  Werner Koch  <wk@gnupg.org>
938
939         Adjusted for API changes in Libksba.
940
941 2003-10-31  Werner Koch  <wk@gnupg.org>
942
943         * certchain.c (gpgsm_validate_chain): Changed to use ksba_isotime_t.
944         * verify.c (strtimestamp_r, gpgsm_verify): Ditto.
945         * sign.c (gpgsm_sign): Ditto.
946         * keylist.c (print_time, list_cert_std, list_cert_colon): Ditto.
947         * certdump.c (gpgsm_print_time, gpgsm_dump_time, gpgsm_dump_cert):
948         Ditto.
949
950 2003-10-25  Werner Koch  <wk@gnupg.org>
951
952         * certreqgen.c (read_parameters): Fixed faulty of !spacep().
953
954 2003-08-20  Marcus Brinkmann  <marcus@g10code.de>
955
956         * encrypt.c (encode_session_key): Allocate enough space.  Cast key
957         byte to unsigned char to prevent sign extension.
958         (encrypt_dek): Check return value before error.
959
960 2003-08-14  Timo Schulz  <twoaday@freakmail.de>
961
962         * encrypt.c (encode_session_key): Use new Libgcrypt interface.
963         
964 2003-07-31  Werner Koch  <wk@gnupg.org>
965
966         * Makefile.am (gpgsm_LDADD): Added INTLLIBS.
967
968 2003-07-29  Werner Koch  <wk@gnupg.org>
969
970         * gpgsm.c (main): Add secmem features and set the random seed file.
971         (gpgsm_exit): Update the random seed file and enable debug output.
972
973 2003-07-27  Werner Koch  <wk@gnupg.org>
974
975         Adjusted for gcry_mpi_print and gcry_mpi_scan API change.
976
977 2003-06-24  Werner Koch  <wk@gnupg.org>
978
979         * server.c (gpgsm_status_with_err_code): New.
980         * verify.c (gpgsm_verify): Use it here instead of the old
981         tokenizing version.
982
983         * verify.c (strtimestamp): Renamed to strtimestamp_r
984
985         Adjusted for changes in the libgcrypt API. Some more fixes for the
986         libgpg-error stuff.  
987
988 2003-06-04  Werner Koch  <wk@gnupg.org>
989
990         * call-agent.c (init_membuf,put_membuf,get_membuf): Removed.
991         Include new membuf header and changed used type.
992
993         Renamed error codes from INVALID to INV and removed _ERROR suffixes.
994
995 2003-06-03  Werner Koch  <wk@gnupg.org>
996
997         Changed all error codes in all files to the new libgpg-error scheme.
998
999         * gpgsm.h: Include gpg-error.h .
1000         * Makefile.am: Link with libgpg-error.
1001
1002 2003-04-29  Werner Koch  <wk@gnupg.org>
1003
1004         * Makefile.am: Use libassuan.  Don't override LDFLAGS anymore.
1005         * server.c (register_commands): Adjust for new Assuan semantics.
1006
1007 2002-12-03  Werner Koch  <wk@gnupg.org>
1008
1009         * call-agent.c (gpgsm_agent_passwd): New.
1010         * gpgsm.c (main): New command --passwd and --call-protect-tool
1011         (run_protect_tool): New.
1012
1013 2002-11-25  Werner Koch  <wk@gnupg.org>
1014
1015         * verify.c (gpgsm_verify): Handle content-type attribute. 
1016
1017 2002-11-13  Werner Koch  <wk@gnupg.org>
1018
1019         * call-agent.c (start_agent): Try to use $GPG_TTY instead of
1020         ttyname.  Changed ttyname to test stdin becuase it can be assumed
1021         that output redirection is more common that input redirection.
1022
1023 2002-11-12  Werner Koch  <wk@gnupg.org>
1024
1025         * gpgsm.c: New command --call-dirmngr. 
1026         * call-dirmngr.c (gpgsm_dirmngr_run_command)
1027         (run_command_inq_cb,run_command_cb)
1028         (run_command_status_cb): New.
1029
1030 2002-11-11  Werner Koch  <wk@gnupg.org>
1031
1032         * certcheck.c (gpgsm_check_cms_signature): Don't double free
1033         s_sig but free s_pkey at leave.
1034
1035 2002-11-10  Werner Koch  <wk@gnupg.org>
1036
1037         * gpgsm.c: Removed duplicate --list-secret-key entry.
1038
1039 2002-09-19  Werner Koch  <wk@gnupg.org>
1040
1041         * certcheck.c (gpgsm_check_cert_sig): Add cert hash debugging.
1042
1043         * certchain.c (find_up): Print info when the cert was not found 
1044         by the autorithyKeyIdentifier.
1045
1046 2002-09-03  Werner Koch  <wk@gnupg.org>
1047
1048         * gpgsm.c (main): Disable the internal libgcrypt locking.
1049
1050 2002-08-21  Werner Koch  <wk@gnupg.org>
1051
1052         * import.c (print_imported_summary): Cleaned up.  Print new
1053         not_imported value.
1054         (check_and_store): Update non_imported counter.
1055         (print_import_problem): New.
1056         (check_and_store): Print error status message.
1057         * server.c (get_status_string): Added STATUS_IMPORT_PROBLEM.
1058
1059 2002-08-20  Werner Koch  <wk@gnupg.org>
1060
1061         * gpgsm.c (main): Use the log file only in server mode.
1062
1063         * import.c (print_imported_summary): New.
1064         (check_and_store): Update the counters, take new argument.
1065         (import_one): Factored out core of gpgsm_import.
1066         (gpgsm_import): Print counters.
1067         (gpgsm_import_files): New.
1068         * gpgsm.c (main): Use the new function for import.
1069
1070 2002-08-19  Werner Koch  <wk@gnupg.org>
1071
1072         * decrypt.c (gpgsm_decrypt): Return a better error status token.
1073         * verify.c (gpgsm_verify): Don't error on messages with no signing
1074         time or no message digest.  This is only the case for messages
1075         without any signed attributes.
1076
1077 2002-08-16  Werner Koch  <wk@gnupg.org>
1078
1079         * certpath.c: Renamed to ..
1080         * certchain.c: this. Renamed all all other usages of "path" in the
1081         context of certificates to "chain".
1082
1083         * call-agent.c (learn_cb): Special treatment when the issuer
1084         certificate is missing.
1085
1086 2002-08-10  Werner Koch  <wk@gnupg.org>
1087
1088         * Makefile.am (INCLUDES): Add definition for localedir.
1089
1090         * keylist.c (list_cert_colon): Print the short fingerprint in the
1091         key ID field.
1092         * fingerprint.c (gpgsm_get_short_fingerprint): New.
1093         * verify.c (gpgsm_verify): Print more verbose info for a good
1094         signature.
1095
1096 2002-08-09  Werner Koch  <wk@gnupg.org>
1097
1098         * decrypt.c (prepare_decryption): Hack to detected already
1099         unpkcsedone keys.
1100
1101         * gpgsm.c (emergency_cleanup): New.
1102         (main): Initialize the signal handler.
1103
1104         * sign.c (gpgsm_sign): Reset the hash context for subsequent
1105         signers and release it at the end.
1106
1107 2002-08-05  Werner Koch  <wk@gnupg.org>
1108
1109         * server.c (cmd_signer): New command "SIGNER"
1110         (register_commands): Register it.
1111         (cmd_sign): Pass the signer list to gpgsm_sign.
1112         * certlist.c (gpgsm_add_to_certlist): Add SECRET argument, check
1113         for secret key if set and changed all callers.
1114         * sign.c (gpgsm_sign): New argument SIGNERLIST and implemt
1115         multiple signers.
1116         * gpgsm.c (main): Support more than one -u.
1117         
1118         * server.c (cmd_recipient): Return reason code 1 for No_Public_Key
1119         which is actually what gets returned from add_to_certlist.
1120         
1121 2002-07-26  Werner Koch  <wk@gnupg.org>
1122
1123         * certcheck.c (gpgsm_check_cert_sig): Implement proper cleanup.
1124         (gpgsm_check_cms_signature): Ditto.
1125
1126 2002-07-22  Werner Koch  <wk@gnupg.org>
1127
1128         * keydb.c (keydb_add_resource): Register a lock file.
1129         (lock_all, unlock_all): Implemented.
1130
1131         * delete.c: New.
1132         * gpgsm.c: Made --delete-key work.
1133         * server.c (cmd_delkeys): New.
1134         (register_commands): New command DELKEYS.
1135
1136         * decrypt.c (gpgsm_decrypt): Print a convenience note when RC2 is
1137         used and a STATUS_ERROR with the algorithm oid.
1138
1139 2002-07-03  Werner Koch  <wk@gnupg.org>
1140
1141         * server.c (gpgsm_status2): Insert a blank between all optional
1142         arguments when using assuan.
1143         * server.c (cmd_recipient): No more need for extra blank in constants.
1144         * import.c (print_imported_status): Ditto.
1145         * gpgsm.c (main): Ditto.
1146
1147 2002-07-02  Werner Koch  <wk@gnupg.org>
1148
1149         * verify.c (gpgsm_verify): Extend the STATUS_BADSIG line with
1150         the fingerprint.
1151
1152         * certpath.c (check_cert_policy): Don't use log_error to print a
1153         warning.
1154
1155         * keydb.c (keydb_store_cert): Add optional ar EXISTED and changed
1156         all callers.
1157         * call-agent.c (learn_cb): Print info message only for real imports.
1158
1159         * import.c (gpgsm_import): Moved duplicated code to ...
1160         (check_and_store): new function.  Added magic to import the entire
1161         chain. Print status only for real imports and moved printing code
1162         to ..
1163         (print_imported_status): New.
1164
1165         * call-dirmngr.c (gpgsm_dirmngr_isvalid): print status of dirmngr
1166         call in very verbose mode.
1167
1168         * gpgsm.c (main): Use the same error codes for STATUS_INV_RECP as
1169         with the server mode.
1170
1171 2002-06-29  Werner Koch  <wk@gnupg.org>
1172
1173         * gpgsm.c: New option --auto-issuer-key-retrieve.
1174         * certpath.c (find_up): Try to retrieve an issuer key from an
1175         external source and from the ephemeral key DB.
1176         (find_up_store_certs_cb): New.
1177
1178         * keydb.c (keydb_set_ephemeral): Does now return the old
1179         state.  Call the backend only when required.
1180
1181         * call-dirmngr.c (start_dirmngr): Use GNUPG_DEFAULT_DIRMNGR.
1182         (lookup_status_cb): Issue status only when CTRL is not NULL.
1183         (gpgsm_dirmngr_lookup): Document that CTRL is optional.
1184
1185         * call-agent.c (start_agent): Use GNUPG_DEFAULT_AGENT.
1186
1187 2002-06-28  Werner Koch  <wk@gnupg.org>
1188
1189         * server.c (cmd_recipient): Add more reason codes.
1190
1191 2002-06-27  Werner Koch  <wk@gnupg.org>
1192
1193         * certpath.c (gpgsm_basic_cert_check): Use
1194         --debug-no-path-validation to also bypass this basic check.
1195
1196         * gpgsm.c (main): Use GNUPG_DEFAULT_HOMEDIR constant.
1197
1198         * call-agent.c (start_agent): Create and pass the list of FD to
1199         keep in the child to assuan.
1200         * call-dirmngr.c (start_dirmngr): Ditto.
1201
1202 2002-06-26  Werner Koch  <wk@gnupg.org>
1203
1204         * import.c (gpgsm_import): Print an STATUS_IMPORTED.
1205
1206         * gpgsm.c: --debug-no-path-validation does not take an argument.
1207
1208 2002-06-25  Werner Koch  <wk@gnupg.org>
1209
1210         * certdump.c (print_dn_part): Always print a leading slash,
1211         removed NEED_DELIM arg and changed caller.
1212
1213         * export.c (gpgsm_export): Print LFs to FP and not stdout.
1214         (print_short_info): Ditto.  Make use of gpgsm_print_name.
1215
1216         * server.c (cmd_export): Use output-fd instead of data lines; this
1217         was actually the specified way.
1218
1219 2002-06-24  Werner Koch  <wk@gnupg.org>
1220
1221         * gpgsm.c: Removed duped help entry for --list-keys.
1222         
1223         * gpgsm.c, gpgsm.h: New option --debug-no-path-validation.
1224
1225         * certpath.c (gpgsm_validate_path): Use it here instead of the
1226         debug flag hack.
1227
1228         * certpath.c (check_cert_policy): Return No_Policy_Match if the
1229         policy file could not be opened.
1230
1231 2002-06-20  Werner Koch  <wk@gnupg.org>
1232
1233         * certlist.c (gpgsm_add_to_certlist): Fixed locating of a
1234         certificate with the required key usage.
1235
1236         * gpgsm.c (main): Fixed a segv when using --outfile without an
1237         argument.
1238
1239         * keylist.c (print_capabilities): Also check for non-repudiation
1240         and data encipherment.
1241         * certlist.c (cert_usage_p): Test for signing and encryption was
1242         swapped.  Add a case for certification usage, handle
1243         non-repudiation and data encipherment.
1244         (gpgsm_cert_use_cert_p): New.
1245         (gpgsm_add_to_certlist): Added a CTRL argument and changed all
1246         callers to pass it.
1247         * certpath.c (gpgsm_validate_path): Use it here to print a status
1248         message. Added a CTRL argument and changed all callers to pass it.
1249         * decrypt.c (gpgsm_decrypt): Print a status message for wrong key
1250         usage.
1251         * verify.c (gpgsm_verify): Ditto.
1252         * keydb.c (classify_user_id): Allow a colon delimited fingerprint.
1253
1254 2002-06-19  Werner Koch  <wk@gnupg.org>
1255
1256         * call-agent.c (learn_cb): Use log_info instead of log_error on
1257         successful import.
1258
1259         * keydb.c (keydb_set_ephemeral): New.
1260         (keydb_store_cert): New are ephemeral, changed all callers.
1261         * keylist.c (list_external_cb): Store cert as ephemeral.
1262         * export.c (gpgsm_export): Kludge to export epehmeral certificates.
1263
1264         * gpgsm.c (main): New command --list-external-keys.
1265         
1266 2002-06-17  Werner Koch  <wk@gnupg.org>
1267
1268         * certreqgen.c (read_parameters): Improved error handling.
1269         (gpgsm_genkey): Print error message.
1270
1271 2002-06-13  Werner Koch  <wk@gnupg.org>
1272
1273         * gpgsm.c (main): New option --log-file.
1274
1275 2002-06-12  Werner Koch  <wk@gnupg.org>
1276
1277         * call-dirmngr.c (lookup_status_cb): New.
1278         (gpgsm_dirmngr_lookup): Use the status CB.  Add new arg CTRL and
1279         changed caller to pass it.
1280
1281         * gpgsm.c (open_fwrite): New.
1282         (main): Allow --output for --verify.
1283
1284         * sign.c (hash_and_copy_data): New.
1285         (gpgsm_sign): Implemented normal (non-detached) signatures.
1286         * gpgsm.c (main): Ditto.
1287         
1288         * certpath.c (gpgsm_validate_path): Special error handling for
1289         no policy match.
1290
1291 2002-06-10  Werner Koch  <wk@gnupg.org>
1292
1293         * server.c (get_status_string): Add STATUS_ERROR.
1294
1295         * certpath.c (gpgsm_validate_path): Tweaked the error checking to 
1296         return error codes in a more sensitive way.
1297         * verify.c (gpgsm_verify): Send status TRUST_NEVER also for a bad
1298         CA certificate and when the certificate has been revoked.  Issue
1299         TRUST_FULLY even when the cert has expired.  Append an error token
1300         to these status lines.  Issue the new generic error status when a
1301         cert was not found and when leaving the function.
1302
1303 2002-06-04  Werner Koch  <wk@gnupg.org>
1304
1305         * gpgsm.c (main): New command --list-sigs
1306         * keylist.c (list_cert_std): New.  Use it whenever colon mode is
1307         not used.
1308         (list_cert_chain): New.
1309
1310 2002-05-31  Werner Koch  <wk@gnupg.org>
1311
1312         * gpgsm.c (main): Don't print the "go ahead" message for an
1313         invalid command.
1314
1315 2002-05-23  Werner Koch  <wk@gnupg.org>
1316
1317         * import.c (gpgsm_import): Add error messages.
1318
1319 2002-05-21  Werner Koch  <wk@gnupg.org>
1320
1321         * keylist.c (list_internal_keys): Renamed from gpgsm_list_keys.
1322         (list_external_keys): New.
1323         (gpgsm_list_keys): Dispatcher for above.
1324         * call-dirmngr.c (lookup_cb,pattern_from_strlist)
1325         (gpgsm_dirmngr_lookup): New.
1326         * server.c (option_handler): Handle new option --list-mode.
1327         (do_listkeys): Handle options and actually use the mode argument.
1328         (get_status_string): New code TRUNCATED.
1329
1330         * import.c (gpgsm_import): Try to identify the type of input and
1331         handle certs-only messages.
1332
1333 2002-05-14  Werner Koch  <wk@gnupg.org>
1334
1335         * gpgsm.c: New option --faked-system-time
1336         * sign.c (gpgsm_sign): And use it here.
1337         * certpath.c (gpgsm_validate_path): Ditto.
1338
1339 2002-05-03  Werner Koch  <wk@gnupg.org>
1340
1341         * certpath.c (gpgsm_validate_path): Added EXPTIME arg and changed
1342         all callers.
1343         * verify.c (gpgsm_verify): Tweaked usage of log_debug and
1344         log_error.  Return EXPSIG status and add expiretime to VALIDSIG.
1345
1346 2002-04-26  Werner Koch  <wk@gnupg.org>
1347
1348         * gpgsm.h (DBG_AGENT,DBG_AGENT_VALUE): Replaced by DBG_ASSUAN_*.
1349         Changed all users.
1350
1351         * call-agent.c (start_agent): Be more silent without -v.
1352         * call-dirmngr.c (start_dirmngr): Ditto.
1353
1354 2002-04-25  Werner Koch  <wk@gnupg.org>
1355
1356         * call-agent.c (start_agent): Make copies of old locales and check
1357         for setlocale.
1358
1359 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
1360
1361         * call-agent.c (start_agent): Fix error handling logic so the
1362         locale is always correctly reset.
1363
1364 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
1365
1366         * server.c (option_handler): Accept display, ttyname, ttytype,
1367         lc_ctype and lc_messages options.
1368         * gpgsm.c (main): Allocate memory for these options.
1369         * gpgsm.h (struct opt): Make corresponding members non-const.
1370
1371 2002-04-24  Marcus Brinkmann  <marcus@g10code.de>
1372
1373         * gpgsm.h (struct opt): New members display, ttyname, ttytype,
1374         lc_ctype, lc_messages.
1375         * gpgsm.c (enum cmd_and_opt_values): New members oDisplay,
1376         oTTYname, oTTYtype, oLCctype, oLCmessages.
1377         (opts): New entries for these options.
1378         (main): Handle these new options.
1379         * call-agent.c (start_agent): Set the various display and tty
1380         parameter after resetting.
1381
1382 2002-04-18  Werner Koch  <wk@gnupg.org>
1383
1384         * certreqgen.c (gpgsm_genkey): Write status output on success.
1385
1386 2002-04-15  Werner Koch  <wk@gnupg.org>
1387
1388         * gpgsm.c (main): Check ksba version.
1389
1390         * certpath.c (find_up): New to use the authorithKeyIdentifier.
1391         Use it in all other functions to locate the signing cert..
1392
1393 2002-04-11  Werner Koch  <wk@gnupg.org>
1394
1395         * certlist.c (cert_usable_p): New.
1396         (gpgsm_cert_use_sign_p,gpgsm_cert_use_encrypt_p): New.
1397         (gpgsm_cert_use_verify_p,gpgsm_cert_use_decrypt_p): New.
1398         (gpgsm_add_to_certlist): Check the key usage.
1399         * sign.c (gpgsm_sign): Ditto.
1400         * verify.c (gpgsm_verify): Print a message wehn an unsuitable
1401         certificate was used.
1402         * decrypt.c (gpgsm_decrypt): Ditto
1403         * keylist.c (print_capabilities): Determine values from the cert.
1404
1405 2002-03-28  Werner Koch  <wk@gnupg.org>
1406
1407         * keylist.c (list_cert_colon): Fixed listing of crt record; the
1408         issuer is not at the right place.  Print a chainingID.
1409         * certpath.c (gpgsm_walk_cert_chain): Be a bit more silent on
1410         common errors.
1411
1412 2002-03-21  Werner Koch  <wk@gnupg.org>
1413
1414         * export.c: New.
1415         * gpgsm.c: Add command --export.
1416         * server.c (cmd_export): New.
1417         
1418 2002-03-13  Werner Koch  <wk@gnupg.org>
1419
1420         * decrypt.c (gpgsm_decrypt): Allow multiple recipients.
1421
1422 2002-03-12  Werner Koch  <wk@gnupg.org>
1423
1424         * certpath.c (check_cert_policy): Print the policy list.
1425
1426         * verify.c (gpgsm_verify): Detect certs-only message.
1427
1428 2002-03-11  Werner Koch  <wk@gnupg.org>
1429
1430         * import.c (gpgsm_import): Print a notice about imported certificates
1431         when in verbose mode.
1432
1433         * gpgsm.c (main): Print INV_RECP status.
1434         * server.c (cmd_recipient): Ditto.
1435
1436         * server.c (gpgsm_status2): New.  Allows for a list of strings.
1437         (gpgsm_status): Divert to gpgsm_status2.
1438
1439         * encrypt.c (gpgsm_encrypt): Don't use a default key when no
1440         recipients are given.  Print a NO_RECP status.
1441
1442 2002-03-06  Werner Koch  <wk@gnupg.org>
1443
1444         * server.c (cmd_listkeys, cmd_listsecretkeys): Divert to
1445         (do_listkeys): new.  Add pattern parsing.
1446
1447         * keylist.c (gpgsm_list_keys): Handle selection pattern.
1448
1449         * gpgsm.c: New command --learn-card
1450         * call-agent.c (learn_cb,gpgsm_agent_learn): New.
1451
1452         * gpgsm.c (main): Print error messages for non-implemented commands.
1453
1454         * base64.c (base64_reader_cb): Use case insensitive compare of the
1455         Content-Type string to detect plain base-64.
1456
1457 2002-03-05  Werner Koch  <wk@gnupg.org>
1458
1459         * gpgsm.c, gpgsm.h: Add local_user.
1460         * sign.c (gpgsm_get_default_cert): New.
1461         (get_default_signer): Use the new function if local_user is not
1462         set otherwise used that value.
1463         * encrypt.c (get_default_recipient): Removed.
1464         (gpgsm_encrypt): Use gpgsm_get_default_cert.
1465
1466         * verify.c (gpgsm_verify): Better error text for a bad signature
1467         found by comparing the hashs.
1468
1469 2002-02-27  Werner Koch  <wk@gnupg.org>
1470
1471         * call-dirmngr.c, call-agent.c: Add 2 more arguments to all uses
1472         of assuan_transact.
1473
1474 2002-02-25  Werner Koch  <wk@gnupg.org>
1475
1476         * server.c (option_handler): Allow to use -2 for "send all certs
1477         except the root cert".
1478         * sign.c (add_certificate_list): Implement it here.
1479         * certpath.c (gpgsm_is_root_cert): New.
1480
1481 2002-02-19  Werner Koch  <wk@gnupg.org>
1482
1483         * certpath.c (check_cert_policy): New.
1484         (gpgsm_validate_path): And call it from here.
1485         * gpgsm.c (main): New options --policy-file,
1486         --disable-policy-checks and --enable-policy-checks.
1487         * gpgsm.h (opt): Added policy_file, no_policy_checks.
1488
1489 2002-02-18  Werner Koch  <wk@gnupg.org>
1490
1491         * certpath.c (gpgsm_validate_path): Ask the agent to add the
1492         certificate into the trusted list.
1493         * call-agent.c (gpgsm_agent_marktrusted): New.
1494
1495 2002-02-07  Werner Koch  <wk@gnupg.org>
1496
1497         * certlist.c (gpgsm_add_to_certlist): Check that the specified
1498         name identifies a certificate unambiguously.
1499         (gpgsm_find_cert): Ditto.
1500
1501         * server.c (cmd_listkeys): Check that the data stream is available.
1502         (cmd_listsecretkeys): Ditto.
1503         (has_option): New.
1504         (cmd_sign): Fix ambiguousity in option recognition.
1505
1506         * gpgsm.c (main): Enable --logger-fd.
1507
1508         * encrypt.c (gpgsm_encrypt): Increased buffer size for better
1509         performance.
1510
1511         * call-agent.c (gpgsm_agent_pksign): Check the S-Exp received from
1512         the agent.
1513
1514         * keylist.c (list_cert_colon): Filter out control characters.
1515
1516 2002-02-06  Werner Koch  <wk@gnupg.org>
1517
1518         * decrypt.c (gpgsm_decrypt): Bail out after an decryption error.
1519
1520         * server.c (reset_notify): Close input and output FDs.
1521         (cmd_encrypt,cmd_decrypt,cmd_verify,cmd_sign.cmd_import)
1522         (cmd_genkey): Close the FDs and release the recipient list even in
1523         the error case.
1524
1525 2002-02-01  Marcus Brinkmann  <marcus@g10code.de>
1526
1527         * sign.c (gpgsm_sign): Do not release certificate twice.
1528
1529 2002-01-29  Werner Koch  <wk@gnupg.org>
1530
1531         * call-agent.c (gpgsm_agent_havekey): New.
1532         * keylist.c (list_cert_colon): New arg HAVE_SECRET, print "crs"
1533         when we know that the secret key is available.
1534         (gpgsm_list_keys): New arg MODE, check whether a secret key is
1535         available.  Changed all callers.
1536         * gpgsm.c (main): New command --list-secret-keys.
1537         * server.c (cmd_listsecretkeys): New.
1538         (cmd_listkeys): Return secret keys with "crs" record.
1539
1540 2002-01-28  Werner Koch  <wk@gnupg.org>
1541
1542         * certreqgen.c (create_request): Store the email address in the req.
1543
1544 2002-01-25  Werner Koch  <wk@gnupg.org>
1545
1546         * gpgsm.c (main): Disable core dumps.
1547
1548         * sign.c (add_certificate_list): New.
1549         (gpgsm_sign): Add the certificates to the CMS object.
1550         * certpath.c (gpgsm_walk_cert_chain): New.
1551         * gpgsm.h (server_control_s): Add included_certs.
1552         * gpgsm.c: Add option --include-certs.
1553         (gpgsm_init_default_ctrl): New.
1554         (main): Call it.
1555         * server.c (gpgsm_server): Ditto.
1556         (option_handler): Support --include-certs.
1557
1558 2002-01-23  Werner Koch  <wk@gnupg.org>
1559
1560         * certpath.c (gpgsm_validate_path): Print the DN of a missing issuer.
1561         * certdump.c (gpgsm_dump_string): New.
1562         (print_dn): Replaced by above.
1563
1564 2002-01-22  Werner Koch  <wk@gnupg.org>
1565
1566         * certpath.c (unknown_criticals): New.
1567         (allowed_ca): New.
1568         (gpgsm_validate_path): Check validity, CA attribute, path length
1569         and unknown critical extensions.
1570
1571 2002-01-21  Werner Koch  <wk@gnupg.org>
1572
1573         * gpgsm.c: Add option --enable-crl-checks.
1574
1575         * call-agent.c (start_agent): Implemented socket based access.
1576         * call-dirmngr.c (start_dirmngr): Ditto.
1577
1578 2002-01-20  Werner Koch  <wk@gnupg.org>
1579
1580         * server.c (option_handler): New.
1581         (gpgsm_server): Register it with assuan.
1582
1583 2002-01-19  Werner Koch  <wk@gnupg.org>
1584
1585         * server.c (gpgsm_server): Use assuan_deinit_server and setup
1586         assuan logging if enabled.
1587         * call-agent.c (inq_ciphertext_cb): Don't show the session key in
1588         an Assuan log file.
1589
1590         * gpgsm.c (my_strusage): Take bugreport address from configure.ac
1591
1592 2002-01-15  Werner Koch  <wk@gnupg.org>
1593
1594         * import.c (gpgsm_import): Just do a basic cert check before
1595         storing it.
1596         * certpath.c (gpgsm_basic_cert_check): New.
1597
1598         * keydb.c (keydb_store_cert): New.
1599         * import.c (store_cert): Removed and change all caller to use
1600         the new function.
1601         * verify.c (store_cert): Ditto.
1602
1603         * certlist.c (gpgsm_add_to_certlist): Validate the path
1604
1605         * certpath.c (gpgsm_validate_path): Check the trust list.
1606         * call-agent.c (gpgsm_agent_istrusted): New.
1607
1608 2002-01-14  Werner Koch  <wk@gnupg.org>
1609
1610         * call-dirmngr.c (inq_certificate): Changed for new interface semantic.
1611         * certlist.c (gpgsm_find_cert): New.
1612
1613 2002-01-13  Werner Koch  <wk@gnupg.org>
1614
1615         * fingerprint.c (gpgsm_get_certid): Print the serial and not the
1616         hash after the dot.
1617
1618 2002-01-11  Werner Koch  <wk@gnupg.org>
1619
1620         * call-dirmngr.c: New.
1621         * certpath.c (gpgsm_validate_path): Check the CRL here.
1622         * fingerprint.c (gpgsm_get_certid): New.
1623         * gpgsm.c: New options --dirmngr-program and --disable-crl-checks.
1624
1625 2002-01-10  Werner Koch  <wk@gnupg.org>
1626
1627         * base64.c (gpgsm_create_writer): Allow to set the object name
1628
1629 2002-01-08  Werner Koch  <wk@gnupg.org>
1630
1631         * keydb.c (spacep): Removed because it is now in util.c
1632
1633         * server.c (cmd_genkey): New.
1634         * certreqgen.c: New.  The parameter handling code has been taken
1635         from gnupg/g10/keygen.c version 1.0.6.
1636         * call-agent.c (gpgsm_agent_genkey): New.
1637
1638 2002-01-02  Werner Koch  <wk@gnupg.org>
1639
1640         * server.c (rc_to_assuan_status): Removed and changed all callers
1641         to use map_to_assuan_status.
1642
1643 2001-12-20  Werner Koch  <wk@gnupg.org>
1644
1645         * verify.c (gpgsm_verify): Implemented non-detached signature
1646         verification.  Add OUT_FP arg, initialize a writer and changed all
1647         callers.
1648         * server.c (cmd_verify): Pass an out_fp if one has been set.
1649
1650         * base64.c (base64_reader_cb): Try to detect an S/MIME body part.
1651
1652         * certdump.c (print_sexp): Renamed to gpgsm_dump_serial, made
1653         global.
1654         (print_time): Renamed to gpgsm_dump_time, made global.
1655         (gpgsm_dump_serial): Take a real S-Expression as argument and
1656         print the first item.
1657         * keylist.c (list_cert_colon): Ditto.
1658         * keydb.c (keydb_search_issuer_sn): Ditto.
1659         * decrypt.c (print_integer_sexp): Removed and made callers 
1660         use gpgsm_dump_serial.
1661         * verify.c (print_time): Removed, made callers use gpgsm_dump_time.
1662         
1663 2001-12-19  Marcus Brinkmann  <marcus@g10code.de>
1664
1665         * call-agent.c (start_agent): Add new argument to assuan_pipe_connect.
1666
1667 2001-12-18  Werner Koch  <wk@gnupg.org>
1668
1669         * verify.c (print_integer_sexp): Renamed from print_integer and
1670         print the serial number according to the S-Exp rules.
1671         * decrypt.c (print_integer_sexp): Ditto.
1672
1673 2001-12-17  Werner Koch  <wk@gnupg.org>
1674
1675         * keylist.c (list_cert_colon): Changed for new return value of
1676         get_serial.
1677         * keydb.c (keydb_search_issuer_sn): Ditto.
1678         * certcheck.c (gpgsm_check_cert_sig): Likewise for other S-Exp
1679         returingin functions.
1680         * fingerprint.c (gpgsm_get_keygrip): Ditto.
1681         * encrypt.c (encrypt_dek): Ditto
1682         * certcheck.c (gpgsm_check_cms_signature): Ditto
1683         * decrypt.c (prepare_decryption): Ditto.
1684         * call-agent.c (gpgsm_agent_pkdecrypt): Removed arg ciphertextlen,
1685         use KsbaSexp type and calculate the length.
1686
1687         * certdump.c (print_sexp): Remaned from print_integer, changed caller.
1688
1689         * Makefile.am: Use the LIBGCRYPT and LIBKSBA variables.
1690
1691         * fingerprint.c (gpgsm_get_keygrip): Use the new
1692         gcry_pk_get_keygrip to calculate the grip - note the algorithm and
1693         therefore the grip values changed.
1694
1695 2001-12-15  Werner Koch  <wk@gnupg.org>
1696
1697         * certcheck.c (gpgsm_check_cms_signature): Removed the faked-key
1698         kludge.
1699         (gpgsm_create_cms_signature): Removed the commented fake key
1700         code.  This makes the function pretty simple.
1701
1702         * gpgsm.c (main): Renamed the default key database to "keyring.kbx".
1703
1704         * decrypt.c (gpgsm_decrypt): Write STATUS_DECRYPTION_*.
1705         * sign.c (gpgsm_sign): Write a STATUS_SIG_CREATED.
1706
1707 2001-12-14  Werner Koch  <wk@gnupg.org>
1708
1709         * keylist.c (list_cert_colon): Kludge to show an email address
1710         encoded in the subject's DN.
1711
1712         * verify.c (gpgsm_verify): Add hash debug helpers
1713         * sign.c (gpgsm_sign): Ditto.
1714
1715         * base64.c (base64_reader_cb): Reset the linelen when we need to
1716         skip the line and adjusted test; I somehow forgot about DeMorgan.
1717
1718         * server.c (cmd_encrypt,cmd_decrypt,cmd_sign,cmd_verify) 
1719         (cmd_import): Close the FDs on success.
1720         (close_message_fd): New.
1721         (input_notify): Setting autodetect_encoding to 0 after initializing
1722         it to 0 is pretty pointless.  Easy to fix.
1723
1724         * gpgsm.c (main): New option --debug-wait n, so that it is
1725         possible to attach gdb when used in server mode.
1726
1727         * sign.c (get_default_signer): Use keydb_classify_name here.
1728
1729 2001-12-14  Marcus Brinkmann  <marcus@g10code.de>
1730
1731         * call-agent.c (LINELENGTH): Removed.
1732         (gpgsm_agent_pksign): Use ASSUAN_LINELENGTH, not LINELENGTH.
1733         (gpgsm_agent_pkdecrypt): Likewise.
1734
1735 2001-12-13  Werner Koch  <wk@gnupg.org>
1736
1737         * keylist.c (list_cert_colon): Print alternative names of subject
1738         and a few other values.
1739
1740 2001-12-12  Werner Koch  <wk@gnupg.org>
1741
1742         * gpgsm.c (main): New options --assume-{armor,base64,binary}. 
1743         * base64.c (base64_reader_cb): Fixed non-autodetection mode.
1744
1745 2001-12-04  Werner Koch  <wk@gnupg.org>
1746
1747         * call-agent.c (read_from_agent): Check for inquire responses.
1748         (request_reply): Handle them using a new callback arg, changed all
1749         callers.
1750         (gpgsm_agent_pkdecrypt): New.
1751
1752 2001-11-27  Werner Koch  <wk@gnupg.org>
1753
1754         * base64.c: New.  Changed all other functions to use this instead
1755         of direct creation of ksba_reader/writer.
1756         * gpgsm.c (main): Set ctrl.auto_encoding unless --no-armor is used.
1757
1758 2001-11-26  Werner Koch  <wk@gnupg.org>
1759
1760         * gpgsm.c: New option --agent-program
1761         * call-agent.c (start_agent): Allow to override the default path
1762         to the agent.
1763
1764         * keydb.c (keydb_add_resource): Create keybox
1765
1766         * keylist.c (gpgsm_list_keys): Fixed non-server keylisting.
1767
1768         * server.c (rc_to_assuan_status): New.  Use it for all commands.
1769
1770         
1771  Copyright 2001, 2002, 2003, 2004, 2005,
1772            2006 Free Software Foundation, Inc.
1773
1774  This file is free software; as a special exception the author gives
1775  unlimited permission to copy and/or distribute it, with or without
1776  modifications, as long as this notice is preserved.
1777
1778  This file is distributed in the hope that it will be useful, but
1779  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
1780  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.