int TS_CONF_set_signer_cert(CONF *conf, const char *section,
			    const char *cert, TS_RESP_CTX *ctx)
	{
	int ret = 0;
	X509 *cert_obj = NULL;
	if (!cert) 
		cert = NCONF_get_string(conf, section, ENV_SIGNER_CERT);
	if (!cert)
		{
		TS_CONF_lookup_fail(section, ENV_SIGNER_CERT);
		goto err;
		}
	if (!(cert_obj = TS_CONF_load_cert(cert)))
		goto err;
	if (!TS_RESP_CTX_set_signer_cert(ctx, cert_obj))
		goto err;

	ret = 1;
 err:
	X509_free(cert_obj);
	return ret;
	}
int TS_CONF_set_signer_cert(CONF *conf, const char *section,
			    const char *cert, TS_RESP_CTX *ctx)
	{
	int ret = 0;
	X509 *cert_obj = NULL;
	if (!cert) 
		cert = NCONF_get_string(conf, section, ENV_SIGNER_CERT);
	if (!cert)
		{
		TS_CONF_lookup_fail(section, ENV_SIGNER_CERT);
		goto err;
		}
	if (!(cert_obj = TS_CONF_load_cert(cert)))
		goto err;
	if (!TS_RESP_CTX_set_signer_cert(ctx, cert_obj))
		goto err;

	ret = 1;
 err:
	X509_free(cert_obj);
	return ret;
	}