Socket-Class
view release on metacpan or search on metacpan
xs/sc_ssl/openssl/source/apps/ts.c view on Meta::CPAN
}
/* Check consistency of parameters and execute
the appropriate function. */
switch (mode)
{
case CMD_NONE:
goto usage;
case CMD_QUERY:
/* Data file and message imprint cannot be specified
at the same time. */
ret = data != NULL && digest != NULL;
if (ret) goto usage;
/* Load the config file for possible policy OIDs. */
conf = load_config_file(configfile);
ret = !query_command(data, digest, md, policy, no_nonce, cert,
in, out, text);
break;
case CMD_REPLY:
conf = load_config_file(configfile);
if (in == NULL)
{
ret = !(queryfile != NULL && conf != NULL && !token_in);
if (ret) goto usage;
}
else
{
/* 'in' and 'queryfile' are exclusive. */
ret = !(queryfile == NULL);
if (ret) goto usage;
}
ret = !reply_command(conf, section, engine, queryfile,
password, inkey, signer, chain, policy,
in, token_in, out, token_out, text);
break;
case CMD_VERIFY:
ret = !(((queryfile && !data && !digest)
|| (!queryfile && data && !digest)
|| (!queryfile && !data && digest))
&& in != NULL);
if (ret) goto usage;
ret = !verify_command(data, digest, queryfile, in, token_in,
ca_path, ca_file, untrusted);
}
goto cleanup;
usage:
BIO_printf(bio_err, "usage:\n"
"ts -query [-rand file%cfile%c...] [-config configfile] "
"[-data file_to_hash] [-digest digest_bytes]"
"[-md2|-md4|-md5|-sha|-sha1|-mdc2|-ripemd160] "
"[-policy object_id] [-no_nonce] [-cert] "
"[-in request.tsq] [-out request.tsq] [-text]\n",
LIST_SEPARATOR_CHAR, LIST_SEPARATOR_CHAR);
BIO_printf(bio_err, "or\n"
"ts -reply [-config configfile] [-section tsa_section] "
"[-queryfile request.tsq] [-passin password] "
"[-signer tsa_cert.pem] [-inkey private_key.pem] "
"[-chain certs_file.pem] [-policy object_id] "
"[-in response.tsr] [-token_in] "
"[-out response.tsr] [-token_out] [-text] [-engine id]\n");
BIO_printf(bio_err, "or\n"
"ts -verify [-data file_to_hash] [-digest digest_bytes] "
"[-queryfile request.tsq] "
"-in response.tsr [-token_in] "
"-CApath ca_path -CAfile ca_file.pem "
"-untrusted cert_file.pem\n");
cleanup:
/* Clean up. */
app_RAND_write_file(NULL, bio_err);
NCONF_free(conf);
OPENSSL_free(password);
OBJ_cleanup();
if (free_bio_err)
{
BIO_free_all(bio_err);
bio_err = NULL;
}
OPENSSL_EXIT(ret);
}
/*
* Configuration file-related function definitions.
*/
static ASN1_OBJECT *txt2obj(const char *oid)
{
ASN1_OBJECT *oid_obj = NULL;
if (!(oid_obj = OBJ_txt2obj(oid, 0)))
BIO_printf(bio_err, "cannot convert %s to OID\n", oid);
return oid_obj;
}
static CONF *load_config_file(const char *configfile)
{
CONF *conf = NULL;
long errorline = -1;
if (!configfile) configfile = getenv("OPENSSL_CONF");
if (!configfile) configfile = getenv("SSLEAY_CONF");
if (configfile &&
(!(conf = NCONF_new(NULL)) ||
NCONF_load(conf, configfile, &errorline) <= 0))
{
if (errorline <= 0)
BIO_printf(bio_err, "error loading the config file "
"'%s'\n", configfile);
else
BIO_printf(bio_err, "error on line %ld of config file "
"'%s'\n", errorline, configfile);
}
if (conf != NULL)
{
( run in 0.940 second using v1.01-cache-2.11-cpan-39bf76dae61 )