* gpgsm.c: New option --force-crl-refresh.
[gnupg.git] / sm / ChangeLog
index 6cd7e7d..c2627d3 100644 (file)
@@ -1,3 +1,622 @@
+2004-04-07  Werner Koch  <wk@gnupg.org>
+
+       * gpgsm.c: New option --force-crl-refresh.
+       * call-dirmngr.c (gpgsm_dirmngr_isvalid): Pass option to dirmngr.
+
+2004-04-05  Werner Koch  <wk@gnupg.org>
+
+       * server.c (get_status_string): Add STATUS_NEWSIG.
+       * verify.c (gpgsm_verify): Print STATUS_NEWSIG for each signature.
+
+       * certchain.c (gpgsm_validate_chain) <gpgsm_cert_use_cer_p>: Do
+       not just warn if a cert is not suitable; bail out immediately.
+
+2004-04-01  Werner Koch  <wk@gnupg.org>
+
+       * call-dirmngr.c (isvalid_status_cb): New.
+       (unhexify_fpr): New. Taken from ../g10/call-agent.c
+       (gpgsm_dirmngr_isvalid): Add new arg CTRL, changed caller to pass
+       it thru.  Detect need to check the respondert cert and do that.
+       * certchain.c (gpgsm_validate_chain): Add new arg FLAGS.  Changed
+       all callers.
+
+2004-03-24  Werner Koch  <wk@gnupg.org>
+
+       * sign.c (gpgsm_sign): Include a short list of capabilities.
+
+2004-03-17  Werner Koch  <wk@gnupg.org>
+
+       * gpgsm.c (main) <gpgconf>: Fixed default value quoting.
+
+2004-03-16  Werner Koch  <wk@gnupg.org>
+
+       * gpgsm.c (main): Implemented --gpgconf-list.
+
+2004-03-15  Werner Koch  <wk@gnupg.org>
+
+       * keylist.c (list_cert_colon): Hack to set the expired flag.
+
+2004-03-09  Werner Koch  <wk@gnupg.org>
+
+       * gpgsm.c (main): Correctly intitialze USE_OCSP flag.
+
+       * keydb.c (keydb_delete): s/GPG_ERR_CONFLICT/GPG_ERR_NOT_LOCKED/
+
+2004-03-04  Werner Koch  <wk@gnupg.org>
+
+       * call-dirmngr.c (gpgsm_dirmngr_isvalid): New arg ISSUER_CERT.
+
+       * certchain.c (is_cert_still_valid): New.  Code moved from ...
+       (gpgsm_validate_chain): ... here because we now need to check at
+       two places and at a later stage, so that we can pass the issuer
+       cert down to the dirmngr.
+
+2004-03-03  Werner Koch  <wk@gnupg.org>
+
+       * call-agent.c (start_agent): Replaced pinentry setup code by a
+       call to a new common function.
+
+       * certdump.c (gpgsm_format_keydesc): Make sure the string is
+       returned as utf-8.
+
+       * export.c (gpgsm_export): Make sure that we don't export more
+       than one certificate.
+
+2004-03-02  Werner Koch  <wk@gnupg.org>
+
+       * export.c (create_duptable, destroy_duptable)
+       (insert_duptable): New.
+       (gpgsm_export): Avoid duplicates.
+
+2004-02-26  Werner Koch  <wk@gnupg.org>
+
+       * certchain.c (compare_certs): New.
+       (gpgsm_validate_chain): Fixed infinite certificate checks after
+       bad signatures.
+
+2004-02-24  Werner Koch  <wk@gnupg.org>
+
+       * keylist.c (list_cert_colon): Print the fingerprint as the
+       cert-id for root certificates.
+
+2004-02-21  Werner Koch  <wk@gnupg.org>
+
+       * keylist.c (list_internal_keys): Return error codes.
+       (list_external_keys, gpgsm_list_keys): Ditto.
+       * server.c (do_listkeys): Ditto.
+
+       * gpgsm.c (main): Display a key description for --passwd.
+       * call-agent.c (gpgsm_agent_passwd): New arg DESC.
+
+2004-02-20  Werner Koch  <wk@gnupg.org>
+
+       * gpgsm.c (main): New option --debug-ignore-expiration.
+       * certchain.c (gpgsm_validate_chain): Use it here.
+
+       * certlist.c (cert_usage_p): Apply extKeyUsage.
+
+2004-02-19  Werner Koch  <wk@gnupg.org>
+
+       * export.c (export_p12, popen_protect_tool)
+       (gpgsm_p12_export): New.
+       * gpgsm.c (main): New command --export-secret-key-p12. 
+
+2004-02-18  Werner Koch  <wk@gnupg.org>
+
+       * gpgsm.c (set_debug): Set the new --debug-level flags.
+       (main): New option --gpgconf-list.  
+       (main): Do not setup -u and -r keys when not required.
+       (main): Setup the used character set.
+
+       * keydb.c (keydb_add_resource): Print a hint to start the
+       gpg-agent.
+
+2004-02-17  Werner Koch  <wk@gnupg.org>
+
+       * gpgsm.c: Fixed value parsing for --with-validation.
+       * call-agent.c (start_agent): Ignore an empty GPG_AGENT_INFO.
+       * call-dirmngr.c (start_dirmngr): Likewise for DIRMNGR_INFO.
+
+       * gpgsm.c: New option --with-md5-fingerprint.
+       * keylist.c (list_cert_std): Print MD5 fpr.
+
+       * gpgsm.c: New options --with-validation.
+       * server.c (option_handler): New option "with-validation".
+       * keylist.c (list_cert_std, list_internal_keys): New args CTRL and
+       WITH_VALIDATION. Changed callers to set it.
+       (list_external_cb, list_external_keys): Pass CTRL to the callback.
+       (list_cert_colon): Add arg CTRL.  Check validation if requested.
+       * certchain.c (unknown_criticals, allowed_ca, check_cert_policy) 
+       (gpgsm_validate_chain): New args LISTMODE and FP.
+       (do_list): New helper for info output.
+       (find_up): New arg FIND_NEXT.
+       (gpgsm_validate_chain): After a bad signature try again with other
+       CA certificates.
+
+       * import.c (print_imported_status): New arg NEW_CERT. Print
+       additional STATUS_IMPORT_OK becuase that is what gpgme expects.
+       (check_and_store): Always call above function after import.
+       * server.c (get_status_string): Added STATUS_IMPORT_OK.
+
+2004-02-13  Werner Koch  <wk@gnupg.org>
+
+       * certcheck.c (gpgsm_create_cms_signature): Format a description
+       for use by the pinentry.
+       * decrypt.c (gpgsm_decrypt): Ditto. Free HEXKEYGRIP.
+       * certdump.c (format_name_cookie, format_name_writer) 
+       (gpgsm_format_name): New.
+       (gpgsm_format_serial): New.
+       (gpgsm_format_keydesc): New.
+       * call-agent.c (gpgsm_agent_pksign): New arg DESC.
+       (gpgsm_agent_pkdecrypt): Ditto.
+
+       * encrypt.c (init_dek): Check for too weak algorithms.
+
+       * import.c (parse_p12, popen_protect_tool): New.
+
+       * base64.c (gpgsm_create_reader): New arg ALLOW_MULTI_PEM.
+       Changed all callers.
+       (base64_reader_cb): Handle it here.
+       (gpgsm_reader_eof_seen): New.
+       (base64_reader_cb): Set a flag for EOF.
+       (simple_reader_cb): Ditto.
+
+2004-02-12  Werner Koch  <wk@gnupg.org>
+
+       * gpgsm.h, gpgsm.c: New option --protect-tool-program.
+       * gpgsm.c (run_protect_tool): Use it.
+
+2004-02-11  Werner Koch  <wk@gnupg.org>
+
+       * Makefile.am (AM_CPPFLAGS): Pass directory constants via -D; this
+       will allow to override directory names at make time.
+
+2004-02-02  Werner Koch  <wk@gnupg.org>
+
+       * import.c (check_and_store): Import certificates even with
+       missing issuer's cert.  Fixed an "depending on the verbose
+       setting" bug.
+
+       * certchain.c (gpgsm_validate_chain): Mark revoked certs in the
+       keybox.
+
+       * keylist.c (list_cert_colon): New arg VALIDITY; use it to print a
+       revoked flag.
+       (list_internal_keys): Retrieve validity flag.
+       (list_external_cb): Pass 0 as validity flag.
+       * keydb.c (keydb_get_flags, keydb_set_flags): New.
+       (keydb_set_cert_flags): New.
+       (lock_all): Return a proper error code.
+       (keydb_lock): New.
+       (keydb_delete): Don't lock but check that it has been locked.
+       (keydb_update_keyblock): Ditto.
+       * delete.c (delete_one): Take a lock.
+
+2004-01-30  Werner Koch  <wk@gnupg.org>
+
+       * certchain.c (check_cert_policy): Fixed read error checking.
+       (check_cert_policy): With no critical policies issue only a
+       warning if the policy file does not exists.
+
+       * sign.c (add_certificate_list): Decrement N for the first cert.
+
+2004-01-29  Werner Koch  <wk@gnupg.org>
+
+       * certdump.c (parse_dn_part): Map common OIDs to human readable
+       labels.  Make sure that a value won't get truncated if it includes
+       a Nul.
+
+2004-01-28  Werner Koch  <wk@gnupg.org>
+
+       * certchain.c (gpgsm_validate_chain): Changed the message printed
+       for an untrusted root certificate.
+
+2004-01-27  Werner Koch  <wk@gnupg.org>
+
+       * certdump.c (parse_dn_part): Pretty print the nameDistinguisher OID.
+       (print_dn_part): Do not delimit multiple RDN by " + ".  Handle
+       multi-valued RDNs in a special way, i.e. in the order specified by
+       the certificate.
+       (print_dn_parts): Simplified. 
+
+2004-01-16  Werner Koch  <wk@gnupg.org>
+
+       * sign.c (gpgsm_sign): Print an error message on all failures.
+       * decrypt.c (gpgsm_decrypt): Ditto.
+
+2003-12-17  Werner Koch  <wk@gnupg.org>
+
+       * server.c (gpgsm_server): Add arg DEFAULT_RECPLIST.
+       (cmd_encrypt): Add all enrypt-to marked certs to the list.
+       * encrypt.c (gpgsm_encrypt): Check that real recipients are
+       available.
+       * gpgsm.c (main): Make the --encrypt-to and --no-encrypt-to
+       options work.  Pass the list of recients to gpgsm_server.
+       * gpgsm.h (certlist_s): Add field IS_ENCRYPT_TO.
+       (opt): Add NO_ENCRYPT_TO.
+       * certlist.c (gpgsm_add_to_certlist): New arg IS_ENCRYPT_TO.
+       Changed all callers and ignore duplicate entries.
+       (is_cert_in_certlist): New.
+       (gpgsm_add_cert_to_certlist): New.
+
+       * certdump.c (gpgsm_print_serial): Cleaned up cast use in strtoul.
+       (gpgsm_dump_serial): Ditto.
+
+       * decrypt.c (gpgsm_decrypt): Replaced ERR by RC.
+
+2003-12-16  Werner Koch  <wk@gnupg.org>
+
+       * gpgsm.c (main): Set the prefixes for assuan logging.
+
+       * sign.c (gpgsm_sign): Add validation checks for the default
+       certificate.
+
+       * gpgsm.c: Add -k as alias for --list-keys and -K for
+       --list-secret-keys.
+
+2003-12-15  Werner Koch  <wk@gnupg.org>
+
+       * encrypt.c (init_dek): Use gry_create_nonce for the IV; there is
+       not need for real strong random here and it even better protect
+       the random bits used for the key.
+
+2003-12-01  Werner Koch  <wk@gnupg.org>
+
+       * gpgsm.c, gpgsm.h: New options --{enable,disable}-ocsp.
+       (gpgsm_init_default_ctrl): Set USE_OCSP to the default value.
+       * certchain.c (gpgsm_validate_chain): Handle USE_OCSP.
+       * call-dirmngr.c (gpgsm_dirmngr_isvalid): Add arg USE_OCSP and
+       proceed accordingly.
+
+2003-11-19  Werner Koch  <wk@gnupg.org>
+
+       * verify.c (gpgsm_verify): Use "0" instead of an empty string for
+       the VALIDSIG status.
+
+2003-11-18  Werner Koch  <wk@gnupg.org>
+
+       * verify.c (gpgsm_verify): Fixed for changes API of gcry_md_info.
+
+       * certchain.c (unknown_criticals): Fixed an error code test.
+
+2003-11-12  Werner Koch  <wk@gnupg.org>
+
+       Adjusted for API changes in Libksba.
+
+2003-10-31  Werner Koch  <wk@gnupg.org>
+
+       * certchain.c (gpgsm_validate_chain): Changed to use ksba_isotime_t.
+       * verify.c (strtimestamp_r, gpgsm_verify): Ditto.
+       * sign.c (gpgsm_sign): Ditto.
+       * keylist.c (print_time, list_cert_std, list_cert_colon): Ditto.
+       * certdump.c (gpgsm_print_time, gpgsm_dump_time, gpgsm_dump_cert):
+       Ditto.
+
+2003-10-25  Werner Koch  <wk@gnupg.org>
+
+       * certreqgen.c (read_parameters): Fixed faulty of !spacep().
+
+2003-08-20  Marcus Brinkmann  <marcus@g10code.de>
+
+       * encrypt.c (encode_session_key): Allocate enough space.  Cast key
+       byte to unsigned char to prevent sign extension.
+       (encrypt_dek): Check return value before error.
+
+2003-08-14  Timo Schulz  <twoaday@freakmail.de>
+
+       * encrypt.c (encode_session_key): Use new Libgcrypt interface.
+       
+2003-07-31  Werner Koch  <wk@gnupg.org>
+
+       * Makefile.am (gpgsm_LDADD): Added INTLLIBS.
+
+2003-07-29  Werner Koch  <wk@gnupg.org>
+
+       * gpgsm.c (main): Add secmem features and set the random seed file.
+       (gpgsm_exit): Update the random seed file and enable debug output.
+
+2003-07-27  Werner Koch  <wk@gnupg.org>
+
+       Adjusted for gcry_mpi_print and gcry_mpi_scan API change.
+
+2003-06-24  Werner Koch  <wk@gnupg.org>
+
+       * server.c (gpgsm_status_with_err_code): New.
+       * verify.c (gpgsm_verify): Use it here instead of the old
+       tokenizing version.
+
+       * verify.c (strtimestamp): Renamed to strtimestamp_r
+
+       Adjusted for changes in the libgcrypt API. Some more fixes for the
+       libgpg-error stuff.  
+
+2003-06-04  Werner Koch  <wk@gnupg.org>
+
+       * call-agent.c (init_membuf,put_membuf,get_membuf): Removed.
+       Include new membuf header and changed used type.
+
+       Renamed error codes from INVALID to INV and removed _ERROR suffixes.
+
+2003-06-03  Werner Koch  <wk@gnupg.org>
+
+       Changed all error codes in all files to the new libgpg-error scheme.
+
+       * gpgsm.h: Include gpg-error.h .
+       * Makefile.am: Link with libgpg-error.
+
+2003-04-29  Werner Koch  <wk@gnupg.org>
+
+       * Makefile.am: Use libassuan.  Don't override LDFLAGS anymore.
+       * server.c (register_commands): Adjust for new Assuan semantics.
+
+2002-12-03  Werner Koch  <wk@gnupg.org>
+
+       * call-agent.c (gpgsm_agent_passwd): New.
+       * gpgsm.c (main): New command --passwd and --call-protect-tool
+       (run_protect_tool): New.
+
+2002-11-25  Werner Koch  <wk@gnupg.org>
+
+       * verify.c (gpgsm_verify): Handle content-type attribute. 
+
+2002-11-13  Werner Koch  <wk@gnupg.org>
+
+       * call-agent.c (start_agent): Try to use $GPG_TTY instead of
+       ttyname.  Changed ttyname to test stdin becuase it can be assumed
+       that output redirection is more common that input redirection.
+
+2002-11-12  Werner Koch  <wk@gnupg.org>
+
+       * gpgsm.c: New command --call-dirmngr. 
+       * call-dirmngr.c (gpgsm_dirmngr_run_command)
+       (run_command_inq_cb,run_command_cb)
+       (run_command_status_cb): New.
+
+2002-11-11  Werner Koch  <wk@gnupg.org>
+
+       * certcheck.c (gpgsm_check_cms_signature): Don't double free
+       s_sig but free s_pkey at leave.
+
+2002-11-10  Werner Koch  <wk@gnupg.org>
+
+       * gpgsm.c: Removed duplicate --list-secret-key entry.
+
+2002-09-19  Werner Koch  <wk@gnupg.org>
+
+       * certcheck.c (gpgsm_check_cert_sig): Add cert hash debugging.
+
+       * certchain.c (find_up): Print info when the cert was not found 
+       by the autorithyKeyIdentifier.
+
+2002-09-03  Werner Koch  <wk@gnupg.org>
+
+       * gpgsm.c (main): Disable the internal libgcrypt locking.
+
+2002-08-21  Werner Koch  <wk@gnupg.org>
+
+       * import.c (print_imported_summary): Cleaned up.  Print new
+       not_imported value.
+       (check_and_store): Update non_imported counter.
+       (print_import_problem): New.
+       (check_and_store): Print error status message.
+       * server.c (get_status_string): Added STATUS_IMPORT_PROBLEM.
+
+2002-08-20  Werner Koch  <wk@gnupg.org>
+
+       * gpgsm.c (main): Use the log file only in server mode.
+
+       * import.c (print_imported_summary): New.
+       (check_and_store): Update the counters, take new argument.
+       (import_one): Factored out core of gpgsm_import.
+       (gpgsm_import): Print counters.
+       (gpgsm_import_files): New.
+       * gpgsm.c (main): Use the new function for import.
+
+2002-08-19  Werner Koch  <wk@gnupg.org>
+
+       * decrypt.c (gpgsm_decrypt): Return a better error status token.
+       * verify.c (gpgsm_verify): Don't error on messages with no signing
+       time or no message digest.  This is only the case for messages
+       without any signed attributes.
+
+2002-08-16  Werner Koch  <wk@gnupg.org>
+
+       * certpath.c: Renamed to ..
+       * certchain.c: this. Renamed all all other usages of "path" in the
+       context of certificates to "chain".
+
+       * call-agent.c (learn_cb): Special treatment when the issuer
+       certificate is missing.
+
+2002-08-10  Werner Koch  <wk@gnupg.org>
+
+       * Makefile.am (INCLUDES): Add definition for localedir.
+
+       * keylist.c (list_cert_colon): Print the short fingerprint in the
+       key ID field.
+       * fingerprint.c (gpgsm_get_short_fingerprint): New.
+       * verify.c (gpgsm_verify): Print more verbose info for a good
+       signature.
+
+2002-08-09  Werner Koch  <wk@gnupg.org>
+
+       * decrypt.c (prepare_decryption): Hack to detected already
+       unpkcsedone keys.
+
+       * gpgsm.c (emergency_cleanup): New.
+       (main): Initialize the signal handler.
+
+       * sign.c (gpgsm_sign): Reset the hash context for subsequent
+       signers and release it at the end.
+
+2002-08-05  Werner Koch  <wk@gnupg.org>
+
+       * server.c (cmd_signer): New command "SIGNER"
+       (register_commands): Register it.
+       (cmd_sign): Pass the signer list to gpgsm_sign.
+       * certlist.c (gpgsm_add_to_certlist): Add SECRET argument, check
+       for secret key if set and changed all callers.
+       * sign.c (gpgsm_sign): New argument SIGNERLIST and implemt
+       multiple signers.
+       * gpgsm.c (main): Support more than one -u.
+       
+       * server.c (cmd_recipient): Return reason code 1 for No_Public_Key
+       which is actually what gets returned from add_to_certlist.
+       
+2002-07-26  Werner Koch  <wk@gnupg.org>
+
+       * certcheck.c (gpgsm_check_cert_sig): Implement proper cleanup.
+       (gpgsm_check_cms_signature): Ditto.
+
+2002-07-22  Werner Koch  <wk@gnupg.org>
+
+       * keydb.c (keydb_add_resource): Register a lock file.
+       (lock_all, unlock_all): Implemented.
+
+       * delete.c: New.
+       * gpgsm.c: Made --delete-key work.
+       * server.c (cmd_delkeys): New.
+       (register_commands): New command DELKEYS.
+
+       * decrypt.c (gpgsm_decrypt): Print a convenience note when RC2 is
+       used and a STATUS_ERROR with the algorithm oid.
+
+2002-07-03  Werner Koch  <wk@gnupg.org>
+
+       * server.c (gpgsm_status2): Insert a blank between all optional
+       arguments when using assuan.
+       * server.c (cmd_recipient): No more need for extra blank in constants.
+       * import.c (print_imported_status): Ditto.
+       * gpgsm.c (main): Ditto.
+
+2002-07-02  Werner Koch  <wk@gnupg.org>
+
+       * verify.c (gpgsm_verify): Extend the STATUS_BADSIG line with
+       the fingerprint.
+
+       * certpath.c (check_cert_policy): Don't use log_error to print a
+       warning.
+
+       * keydb.c (keydb_store_cert): Add optional ar EXISTED and changed
+       all callers.
+       * call-agent.c (learn_cb): Print info message only for real imports.
+
+       * import.c (gpgsm_import): Moved duplicated code to ...
+       (check_and_store): new function.  Added magic to import the entire
+       chain. Print status only for real imports and moved printing code
+       to ..
+       (print_imported_status): New.
+
+       * call-dirmngr.c (gpgsm_dirmngr_isvalid): print status of dirmngr
+       call in very verbose mode.
+
+       * gpgsm.c (main): Use the same error codes for STATUS_INV_RECP as
+       with the server mode.
+
+2002-06-29  Werner Koch  <wk@gnupg.org>
+
+       * gpgsm.c: New option --auto-issuer-key-retrieve.
+       * certpath.c (find_up): Try to retrieve an issuer key from an
+       external source and from the ephemeral key DB.
+       (find_up_store_certs_cb): New.
+
+       * keydb.c (keydb_set_ephemeral): Does now return the old
+       state.  Call the backend only when required.
+
+       * call-dirmngr.c (start_dirmngr): Use GNUPG_DEFAULT_DIRMNGR.
+       (lookup_status_cb): Issue status only when CTRL is not NULL.
+       (gpgsm_dirmngr_lookup): Document that CTRL is optional.
+
+       * call-agent.c (start_agent): Use GNUPG_DEFAULT_AGENT.
+
+2002-06-28  Werner Koch  <wk@gnupg.org>
+
+       * server.c (cmd_recipient): Add more reason codes.
+
+2002-06-27  Werner Koch  <wk@gnupg.org>
+
+       * certpath.c (gpgsm_basic_cert_check): Use
+       --debug-no-path-validation to also bypass this basic check.
+
+       * gpgsm.c (main): Use GNUPG_DEFAULT_HOMEDIR constant.
+
+       * call-agent.c (start_agent): Create and pass the list of FD to
+       keep in the child to assuan.
+       * call-dirmngr.c (start_dirmngr): Ditto.
+
+2002-06-26  Werner Koch  <wk@gnupg.org>
+
+       * import.c (gpgsm_import): Print an STATUS_IMPORTED.
+
+       * gpgsm.c: --debug-no-path-validation does not take an argument.
+
+2002-06-25  Werner Koch  <wk@gnupg.org>
+
+       * certdump.c (print_dn_part): Always print a leading slash,
+       removed NEED_DELIM arg and changed caller.
+
+       * export.c (gpgsm_export): Print LFs to FP and not stdout.
+       (print_short_info): Ditto.  Make use of gpgsm_print_name.
+
+       * server.c (cmd_export): Use output-fd instead of data lines; this
+       was actually the specified way.
+
+2002-06-24  Werner Koch  <wk@gnupg.org>
+
+       * gpgsm.c: Removed duped help entry for --list-keys.
+       
+       * gpgsm.c, gpgsm.h: New option --debug-no-path-validation.
+
+       * certpath.c (gpgsm_validate_path): Use it here instead of the
+       debug flag hack.
+
+       * certpath.c (check_cert_policy): Return No_Policy_Match if the
+       policy file could not be opened.
+
+2002-06-20  Werner Koch  <wk@gnupg.org>
+
+       * certlist.c (gpgsm_add_to_certlist): Fixed locating of a
+       certificate with the required key usage.
+
+       * gpgsm.c (main): Fixed a segv when using --outfile without an
+       argument.
+
+       * keylist.c (print_capabilities): Also check for non-repudiation
+       and data encipherment.
+       * certlist.c (cert_usage_p): Test for signing and encryption was
+       swapped.  Add a case for certification usage, handle
+       non-repudiation and data encipherment.
+       (gpgsm_cert_use_cert_p): New.
+       (gpgsm_add_to_certlist): Added a CTRL argument and changed all
+       callers to pass it.
+       * certpath.c (gpgsm_validate_path): Use it here to print a status
+       message. Added a CTRL argument and changed all callers to pass it.
+       * decrypt.c (gpgsm_decrypt): Print a status message for wrong key
+       usage.
+       * verify.c (gpgsm_verify): Ditto.
+       * keydb.c (classify_user_id): Allow a colon delimited fingerprint.
+
+2002-06-19  Werner Koch  <wk@gnupg.org>
+
+       * call-agent.c (learn_cb): Use log_info instead of log_error on
+       successful import.
+
+       * keydb.c (keydb_set_ephemeral): New.
+       (keydb_store_cert): New are ephemeral, changed all callers.
+       * keylist.c (list_external_cb): Store cert as ephemeral.
+       * export.c (gpgsm_export): Kludge to export epehmeral certificates.
+
+       * gpgsm.c (main): New command --list-external-keys.
+       
+2002-06-17  Werner Koch  <wk@gnupg.org>
+
+       * certreqgen.c (read_parameters): Improved error handling.
+       (gpgsm_genkey): Print error message.
+
+2002-06-13  Werner Koch  <wk@gnupg.org>
+
+       * gpgsm.c (main): New option --log-file.
+
 2002-06-12  Werner Koch  <wk@gnupg.org>
 
        * call-dirmngr.c (lookup_status_cb): New.
        * server.c (rc_to_assuan_status): New.  Use it for all commands.
 
        
- Copyright 2001, 2002 Free Software Foundation, Inc.
+ Copyright 2001, 2002, 2003 Free Software Foundation, Inc.
 
  This file is free software; as a special exception the author gives
  unlimited permission to copy and/or distribute it, with or without