Remove hacks which are not anymore needed since we now require Libgcrypt 1.4
[gnupg.git] / sm / ChangeLog
index 149ba47..21e204f 100644 (file)
@@ -1,3 +1,723 @@
+2008-09-29  Werner Koch  <wk@g10code.com>
+
+       * certcheck.c (MY_GCRY_PK_ECDSA): Remove.  Change users to
+       GCRY_PK_ECDSA.
+       * gpgsm.c (MY_GCRY_PK_ECDSA): Ditto.
+       * sign.c (MY_GCRY_MD_SHA224): Remove change users to GCRY_MD_SHA224.
+
+2008-09-04  Werner Koch  <wk@g10code.com>
+
+       * certdump.c (gpgsm_format_keydesc): Work around a mingw32 bug.
+
+2008-09-03  Werner Koch  <wk@g10code.com>
+
+       * sign.c (MY_GCRY_MD_SHA224): New, so that we don't need libgcrypt
+       1.2. 
+
+2008-08-13  Werner Koch  <wk@g10code.com>
+
+       * keylist.c (list_cert_colon): Print 'f' for validated certs.
+
+2008-08-08  Marcus Brinkmann  <marcus@g10code.de>
+
+       * gpgsm.h (struct server_control_s): Remove member dirmngr_seen.
+       * call-dirmngr.c (dirmngr2_ctx, dirmngr_ctx_locked)
+       (dirmngr2_ctx_locked): New global variables.
+       (prepare_dirmngr): Don't check dirmngr_seen anymore.
+       (start_dirmngr): Move bunch of code to ...
+       (start_dirmngr_ext): ... this new function.
+       (release_dirmngr, start_dirmngr2, release_dirmngr2): New
+       functions.
+       (gpgsm_dirmngr_isvalid): Call release_dirmngr.
+       (gpgsm_dirmngr_lookup): Call release_dirmngr.  If dirmngr_ctx is
+       locked, use dirmngr2_locked.
+       (gpgsm_dirmngr_run_command): Call release_dirmngr.
+
+2008-06-25  Werner Koch  <wk@g10code.com>
+
+       * sign.c (gpgsm_sign): Revamp the hash algorithm selection.
+       * gpgsm.h (struct certlist_s): Add field HASH_ALGO and HASH_ALGO_OID.
+
+       * qualified.c (gpgsm_qualified_consent): Fix double free.
+
+       * gpgsm.c (main): Change default cipher algo to AES.
+
+       * keylist.c (print_utf8_extn_raw, print_utf8_extn): New.
+       (list_cert_raw, list_cert_std): Print the TeleSec restriction
+       extension.
+
+2008-06-23  Werner Koch  <wk@g10code.com>
+
+       * encrypt.c (encode_session_key): Replace xmalloc by xtrymalloc.
+       Use bin2hex instead of open coding the conversion.
+       (encrypt_dek): Init S_DATA.
+
+2008-06-13  Marcus Brinkmann  <marcus@ulysses.g10code.com>
+
+       * call-dirmngr.c (prepare_dirmngr): Fix error code to ignore.
+
+2008-06-12  Marcus Brinkmann  <marcus@g10code.de>
+
+       * gpgsm.h (struct keyserver_spec): New struct.
+       (opt): Add member keyserver.
+       * gpgsm.c (keyserver_list_free, parse_keyserver_line): New functions.
+       (main): Implement --keyserver option.
+       * call-dirmngr.c (prepare_dirmngr): Send LDAPSERVER commands.
+
+2008-05-20  Werner Koch  <wk@g10code.com>
+
+       * gpgsm.c (main) <aExportSecretKeyP12>: Pass FP and not stdout to
+       the export function.  Reported by Marc Mutz.
+
+2008-05-06  Werner Koch  <wk@g10code.com>
+
+       * keylist.c (list_external_keys): Ignore NOT FOUND error code.
+       This is bug#907.
+
+2008-04-23  Werner Koch  <wk@g10code.com>
+
+       * certchain.c (find_up): Make correct C89 code.  Declare variable
+       at the top of the block.  Reported by Alain Guibert.
+
+2008-04-09  Werner Koch  <wk@g10code.com>
+
+       * verify.c (gpgsm_verify): Print the message hash values on error.
+
+2008-03-31  Werner Koch  <wk@g10code.com>
+
+       * call-dirmngr.c (start_dirmngr): Use log_info instead of
+       log_error when falling back to start dirmngr.
+
+2008-03-20  Werner Koch  <wk@g10code.com>
+
+       * certlist.c (gpgsm_add_to_certlist): Always save the first
+       subject and issuer.  Initialize issuer with issuer and not with
+       subject.
+       (same_subject_issuer): Set issuer2 to issuer and not to subject.
+
+2008-03-17  Werner Koch  <wk@g10code.com>
+
+       * certdump.c (my_funopen_hook_size_t): New.
+       (format_name_writer): Use it.
+
+2008-03-13  Werner Koch  <wk@g10code.com>
+
+       * certdump.c (gpgsm_fpr_and_name_for_status): Fix signed/unsigned
+       char issue.
+       (gpgsm_format_keydesc): Remove superfluous test.  Add expire date
+       to the prompt.
+
+2008-02-18  Werner Koch  <wk@g10code.com>
+
+       * certchain.c (gpgsm_is_root_cert): Factor code out to ...
+       (is_root_cert): New.  Extend test for self-issued certificates
+       signed by other CAs.
+       (do_validate_chain, gpgsm_basic_cert_check)
+       (gpgsm_walk_cert_chain): Use it here.
+
+       * gpgsm.c: Add option --no-common-certs-import.
+       
+       * certchain.c (find_up_dirmngr, find_up, do_validate_chain)
+       (check_cert_policy): Be more silent with --quiet.
+
+       * gpgsm.c: Add option --disable-dirmngr.
+       * gpgsm.h (opt): Add field DISABLE_DIRMNGR.
+       * call-dirmngr.c (start_dirmngr): Implement option.
+
+2008-02-14  Werner Koch  <wk@g10code.com>
+
+       * server.c (option_handler): Add option allow-pinentry-notify.
+       (gpgsm_proxy_pinentry_notify): New.
+       * call-agent.c (default_inq_cb): New.
+       (gpgsm_agent_pksign, gpgsm_scd_pksign, gpgsm_agent_readkey) 
+       (gpgsm_agent_istrusted, gpgsm_agent_marktrusted) 
+       (gpgsm_agent_passwd, gpgsm_agent_get_confirmation): Call it.
+       (struct cipher_parm_s, struct genkey_parm_s): Add field CTRL.
+       (inq_ciphertext_cb): Test keyword and fallback to default_inq_cb.
+       (inq_genkey_parms): Ditto.
+       (start_agent): Tell agent to send us the pinentry notifications.
+
+2008-02-13  Werner Koch  <wk@g10code.com>
+
+       * call-dirmngr.c (gpgsm_dirmngr_lookup): Add arg CACHE_ONLY.
+       * keylist.c (list_external_keys): Pass false for new arg.
+       * certchain.c (find_up_dirmngr): New.
+       (find_up): Also try to read from the dirmngr cache.
+       (find_up, find_up_external, gpgsm_walk_cert_chain)
+       (gpgsm_basic_cert_check, allowed_ca): Add arg CTRL and changed all
+       callers.
+       * call-agent.c (struct learn_parm_s): Add field CTRL.
+       (gpgsm_agent_learn): Set it.
+
+2008-02-11  Werner Koch  <wk@g10code.com>
+
+       * server.c (cmd_getinfo): New.
+       (gpgsm_server): Register GETINFO.
+
+2008-01-29  Marcus Brinkmann  <marcus@g10code.de>
+
+       * keylist.c (list_internal_keys): New variable lastcert.  Use it
+       to suppress duplicates which immediately follow each other.
+
+2008-01-27  Werner Koch  <wk@g10code.com>
+
+       * import.c (popen_protect_tool): Set bit 7 in the flags for
+       gnupg_spawn_process so that under W32 no window appears.
+       * export.c (popen_protect_tool): Ditto.
+
+2007-12-13  Werner Koch  <wk@g10code.com>
+
+       * gpgsm.c (main): Add option --extra-digest-algo.
+       * gpgsm.h (struct): Add EXTRA_DIGEST_ALGO.
+       * verify.c (gpgsm_verify): Use it.  Use the hash algorithm from
+       the signature value.
+
+2007-12-11  Werner Koch  <wk@g10code.com>
+
+       * certchain.c (do_validate_chain): Log AUDIT_ROOT_TRUSTED.
+
+       * server.c (cmd_sign, cmd_decrypt, cmd_encrypt): Start audit log.
+       (cmd_recipient): Start audit session.
+
+       * gpgsm.c (main): Revamp creation of the audit log.
+
+       * gpgsm.h (struct server_control_s): Add AGENT_SEEN and DIRMNGR_SEEN.
+       * call-agent.c (start_agent): Record an audit event.
+       * call-dirmngr.c (start_dirmngr): Ditto. Add new arg CTRL and pass
+       it from all callers.
+       (prepare_dirmngr): New helper for start_dirmngr.
+
+       * encrypt.c (gpgsm_encrypt): Add calls to audit_log.
+
+2007-12-03  Werner Koch  <wk@g10code.com>
+
+       * gpgsm.c (main): Call gnupg_reopen_std.
+
+h2007-11-22  Werner Koch  <wk@g10code.com>
+
+       * server.c (cmd_getauditlog): New.
+       (register_commands): Register GETAUDITLOG.
+
+2007-11-19  Werner Koch  <wk@g10code.com>
+
+       * server.c (cmd_recipient, cmd_signer): Add error reason 11.
+
+       * gpgsm.c (main): Print a warning if --audit-log is used.
+
+2007-11-15  Werner Koch  <wk@g10code.com>
+
+       * gpgsm.h (struct): Add XAUTHORITY and PINENTRY_USER_DATA.
+       * misc.c (setup_pinentry_env): Add XAUTHORITY and PINENTRY_USER_DATA.
+       * gpgsm.c (main): New option --xauthority.
+       * call-agent.c (start_agent): Adjust for changed start_new_gpg_agent.
+       * server.c (option_handler): Ad the new options.
+
+2007-11-07  Werner Koch  <wk@g10code.com>
+
+       * gpgsm.c (main): New option --audit-log.
+       * server.c (option_handler): New option enable-audit-log.
+       (start_audit_session): New.
+       (cmd_verify): Create audit context.
+       (gpgsm_server): Release the context.
+
+       * gpgsm.h (struct server_control_s): Add member AUDIT, include
+       audit.h.
+       * certdump.c (gpgsm_format_sn_issuer): New.
+       * verify.c (hash_data): Return an error code.
+       (gpgsm_verify): Add calls to audit_log.
+
+       * gpgsm.c (get_status_string): Remove.
+       * gpgsm.h: Include status.h instead of errors.h.
+       
+2007-10-19  Werner Koch  <wk@g10code.com>
+
+       * qualified.c (gpgsm_qualified_consent): Use i18N-swicth functions.
+       (gpgsm_not_qualified_warning): Ditto.
+       * certdump.c (gpgsm_format_keydesc): Ditto.
+
+2007-09-14  Werner Koch  <wk@g10code.com>
+
+       * gpgsm.c (build_lib_list): New.
+       (my_strusage): Print lib info.
+
+2007-08-24  Werner Koch  <wk@g10code.com>
+
+       * Makefile.am (common_libs): Swap libkeybox and jnlib. 
+
+2007-08-23  Werner Koch  <wk@g10code.com>
+
+       * certlist.c (gpgsm_certs_identical_p): New.
+       (gpgsm_add_to_certlist): Ignore duplicate certificates in
+       ambigious name detection.
+       (gpgsm_find_cert): Ditto.
+       * export.c (gpgsm_p12_export): Ditto.
+
+2007-08-22  Werner Koch  <wk@g10code.com>
+
+       * certreqgen.c (create_request): Replace open coding by bin2hex.
+
+       * certreqgen-ui.c (gpgsm_gencertreq_tty): Use es_fopenmem.
+
+2007-08-21  Werner Koch  <wk@g10code.com>
+
+       * import.c (parse_p12): Use gnupg_tmpfile.
+       * export.c (export_p12): Ditto.
+       
+2007-08-20  Werner Koch  <wk@g10code.com>
+
+       * certreqgen.c (read_parameters): Change FP to an estream_t.
+       (gpgsm_genkey): Replace in_fd and in_stream by a estream_t.
+       * server.c (cmd_genkey): Adjust for that.
+       * certreqgen-ui.c (gpgsm_gencertreq_tty): Use es_open_memstream
+       instead of a temporary file.
+
+2007-08-14  Werner Koch  <wk@g10code.com>
+
+       * call-dirmngr.c (start_dirmngr): Use dirmngr_socket_name.  change
+       the way infostr is xstrdupped.
+
+       * gpgsm.c (main) [W32]: Make --prefer-system-dirmngr a dummy under
+       Windows.
+
+2007-08-13  Werner Koch  <wk@g10code.com>
+
+       * gpgsm.c (do_add_recipient): Add RECP_REQUIRED and make error
+       message depend on that.
+       (main): Add avriable RECP_REQUIRED, set ift for encryption
+       commands and pass it to do_add_recipient.
+       (our_pk_test_algo, our_cipher_test_algo, our_md_test_algo): Implement.
+
+2007-08-09  Werner Koch  <wk@g10code.com>
+
+       * gpgsm.c (main) [W32]: Enable CRL check by default.
+       (main): Update the default control structure after reading the
+       options.
+       (gpgsm_parse_validation_model, parse_validation_model): New.
+       (main): New option --validation-model.
+       * certchain.c (gpgsm_validate_chain): Implement this option.
+       * server.c (option_handler): Ditto.
+
+       * certchain.c (is_cert_still_valid): Reformatted.  Add arg
+       FORCE_OCSP.  Changed callers to set this flag when using the chain
+       model.
+
+2007-08-08  Werner Koch  <wk@g10code.com>
+
+       * certdump.c (gpgsm_print_serial): Fixed brown paper bag style bugs
+       which prefixed the output with a 3A and cut it off at a 00.
+
+       * keylist.c (list_cert_raw): Print the certificate ID first and
+       rename "Serial number" to "S/N".
+       (list_cert_std): Ditto.
+
+2007-08-07  Werner Koch  <wk@g10code.com>
+
+       * gpgsm.c (main): Allow a string for --faked-system-time.
+
+2007-08-06  Werner Koch  <wk@g10code.com>
+
+       Implementation of the chain model.
+       
+       * gpgsm.h (struct rootca_flags_s): Define new members VALID and
+       CHAIN_MODEL.
+       * call-agent.c (gpgsm_agent_istrusted): Mark ROOTCA_FLAGS valid.
+       (istrusted_status_cb): Set CHAIN_MODEL.
+       * certchain.c (gpgsm_validate_chain): Replace LM alias by LISTMODE
+       and FP by LISTFP.
+       (gpgsm_validate_chain): Factor some code out to ...
+       (check_validity_period, ask_marktrusted): .. new.
+       (check_validity_cm_basic, check_validity_cm_main): New.
+       (do_validate_chain): New with all code from gpgsm_validate_chain.
+       New arg ROOTCA_FLAGS.
+       (gpgsm_validate_chain): Provide ROOTCA_FLAGS and fallback to chain
+       model.  Add RETFLAGS arg and changed all callers to pass NULL. Add
+       CHECKTIME arg and changed all callers to pass a nil value.
+       (has_validity_model_chain): New.
+       * verify.c (gpgsm_verify): Check for chain model and return as
+       part of the trust status.
+
+       * gpgsm.h (VALIDATE_FLAG_NO_DIRMNGR): New.
+       (VALIDATE_FLAG_NO_DIRMNGR): New.
+       * call-dirmngr.c (gpgsm_dirmngr_isvalid): Use constant here.
+
+2007-08-03  Werner Koch  <wk@g10code.com>
+
+       * keylist.c (list_cert_colon): Avoid duplicate listing of kludge
+       uids.
+
+       * verify.c (gpgsm_verify): Make STATUS_VERIFY return the hash and
+       pk algo.
+       * certcheck.c (gpgsm_check_cms_signature): Add arg R_PKALGO.
+
+2007-08-02  Werner Koch  <wk@g10code.com>
+
+       * gpgsm.c (main): Factored GC_OPT_FLAGS out to gc-opt-flags.h.
+
+2007-07-17  Werner Koch  <wk@g10code.com>
+
+       * gpgsm.c (main): Implement --default-key.
+       (main) <gpgconf-list>: Declare --default-key and --encrypt-to.
+
+2007-07-16  Werner Koch  <wk@g10code.com>
+
+       * server.c (cmd_message): Use gnupg_fd_t to avoid dependecy on
+       newer assuan versions.
+
+2007-07-12  Werner Koch  <wk@g10code.com>
+
+       * gpgsm.c (check_special_filename): Use translate_sys2libc_fd_int
+       when passing an int value.
+       * server.c (cmd_encrypt, cmd_decrypt, cmd_verify, cmd_import)
+       (cmd_export, cmd_message, cmd_genkey):  Translate file descriptors.
+       
+2007-07-05  Werner Koch  <wk@g10code.com>
+
+       * Makefile.am (common_libs): Changed order of libs.
+
+2007-07-04  Werner Koch  <wk@g10code.com>
+
+       * certchain.c (check_cert_policy): Remove extra checks for
+       GPG_ERR_NO_VALUE.  They are not needed since libksba 1.0.1.
+       * keylist.c (print_capabilities, list_cert_raw, list_cert_std): Ditto.
+       * certlist.c (cert_usage_p, cert_usage_p): Ditto.
+
+2007-06-26  Werner Koch  <wk@g10code.com>
+
+       * gpgsm.c (main): Call gnupg_rl_initialize.
+       * Makefile.am (gpgsm_LDADD): Add LIBREADLINE and libgpgrl.a.
+
+2007-06-25  Werner Koch  <wk@g10code.com>
+
+       * gpgsm.c (check_special_filename): Use translate_sys2libc_fd and
+       add new arg FOR_WRITE.  Change callers to pass new arg.
+
+2007-06-24  Werner Koch  <wk@g10code.com>
+
+       * gpgsm.c (open_es_fwrite): Avoid the dup by using the new
+       es_fdopen_nc().  
+
+2007-06-21  Werner Koch  <wk@g10code.com>
+
+       * certreqgen-ui.c: New.
+       * gpgsm.c (main): Let --gen-key call it.
+       * certreqgen.c (gpgsm_genkey): Add optional IN_STREAM arg and
+       adjusted caller.
+
+       * gpgsm.h (ctrl_t): Remove.  It is now declared in ../common/util.h.
+
+       * call-agent.c (start_agent): Factored almost all code out to
+       ../common/asshelp.c.
+
+2007-06-20  Werner Koch  <wk@g10code.com>
+
+       * call-agent.c (start_agent) [W32]: Start the agent on the fly.
+
+2007-06-18  Marcus Brinkmann  <marcus@g10code.de>
+
+       * gpgsm.c (main): Percent escape output of --gpgconf-list.
+
+2007-06-14  Werner Koch  <wk@g10code.com>
+
+       * call-agent.c (start_agent): Use gnupg_module_name.
+       * call-dirmngr.c (start_dirmngr): Ditto.
+       * export.c (export_p12): Ditto.
+       * import.c (parse_p12): Ditto.
+       * gpgsm.c (run_protect_tool): Ditto.
+
+2007-06-12  Werner Koch  <wk@g10code.com>
+
+       * gpgsm.c (main): Replace some calls by init_common_subsystems.
+       (main): Use gnupg_datadir.
+       * qualified.c (read_list): Use gnupg-datadir.
+
+2007-06-11  Werner Koch  <wk@g10code.com>
+
+       * Makefile.am (common_libs): Use libcommaonstd macr.
+
+       * gpgsm.c (main) [W32]: Call pth_init.
+
+2007-06-06  Werner Koch  <wk@g10code.com>
+
+       * qualified.c (gpgsm_not_qualified_warning) [!ENABLE_NLS]: Do not
+       define orig_codeset.
+       * certdump.c (gpgsm_format_keydesc) [!ENABLE_NLS]: Do not define
+       orig_codeset.
+       (format_name_writer): Define only if funopen et al is available.
+
+       * gpgsm.c (i18n_init): Remove.
+
+2007-05-29  Werner Koch  <wk@g10code.com>
+
+       * export.c (gpgsm_p12_export): Print passphrase encoding info only
+       in PEM mode.
+
+2007-05-18  Marcus Brinkmann  <marcus@g10code.de>
+
+       * qualified.c (gpgsm_qualified_consent,
+       gpgsm_not_qualified_warning): Free ORIG_CODESET on error.
+       * certdump.c (gpgsm_format_keydesc): Likewise.
+
+2007-05-07  Werner Koch  <wk@g10code.com>
+
+       * certcheck.c (MY_GCRY_PK_ECDSA): New.
+
+2007-04-20  Werner Koch  <wk@g10code.com>
+
+       * gpgsm.c (main): Parameterize failed versions check messages.
+
+2007-04-19  Werner Koch  <wk@g10code.com>
+
+       * certcheck.c (do_encode_md): Add arg PKEY.  Add support for DSA2
+       and all ECDSA sizes.
+       (get_dsa_qbits): New.
+       (pk_algo_from_sexp): A key will never contain ecdsa as algorithm,
+       so remove that.
+
+2007-04-18  Werner Koch  <wk@g10code.com>
+
+       * certcheck.c (do_encode_md): Support 160 bit ECDSA.
+
+2007-04-13  Werner Koch  <wk@g10code.com>
+
+       * call-agent.c (start_agent): Don't use log_error when using the
+       fallback hack to start the agent.  This is bug 782.
+
+2007-03-20  Werner Koch  <wk@g10code.com>
+
+       * fingerprint.c (gpgsm_get_fingerprint): Add caching.
+       (gpgsm_get_fingerprint_string): Use bin2hexcolon().
+       (gpgsm_get_fingerprint_hexstring): Use bin2hex and allocate only
+       as much memory as required.
+       (gpgsm_get_keygrip_hexstring): Use bin2hex.
+
+       * certchain.c (gpgsm_validate_chain): Keep track of the
+       certificate chain and reset the ephemeral flags.
+       * keydb.c (keydb_set_cert_flags): New args EPHEMERAL and MASK.
+       Changed caller to use a mask of ~0.  Return a proper error code if
+       the certificate is not available.
+
+       * gpgsm.c: Add option --p12-charset.
+       * gpgsm.h (struct opt): Add p12_charset. 
+       * export.c (popen_protect_tool): Use new option.
+
+2007-03-19  Werner Koch  <wk@g10code.com>
+
+        Changes to let export and key listing use estream to help systems
+       without funopen.
+       
+       * keylist.c: Use estream in place of stdio functions.
+       * gpgsm.c (open_es_fwrite): New.
+       (main): Use it for the list commands.
+       * server.c (data_line_cookie_functions): New.
+       (data_line_cookie_write, data_line_cookie_close): New.
+       (do_listkeys): Use estream.
+
+       * certdump.c (gpgsm_print_serial): Changed to use estream.
+       (gpgsm_print_time): Ditto.
+       (pretty_es_print_sexp): New.
+       (gpgsm_es_print_name): New.
+       (print_dn_part): New arg STREAM.  Changed all callers.
+       (print_dn_parts): Ditto.
+       * certchain.c (gpgsm_validate_chain): Changed FP to type
+       estream_t.
+       (do_list, unknown_criticals, allowed_ca, check_cert_policy) 
+       (is_cert_still_valid): Ditto.
+
+       * export.c (gpgsm_export): New arg STREAM.
+       (do_putc, do_fputs): New.
+       (print_short_info): Allow printing to optional STREAM.
+       * server.c (cmd_export): Use stream.
+       * base64.c (do_putc, do_fputs): New.
+       (base64_writer_cb, base64_finish_write): Let them cope with an
+       alternate output function.
+       (plain_writer_cb): New.
+       (gpgsm_create_writer): New arg STREAM and call plain_writer_cb for
+       binary output to an estream.  Changed call callers.
+
+2007-01-31  Werner Koch  <wk@g10code.com>
+
+       * gpgsm.c (main): Let --gen-key print a more informative error
+       message.
+
+2007-01-25  Werner Koch  <wk@g10code.com>
+
+       * Makefile.am (gpgsm_LDADD): Add LIBICONV.  Noted by Billy Halsey.
+
+2007-01-05  Werner Koch  <wk@g10code.com>
+
+       * certchain.c (unknown_criticals): Add subjectAltName.
+
+2006-12-21  Werner Koch  <wk@g10code.com>
+
+       * gpgsm.c: Comment mtrace feature.
+
+2006-12-21  Marcus Brinkmann  <marcus@g10code.de>
+
+       * certchain.c (gpgsm_basic_cert_check): Release SUBJECT.
+
+       * encrypt.c (encrypt_dek): Release S_CIPH.
+
+2006-12-20  Marcus Brinkmann  <marcus@g10code.de>
+
+       * server.c (gpgsm_server): Release CTRL->server_local.
+
+       * base64.c: Add new members READER and WRITER in union U2.
+       (gpgsm_create_reader): Initialise CTX->u2.reader.
+       (gpgsm_destroy_reader): Invoke ksba_reader_release.  Return early
+       if CTX is NULL.
+       (gpgsm_create_writer): Initialise CTX->u2.writer.
+       (gpgsm_destroy_writer): Invoke ksba_writer_release.  Return early
+       if CTX is NULL.
+
+2006-12-18  Marcus Brinkmann  <marcus@g10code.de>
+
+       * fingerprint.c (gpgsm_get_fingerprint): Close MD.
+
+2006-11-24  Werner Koch  <wk@g10code.com>
+
+       * certdump.c (parse_dn_part): Take '#' as a special character only
+       at the beginning of a string.
+
+2006-11-21  Werner Koch  <wk@g10code.com>
+
+       * certdump.c (my_funopen_hook_ret_t): New.
+       (format_name_writer): Use it for the return value.
+
+2006-11-14  Werner Koch  <wk@g10code.com>
+
+       * server.c (skip_options): Skip leading spaces.
+       (has_option): Honor "--".
+       (cmd_export): Add option --data to do an inline export.  Skip all
+       options.
+
+       * certdump.c (gpgsm_fpr_and_name_for_status): New.
+       * verify.c (gpgsm_verify): Use it to print correct status messages.
+
+2006-11-11  Werner Koch  <wk@g10code.com>
+
+       * server.c (skip_options): New.
+
+2006-10-24  Marcus Brinkmann  <marcus@g10code.de>
+
+       * Makefile.am (AM_CFLAGS): Add $(LIBASSUAN_CFLAGS).
+
+2006-10-23  Werner Koch  <wk@g10code.com>
+
+       * gpgsm.c (main): Remap common cipher algo names to their OIDs.
+       (main): New command --gpgconf-test.
+
+2006-10-20  Werner Koch  <wk@g10code.com>
+
+       * keydb.c (classify_user_id): Parse keygrip for the '&' identifier.
+
+2006-10-18  Werner Koch  <wk@g10code.com>
+
+       * keylist.c (list_cert_raw): Also test for GPG_ERR_NO_VALUE when
+       testing for GPG_ERR_NO_DATA.
+       * certlist.c (cert_usage_p, gpgsm_find_cert): Ditto.
+       * certchain.c (check_cert_policy): Ditto.
+
+       * keylist.c (list_cert_std, list_cert_raw): Print "none" for no
+       chain length available.
+
+2006-10-17  Werner Koch  <wk@g10code.com>
+
+       * gpgsm.c: No need for pth.h.  
+       (main): or to init it. It used to be hack for W32.
+
+       * sign.c (gpgsm_get_default_cert): Changed to return only
+       certificates usable for signing.
+
+2006-10-16  Werner Koch  <wk@g10code.com>
+
+       * certchain.c (already_asked_marktrusted) 
+       (set_already_asked_marktrusted): New.
+       (gpgsm_validate_chain) <not trusted>: Keep track of certificates
+       we already asked for.
+
+2006-10-11  Werner Koch  <wk@g10code.com>
+
+       * certreqgen.c (proc_parameters, create_request): Allow for
+       creation directly from a card.
+       * call-agent.c (gpgsm_agent_readkey): New arg FROMCARD.
+       (gpgsm_scd_pksign): New.
+
+2006-10-06  Werner Koch  <wk@g10code.com>
+
+       * Makefile.am (AM_CFLAGS): Use PTH version of libassuan.
+       (gpgsm_LDADD): Ditto.
+
+2006-10-05  Werner Koch  <wk@g10code.com>
+
+       * certcheck.c (do_encode_md): Check that the has algo is valid.
+
+2006-10-02  Marcus Brinkmann  <marcus@g10code.de>
+
+       * server.c (register_commands): New commands DUMPKEYS and
+       DUMPSECRETKEYS.
+       (cmd_dumpkeys, cmd_dumpsecretkeys): New functions.
+       (option_handler): Support with-key-data option.
+
+2006-09-26  Werner Koch  <wk@g10code.com>
+
+       * certchain.c (gpgsm_validate_chain): More changes for the relax
+       feature.  Use certificate reference counting instead of the old
+       explicit tests. Added a missing free. 
+
+2006-09-25  Werner Koch  <wk@g10code.com>
+
+       * gpgsm.h (struct rootca_flags_s): New.
+       * call-agent.c (istrusted_status_cb): New.
+       (gpgsm_agent_istrusted): New arg ROOTCA_FLAGS.
+       * keylist.c (list_cert_colon): Use dummy for new arg.
+       * certchain.c (gpgsm_validate_chain): Make use of the relax flag
+       for root certificates.
+       (unknown_criticals): Ignore a GPG_ERR_NO_VALUE.
+
+2006-09-20  Werner Koch  <wk@g10code.com>
+
+       * gpgsm.c: Add alias command --dump-cert.
+
+       * Makefile.am:  Changes to allow parallel make runs.
+
+2006-09-18  Werner Koch  <wk@g10code.com>
+
+       * gpgsm.c (main): Use this to import standard certificates.
+       * keydb.c (keydb_add_resource): New arg AUTO_CREATED.
+
+2006-09-14  Werner Koch  <wk@g10code.com>
+
+       Replaced all call gpg_error_from_errno(errno) by
+       gpg_error_from_syserror().
+
+2006-09-13  Werner Koch  <wk@g10code.com>
+
+       * keylist.c (list_internal_keys): Print marker line to FP and not
+       to stdout.
+
+       * gpgsm.c (main): All list key list commands now make ose of
+       --output. Cleaned up calls to list modes.  New command
+       --dump-chain.  Renamed --list-sigs to --list-chain and added an
+       alias for the old one.
+
+       * server.c (cmd_message): Changed to use assuan_command_parse_fd.
+       (option_handler): New option list-to-output.
+       (do_listkeys): Use it.
+
+2006-09-06  Werner Koch  <wk@g10code.com>
+
+       * gpgsm.h (OUT_OF_CORE): Removed and changed all callers to
+       out_of_core.
+       (CTRL): Removed and changed everywhere to ctrl_t.
+       (CERTLIST): Ditto.
+
+       Replaced all Assuan error codes by libgpg-error codes.  Removed
+       all map_to_assuan_status and map_assuan_err.
+       
+       * gpgsm.c (main): Call assuan_set_assuan_err_source to have Assuan
+       switch to gpg-error codes.  
+       * server.c (set_error): Adjusted.
+
 2006-08-29  Werner Koch  <wk@g10code.com>
 
        * call-agent.c (gpgsm_agent_pkdecrypt): Allow decryption using
        * server.c (rc_to_assuan_status): New.  Use it for all commands.
 
        
- Copyright 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+ Copyright 2001, 2002, 2003, 2004, 2005, 2006,
+          2007, 2008 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