您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ BIO_printf函数代码示例

51自学网 2021-06-01 19:50:09
  C++
这篇教程C++ BIO_printf函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中BIO_printf函数的典型用法代码示例。如果您正苦于以下问题:C++ BIO_printf函数的具体用法?C++ BIO_printf怎么用?C++ BIO_printf使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了BIO_printf函数的25个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: verify_main

intverify_main(int argc, char **argv){	int i, ret = 1, badarg = 0;	char *CApath = NULL, *CAfile = NULL;	char *untfile = NULL, *trustfile = NULL, *crlfile = NULL;	STACK_OF(X509) * untrusted = NULL, *trusted = NULL;	STACK_OF(X509_CRL) * crls = NULL;	X509_STORE *cert_ctx = NULL;	X509_LOOKUP *lookup = NULL;	X509_VERIFY_PARAM *vpm = NULL;	if (single_execution) {		if (pledge("stdio rpath", NULL) == -1) {			perror("pledge");			exit(1);		}	}	cert_ctx = X509_STORE_new();	if (cert_ctx == NULL)		goto end;	X509_STORE_set_verify_cb(cert_ctx, cb);	argc--;	argv++;	for (;;) {		if (argc >= 1) {			if (strcmp(*argv, "-CApath") == 0) {				if (argc-- < 1)					goto end;				CApath = *(++argv);			} else if (strcmp(*argv, "-CAfile") == 0) {				if (argc-- < 1)					goto end;				CAfile = *(++argv);			} else if (args_verify(&argv, &argc, &badarg, bio_err,			    &vpm)) {				if (badarg)					goto end;				continue;			} else if (strcmp(*argv, "-untrusted") == 0) {				if (argc-- < 1)					goto end;				untfile = *(++argv);			} else if (strcmp(*argv, "-trusted") == 0) {				if (argc-- < 1)					goto end;				trustfile = *(++argv);			} else if (strcmp(*argv, "-CRLfile") == 0) {				if (argc-- < 1)					goto end;				crlfile = *(++argv);			}			else if (strcmp(*argv, "-help") == 0)				goto end;			else if (strcmp(*argv, "-verbose") == 0)				v_verbose = 1;			else if (argv[0][0] == '-')				goto end;			else				break;			argc--;			argv++;		} else			break;	}	if (vpm)		X509_STORE_set1_param(cert_ctx, vpm);	lookup = X509_STORE_add_lookup(cert_ctx, X509_LOOKUP_file());	if (lookup == NULL)		abort();	if (CAfile) {		i = X509_LOOKUP_load_file(lookup, CAfile, X509_FILETYPE_PEM);		if (!i) {			BIO_printf(bio_err, "Error loading file %s/n", CAfile);			ERR_print_errors(bio_err);			goto end;		}	} else		X509_LOOKUP_load_file(lookup, NULL, X509_FILETYPE_DEFAULT);	lookup = X509_STORE_add_lookup(cert_ctx, X509_LOOKUP_hash_dir());	if (lookup == NULL)		abort();	if (CApath) {		i = X509_LOOKUP_add_dir(lookup, CApath, X509_FILETYPE_PEM);		if (!i) {			BIO_printf(bio_err, "Error loading directory %s/n", CApath);			ERR_print_errors(bio_err);			goto end;		}	} else		X509_LOOKUP_add_dir(lookup, NULL, X509_FILETYPE_DEFAULT);	ERR_clear_error();	if (untfile) {//.........这里部分代码省略.........
开发者ID:darksoul42,项目名称:bitrig,代码行数:101,


示例2: MAIN

int MAIN(int argc, char **argv){    int ret=1,i;    const char **pp;    int verbose=0, list_cap=0, test_avail=0, test_avail_noise = 0;    ENGINE *e;    STACK *engines = sk_new_null();    STACK *pre_cmds = sk_new_null();    STACK *post_cmds = sk_new_null();    int badops=1;    BIO *bio_out=NULL;    const char *indent = "     ";    apps_startup();    SSL_load_error_strings();    if (bio_err == NULL)        bio_err=BIO_new_fp(stderr,BIO_NOCLOSE);    if (!load_config(bio_err, NULL))        goto end;    bio_out=BIO_new_fp(stdout,BIO_NOCLOSE);#ifdef OPENSSL_SYS_VMS    {        BIO *tmpbio = BIO_new(BIO_f_linebuffer());        bio_out = BIO_push(tmpbio, bio_out);    }#endif    argc--;    argv++;    while (argc >= 1)    {        if (strncmp(*argv,"-v",2) == 0)        {            if(strspn(*argv + 1, "v") < strlen(*argv + 1))                goto skip_arg_loop;            if((verbose=strlen(*argv + 1)) > 4)                goto skip_arg_loop;        }        else if (strcmp(*argv,"-c") == 0)            list_cap=1;        else if (strncmp(*argv,"-t",2) == 0)        {            test_avail=1;            if(strspn(*argv + 1, "t") < strlen(*argv + 1))                goto skip_arg_loop;            if((test_avail_noise = strlen(*argv + 1) - 1) > 1)                goto skip_arg_loop;        }        else if (strcmp(*argv,"-pre") == 0)        {            argc--;            argv++;            if (argc == 0)                goto skip_arg_loop;            sk_push(pre_cmds,*argv);        }        else if (strcmp(*argv,"-post") == 0)        {            argc--;            argv++;            if (argc == 0)                goto skip_arg_loop;            sk_push(post_cmds,*argv);        }        else if ((strncmp(*argv,"-h",2) == 0) ||                 (strcmp(*argv,"-?") == 0))            goto skip_arg_loop;        else            sk_push(engines,*argv);        argc--;        argv++;    }    /* Looks like everything went OK */    badops = 0;skip_arg_loop:    if (badops)    {        for (pp=engine_usage; (*pp != NULL); pp++)            BIO_printf(bio_err,"%s",*pp);        goto end;    }    if (sk_num(engines) == 0)    {        for(e = ENGINE_get_first(); e != NULL; e = ENGINE_get_next(e))        {            sk_push(engines,(char *)ENGINE_get_id(e));        }    }    for (i=0; i<sk_num(engines); i++)    {        const char *id = sk_value(engines,i);        if ((e = ENGINE_by_id(id)) != NULL)        {            const char *name = ENGINE_get_name(e);            /* Do "id" first, then "name". Easier to auto-parse. *///.........这里部分代码省略.........
开发者ID:siredblood,项目名称:tree-bumpkin-project,代码行数:101,


示例3: MAIN

//.........这里部分代码省略.........			informat=str2fmt(*(++argv));			}		else if (strcmp(*argv,"-outform") == 0)			{			if (--argc < 1) goto bad;			outformat=str2fmt(*(++argv));			}		else if (strcmp(*argv,"-keyform") == 0)			{			if (--argc < 1) goto bad;			keyformat=str2fmt(*(++argv));			}		else if (strcmp(*argv,"-req") == 0)			{			reqfile=1;			need_rand = 1;			}		else if (strcmp(*argv,"-CAform") == 0)			{			if (--argc < 1) goto bad;			CAformat=str2fmt(*(++argv));			}		else if (strcmp(*argv,"-CAkeyform") == 0)			{			if (--argc < 1) goto bad;			CAkeyformat=str2fmt(*(++argv));			}		else if (strcmp(*argv,"-days") == 0)			{			if (--argc < 1) goto bad;			days=atoi(*(++argv));			if (days == 0)				{				BIO_printf(STDout,"bad number of days/n");				goto bad;				}			}		else if (strcmp(*argv,"-passin") == 0)			{			if (--argc < 1) goto bad;			passargin= *(++argv);			}		else if (strcmp(*argv,"-extfile") == 0)			{			if (--argc < 1) goto bad;			extfile= *(++argv);			}		else if (strcmp(*argv,"-extensions") == 0)			{			if (--argc < 1) goto bad;			extsect= *(++argv);			}		else if (strcmp(*argv,"-in") == 0)			{			if (--argc < 1) goto bad;			infile= *(++argv);			}		else if (strcmp(*argv,"-out") == 0)			{			if (--argc < 1) goto bad;			outfile= *(++argv);			}		else if (strcmp(*argv,"-signkey") == 0)			{			if (--argc < 1) goto bad;			keyfile= *(++argv);
开发者ID:337240552,项目名称:node,代码行数:67,


示例4: ecparam_main

int ecparam_main(int argc, char **argv){    ENGINE *e = NULL;    BIGNUM *ec_gen = NULL, *ec_order = NULL, *ec_cofactor = NULL;    BIGNUM *ec_p = NULL, *ec_a = NULL, *ec_b = NULL;    BIO *in = NULL, *out = NULL;    EC_GROUP *group = NULL;    point_conversion_form_t form = POINT_CONVERSION_UNCOMPRESSED;    char *curve_name = NULL;    char *infile = NULL, *outfile = NULL, *prog;    unsigned char *buffer = NULL;    OPTION_CHOICE o;    int asn1_flag = OPENSSL_EC_NAMED_CURVE, new_asn1_flag = 0;    int informat = FORMAT_PEM, outformat = FORMAT_PEM, noout = 0, C = 0;    int ret = 1, private = 0;    int list_curves = 0, no_seed = 0, check = 0, new_form = 0;    int text = 0, i, genkey = 0;    prog = opt_init(argc, argv, ecparam_options);    while ((o = opt_next()) != OPT_EOF) {        switch (o) {        case OPT_EOF:        case OPT_ERR: opthelp:            BIO_printf(bio_err, "%s: Use -help for summary./n", prog);            goto end;        case OPT_HELP:            opt_help(ecparam_options);            ret = 0;            goto end;        case OPT_INFORM:            if (!opt_format(opt_arg(), OPT_FMT_PEMDER, &informat))                goto opthelp;            break;        case OPT_IN:            infile = opt_arg();            break;        case OPT_OUTFORM:            if (!opt_format(opt_arg(), OPT_FMT_PEMDER, &outformat))                goto opthelp;            break;        case OPT_OUT:            outfile = opt_arg();            break;        case OPT_TEXT:            text = 1;            break;        case OPT_C:            C = 1;            break;        case OPT_CHECK:            check = 1;            break;        case OPT_LIST_CURVES:            list_curves = 1;            break;        case OPT_NO_SEED:            no_seed = 1;            break;        case OPT_NOOUT:            noout = 1;            break;        case OPT_NAME:            curve_name = opt_arg();            break;        case OPT_CONV_FORM:            if (!opt_pair(opt_arg(), forms, &new_form))                goto opthelp;            form = new_form;            new_form = 1;            break;        case OPT_PARAM_ENC:            if (!opt_pair(opt_arg(), encodings, &asn1_flag))                goto opthelp;            new_asn1_flag = 1;            break;        case OPT_GENKEY:            genkey = 1;            break;        case OPT_R_CASES:            if (!opt_rand(o))                goto end;            break;        case OPT_ENGINE:            e = setup_engine(opt_arg(), 0);            break;        }    }    argc = opt_num_rest();    if (argc != 0)        goto opthelp;    private = genkey ? 1 : 0;
开发者ID:RTEMS,项目名称:rtems-libbsd,代码行数:93,


示例5: util_flags

static int util_flags(BIO *bio_out, unsigned int flags, const char *indent){    int started = 0, err = 0;    /* Indent before displaying input flags */    BIO_printf(bio_out, "%s%s(input flags): ", indent, indent);    if(flags == 0)    {        BIO_printf(bio_out, "<no flags>/n");        return 1;    }    /* If the object is internal, mark it in a way that shows instead of     * having it part of all the other flags, even if it really is. */    if(flags & ENGINE_CMD_FLAG_INTERNAL)    {        BIO_printf(bio_out, "[Internal] ");    }    if(flags & ENGINE_CMD_FLAG_NUMERIC)    {        if(started)        {            BIO_printf(bio_out, "|");            err = 1;        }        BIO_printf(bio_out, "NUMERIC");        started = 1;    }    /* Now we check that no combinations of the mutually exclusive NUMERIC,     * STRING, and NO_INPUT flags have been used. Future flags that can be     * OR'd together with these would need to added after these to preserve     * the testing logic. */    if(flags & ENGINE_CMD_FLAG_STRING)    {        if(started)        {            BIO_printf(bio_out, "|");            err = 1;        }        BIO_printf(bio_out, "STRING");        started = 1;    }    if(flags & ENGINE_CMD_FLAG_NO_INPUT)    {        if(started)        {            BIO_printf(bio_out, "|");            err = 1;        }        BIO_printf(bio_out, "NO_INPUT");        started = 1;    }    /* Check for unknown flags */    flags = flags & ~ENGINE_CMD_FLAG_NUMERIC &            ~ENGINE_CMD_FLAG_STRING &            ~ENGINE_CMD_FLAG_NO_INPUT &            ~ENGINE_CMD_FLAG_INTERNAL;    if(flags)    {        if(started) BIO_printf(bio_out, "|");        BIO_printf(bio_out, "<0x%04X>", flags);    }    if(err)        BIO_printf(bio_out, "  <illegal flags!>");    BIO_printf(bio_out, "/n");    return 1;}
开发者ID:siredblood,项目名称:tree-bumpkin-project,代码行数:66,


示例6: check_challenge

int	check_challenge(scep_t *scep) {	X509_REQ	*req;	char		*challenge, *dn;	X509_NAME	*subject;	LDAP		*ldap = NULL;	/* the clientreq field in the scep structure contains the 	*/	/* request, even for getcertinitial messages where the request	*/	/* does not contain the data originally sent with the request	*/	req = scep->clientreq;	if (debug)		BIO_printf(bio_err, "%s:%d: checking challenge password in "			"request %p/n", __FILE__, __LINE__, req);	/* check whether is at all challenge password in the request	*/	if (NULL == (challenge = get_challenge(scep))) {		BIO_printf(bio_err, "%s:%d: no challenge password found/n",			__FILE__, __LINE__);		goto err;	}	if (debug)		BIO_printf(bio_err, "%s:%d: challenge Password '%s'/n",			__FILE__, __LINE__, challenge);	/* a challenge password of zero length is not authenticable	*/	if (strlen(challenge) == 0) {		if (debug)			BIO_printf(bio_err, "%s:%d: zero challenge/n",				__FILE__, __LINE__);		goto err;	}	/* get the client distinguished name				*/	subject = X509_REQ_get_subject_name(req);	if (debug) {		char	name[1024];		X509_NAME_oneline(subject, name, sizeof(name));		BIO_printf(bio_err, "%s:%d: requestor: %s/n", __FILE__,			__LINE__, name);	}	/* map to a suitable LDAP distinguished name			*/	dn = x509_to_ldap(scep, subject);	if (debug)		BIO_printf(bio_err, "%s:%d: mapped requestor to LDAP DN '%s'/n",			__FILE__, __LINE__, dn);	/* connect to the ldap directory				*/	ldap = ldap_open(scep->l.ldaphost, scep->l.ldapport);	if (ldap == NULL) {		BIO_printf(bio_err, "%s:%d: cannot connect to %s:%d/n",			__FILE__, __LINE__, scep->l.ldaphost, scep->l.ldapport);		goto err;	}	/* authenticate the LDAP DN in the directory			*/	if (ldap_simple_bind_s(ldap, dn, challenge) != LDAP_SUCCESS && 0) {		BIO_printf(bio_err, "%s:%d: cannot ldap_simple_bind_s/n",			__FILE__, __LINE__);		syslog(LOG_ERR, "LDAP authentication for %s failed", dn);		goto err;	}	/* clean up any ldap connection					*/	ldap_unbind(ldap);	/* if we get to this point, then authentication was successful	*/	BIO_printf(bio_err, "%s:%d: check successful/n", __FILE__, __LINE__);	return 0;err:	/* XXX should do some cleanup here to prevent memory leaks	*/	if (ldap) ldap_unbind(ldap);	ERR_print_errors(bio_err);	return -1;}
开发者ID:xman1979,项目名称:openscep,代码行数:75,


示例7: if

static TS_VERIFY_CTX *create_verify_ctx(char *data, char *digest,                                        char *queryfile,                                        char *CApath, char *CAfile,                                        char *untrusted,                                        X509_VERIFY_PARAM *vpm){    TS_VERIFY_CTX *ctx = NULL;    BIO *input = NULL;    TS_REQ *request = NULL;    int ret = 0;    int f = 0;    if (data != NULL || digest != NULL) {        if ((ctx = TS_VERIFY_CTX_new()) == NULL)            goto err;        f = TS_VFY_VERSION | TS_VFY_SIGNER;        if (data != NULL) {            f |= TS_VFY_DATA;            if (TS_VERIFY_CTX_set_data(ctx, BIO_new_file(data, "rb")) == NULL)                goto err;        } else if (digest != NULL) {            long imprint_len;            unsigned char *hexstr = OPENSSL_hexstr2buf(digest, &imprint_len);            f |= TS_VFY_IMPRINT;            if (TS_VERIFY_CTX_set_imprint(ctx, hexstr, imprint_len) == NULL) {                BIO_printf(bio_err, "invalid digest string/n");                goto err;            }        }    } else if (queryfile != NULL) {        if ((input = BIO_new_file(queryfile, "rb")) == NULL)            goto err;        if ((request = d2i_TS_REQ_bio(input, NULL)) == NULL)            goto err;        if ((ctx = TS_REQ_to_TS_VERIFY_CTX(request, NULL)) == NULL)            goto err;    } else        return NULL;    /* Add the signature verification flag and arguments. */    TS_VERIFY_CTX_add_flags(ctx, f | TS_VFY_SIGNATURE);    /* Initialising the X509_STORE object. */    if (TS_VERIFY_CTX_set_store(ctx, create_cert_store(CApath, CAfile, vpm))            == NULL)        goto err;    /* Loading untrusted certificates. */    if (untrusted            && TS_VERIFY_CTS_set_certs(ctx, TS_CONF_load_certs(untrusted)) == NULL)        goto err;    ret = 1;err:    if (!ret) {        TS_VERIFY_CTX_free(ctx);        ctx = NULL;    }    BIO_free_all(input);    TS_REQ_free(request);    return ctx;}
开发者ID:benlaurie,项目名称:openssl,代码行数:63,


示例8: TS_REQ_free

static TS_REQ *create_query(BIO *data_bio, char *digest, const EVP_MD *md,                            const char *policy, int no_nonce, int cert){    int ret = 0;    TS_REQ *ts_req = NULL;    int len;    TS_MSG_IMPRINT *msg_imprint = NULL;    X509_ALGOR *algo = NULL;    unsigned char *data = NULL;    ASN1_OBJECT *policy_obj = NULL;    ASN1_INTEGER *nonce_asn1 = NULL;    if (md == NULL && (md = EVP_get_digestbyname("sha1")) == NULL)        goto err;    if ((ts_req = TS_REQ_new()) == NULL)        goto err;    if (!TS_REQ_set_version(ts_req, 1))        goto err;    if ((msg_imprint = TS_MSG_IMPRINT_new()) == NULL)        goto err;    if ((algo = X509_ALGOR_new()) == NULL)        goto err;    if ((algo->algorithm = OBJ_nid2obj(EVP_MD_type(md))) == NULL)        goto err;    if ((algo->parameter = ASN1_TYPE_new()) == NULL)        goto err;    algo->parameter->type = V_ASN1_NULL;    if (!TS_MSG_IMPRINT_set_algo(msg_imprint, algo))        goto err;    if ((len = create_digest(data_bio, digest, md, &data)) == 0)        goto err;    if (!TS_MSG_IMPRINT_set_msg(msg_imprint, data, len))        goto err;    if (!TS_REQ_set_msg_imprint(ts_req, msg_imprint))        goto err;    if (policy && (policy_obj = txt2obj(policy)) == NULL)        goto err;    if (policy_obj && !TS_REQ_set_policy_id(ts_req, policy_obj))        goto err;    /* Setting nonce if requested. */    if (!no_nonce && (nonce_asn1 = create_nonce(NONCE_LENGTH)) == NULL)        goto err;    if (nonce_asn1 && !TS_REQ_set_nonce(ts_req, nonce_asn1))        goto err;    if (!TS_REQ_set_cert_req(ts_req, cert))        goto err;    ret = 1;err:    if (!ret) {        TS_REQ_free(ts_req);        ts_req = NULL;        BIO_printf(bio_err, "could not create query/n");        ERR_print_errors(bio_err);    }    TS_MSG_IMPRINT_free(msg_imprint);    X509_ALGOR_free(algo);    OPENSSL_free(data);    ASN1_OBJECT_free(policy_obj);    ASN1_INTEGER_free(nonce_asn1);    return ts_req;}
开发者ID:benlaurie,项目名称:openssl,代码行数:63,


示例9: reply_command

static int reply_command(CONF *conf, char *section, char *engine,                         char *queryfile, char *passin, char *inkey,                         const EVP_MD *md, char *signer, char *chain,                         const char *policy, char *in, int token_in,                         char *out, int token_out, int text){    int ret = 0;    TS_RESP *response = NULL;    BIO *in_bio = NULL;    BIO *query_bio = NULL;    BIO *inkey_bio = NULL;    BIO *signer_bio = NULL;    BIO *out_bio = NULL;    if (in != NULL) {        if ((in_bio = BIO_new_file(in, "rb")) == NULL)            goto end;        if (token_in) {            response = read_PKCS7(in_bio);        } else {            response = d2i_TS_RESP_bio(in_bio, NULL);        }    } else {        response = create_response(conf, section, engine, queryfile,                                   passin, inkey, md, signer, chain, policy);        if (response)            BIO_printf(bio_err, "Response has been generated./n");        else            BIO_printf(bio_err, "Response is not generated./n");    }    if (response == NULL)        goto end;    /* Write response. */    if (text) {        if ((out_bio = bio_open_default(out, 'w', FORMAT_TEXT)) == NULL)            goto end;        if (token_out) {            TS_TST_INFO *tst_info = TS_RESP_get_tst_info(response);            if (!TS_TST_INFO_print_bio(out_bio, tst_info))                goto end;        } else {            if (!TS_RESP_print_bio(out_bio, response))                goto end;        }    } else {        if ((out_bio = bio_open_default(out, 'w', FORMAT_ASN1)) == NULL)            goto end;        if (token_out) {            PKCS7 *token = TS_RESP_get_token(response);            if (!i2d_PKCS7_bio(out_bio, token))                goto end;        } else {            if (!i2d_TS_RESP_bio(out_bio, response))                goto end;        }    }    ret = 1;end:    ERR_print_errors(bio_err);    BIO_free_all(in_bio);    BIO_free_all(query_bio);    BIO_free_all(inkey_bio);    BIO_free_all(signer_bio);    BIO_free_all(out_bio);    TS_RESP_free(response);    return ret;}
开发者ID:benlaurie,项目名称:openssl,代码行数:70,


示例10: ts_main

int ts_main(int argc, char **argv){    CONF *conf = NULL;    char *CAfile = NULL, *untrusted = NULL, *engine = NULL, *prog, **helpp;    char *configfile = default_config_file;    char *section = NULL, *password = NULL;    char *data = NULL, *digest = NULL, *rnd = NULL, *policy = NULL;    char *in = NULL, *out = NULL, *queryfile = NULL, *passin = NULL;    char *inkey = NULL, *signer = NULL, *chain = NULL, *CApath = NULL;    const EVP_MD *md = NULL;    OPTION_CHOICE o, mode = OPT_ERR;    int ret = 1, no_nonce = 0, cert = 0, text = 0;    int vpmtouched = 0;    X509_VERIFY_PARAM *vpm = NULL;    /* Input is ContentInfo instead of TimeStampResp. */    int token_in = 0;    /* Output is ContentInfo instead of TimeStampResp. */    int token_out = 0;    if ((vpm = X509_VERIFY_PARAM_new()) == NULL)        goto end;    prog = opt_init(argc, argv, ts_options);    while ((o = opt_next()) != OPT_EOF) {        switch (o) {        case OPT_EOF:        case OPT_ERR:opthelp:            BIO_printf(bio_err, "%s: Use -help for summary./n", prog);            goto end;        case OPT_HELP:            opt_help(ts_options);            for (helpp = opt_helplist; *helpp; ++helpp)                BIO_printf(bio_err, "%s/n", *helpp);            ret = 0;            goto end;        case OPT_CONFIG:            configfile = opt_arg();            break;        case OPT_SECTION:            section = opt_arg();            break;        case OPT_QUERY:        case OPT_REPLY:        case OPT_VERIFY:            if (mode != OPT_ERR)                goto opthelp;            mode = o;            break;        case OPT_DATA:            data = opt_arg();            break;        case OPT_DIGEST:            digest = opt_arg();            break;        case OPT_RAND:            rnd = opt_arg();            break;        case OPT_TSPOLICY:            policy = opt_arg();            break;        case OPT_NO_NONCE:            no_nonce = 1;            break;        case OPT_CERT:            cert = 1;            break;        case OPT_IN:            in = opt_arg();            break;        case OPT_TOKEN_IN:            token_in = 1;            break;        case OPT_OUT:            out = opt_arg();            break;        case OPT_TOKEN_OUT:            token_out = 1;            break;        case OPT_TEXT:            text = 1;            break;        case OPT_QUERYFILE:            queryfile = opt_arg();            break;        case OPT_PASSIN:            passin = opt_arg();            break;        case OPT_INKEY:            inkey = opt_arg();            break;        case OPT_SIGNER:            signer = opt_arg();            break;        case OPT_CHAIN:            chain = opt_arg();            break;        case OPT_CAPATH:            CApath = opt_arg();            break;//.........这里部分代码省略.........
开发者ID:benlaurie,项目名称:openssl,代码行数:101,


示例11: MAIN

//.........这里部分代码省略.........			else if (strcmp(*argv,"-engine") == 0)				{				if (--argc < 1) goto end;				engine= *(++argv);				}#endif			else if (strcmp(*argv,"-help") == 0)				goto end;			else if (strcmp(*argv,"-verbose") == 0)				v_verbose=1;			else if (argv[0][0] == '-')				goto end;			else				break;			argc--;			argv++;			}		else			break;		}#ifndef OPENSSL_NO_ENGINE        e = setup_engine(bio_err, engine, 0);#endif	if (vpm)		X509_STORE_set1_param(cert_ctx, vpm);	lookup=X509_STORE_add_lookup(cert_ctx,X509_LOOKUP_file());	if (lookup == NULL) abort();	if (CAfile) {		i=X509_LOOKUP_load_file(lookup,CAfile,X509_FILETYPE_PEM);		if(!i) {			BIO_printf(bio_err, "Error loading file %s/n", CAfile);			ERR_print_errors(bio_err);			goto end;		}	} else X509_LOOKUP_load_file(lookup,NULL,X509_FILETYPE_DEFAULT);			lookup=X509_STORE_add_lookup(cert_ctx,X509_LOOKUP_hash_dir());	if (lookup == NULL) abort();	if (CApath) {		i=X509_LOOKUP_add_dir(lookup,CApath,X509_FILETYPE_PEM);		if(!i) {			BIO_printf(bio_err, "Error loading directory %s/n", CApath);			ERR_print_errors(bio_err);			goto end;		}	} else X509_LOOKUP_add_dir(lookup,NULL,X509_FILETYPE_DEFAULT);	ERR_clear_error();	if(untfile)		{		untrusted = load_certs(bio_err, untfile, FORMAT_PEM,					NULL, e, "untrusted certificates");		if(!untrusted)			goto end;		}	if(trustfile)		{		trusted = load_certs(bio_err, trustfile, FORMAT_PEM,					NULL, e, "trusted certificates");		if(!trusted)			goto end;
开发者ID:0culus,项目名称:openssl,代码行数:67,


示例12: test_ecdh_curve

static int test_ecdh_curve(int nid, const char *text, BN_CTX *ctx, BIO *out) {	printf("in ecdh test/n");	EC_KEY *a = NULL;    //EC_KEY is a structure	EC_KEY *b = NULL;	BIGNUM *x_a = NULL, *y_a = NULL, *x_b = NULL, *y_b = NULL;	char buf[12];	unsigned char *abuf = NULL, *bbuf = NULL;	int i, alen, blen, aout, bout, ret = 0;	const EC_GROUP *group;	a = EC_KEY_new_by_curve_name(nid);// creates a new key according to the curve specified//it fills in the EC_KEY structure // use function called EC_KEY *EC_KEY_new(void)//also use a function called EC_GROUP_new_by_curve_name() creates a EC_GROUP structure specified by a curve name (in form of a NID) */// the group returned is set in the EC_KEY structure.	b = EC_KEY_new_by_curve_name(nid);	if (a == NULL || b == NULL)		goto err;	group = EC_KEY_get0_group(a); //returns the EC_GROUP structure created by the EC_KEY structure//EC_GROUP structure is present in the EC_KEY structure.	if ((x_a = BN_new()) == NULL)		goto err;	//BN_new returns a pointer to the bignum	if ((y_a = BN_new()) == NULL)		goto err;	if ((x_b = BN_new()) == NULL)		goto err;	if ((y_b = BN_new()) == NULL)		goto err;	BIO_puts(out, "Testing key generation with ");	BIO_puts(out, text);#ifdef NOISY	printf ("noisy");	BIO_puts(out,"/n");	BIO_puts(out,"/n");	BIO_puts(out,"/n");#else	BIO_flush(out);#endif//public key number one is created here	if (!EC_KEY_generate_key(a))		goto err;	//pass the filled EC_KEY structure and it will create a public or private ec key.//it places the key in a->priv_key a->pub_key   /// PUBLIC AND PVT KEYS ARE GENERATED BY THE SCALAR MULTIPLICATION	printf("/n1 ) generating keys/n");	if (EC_METHOD_get_field_type(EC_GROUP_method_of(group))			== NID_X9_62_prime_field) {		if (!EC_POINT_get_affine_coordinates_GFp(group,				EC_KEY_get0_public_key(a), x_a, y_a, ctx))			goto err;	}	//returns the public key	else {		if (!EC_POINT_get_affine_coordinates_GF2m(group,				EC_KEY_get0_public_key(a), x_a, y_a, ctx))			goto err;	}	//BN_print_fp(stdout, a->pub_key);	printf("private key is : ");	BN_print_fp(stdout, EC_KEY_get0_private_key(a));	printf("/nAffine cordinates x:");	BN_print_fp(stdout, x_a);	printf("/nAffine cordinates y:");	BN_print_fp(stdout, y_a);	printf(			"/n2 ) generated keys , generated affine points x and y , and also determided the primse brinary case/n");#ifdef NOISY	printf("no generation");	BIO_puts(out,"  pri 1=");	BN_print(out,a->priv_key);	BIO_puts(out,"/n  pub 1=");	BN_print(out,x_a);	BIO_puts(out,",");	BN_print(out,y_a);	BIO_puts(out,"/n");#else	BIO_printf(out, " .");	BIO_flush(out);#endif//public key number two is created here	if (!EC_KEY_generate_key(b))		goto err;	if (EC_METHOD_get_field_type(EC_GROUP_method_of(group))			== NID_X9_62_prime_field) {		if (!EC_POINT_get_affine_coordinates_GFp(group,//.........这里部分代码省略.........
开发者ID:AIdrifter,项目名称:EllipticCurveCryptography,代码行数:101,


示例13: MAIN

int MAIN(int argc, char **argv)	{	int ret=1;	DSA *dsa=NULL;	int i,badops=0;	const EVP_CIPHER *enc=NULL;	BIO *in=NULL,*out=NULL;	int informat,outformat,text=0,noout=0;	int pubin = 0, pubout = 0;	char *infile,*outfile,*prog;	char *passargin = NULL, *passargout = NULL;	char *passin = NULL, *passout = NULL;	int modulus=0;	apps_startup();	if (bio_err == NULL)		if ((bio_err=BIO_new(BIO_s_file())) != NULL)			BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT);	infile=NULL;	outfile=NULL;	informat=FORMAT_PEM;	outformat=FORMAT_PEM;	prog=argv[0];	argc--;	argv++;	while (argc >= 1)		{		if 	(strcmp(*argv,"-inform") == 0)			{			if (--argc < 1) goto bad;			informat=str2fmt(*(++argv));			}		else if (strcmp(*argv,"-outform") == 0)			{			if (--argc < 1) goto bad;			outformat=str2fmt(*(++argv));			}		else if (strcmp(*argv,"-in") == 0)			{			if (--argc < 1) goto bad;			infile= *(++argv);			}		else if (strcmp(*argv,"-out") == 0)			{			if (--argc < 1) goto bad;			outfile= *(++argv);			}		else if (strcmp(*argv,"-passin") == 0)			{			if (--argc < 1) goto bad;			passargin= *(++argv);			}		else if (strcmp(*argv,"-passout") == 0)			{			if (--argc < 1) goto bad;			passargout= *(++argv);			}		else if (strcmp(*argv,"-noout") == 0)			noout=1;		else if (strcmp(*argv,"-text") == 0)			text=1;		else if (strcmp(*argv,"-modulus") == 0)			modulus=1;		else if (strcmp(*argv,"-pubin") == 0)			pubin=1;		else if (strcmp(*argv,"-pubout") == 0)			pubout=1;		else if ((enc=EVP_get_cipherbyname(&(argv[0][1]))) == NULL)			{			BIO_printf(bio_err,"unknown option %s/n",*argv);			badops=1;			break;			}		argc--;		argv++;		}	if (badops)		{bad:		BIO_printf(bio_err,"%s [options] <infile >outfile/n",prog);		BIO_printf(bio_err,"where options are/n");		BIO_printf(bio_err," -inform arg     input format - DER or PEM/n");		BIO_printf(bio_err," -outform arg    output format - DER or PEM/n");		BIO_printf(bio_err," -in arg         input file/n");		BIO_printf(bio_err," -passin arg     input file pass phrase source/n");		BIO_printf(bio_err," -out arg        output file/n");		BIO_printf(bio_err," -passout arg    output file pass phrase source/n");		BIO_printf(bio_err," -des            encrypt PEM output with cbc des/n");		BIO_printf(bio_err," -des3           encrypt PEM output with ede cbc des using 168 bit key/n");#ifndef NO_IDEA		BIO_printf(bio_err," -idea           encrypt PEM output with cbc idea/n");#endif		BIO_printf(bio_err," -text           print the key in text/n");		BIO_printf(bio_err," -noout          don't print key out/n");		BIO_printf(bio_err," -modulus        print the DSA public value/n");		goto end;//.........这里部分代码省略.........
开发者ID:ahenroid,项目名称:ptptl-0.2,代码行数:101,


示例14: main

int main(void){    int     i;    RC2_KEY key;    BIO*    bio_out;    int     num_bytes;    unsigned char const iv_data[RC2_BLOCK] = {        0xcc, 0xfe, 0xcd, 0x3e, 0x21, 0xde, 0x1c, 0x31    };    static unsigned const char RC2Key[RC2_KEY_LENGTH] = {        0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,        0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,    };    unsigned char   iv[RC2_BLOCK];     char*   data  = "The worthwhile problems are the ones you can"                    "really solve or help solve, the ones you can"                    "really contribute something to. No "                    "problem is too small or too trivial if we "                    "can really do something about it."                    "- Richard Feynman";    int     length = strlen(data);            /* Allocate some memory for the ciphertext */    unsigned char*  ciphertext = (unsigned char*) malloc(sizeof(char) * length);     /* Allocate some memory for the decrypted ciphertext (plaintext) */    unsigned char*  plaintext  = (unsigned char*) malloc(sizeof(char) * length);    /* Allocate some memory for the bit-stream */    unsigned char*  bitstream  = (unsigned char*) malloc(sizeof(char) * length);     /* Copy the IV data to the IV array. The IV array will be updated by the RC2_cfb64_encrypt call */    memcpy(iv, iv_data, RC2_BLOCK);    /* set the key structure using the (unmodified) predefined key */    RC2_set_key(&key, RC2_KEY_LENGTH, RC2Key, 1024);    RC2_ofb64_encrypt(data, ciphertext, length, &key, iv, &num_bytes);    bio_out = BIO_new_fp(stdout, BIO_NOCLOSE);    BIO_printf(bio_out, "Original plaintext: %s/n/n", data);    BIO_printf(bio_out, "Ciphertext: ");    /* print out the ciphertext */    for (i = 0; i < length; i++)        BIO_printf(bio_out, "%02x", ((unsigned char*)ciphertext)[i]);    BIO_printf(bio_out, "/n/n");    /* The decryption process */    /* Reset the number of bytes used */    num_bytes = 0;    /* Copy the original IV data back to the IV array - as it was overwritten during the encryption process */    memcpy(iv, iv_data, RC2_BLOCK);    RC2_set_key(&key, RC2_KEY_LENGTH, RC2Key, 1024);    RC2_ofb64_encrypt(ciphertext, plaintext, length, &key, iv, &num_bytes);    BIO_printf(bio_out, "Recovered plaintext: ");    /* print out the plaintext */    for (i = 0; i < length; i++)        BIO_printf(bio_out, "%c", ((unsigned char*)plaintext)[i]);    BIO_printf(bio_out, "/n/n");    BIO_free(bio_out);    free(ciphertext);    free(plaintext);    return 0;}
开发者ID:akandiah,项目名称:openssl-samples,代码行数:81,


示例15: BIO_printf

char	*get_challenge(scep_t *scep) {	int		loc, type, n;	X509_ATTRIBUTE	*attr;	X509_REQ	*req;	ASN1_TYPE	*asn1;	ASN1_IA5STRING	*asn1_string;	char		*challenge;	/* get our hands on the request					*/	req = scep->clientreq;	if (debug)		BIO_printf(bio_err, "%s:%d: getting challenge password from "			"X.509 request %p/n", __FILE__, __LINE__, req);	/* if the client req is not set, we have no chance of finding	*/	/* password							*/	if (NULL == req) {		BIO_printf(bio_err, "%s:%d: no X.509 request available/n",			__FILE__, __LINE__);		goto err;	}	/* get the challengePassword attribute from the request		*/	n = X509_REQ_get_attr_count(req);	if (debug)		BIO_printf(bio_err, "%s%d: %d attributes found/n", __FILE__,			__LINE__, n);	loc = X509_REQ_get_attr_by_NID(req, NID_pkcs9_challengePassword, -1);	if (loc < 0) {		if (debug)			BIO_printf(bio_err, "%s:%d: challengePassword not "				"found/n", __FILE__, __LINE__);		return NULL;	}	if (debug)		BIO_printf(bio_err, "%s:%d: challengePassword at offset %d/n",			__FILE__, __LINE__, loc);	attr = X509_REQ_get_attr(req, loc);	/* retrieve the value of the challengePassword attribute	*/	if (NULL == (asn1 = X509_ATTRIBUTE_get0_type(attr, 0))) {		BIO_printf(bio_err, "%s:%d: cannot retrieve value/n",			__FILE__, __LINE__);		goto err;	}		type = ASN1_TYPE_get(asn1);	if (debug)		BIO_printf(bio_err, "%s:%d: type of challengePassword is %d/n",			__FILE__, __LINE__, type);	if ((type != V_ASN1_IA5STRING) && (type != V_ASN1_PRINTABLESTRING)) {		BIO_printf(bio_err, "%s:%d: challengePassword has wrong type/n",			__FILE__, __LINE__, type);		goto err;	}	asn1_string = (ASN1_STRING *)asn1->value.ptr;	challenge = (char *)malloc(asn1_string->length + 1);	memcpy(challenge, asn1_string->data, asn1_string->length);	challenge[asn1_string->length] = '/0';	if (debug)		BIO_printf(bio_err, "%s:%d: challenge Password '%s'/n",			__FILE__, __LINE__, challenge);	/* return the challenge password we have found			*/	return challenge;	/* error return							*/err:	ERR_print_errors(bio_err);	return NULL;}
开发者ID:xman1979,项目名称:openscep,代码行数:72,


示例16: smime_main

int smime_main(int argc, char **argv){    BIO *in = NULL, *out = NULL, *indata = NULL;    EVP_PKEY *key = NULL;    PKCS7 *p7 = NULL;    STACK_OF(OPENSSL_STRING) *sksigners = NULL, *skkeys = NULL;    STACK_OF(X509) *encerts = NULL, *other = NULL;    X509 *cert = NULL, *recip = NULL, *signer = NULL;    X509_STORE *store = NULL;    X509_VERIFY_PARAM *vpm = NULL;    const EVP_CIPHER *cipher = NULL;    const EVP_MD *sign_md = NULL;    char *CAfile = NULL, *CApath = NULL, *inrand = NULL;    char *certfile = NULL, *keyfile = NULL, *contfile = NULL, *prog;    char *infile = NULL, *outfile = NULL, *signerfile = NULL, *recipfile =        NULL;    char *passinarg = NULL, *passin = NULL, *to = NULL, *from =        NULL, *subject = NULL;    OPTION_CHOICE o;    int noCApath = 0, noCAfile = 0;    int flags = PKCS7_DETACHED, operation = 0, ret = 0, need_rand = 0, indef =        0;    int informat = FORMAT_SMIME, outformat = FORMAT_SMIME, keyform =        FORMAT_PEM;    int vpmtouched = 0, rv = 0;    ENGINE *e = NULL;    const char *mime_eol = "/n";    if ((vpm = X509_VERIFY_PARAM_new()) == NULL)        return 1;    prog = opt_init(argc, argv, smime_options);    while ((o = opt_next()) != OPT_EOF) {        switch (o) {        case OPT_EOF:        case OPT_ERR: opthelp:            BIO_printf(bio_err, "%s: Use -help for summary./n", prog);            goto end;        case OPT_HELP:            opt_help(smime_options);            ret = 0;            goto end;        case OPT_INFORM:            if (!opt_format(opt_arg(), OPT_FMT_PDS, &informat))                goto opthelp;            break;        case OPT_IN:            infile = opt_arg();            break;        case OPT_OUTFORM:            if (!opt_format(opt_arg(), OPT_FMT_PDS, &outformat))                goto opthelp;            break;        case OPT_OUT:            outfile = opt_arg();            break;        case OPT_ENCRYPT:            operation = SMIME_ENCRYPT;            break;        case OPT_DECRYPT:            operation = SMIME_DECRYPT;            break;        case OPT_SIGN:            operation = SMIME_SIGN;            break;        case OPT_RESIGN:            operation = SMIME_RESIGN;            break;        case OPT_VERIFY:            operation = SMIME_VERIFY;            break;        case OPT_PK7OUT:            operation = SMIME_PK7OUT;            break;        case OPT_TEXT:            flags |= PKCS7_TEXT;            break;        case OPT_NOINTERN:            flags |= PKCS7_NOINTERN;            break;        case OPT_NOVERIFY:            flags |= PKCS7_NOVERIFY;            break;        case OPT_NOCHAIN:            flags |= PKCS7_NOCHAIN;            break;        case OPT_NOCERTS:            flags |= PKCS7_NOCERTS;            break;        case OPT_NOATTR:            flags |= PKCS7_NOATTR;            break;        case OPT_NODETACH:            flags &= ~PKCS7_DETACHED;            break;        case OPT_NOSMIMECAP:            flags |= PKCS7_NOSMIMECAP;            break;        case OPT_BINARY://.........这里部分代码省略.........
开发者ID:1234-,项目名称:openssl,代码行数:101,


示例17: MAIN

//.........这里部分代码省略.........                    passarg = *args;                    noprompt = 1;                } else                    badarg = 1;            } else if (!strcmp(*args, "-CApath")) {                if (args[1]) {                    args++;                    CApath = *args;                } else                    badarg = 1;            } else if (!strcmp(*args, "-CAfile")) {                if (args[1]) {                    args++;                    CAfile = *args;                } else                    badarg = 1;# ifndef OPENSSL_NO_ENGINE            } else if (!strcmp(*args, "-engine")) {                if (args[1]) {                    args++;                    engine = *args;                } else                    badarg = 1;# endif            } else                badarg = 1;        } else            badarg = 1;        args++;    }    if (badarg) {        BIO_printf(bio_err, "Usage: pkcs12 [options]/n");        BIO_printf(bio_err, "where options are/n");        BIO_printf(bio_err, "-export       output PKCS12 file/n");        BIO_printf(bio_err, "-chain        add certificate chain/n");        BIO_printf(bio_err, "-inkey file   private key if not infile/n");        BIO_printf(bio_err, "-certfile f   add all certs in f/n");        BIO_printf(bio_err, "-CApath arg   - PEM format directory of CA's/n");        BIO_printf(bio_err, "-CAfile arg   - PEM format file of CA's/n");        BIO_printf(bio_err, "-name /"name/"  use name as friendly name/n");        BIO_printf(bio_err,                   "-caname /"nm/"  use nm as CA friendly name (can be used more than once)./n");        BIO_printf(bio_err, "-in  infile   input filename/n");        BIO_printf(bio_err, "-out outfile  output filename/n");        BIO_printf(bio_err,                   "-noout        don't output anything, just verify./n");        BIO_printf(bio_err, "-nomacver     don't verify MAC./n");        BIO_printf(bio_err, "-nocerts      don't output certificates./n");        BIO_printf(bio_err,                   "-clcerts      only output client certificates./n");        BIO_printf(bio_err, "-cacerts      only output CA certificates./n");        BIO_printf(bio_err, "-nokeys       don't output private keys./n");        BIO_printf(bio_err,                   "-info         give info about PKCS#12 structure./n");        BIO_printf(bio_err, "-des          encrypt private keys with DES/n");        BIO_printf(bio_err,                   "-des3         encrypt private keys with triple DES (default)/n");# ifndef OPENSSL_NO_IDEA        BIO_printf(bio_err, "-idea         encrypt private keys with idea/n");# endif# ifndef OPENSSL_NO_SEED        BIO_printf(bio_err, "-seed         encrypt private keys with seed/n");# endif# ifndef OPENSSL_NO_AES
开发者ID:2trill2spill,项目名称:freebsd,代码行数:67,


示例18: ocsp_main

int ocsp_main(int argc, char **argv){    BIO *acbio = NULL, *cbio = NULL, *derbio = NULL, *out = NULL;    const EVP_MD *cert_id_md = NULL, *rsign_md = NULL;    CA_DB *rdb = NULL;    EVP_PKEY *key = NULL, *rkey = NULL;    OCSP_BASICRESP *bs = NULL;    OCSP_REQUEST *req = NULL;    OCSP_RESPONSE *resp = NULL;    STACK_OF(CONF_VALUE) *headers = NULL;    STACK_OF(OCSP_CERTID) *ids = NULL;    STACK_OF(OPENSSL_STRING) *reqnames = NULL;    STACK_OF(X509) *sign_other = NULL, *verify_other = NULL, *rother = NULL;    STACK_OF(X509) *issuers = NULL;    X509 *issuer = NULL, *cert = NULL, *rca_cert = NULL;    X509 *signer = NULL, *rsigner = NULL;    X509_STORE *store = NULL;    X509_VERIFY_PARAM *vpm = NULL;    char *CAfile = NULL, *CApath = NULL, *header, *value;    char *host = NULL, *port = NULL, *path = "/", *outfile = NULL;    char *rca_filename = NULL, *reqin = NULL, *respin = NULL;    char *reqout = NULL, *respout = NULL, *ridx_filename = NULL;    char *rsignfile = NULL, *rkeyfile = NULL;    char *sign_certfile = NULL, *verify_certfile = NULL, *rcertfile = NULL;    char *signfile = NULL, *keyfile = NULL;    char *thost = NULL, *tport = NULL, *tpath = NULL;    int noCAfile = 0, noCApath = 0;    int accept_count = -1, add_nonce = 1, noverify = 0, use_ssl = -1;    int vpmtouched = 0, badsig = 0, i, ignore_err = 0, nmin = 0, ndays = -1;    int req_text = 0, resp_text = 0, req_timeout = -1, ret = 1;    long nsec = MAX_VALIDITY_PERIOD, maxage = -1;    unsigned long sign_flags = 0, verify_flags = 0, rflags = 0;    OPTION_CHOICE o;    char *prog;    reqnames = sk_OPENSSL_STRING_new_null();    if (!reqnames)        goto end;    ids = sk_OCSP_CERTID_new_null();    if (!ids)        goto end;    if ((vpm = X509_VERIFY_PARAM_new()) == NULL)        return 1;    prog = opt_init(argc, argv, ocsp_options);    while ((o = opt_next()) != OPT_EOF) {        switch (o) {        case OPT_EOF:        case OPT_ERR: opthelp:            BIO_printf(bio_err, "%s: Use -help for summary./n", prog);            goto end;        case OPT_HELP:            ret = 0;            opt_help(ocsp_options);            goto end;        case OPT_OUTFILE:            outfile = opt_arg();            break;        case OPT_TIMEOUT:            req_timeout = atoi(opt_arg());            break;        case OPT_URL:            OPENSSL_free(thost);            OPENSSL_free(tport);            OPENSSL_free(tpath);            thost = tport = tpath = NULL;            if (!OCSP_parse_url(opt_arg(), &host, &port, &path, &use_ssl)) {                BIO_printf(bio_err, "%s Error parsing URL/n", prog);                goto end;            }            thost = host;            tport = port;            tpath = path;            break;        case OPT_HOST:            host = opt_arg();            break;        case OPT_PORT:            port = opt_arg();            break;        case OPT_IGNORE_ERR:            ignore_err = 1;            break;        case OPT_NOVERIFY:            noverify = 1;            break;        case OPT_NONCE:            add_nonce = 2;            break;        case OPT_NO_NONCE:            add_nonce = 0;            break;        case OPT_RESP_NO_CERTS:            rflags |= OCSP_NOCERTS;            break;        case OPT_RESP_KEY_ID:            rflags |= OCSP_RESPID_KEY;            break;        case OPT_NO_CERTS://.........这里部分代码省略.........
开发者ID:DarovskikhAndrei,项目名称:openssl,代码行数:101,


示例19: genrsa_main

intgenrsa_main(int argc, char **argv){	BN_GENCB cb;#ifndef OPENSSL_NO_ENGINE	ENGINE *e = NULL;#endif	int ret = 1;	int i, num = DEFBITS;	long l;	const EVP_CIPHER *enc = NULL;	unsigned long f4 = RSA_F4;	char *outfile = NULL;	char *passargout = NULL, *passout = NULL;#ifndef OPENSSL_NO_ENGINE	char *engine = NULL;#endif	char *inrand = NULL;	BIO *out = NULL;	BIGNUM *bn = BN_new();	RSA *rsa = NULL;	if (!bn)		goto err;	apps_startup();	BN_GENCB_set(&cb, genrsa_cb, bio_err);	if (bio_err == NULL)		if ((bio_err = BIO_new(BIO_s_file())) != NULL)			BIO_set_fp(bio_err, stderr, BIO_NOCLOSE | BIO_FP_TEXT);	if (!load_config(bio_err, NULL))		goto err;	if ((out = BIO_new(BIO_s_file())) == NULL) {		BIO_printf(bio_err, "unable to create BIO for output/n");		goto err;	}	argv++;	argc--;	for (;;) {		if (argc <= 0)			break;		if (strcmp(*argv, "-out") == 0) {			if (--argc < 1)				goto bad;			outfile = *(++argv);		} else if (strcmp(*argv, "-3") == 0)			f4 = 3;		else if (strcmp(*argv, "-F4") == 0 || strcmp(*argv, "-f4") == 0)			f4 = RSA_F4;#ifndef OPENSSL_NO_ENGINE		else if (strcmp(*argv, "-engine") == 0) {			if (--argc < 1)				goto bad;			engine = *(++argv);		}#endif		else if (strcmp(*argv, "-rand") == 0) {			if (--argc < 1)				goto bad;			inrand = *(++argv);		}#ifndef OPENSSL_NO_DES		else if (strcmp(*argv, "-des") == 0)			enc = EVP_des_cbc();		else if (strcmp(*argv, "-des3") == 0)			enc = EVP_des_ede3_cbc();#endif#ifndef OPENSSL_NO_IDEA		else if (strcmp(*argv, "-idea") == 0)			enc = EVP_idea_cbc();#endif#ifndef OPENSSL_NO_SEED		else if (strcmp(*argv, "-seed") == 0)			enc = EVP_seed_cbc();#endif#ifndef OPENSSL_NO_AES		else if (strcmp(*argv, "-aes128") == 0)			enc = EVP_aes_128_cbc();		else if (strcmp(*argv, "-aes192") == 0)			enc = EVP_aes_192_cbc();		else if (strcmp(*argv, "-aes256") == 0)			enc = EVP_aes_256_cbc();#endif#ifndef OPENSSL_NO_CAMELLIA		else if (strcmp(*argv, "-camellia128") == 0)			enc = EVP_camellia_128_cbc();		else if (strcmp(*argv, "-camellia192") == 0)			enc = EVP_camellia_192_cbc();		else if (strcmp(*argv, "-camellia256") == 0)			enc = EVP_camellia_256_cbc();#endif		else if (strcmp(*argv, "-passout") == 0) {			if (--argc < 1)				goto bad;			passargout = *(++argv);		} else			break;		argv++;//.........这里部分代码省略.........
开发者ID:jeremyandrews,项目名称:libressl,代码行数:101,


示例20: x9_62_test_internal

/* some tests from the X9.62 draft */int x9_62_test_internal(BIO *out, int nid, const char *r_in, const char *s_in)	{	int	ret = 0;	const char message[] = "abc";	unsigned char digest[20];	unsigned int  dgst_len = 0;	EVP_MD_CTX md_ctx;	EC_KEY    *key = NULL;	ECDSA_SIG *signature = NULL;	BIGNUM    *r = NULL, *s = NULL;	EVP_MD_CTX_init(&md_ctx);	/* get the message digest */	EVP_DigestInit(&md_ctx, EVP_ecdsa());	EVP_DigestUpdate(&md_ctx, (const void*)message, 3);	EVP_DigestFinal(&md_ctx, digest, &dgst_len);	BIO_printf(out, "testing %s: ", OBJ_nid2sn(nid));	/* create the key */	if ((key = EC_KEY_new_by_curve_name(nid)) == NULL)		goto x962_int_err;	if (!EC_KEY_generate_key(key))		goto x962_int_err;	BIO_printf(out, ".");	(void)BIO_flush(out);	/* create the signature */	signature = ECDSA_do_sign(digest, 20, key);	if (signature == NULL)		goto x962_int_err;	BIO_printf(out, ".");	(void)BIO_flush(out);	/* compare the created signature with the expected signature */	if ((r = BN_new()) == NULL || (s = BN_new()) == NULL)		goto x962_int_err;	if (!BN_dec2bn(&r, r_in) ||	    !BN_dec2bn(&s, s_in))		goto x962_int_err;	if (BN_cmp(signature->r ,r) || BN_cmp(signature->s, s))		goto x962_int_err;	BIO_printf(out, ".");	(void)BIO_flush(out);	/* verify the signature */	if (ECDSA_do_verify(digest, 20, signature, key) != 1)		goto x962_int_err;	BIO_printf(out, ".");	(void)BIO_flush(out);	BIO_printf(out, " ok/n");	ret = 1;x962_int_err:	if (!ret)		BIO_printf(out, " failed/n");	if (key)		EC_KEY_free(key);	if (signature)		ECDSA_SIG_free(signature);	if (r)		BN_free(r);	if (s)		BN_free(s);	EVP_MD_CTX_cleanup(&md_ctx);	return ret;	}
开发者ID:4rejin,项目名称:node,代码行数:64,


示例21: util_verbose

static int util_verbose(ENGINE *e, int verbose, BIO *bio_out, const char *indent){    static const int line_wrap = 78;    int num;    int ret = 0;    char *name = NULL;    char *desc = NULL;    int flags;    int xpos = 0;    STACK *cmds = NULL;    if(!ENGINE_ctrl(e, ENGINE_CTRL_HAS_CTRL_FUNCTION, 0, NULL, NULL) ||            ((num = ENGINE_ctrl(e, ENGINE_CTRL_GET_FIRST_CMD_TYPE,                                0, NULL, NULL)) <= 0))    {#if 0        BIO_printf(bio_out, "%s<no control commands>/n", indent);#endif        return 1;    }    cmds = sk_new_null();    if(!cmds)        goto err;    do {        int len;        /* Get the command input flags */        if((flags = ENGINE_ctrl(e, ENGINE_CTRL_GET_CMD_FLAGS, num,                                NULL, NULL)) < 0)            goto err;        if (!(flags & ENGINE_CMD_FLAG_INTERNAL) || verbose >= 4)        {            /* Get the command name */            if((len = ENGINE_ctrl(e, ENGINE_CTRL_GET_NAME_LEN_FROM_CMD, num,                                  NULL, NULL)) <= 0)                goto err;            if((name = OPENSSL_malloc(len + 1)) == NULL)                goto err;            if(ENGINE_ctrl(e, ENGINE_CTRL_GET_NAME_FROM_CMD, num, name,                           NULL) <= 0)                goto err;            /* Get the command description */            if((len = ENGINE_ctrl(e, ENGINE_CTRL_GET_DESC_LEN_FROM_CMD, num,                                  NULL, NULL)) < 0)                goto err;            if(len > 0)            {                if((desc = OPENSSL_malloc(len + 1)) == NULL)                    goto err;                if(ENGINE_ctrl(e, ENGINE_CTRL_GET_DESC_FROM_CMD, num, desc,                               NULL) <= 0)                    goto err;            }            /* Now decide on the output */            if(xpos == 0)                /* Do an indent */                xpos = BIO_printf(bio_out, indent);            else                /* Otherwise prepend a ", " */                xpos += BIO_printf(bio_out, ", ");            if(verbose == 1)            {                /* We're just listing names, comma-delimited */                if((xpos > (int)strlen(indent)) &&                        (xpos + (int)strlen(name) > line_wrap))                {                    BIO_printf(bio_out, "/n");                    xpos = BIO_printf(bio_out, indent);                }                xpos += BIO_printf(bio_out, "%s", name);            }            else            {                /* We're listing names plus descriptions */                BIO_printf(bio_out, "%s: %s/n", name,                           (desc == NULL) ? "<no description>" : desc);                /* ... and sometimes input flags */                if((verbose >= 3) && !util_flags(bio_out, flags,                                                 indent))                    goto err;                xpos = 0;            }        }        OPENSSL_free(name);        name = NULL;        if(desc) {            OPENSSL_free(desc);            desc = NULL;        }        /* Move to the next command */        num = ENGINE_ctrl(e, ENGINE_CTRL_GET_NEXT_CMD_TYPE,                          num, NULL, NULL);    } while(num > 0);    if(xpos > 0)        BIO_printf(bio_out, "/n");    ret = 1;err:    if(cmds) sk_pop_free(cmds, identity);    if(name) OPENSSL_free(name);    if(desc) OPENSSL_free(desc);//.........这里部分代码省略.........
开发者ID:siredblood,项目名称:tree-bumpkin-project,代码行数:101,


示例22: test_builtin

int test_builtin(BIO *out)	{	EC_builtin_curve *curves = NULL;	size_t		crv_len = 0, n = 0;	EC_KEY		*eckey = NULL, *wrong_eckey = NULL;	EC_GROUP	*group;	ECDSA_SIG	*ecdsa_sig = NULL;	unsigned char	digest[20], wrong_digest[20];	unsigned char	*signature = NULL;	unsigned char	*sig_ptr;	unsigned char	*raw_buf = NULL;	unsigned int	sig_len, degree, r_len, s_len, bn_len, buf_len;	int		nid, ret =  0;		/* fill digest values with some random data */	if (!RAND_pseudo_bytes(digest, 20) ||	    !RAND_pseudo_bytes(wrong_digest, 20))		{		BIO_printf(out, "ERROR: unable to get random data/n");		goto builtin_err;		}	/* create and verify a ecdsa signature with every availble curve	 * (with ) */	BIO_printf(out, "/ntesting ECDSA_sign() and ECDSA_verify() "		"with some internal curves:/n");	/* get a list of all internal curves */	crv_len = EC_get_builtin_curves(NULL, 0);	curves = OPENSSL_malloc(sizeof(EC_builtin_curve) * crv_len);	if (curves == NULL)		{		BIO_printf(out, "malloc error/n");		goto builtin_err;		}		if (!EC_get_builtin_curves(curves, crv_len))		{		BIO_printf(out, "unable to get internal curves/n");		goto builtin_err;		}	/* now create and verify a signature for every curve */	for (n = 0; n < crv_len; n++)		{		unsigned char dirt, offset;		nid = curves[n].nid;		if (nid == NID_ipsec4)			continue;		/* create new ecdsa key (== EC_KEY) */		if ((eckey = EC_KEY_new()) == NULL)			goto builtin_err;		group = EC_GROUP_new_by_curve_name(nid);		if (group == NULL)			goto builtin_err;		if (EC_KEY_set_group(eckey, group) == 0)			goto builtin_err;		EC_GROUP_free(group);		degree = EC_GROUP_get_degree(EC_KEY_get0_group(eckey));		if (degree < 160)			/* drop the curve */ 			{			EC_KEY_free(eckey);			eckey = NULL;			continue;			}		BIO_printf(out, "%s: ", OBJ_nid2sn(nid));		/* create key */		if (!EC_KEY_generate_key(eckey))			{			BIO_printf(out, " failed/n");			goto builtin_err;			}		/* create second key */		if ((wrong_eckey = EC_KEY_new()) == NULL)			goto builtin_err;		group = EC_GROUP_new_by_curve_name(nid);		if (group == NULL)			goto builtin_err;		if (EC_KEY_set_group(wrong_eckey, group) == 0)			goto builtin_err;		EC_GROUP_free(group);		if (!EC_KEY_generate_key(wrong_eckey))			{			BIO_printf(out, " failed/n");			goto builtin_err;			}		BIO_printf(out, ".");		(void)BIO_flush(out);		/* check key */		if (!EC_KEY_check_key(eckey))			{			BIO_printf(out, " failed/n");			goto builtin_err;			}		BIO_printf(out, ".");//.........这里部分代码省略.........
开发者ID:4rejin,项目名称:node,代码行数:101,


示例23: x509_certify

static int x509_certify(X509_STORE *ctx, char *CAfile, const EVP_MD *digest,	     X509 *x, X509 *xca, EVP_PKEY *pkey, char *serialfile, int create,	     int days, int clrext, CONF *conf, char *section, ASN1_INTEGER *sno)	{	int ret=0;	ASN1_INTEGER *bs=NULL;	X509_STORE_CTX xsc;	EVP_PKEY *upkey;	upkey = X509_get_pubkey(xca);	EVP_PKEY_copy_parameters(upkey,pkey);	EVP_PKEY_free(upkey);	if(!X509_STORE_CTX_init(&xsc,ctx,x,NULL))		{		BIO_printf(bio_err,"Error initialising X509 store/n");		goto end;		}	if (sno) bs = sno;	else if (!(bs = x509_load_serial(CAfile, serialfile, create)))		goto end;/*	if (!X509_STORE_add_cert(ctx,x)) goto end;*/	/* NOTE: this certificate can/should be self signed, unless it was	 * a certificate request in which case it is not. */	X509_STORE_CTX_set_cert(&xsc,x);	X509_STORE_CTX_set_flags(&xsc, X509_V_FLAG_CHECK_SS_SIGNATURE);	if (!reqfile && X509_verify_cert(&xsc) <= 0)		goto end;	if (!X509_check_private_key(xca,pkey))		{		BIO_printf(bio_err,"CA certificate and CA private key do not match/n");		goto end;		}	if (!X509_set_issuer_name(x,X509_get_subject_name(xca))) goto end;	if (!X509_set_serialNumber(x,bs)) goto end;	if (X509_gmtime_adj(X509_get_notBefore(x),0L) == NULL)		goto end;	/* hardwired expired */	if (X509_gmtime_adj(X509_get_notAfter(x),(long)60*60*24*days) == NULL)		goto end;	if (clrext)		{		while (X509_get_ext_count(x) > 0) X509_delete_ext(x, 0);		}	if (conf)		{		X509V3_CTX ctx2;		X509_set_version(x,2); /* version 3 certificate */                X509V3_set_ctx(&ctx2, xca, x, NULL, NULL, 0);                X509V3_set_nconf(&ctx2, conf);                if (!X509V3_EXT_add_nconf(conf, &ctx2, section, x)) goto end;		}	if (!X509_sign(x,pkey,digest)) goto end;	ret=1;end:	X509_STORE_CTX_cleanup(&xsc);	if (!ret)		ERR_print_errors(bio_err);	if (!sno) ASN1_INTEGER_free(bs);	return ret;	}
开发者ID:337240552,项目名称:node,代码行数:70,


示例24: spkac_main

intspkac_main(int argc, char **argv){	ENGINE *e = NULL;	int i, ret = 1;	BIO *in = NULL, *out = NULL;	char *passin = NULL;	char *spkstr = NULL;	CONF *conf = NULL;	NETSCAPE_SPKI *spki = NULL;	EVP_PKEY *pkey = NULL;	memset(&spkac_config, 0, sizeof(spkac_config));	spkac_config.spkac = "SPKAC";	spkac_config.spksect = "default";	if (options_parse(argc, argv, spkac_options, NULL, NULL) != 0) {		spkac_usage();		return (1);	}	if (!app_passwd(bio_err, spkac_config.passargin, NULL, &passin, NULL)) {		BIO_printf(bio_err, "Error getting password/n");		goto end;	}#ifndef OPENSSL_NO_ENGINE	e = setup_engine(bio_err, spkac_config.engine, 0);#endif	if (spkac_config.keyfile) {		pkey = load_key(bio_err,		    strcmp(spkac_config.keyfile, "-") ? spkac_config.keyfile		    : NULL, FORMAT_PEM, 1, passin, e, "private key");		if (!pkey) {			goto end;		}		spki = NETSCAPE_SPKI_new();		if (spkac_config.challenge)			ASN1_STRING_set(spki->spkac->challenge,			    spkac_config.challenge,			    (int) strlen(spkac_config.challenge));		NETSCAPE_SPKI_set_pubkey(spki, pkey);		NETSCAPE_SPKI_sign(spki, pkey, EVP_md5());		spkstr = NETSCAPE_SPKI_b64_encode(spki);		if (spkstr == NULL) {			BIO_printf(bio_err, "Error encoding SPKAC/n");			ERR_print_errors(bio_err);			goto end;		}		if (spkac_config.outfile)			out = BIO_new_file(spkac_config.outfile, "w");		else			out = BIO_new_fp(stdout, BIO_NOCLOSE);		if (!out) {			BIO_printf(bio_err, "Error opening output file/n");			ERR_print_errors(bio_err);		} else {			BIO_printf(out, "SPKAC=%s/n", spkstr);			ret = 0;		}		free(spkstr);		goto end;	}	if (spkac_config.infile)		in = BIO_new_file(spkac_config.infile, "r");	else		in = BIO_new_fp(stdin, BIO_NOCLOSE);	if (!in) {		BIO_printf(bio_err, "Error opening input file/n");		ERR_print_errors(bio_err);		goto end;	}	conf = NCONF_new(NULL);	i = NCONF_load_bio(conf, in, NULL);	if (!i) {		BIO_printf(bio_err, "Error parsing config file/n");		ERR_print_errors(bio_err);		goto end;	}	spkstr = NCONF_get_string(conf, spkac_config.spksect,	    spkac_config.spkac);	if (!spkstr) {		BIO_printf(bio_err, "Can't find SPKAC called /"%s/"/n",		    spkac_config.spkac);		ERR_print_errors(bio_err);		goto end;	}	spki = NETSCAPE_SPKI_b64_decode(spkstr, -1);	if (!spki) {		BIO_printf(bio_err, "Error loading SPKAC/n");		ERR_print_errors(bio_err);		goto end;	}	if (spkac_config.outfile)//.........这里部分代码省略.........
开发者ID:Heratom,项目名称:Firefly-project,代码行数:101,


示例25: berr_exit

/*// Name: berr_exit// In: string, a string.// Out: Does exit.// Purpose: prints an error message and exits.*/int berr_exit(char *string) {	BIO_printf(bio_err, "SSL ERROR: %s/n", string);	ERR_print_errors(bio_err);	exit(0);}
开发者ID:rickardlindahl,项目名称:Chat,代码行数:11,



注:本文中的BIO_printf函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ BIO_push函数代码示例
C++ BIO_pending函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。