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

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

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

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

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

示例1: MAIN

//.........这里部分代码省略.........			}		else if (strcmp(argv[i], "-base64") == 0)			{			if (!base64)				base64 = 1;			else				badopt = 1;			}		else if (isdigit((unsigned char)argv[i][0]))			{			if (num < 0)				{				r = sscanf(argv[i], "%d", &num);				if (r == 0 || num < 0)					badopt = 1;				}			else				badopt = 1;			}		else			badopt = 1;		}	if (num < 0)		badopt = 1;		if (badopt) 		{		BIO_printf(bio_err, "Usage: rand [options] num/n");		BIO_printf(bio_err, "where options are/n");		BIO_printf(bio_err, "-out file             - write to file/n");#ifndef OPENSSL_NO_ENGINE		BIO_printf(bio_err, "-engine e             - use engine e, possibly a hardware device./n");#endif		BIO_printf(bio_err, "-rand file%cfile%c... - seed PRNG from files/n", LIST_SEPARATOR_CHAR, LIST_SEPARATOR_CHAR);		BIO_printf(bio_err, "-base64               - encode output/n");		goto err;		}#ifndef OPENSSL_NO_ENGINE        e = setup_engine(bio_err, engine, 0);#endif	app_RAND_load_file(NULL, bio_err, (inrand != NULL));	if (inrand != NULL)		BIO_printf(bio_err,"%ld semi-random bytes loaded/n",			app_RAND_load_files(inrand));	out = BIO_new(BIO_s_file());	if (out == NULL)		goto err;	if (outfile != NULL)		r = BIO_write_filename(out, outfile);	else		{		r = BIO_set_fp(out, stdout, BIO_NOCLOSE | BIO_FP_TEXT);#ifdef OPENSSL_SYS_VMS		{		BIO *tmpbio = BIO_new(BIO_f_linebuffer());		out = BIO_push(tmpbio, out);		}#endif		}	if (r <= 0)		goto err;	if (base64)		{		BIO *b64 = BIO_new(BIO_f_base64());		if (b64 == NULL)			goto err;		out = BIO_push(b64, out);		}		while (num > 0) 		{		unsigned char buf[4096];		int chunk;		chunk = num;		if (chunk > (int)sizeof(buf))			chunk = sizeof buf;		r = RAND_bytes(buf, chunk);		if (r <= 0)			goto err;		BIO_write(out, buf, chunk);		num -= chunk;		}	(void)BIO_flush(out);	app_RAND_write_file(NULL, bio_err);	ret = 0;	err:	ERR_print_errors(bio_err);	if (out)		BIO_free_all(out);	apps_shutdown();	OPENSSL_EXIT(ret);	}
开发者ID:LucidOne,项目名称:Rovio,代码行数:101,


示例2: do_fp

int do_fp(BIO *out, unsigned char *buf, BIO *bp, int sep, int binout,          EVP_PKEY *key, unsigned char *sigin, int siglen,          const char *sig_name, const char *md_name,          const char *file, BIO *bmd){    size_t len;    int i;    for (;;) {        i = BIO_read(bp, (char *)buf, BUFSIZE);        if (i < 0) {            BIO_printf(bio_err, "Read Error in %s/n", file);            ERR_print_errors(bio_err);            return 1;        }        if (i == 0)            break;    }    if (sigin) {        EVP_MD_CTX *ctx;        BIO_get_md_ctx(bp, &ctx);        i = EVP_DigestVerifyFinal(ctx, sigin, (unsigned int)siglen);        if (i > 0)            BIO_printf(out, "Verified OK/n");        else if (i == 0) {            BIO_printf(out, "Verification Failure/n");            return 1;        } else {            BIO_printf(bio_err, "Error Verifying Data/n");            ERR_print_errors(bio_err);            return 1;        }        return 0;    }    if (key) {        EVP_MD_CTX *ctx;        BIO_get_md_ctx(bp, &ctx);        len = BUFSIZE;        if (!EVP_DigestSignFinal(ctx, buf, &len)) {            BIO_printf(bio_err, "Error Signing Data/n");            ERR_print_errors(bio_err);            return 1;        }    } else {        len = BIO_gets(bp, (char *)buf, BUFSIZE);        if ((int)len < 0) {            ERR_print_errors(bio_err);            return 1;        }    }    if (binout)        BIO_write(out, buf, len);    else if (sep == 2) {        for (i = 0; i < (int)len; i++)            BIO_printf(out, "%02x", buf[i]);        BIO_printf(out, " *%s/n", file);    } else {        if (sig_name) {            BIO_puts(out, sig_name);            if (md_name)                BIO_printf(out, "-%s", md_name);            BIO_printf(out, "(%s)= ", file);        } else if (md_name)            BIO_printf(out, "%s(%s)= ", md_name, file);        else            BIO_printf(out, "(%s)= ", file);        for (i = 0; i < (int)len; i++) {            if (sep && (i != 0))                BIO_printf(out, ":");            BIO_printf(out, "%02x", buf[i]);        }        BIO_printf(out, "/n");    }    return 0;}
开发者ID:Distrotech,项目名称:openssl,代码行数:76,


示例3: smime_main

//.........这里部分代码省略.........    }    if (!(operation & SMIME_IP)) {        if (flags & PKCS7_BINARY)            informat = FORMAT_BINARY;    }    if (operation == SMIME_ENCRYPT) {        if (!cipher) {#ifndef OPENSSL_NO_DES            cipher = EVP_des_ede3_cbc();#else            BIO_printf(bio_err, "No cipher selected/n");            goto end;#endif        }        encerts = sk_X509_new_null();        if (!encerts)            goto end;        while (*argv) {            cert = load_cert(*argv, FORMAT_PEM,                             "recipient certificate file");            if (cert == NULL)                goto end;            sk_X509_push(encerts, cert);            cert = NULL;            argv++;        }    }    if (certfile) {        if (!load_certs(certfile, &other, FORMAT_PEM, NULL,                        "certificate file")) {            ERR_print_errors(bio_err);            goto end;        }    }    if (recipfile && (operation == SMIME_DECRYPT)) {        if ((recip = load_cert(recipfile, FORMAT_PEM,                               "recipient certificate file")) == NULL) {            ERR_print_errors(bio_err);            goto end;        }    }    if (operation == SMIME_DECRYPT) {        if (!keyfile)            keyfile = recipfile;    } else if (operation == SMIME_SIGN) {        if (!keyfile)            keyfile = signerfile;    } else        keyfile = NULL;    if (keyfile) {        key = load_key(keyfile, keyform, 0, passin, e, "signing key file");        if (!key)            goto end;    }    in = bio_open_default(infile, 'r', informat);    if (in == NULL)        goto end;    if (operation & SMIME_IP) {
开发者ID:richsalz,项目名称:openssl,代码行数:67,


示例4: dh_main

intdh_main(int argc, char **argv){    DH *dh = NULL;    int i, badops = 0, text = 0;    BIO *in = NULL, *out = NULL;    int informat, outformat, check = 0, noout = 0, C = 0, ret = 1;    char *infile, *outfile, *prog;#ifndef OPENSSL_NO_ENGINE    char *engine;#endif#ifndef OPENSSL_NO_ENGINE    engine = NULL;#endif    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);        }#ifndef OPENSSL_NO_ENGINE        else if (strcmp(*argv, "-engine") == 0) {            if (--argc < 1)                goto bad;            engine = *(++argv);        }#endif        else if (strcmp(*argv, "-check") == 0)            check = 1;        else if (strcmp(*argv, "-text") == 0)            text = 1;        else if (strcmp(*argv, "-C") == 0)            C = 1;        else if (strcmp(*argv, "-noout") == 0)            noout = 1;        else {            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 - one of DER PEM/n");        BIO_printf(bio_err, " -outform arg  output format - one of DER PEM/n");        BIO_printf(bio_err, " -in arg       input file/n");        BIO_printf(bio_err, " -out arg      output file/n");        BIO_printf(bio_err, " -check        check the DH parameters/n");        BIO_printf(bio_err, " -text         print a text form of the DH parameters/n");        BIO_printf(bio_err, " -C            Output C code/n");        BIO_printf(bio_err, " -noout        no output/n");#ifndef OPENSSL_NO_ENGINE        BIO_printf(bio_err, " -engine e     use engine e, possibly a hardware device./n");#endif        goto end;    }#ifndef OPENSSL_NO_ENGINE    setup_engine(bio_err, engine, 0);#endif    in = BIO_new(BIO_s_file());    out = BIO_new(BIO_s_file());    if ((in == NULL) || (out == NULL)) {        ERR_print_errors(bio_err);        goto end;    }    if (infile == NULL)        BIO_set_fp(in, stdin, BIO_NOCLOSE);    else {        if (BIO_read_filename(in, infile) <= 0) {            perror(infile);            goto end;        }//.........这里部分代码省略.........
开发者ID:randombit,项目名称:hacrypto,代码行数:101,


示例5: x509_main

//.........这里部分代码省略.........            checkemail = opt_arg();            break;        case OPT_CHECKIP:            checkip = opt_arg();            break;        case OPT_MD:            if (!opt_md(opt_unknown(), &digest))                goto opthelp;        }    }    argc = opt_num_rest();    argv = opt_rest();    if (argc != 0) {        BIO_printf(bio_err, "%s: Unknown parameter %s/n", prog, argv[0]);        goto opthelp;    }    if (!nmflag_set)        nmflag = XN_FLAG_ONELINE;    out = bio_open_default(outfile, 'w', outformat);    if (out == NULL)        goto end;    if (need_rand)        app_RAND_load_file(NULL, 0);    if (!app_passwd(passinarg, NULL, &passin, NULL)) {        BIO_printf(bio_err, "Error getting password/n");        goto end;    }    if (!X509_STORE_set_default_paths(ctx)) {        ERR_print_errors(bio_err);        goto end;    }    if (fkeyfile) {        fkey = load_pubkey(fkeyfile, keyformat, 0, NULL, e, "Forced key");        if (fkey == NULL)            goto end;    }    if ((CAkeyfile == NULL) && (CA_flag) && (CAformat == FORMAT_PEM)) {        CAkeyfile = CAfile;    } else if ((CA_flag) && (CAkeyfile == NULL)) {        BIO_printf(bio_err,                   "need to specify a CAkey if using the CA command/n");        goto end;    }    if (extfile) {        X509V3_CTX ctx2;        if ((extconf = app_load_config(extfile)) == NULL)            goto end;        if (!extsect) {            extsect = NCONF_get_string(extconf, "default", "extensions");            if (!extsect) {                ERR_clear_error();                extsect = "default";            }        }        X509V3_set_ctx_test(&ctx2);        X509V3_set_nconf(&ctx2, extconf);        if (!X509V3_EXT_add_nconf(extconf, &ctx2, extsect, NULL)) {            BIO_printf(bio_err,
开发者ID:BoboLiao,项目名称:openssl,代码行数:67,


示例6: reply_command

static intreply_command(CONF * conf, char *section, char *queryfile,    char *passin, char *inkey, 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;	/* Build response object either from response or query. */	if (in != NULL) {		if ((in_bio = BIO_new_file(in, "rb")) == NULL)			goto end;		if (token_in) {			/*			 * We have a ContentInfo (PKCS7) object, add			 * 'granted' status info around it.			 */			response = read_PKCS7(in_bio);		} else {			/* We have a ready-made TS_RESP object. */			response = d2i_TS_RESP_bio(in_bio, NULL);		}	} else {		response = create_response(conf, section, queryfile,		    passin, inkey, 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 either in ASN.1 or text format. */	if ((out_bio = BIO_open_with_default(out, "wb", stdout)) == NULL)		goto end;	if (text) {		/* Text output. */		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 {		/* ASN.1 DER output. */		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);	/* Clean up. */	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:Sp1l,项目名称:libressl-openbsd,代码行数:79,


示例7: MAIN

//.........这里部分代码省略.........		argc--;		argv++;		}	if (badops)		{bad:		BIO_printf(bio_err,"%s [options] <infile/n",prog);		BIO_printf(bio_err,"where options are/n");		BIO_printf(bio_err," -inform arg   input format - one of DER PEM/n");		BIO_printf(bio_err," -in arg       input file/n");		BIO_printf(bio_err," -out arg      output file (output format is always DER/n");		BIO_printf(bio_err," -noout arg    don't produce any output/n");		BIO_printf(bio_err," -offset arg   offset into file/n");		BIO_printf(bio_err," -length arg   length of section in file/n");		BIO_printf(bio_err," -i            indent entries/n");		BIO_printf(bio_err," -dump         dump unknown data in hex form/n");		BIO_printf(bio_err," -dlimit arg   dump the first arg bytes of unknown data in hex form/n");		BIO_printf(bio_err," -oid file     file of extra oid definitions/n");		BIO_printf(bio_err," -strparse offset/n");		BIO_printf(bio_err,"               a series of these can be used to 'dig' into multiple/n");		BIO_printf(bio_err,"               ASN1 blob wrappings/n");		BIO_printf(bio_err," -genstr str   string to generate ASN1 structure from/n");		BIO_printf(bio_err," -genconf file file to generate ASN1 structure from/n");		goto end;		}	ERR_load_crypto_strings();	in=BIO_new(BIO_s_file());	out=BIO_new(BIO_s_file());	if ((in == NULL) || (out == NULL))		{		ERR_print_errors(bio_err);		goto end;		}	BIO_set_fp(out,stdout,BIO_NOCLOSE|BIO_FP_TEXT);#ifdef OPENSSL_SYS_VMS	{	BIO *tmpbio = BIO_new(BIO_f_linebuffer());	out = BIO_push(tmpbio, out);	}#endif	if (oidfile != NULL)		{		if (BIO_read_filename(in,oidfile) <= 0)			{			BIO_printf(bio_err,"problems opening %s/n",oidfile);			ERR_print_errors(bio_err);			goto end;			}		OBJ_create_objects(in);		}	if (infile == NULL)		BIO_set_fp(in,stdin,BIO_NOCLOSE);	else		{		if (BIO_read_filename(in,infile) <= 0)			{			perror(infile);			goto end;			}		}
开发者ID:hackshields,项目名称:antivirus,代码行数:66,


示例8: ocsp_main

//.........这里部分代码省略.........    if (resp_text)        OCSP_RESPONSE_print(out, resp, 0);    /* If running as responder don't verify our own response */    if (cbio) {        if (--accept_count <= 0) {            ret = 0;            goto end;        }        BIO_free_all(cbio);        cbio = NULL;        OCSP_REQUEST_free(req);        req = NULL;        OCSP_RESPONSE_free(resp);        resp = NULL;        goto redo_accept;    }    if (ridx_filename) {        ret = 0;        goto end;    }    if (!store) {        store = setup_verify(CAfile, CApath);        if (!store)            goto end;    }    if (vpmtouched)        X509_STORE_set1_param(store, vpm);    if (verify_certfile) {        verify_other = load_certs(verify_certfile, FORMAT_PEM,                                  NULL, NULL, "validator certificate");        if (!verify_other)            goto end;    }    bs = OCSP_response_get1_basic(resp);    if (!bs) {        BIO_printf(bio_err, "Error parsing response/n");        goto end;    }    ret = 0;    if (!noverify) {        if (req && ((i = OCSP_check_nonce(req, bs)) <= 0)) {            if (i == -1)                BIO_printf(bio_err, "WARNING: no nonce in response/n");            else {                BIO_printf(bio_err, "Nonce Verify error/n");                ret = 1;                goto end;            }        }        i = OCSP_basic_verify(bs, verify_other, store, verify_flags);        if (i <= 0 && issuers) {            i = OCSP_basic_verify(bs, issuers, store, OCSP_TRUSTOTHER);            if (i > 0)                ERR_clear_error();        }        if (i <= 0) {            BIO_printf(bio_err, "Response Verify Failure/n");            ERR_print_errors(bio_err);            ret = 1;        } else            BIO_printf(bio_err, "Response verify OK/n");    }    print_ocsp_summary(out, bs, req, reqnames, ids, nsec, maxage); end:    ERR_print_errors(bio_err);    X509_free(signer);    X509_STORE_free(store);    X509_VERIFY_PARAM_free(vpm);    EVP_PKEY_free(key);    EVP_PKEY_free(rkey);    X509_free(cert);    X509_free(rsigner);    X509_free(rca_cert);    free_index(rdb);    BIO_free_all(cbio);    BIO_free_all(acbio);    BIO_free(out);    OCSP_REQUEST_free(req);    OCSP_RESPONSE_free(resp);    OCSP_BASICRESP_free(bs);    sk_OPENSSL_STRING_free(reqnames);    sk_OCSP_CERTID_free(ids);    sk_X509_pop_free(sign_other, X509_free);    sk_X509_pop_free(verify_other, X509_free);    sk_CONF_VALUE_pop_free(headers, X509V3_conf_free);    OPENSSL_free(thost);    OPENSSL_free(tport);    OPENSSL_free(tpath);    return (ret);}
开发者ID:Stinktier,项目名称:openssl,代码行数:101,


示例9: MAIN

//.........这里部分代码省略.........						VERBOSE BIO_printf(bio_err,"Verifying password for user /"%s/"/n",user);						if ( (user_gN = get_index(db, row[DB_srpgN], DB_SRP_INDEX)) >= 0)							irow = (char **)sk_OPENSSL_PSTRING_value(db->db->data, userindex); 						if (!srp_verify_user(user, row[DB_srpverifier], row[DB_srpsalt], irow ? irow[DB_srpsalt] : row[DB_srpgN], irow ? irow[DB_srpverifier] : NULL, passin, bio_err, verbose))							{							BIO_printf(bio_err, "Invalid password for user /"%s/", operation abandoned./n", user);							errors++;							goto err;							}						} 					VERBOSE BIO_printf(bio_err,"Password for user /"%s/" ok./n",user);					if (!(gNid=srp_create_user(user,&(row[DB_srpverifier]), &(row[DB_srpsalt]),gNrow?gNrow[DB_srpsalt]:NULL, gNrow?gNrow[DB_srpverifier]:NULL, passout, bio_err,verbose)))						{							BIO_printf(bio_err, "Cannot create srp verifier for user /"%s/", operation abandoned./n", user);							errors++;							goto err;						}					row[DB_srptype][0] = 'v';					row[DB_srpgN] = BUF_strdup(gNid); 					if (!row[DB_srpid] || !row[DB_srpgN] || !row[DB_srptype] || !row[DB_srpverifier] || !row[DB_srpsalt] ||						(userinfo && (!(row[DB_srpinfo] = BUF_strdup(userinfo)))))  						goto err;					doupdatedb = 1;					}				}			}		else if (delete_user)			{			if (userindex < 0)				{				BIO_printf(bio_err, "user /"%s/" does not exist, operation ignored. t/n", user);				errors++;				}			else				{				char **xpp = (char **)sk_OPENSSL_PSTRING_value(db->db->data, userindex);				BIO_printf(bio_err, "user /"%s/" revoked. t/n", user);				xpp[DB_srptype][0] = 'R';								doupdatedb = 1;				}			}		if (--argc > 0)			user = *(argv++) ;		else			{			user = NULL;			list_user = 0;			}		}	VERBOSE BIO_printf(bio_err,"User procession done./n");	if (doupdatedb)		{		/* Lets check some fields */		for (i = 0; i < sk_OPENSSL_PSTRING_num(db->db->data); i++)			{			pp = (char **)sk_OPENSSL_PSTRING_value(db->db->data, i);				if (pp[DB_srptype][0] == 'v')				{				pp[DB_srptype][0] = 'V';				print_user(db, bio_err, i, verbose);				}			}		VERBOSE BIO_printf(bio_err, "Trying to update srpvfile./n");		if (!save_index(dbfile, "new", db)) goto err;						VERBOSE BIO_printf(bio_err, "Temporary srpvfile created./n");		if (!rotate_index(dbfile, "new", "old")) goto err;		VERBOSE BIO_printf(bio_err, "srpvfile updated./n");		}	ret = (errors != 0);err:	if (errors != 0)	VERBOSE BIO_printf(bio_err,"User errors %d./n",errors);	VERBOSE BIO_printf(bio_err,"SRP terminating with code %d./n",ret);	if(tofree)		OPENSSL_free(tofree);	if (ret) ERR_print_errors(bio_err);	if (randfile) app_RAND_write_file(randfile, bio_err);	if (conf) NCONF_free(conf);	if (db) free_index(db);	OBJ_cleanup();	apps_shutdown();	OPENSSL_EXIT(ret);	}
开发者ID:0omega,项目名称:platform_external_openssl,代码行数:101,


示例10: enc_main

//.........这里部分代码省略.........            }        }        if ((hiv == NULL) && (str == NULL)            && EVP_CIPHER_iv_length(cipher) != 0) {            /*             * No IV was explicitly set and no IV was generated during             * EVP_BytesToKey. Hence the IV is undefined, making correct             * decryption impossible.             */            BIO_printf(bio_err, "iv undefined/n");            goto end;        }        if ((hkey != NULL) && !set_hex(hkey, key, EVP_CIPHER_key_length(cipher))) {            BIO_printf(bio_err, "invalid hex key value/n");            goto end;        }        if ((benc = BIO_new(BIO_f_cipher())) == NULL)            goto end;        /*         * Since we may be changing parameters work on the encryption context         * rather than calling BIO_set_cipher().         */        BIO_get_cipher_ctx(benc, &ctx);        if (non_fips_allow)            EVP_CIPHER_CTX_set_flags(ctx, EVP_CIPH_FLAG_NON_FIPS_ALLOW);        if (!EVP_CipherInit_ex(ctx, cipher, NULL, NULL, NULL, enc)) {            BIO_printf(bio_err, "Error setting cipher %s/n",                       EVP_CIPHER_name(cipher));            ERR_print_errors(bio_err);            goto end;        }        if (nopad)            EVP_CIPHER_CTX_set_padding(ctx, 0);        if (!EVP_CipherInit_ex(ctx, NULL, NULL, key, iv, enc)) {            BIO_printf(bio_err, "Error setting cipher %s/n",                       EVP_CIPHER_name(cipher));            ERR_print_errors(bio_err);            goto end;        }        if (debug) {            BIO_set_callback(benc, BIO_debug_callback);            BIO_set_callback_arg(benc, (char *)bio_err);        }        if (printkey) {            if (!nosalt) {                printf("salt=");                for (i = 0; i < (int)sizeof(salt); i++)                    printf("%02X", salt[i]);                printf("/n");            }            if (cipher->key_len > 0) {                printf("key=");                for (i = 0; i < cipher->key_len; i++)                    printf("%02X", key[i]);                printf("/n");            }            if (cipher->iv_len > 0) {
开发者ID:375670450,项目名称:openssl,代码行数:67,


示例11: X509_REQ_print_ex

intX509_REQ_print_ex(BIO *bp, X509_REQ *x, unsigned long nmflags,    unsigned long cflag){	unsigned long l;	int i;	const char *neg;	X509_REQ_INFO *ri;	EVP_PKEY *pkey;	STACK_OF(X509_ATTRIBUTE) *sk;	STACK_OF(X509_EXTENSION) *exts;	char mlch = ' ';	int nmindent = 0;	if ((nmflags & XN_FLAG_SEP_MASK) == XN_FLAG_SEP_MULTILINE) {		mlch = '/n';		nmindent = 12;	}	if (nmflags == X509_FLAG_COMPAT)		nmindent = 16;	ri = x->req_info;	if (!(cflag & X509_FLAG_NO_HEADER)) {		if (BIO_write(bp, "Certificate Request:/n", 21) <= 0)			goto err;		if (BIO_write(bp, "    Data:/n", 10) <= 0)			goto err;	}	if (!(cflag & X509_FLAG_NO_VERSION)) {		neg = (ri->version->type == V_ASN1_NEG_INTEGER) ? "-" : "";		l = 0;		for (i = 0; i < ri->version->length; i++) {			l <<= 8;			l += ri->version->data[i];		}		if (BIO_printf(bp, "%8sVersion: %s%lu (%s0x%lx)/n", "", neg,		    l, neg, l) <= 0)			goto err;	}	if (!(cflag & X509_FLAG_NO_SUBJECT)) {		if (BIO_printf(bp, "        Subject:%c", mlch) <= 0)			goto err;		if (X509_NAME_print_ex(bp, ri->subject, nmindent, nmflags) < 0)			goto err;		if (BIO_write(bp, "/n", 1) <= 0)			goto err;	}	if (!(cflag & X509_FLAG_NO_PUBKEY)) {		if (BIO_write(bp, "        Subject Public Key Info:/n",		    33) <= 0)			goto err;		if (BIO_printf(bp, "%12sPublic Key Algorithm: ", "") <= 0)			goto err;		if (i2a_ASN1_OBJECT(bp, ri->pubkey->algor->algorithm) <= 0)			goto err;		if (BIO_puts(bp, "/n") <= 0)			goto err;		pkey = X509_REQ_get_pubkey(x);		if (pkey == NULL) {			BIO_printf(bp, "%12sUnable to load Public Key/n", "");			ERR_print_errors(bp);		} else {			EVP_PKEY_print_public(bp, pkey, 16, NULL);			EVP_PKEY_free(pkey);		}	}	if (!(cflag & X509_FLAG_NO_ATTRIBUTES)) {		/* may not be */		if (BIO_printf(bp, "%8sAttributes:/n", "") <= 0)			goto err;		sk = x->req_info->attributes;		if (sk_X509_ATTRIBUTE_num(sk) == 0) {			if (BIO_printf(bp, "%12sa0:00/n", "") <= 0)				goto err;		} else {			for (i = 0; i < sk_X509_ATTRIBUTE_num(sk); i++) {				ASN1_TYPE *at;				X509_ATTRIBUTE *a;				ASN1_BIT_STRING *bs = NULL;				ASN1_TYPE *t;				int j, type = 0, count = 1, ii = 0;				a = sk_X509_ATTRIBUTE_value(sk, i);				if (X509_REQ_extension_nid(				    OBJ_obj2nid(a->object)))					continue;				if (BIO_printf(bp, "%12s", "") <= 0)					goto err;				if ((j = i2a_ASN1_OBJECT(bp, a->object)) > 0) {					if (a->single) {						t = a->value.single;						type = t->type;						bs = t->value.bit_string;					} else {						ii = 0;//.........这里部分代码省略.........
开发者ID:2trill2spill,项目名称:nextgen,代码行数:101,


示例12: MAIN

//.........这里部分代码省略.........		EVP_PKEY	*pkey;		if (pubin)			{			int tmpformat=-1;			if (pubin == 2)				{				if (informat == FORMAT_PEM)					tmpformat = FORMAT_PEMRSA;				else if (informat == FORMAT_ASN1)					tmpformat = FORMAT_ASN1RSA;				}			else if (informat == FORMAT_NETSCAPE && sgckey)				tmpformat = FORMAT_IISSGC;			else				tmpformat = informat;								pkey = load_pubkey(bio_err, infile, tmpformat, 1,				passin, e, "Public Key");			}		else			pkey = load_key(bio_err, infile,				(informat == FORMAT_NETSCAPE && sgckey ?					FORMAT_IISSGC : informat), 1,				passin, e, "Private Key");		if (pkey != NULL)			rsa = EVP_PKEY_get1_RSA(pkey);		EVP_PKEY_free(pkey);	}	if (rsa == NULL)		{		ERR_print_errors(bio_err);		goto end;		}	if (outfile == NULL)		{		BIO_set_fp(out,OPENSSL_TYPE__FILE_STDOUT,BIO_NOCLOSE);#ifdef OPENSSL_SYS_VMS		{		BIO *tmpbio = BIO_new(BIO_f_linebuffer());		out = BIO_push(tmpbio, out);		}#endif		}	else		{		if (BIO_write_filename(out,outfile) <= 0)			{			TINYCLR_SSL_PERROR(outfile);			goto end;			}		}	if (text) 		if (!RSA_print(out,rsa,0))			{			TINYCLR_SSL_PERROR(outfile);			ERR_print_errors(bio_err);			goto end;			}	if (modulus)		{
开发者ID:EddieGarmon,项目名称:netduino-netmf,代码行数:67,


示例13: MAIN

int MAIN(int argc, char **argv)	{	BN_GENCB cb;	DH *dh=NULL;	int ret=1,num=DEFBITS;	int g=2;	char *outfile=NULL;	char *inrand=NULL;#ifndef OPENSSL_NO_ENGINE	char *engine=NULL;#endif	BIO *out=NULL;	apps_startup();	BN_GENCB_set(&cb, dh_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 end;	argv++;	argc--;	for (;;)		{		if (argc <= 0) break;		if (strcmp(*argv,"-out") == 0)			{			if (--argc < 1) goto bad;			outfile= *(++argv);			}		else if (strcmp(*argv,"-2") == 0)			g=2;	/*	else if (strcmp(*argv,"-3") == 0)			g=3; */		else if (strcmp(*argv,"-5") == 0)			g=5;#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);			}		else			break;		argv++;		argc--;		}	if ((argc >= 1) && ((sscanf(*argv,"%d",&num) == 0) || (num < 0)))		{bad:		BIO_printf(bio_err,"usage: gendh [args] [numbits]/n");		BIO_printf(bio_err," -out file - output the key to 'file/n");		BIO_printf(bio_err," -2        - use 2 as the generator value/n");	/*	BIO_printf(bio_err," -3        - use 3 as the generator value/n"); */		BIO_printf(bio_err," -5        - use 5 as the generator value/n");#ifndef OPENSSL_NO_ENGINE		BIO_printf(bio_err," -engine e - use engine e, possibly a hardware device./n");#endif		BIO_printf(bio_err," -rand file%cfile%c.../n", LIST_SEPARATOR_CHAR, LIST_SEPARATOR_CHAR);		BIO_printf(bio_err,"           - load the file (or the files in the directory) into/n");		BIO_printf(bio_err,"             the random number generator/n");		goto end;		}		#ifndef OPENSSL_NO_ENGINE        setup_engine(bio_err, engine, 0);#endif	out=BIO_new(BIO_s_file());	if (out == NULL)		{		ERR_print_errors(bio_err);		goto end;		}	if (outfile == NULL)		{		BIO_set_fp(out,stdout,BIO_NOCLOSE);#ifdef OPENSSL_SYS_VMS		{		BIO *tmpbio = BIO_new(BIO_f_linebuffer());		out = BIO_push(tmpbio, out);		}#endif		}	else		{		if (BIO_write_filename(out,outfile) <= 0)			{			perror(outfile);			goto end;//.........这里部分代码省略.........
开发者ID:Valbonjv,项目名称:QuickSMS,代码行数:101,


示例14: MAIN

//.........这里部分代码省略.........		BIO_printf(bio_err, "Error getting password/n");		goto end;	}        e = setup_engine(bio_err, engine, 0);	if(keyfile) {		pkey = load_key(bio_err,				strcmp(keyfile, "-") ? keyfile : NULL,				FORMAT_PEM, 1, passin, e, "private key");		if(!pkey) {			goto end;		}		spki = NETSCAPE_SPKI_new();		if(challenge) ASN1_STRING_set(spki->spkac->challenge,						 challenge, strlen(challenge));		NETSCAPE_SPKI_set_pubkey(spki, pkey);		NETSCAPE_SPKI_sign(spki, pkey, EVP_md5());		spkstr = NETSCAPE_SPKI_b64_encode(spki);		if (outfile) out = BIO_new_file(outfile, "w");		else {			out = BIO_new_fp(stdout, BIO_NOCLOSE);#ifdef OPENSSL_SYS_VMS			{			    BIO *tmpbio = BIO_new(BIO_f_linebuffer());			    out = BIO_push(tmpbio, out);			}#endif		}		if(!out) {			BIO_printf(bio_err, "Error opening output file/n");			ERR_print_errors(bio_err);			goto end;		}		BIO_printf(out, "SPKAC=%s/n", spkstr);		OPENSSL_free(spkstr);		ret = 0;		goto end;	}		if (infile) in = BIO_new_file(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, spksect, spkac);			if(!spkstr) {		BIO_printf(bio_err, "Can't find SPKAC called /"%s/"/n", spkac);
开发者ID:xyzy,项目名称:mips-openssl_0.9.7,代码行数:67,


示例15: nseq_main

int nseq_main(int argc, char **argv){	char **args, *infile = NULL, *outfile = NULL;	BIO *in = NULL, *out = NULL;	int toseq = 0;	X509 *x509 = NULL;	NETSCAPE_CERT_SEQUENCE *seq = NULL;	int i, ret = 1;	int badarg = 0;	ERR_load_crypto_strings();	args = argv + 1;	while (!badarg && *args && *args[0] == '-') {		if (!strcmp(*args, "-toseq"))			toseq = 1;		else if (!strcmp(*args, "-in")) {			if (args[1]) {				args++;				infile = *args;			} else				badarg = 1;		} else if (!strcmp(*args, "-out")) {			if (args[1]) {				args++;				outfile = *args;			} else				badarg = 1;		} else			badarg = 1;		args++;	}	if (badarg) {		BIO_printf(bio_err, "Netscape certificate sequence utility/n");		BIO_printf(bio_err, "Usage nseq [options]/n");		BIO_printf(bio_err, "where options are/n");		BIO_printf(bio_err, "-in file  input file/n");		BIO_printf(bio_err, "-out file output file/n");		BIO_printf(bio_err, "-toseq    output NS Sequence file/n");		return (1);	}	if (infile) {		if (!(in = BIO_new_file(infile, "r"))) {			BIO_printf(bio_err,			    "Can't open input file %s/n", infile);			goto end;		}	} else		in = BIO_new_fp(stdin, BIO_NOCLOSE);	if (outfile) {		if (!(out = BIO_new_file(outfile, "w"))) {			BIO_printf(bio_err,			    "Can't open output file %s/n", outfile);			goto end;		}	} else {		out = BIO_new_fp(stdout, BIO_NOCLOSE);	}	if (toseq) {		seq = NETSCAPE_CERT_SEQUENCE_new();		seq->certs = sk_X509_new_null();		while ((x509 = PEM_read_bio_X509(in, NULL, NULL, NULL)))			sk_X509_push(seq->certs, x509);		if (!sk_X509_num(seq->certs)) {			BIO_printf(bio_err, "Error reading certs file %s/n", infile);			ERR_print_errors(bio_err);			goto end;		}		PEM_write_bio_NETSCAPE_CERT_SEQUENCE(out, seq);		ret = 0;		goto end;	}	if (!(seq = PEM_read_bio_NETSCAPE_CERT_SEQUENCE(in, NULL, NULL, NULL))) {		BIO_printf(bio_err, "Error reading sequence file %s/n", infile);		ERR_print_errors(bio_err);		goto end;	}	for (i = 0; i < sk_X509_num(seq->certs); i++) {		x509 = sk_X509_value(seq->certs, i);		dump_cert_text(out, x509);		PEM_write_bio_X509(out, x509);	}	ret = 0;end:	BIO_free(in);	BIO_free_all(out);	NETSCAPE_CERT_SEQUENCE_free(seq);	return (ret);}
开发者ID:DiamondLovesYou,项目名称:libressl-pnacl-sys,代码行数:94,


示例16: BIO_printf

//.........这里部分代码省略.........		BIO_printf(bio_err, "%s:%d: connecting to %s:%hd -> %s/n",			__FILE__, __LINE__, scep->h.httphost, ntohs(sa.sin_port),			inet_ntoa(sa.sin_addr));	if (connect(s, (struct sockaddr *)&sa, sizeof(sa)) < 0) {		BIO_printf(bio_err, "%s:%d: cannot connect to remote host: "			"%s (%d)/n", __FILE__, __LINE__, strerror(errno),			errno);		goto err;	}	/* correctly encode the base 64 representation of the request	*/	p = urlencode(scep->request.data);	if (debug)		BIO_printf(bio_err, "%s:%d: request data is '%24.24s...%24.24s'/n",			__FILE__, __LINE__, p, p + strlen(p) - 24);	if (debug > 1) {		char	filename[64];		FILE	*scepfile;		snprintf(filename, sizeof(filename), "%s/%d-scep.b64", tmppath,			getpid());		if (NULL != (scepfile = fopen(filename, "w"))) {			fputs(scep->request.data, scepfile);			fclose(scepfile);		}	}	/* formulate the HTTP request					*/	snprintf(headers, sizeof(headers),		"GET %s/pkiclient.exe?operation=PKIOperation&message=%s "		"HTTP/1.0/r/n/r/n", scep->h.httppath, p);	if (debug)		BIO_printf(bio_err, "%s:%d: request is '%68.68s...%21.21s'/n",			__FILE__, __LINE__,			headers, headers + strlen(headers) - 21);	write(s, headers, strlen(headers));	/* read reply from the server until it closes the connection	*/	buffer = (char *)malloc(1024);	used = 0;	while ((bytes = read(s, &buffer[used], 1024)) > 0) {		used += bytes;		buffer = (char *)realloc(buffer, used + 1024);	}	buffer[used] = '/0';	/* get the first line from the reply				*/	sscanf(buffer, "%s %d ", headers, &rc);	if (debug)		BIO_printf(bio_err, "%s:%d: HTTP return code: %d/n", __FILE__,			__LINE__, rc);	if (rc >= 300) {		BIO_printf(bio_err, "%s:%d: HTTP return code %d >= 300/n",			__FILE__, __LINE__, rc);		goto err;	}	/* check the MIME type of the reply				*/	if (strstr(buffer, "application/x-pki-message") == NULL) {		BIO_printf(bio_err, "%s:%d: reply seems to have wrong content "			"type/n", __FILE__, __LINE__);		goto err;	}	if (debug)		BIO_printf(bio_err, "%s:%d: reply type correct/n", __FILE__,			__LINE__);	/* extract the data portion of the reply			*/	if ((p = strstr(buffer, "/n/n"))) p += 2;	if (p == NULL)		if ((p = strstr(buffer, "/n/r/n/r"))) p += 4;	if (p == NULL)		if ((p = strstr(buffer, "/r/n/r/n"))) p += 4;	if (p == NULL) {		BIO_printf(bio_err, "%s:%d: reply content marker (two "			"consecutive newlines) not found/n", __FILE__,			__LINE__);		goto err;	}	if (debug)		BIO_printf(bio_err, "%s:%d: reply from server: %*.*s/n",			__FILE__, __LINE__, p - buffer, p - buffer, buffer);	if (debug)		BIO_printf(bio_err, "%s:%d: header length: %d/n", __FILE__,			__LINE__, p - buffer);	l = used - (p - buffer);	if (debug)		BIO_printf(bio_err, "%s:%d: reply content has length %d/n",			__FILE__, __LINE__, l);	/* pack this data into a bio					*/	bio = BIO_new_mem_buf(p, l);	return bio;	/* error reply							*/err:	ERR_print_errors(bio_err);	return NULL;}
开发者ID:xman1979,项目名称:openscep,代码行数:101,


示例17: s_time_main

//.........这里部分代码省略.........            }            break;        case OPT_SSL3:            max_version = SSL3_VERSION;            break;        }    }    argc = opt_num_rest();    if (argc != 0)        goto opthelp;    if (cipher == NULL)        cipher = getenv("SSL_CIPHER");    if (cipher == NULL) {        BIO_printf(bio_err, "No CIPHER specified/n");        goto end;    }    if ((ctx = SSL_CTX_new(meth)) == NULL)        goto end;    SSL_CTX_set_quiet_shutdown(ctx, 1);    if (SSL_CTX_set_max_proto_version(ctx, max_version) == 0)        goto end;    if (st_bugs)        SSL_CTX_set_options(ctx, SSL_OP_ALL);    if (!SSL_CTX_set_cipher_list(ctx, cipher))        goto end;    if (!set_cert_stuff(ctx, certfile, keyfile))        goto end;    if (!ctx_set_verify_locations(ctx, CAfile, CApath, noCAfile, noCApath)) {        ERR_print_errors(bio_err);        goto end;    }    if (!(perform & 1))        goto next;    printf("Collecting connection statistics for %d seconds/n", maxtime);    /* Loop and time how long it takes to make connections */    bytes_read = 0;    finishtime = (long)time(NULL) + maxtime;    tm_Time_F(START);    for (;;) {        if (finishtime < (long)time(NULL))            break;        if ((scon = doConnection(NULL, host, ctx)) == NULL)            goto end;        if (www_path != NULL) {            BIO_snprintf(buf, sizeof buf, "GET %s HTTP/1.0/r/n/r/n",                         www_path);            if (SSL_write(scon, buf, strlen(buf)) <= 0)                goto end;            while ((i = SSL_read(scon, buf, sizeof(buf))) > 0)                bytes_read += i;        }#ifdef NO_SHUTDOWN        SSL_set_shutdown(scon, SSL_SENT_SHUTDOWN | SSL_RECEIVED_SHUTDOWN);#else        SSL_shutdown(scon);#endif        BIO_closesocket(SSL_get_fd(scon));
开发者ID:1234-,项目名称:openssl,代码行数:67,


示例18: main

int main(int argc, char **argv){    BN_GENCB *cb;    DSA *dsa = NULL;    int counter, ret = 0, i, j;    unsigned char buf[256];    unsigned long h;    unsigned char sig[256];    unsigned int siglen;    if (bio_err == NULL)        bio_err = BIO_new_fp(stderr, BIO_NOCLOSE | BIO_FP_TEXT);    CRYPTO_set_mem_debug(1);    CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);    ERR_load_crypto_strings();    RAND_seed(rnd_seed, sizeof rnd_seed);    BIO_printf(bio_err, "test generation of DSA parameters/n");    cb = BN_GENCB_new();    if (!cb)        goto end;    BN_GENCB_set(cb, dsa_cb, bio_err);    if (((dsa = DSA_new()) == NULL) || !DSA_generate_parameters_ex(dsa, 512,                                                                   seed, 20,                                                                   &counter,                                                                   &h, cb))        goto end;    BIO_printf(bio_err, "seed/n");    for (i = 0; i < 20; i += 4) {        BIO_printf(bio_err, "%02X%02X%02X%02X ",                   seed[i], seed[i + 1], seed[i + 2], seed[i + 3]);    }    BIO_printf(bio_err, "/ncounter=%d h=%ld/n", counter, h);    DSA_print(bio_err, dsa, 0);    if (counter != 105) {        BIO_printf(bio_err, "counter should be 105/n");        goto end;    }    if (h != 2) {        BIO_printf(bio_err, "h should be 2/n");        goto end;    }    i = BN_bn2bin(dsa->q, buf);    j = sizeof(out_q);    if ((i != j) || (memcmp(buf, out_q, i) != 0)) {        BIO_printf(bio_err, "q value is wrong/n");        goto end;    }    i = BN_bn2bin(dsa->p, buf);    j = sizeof(out_p);    if ((i != j) || (memcmp(buf, out_p, i) != 0)) {        BIO_printf(bio_err, "p value is wrong/n");        goto end;    }    i = BN_bn2bin(dsa->g, buf);    j = sizeof(out_g);    if ((i != j) || (memcmp(buf, out_g, i) != 0)) {        BIO_printf(bio_err, "g value is wrong/n");        goto end;    }    dsa->flags |= DSA_FLAG_NO_EXP_CONSTTIME;    DSA_generate_key(dsa);    DSA_sign(0, str1, 20, sig, &siglen, dsa);    if (DSA_verify(0, str1, 20, sig, siglen, dsa) == 1)        ret = 1;    dsa->flags &= ~DSA_FLAG_NO_EXP_CONSTTIME;    DSA_generate_key(dsa);    DSA_sign(0, str1, 20, sig, &siglen, dsa);    if (DSA_verify(0, str1, 20, sig, siglen, dsa) == 1)        ret = 1; end:    if (!ret)        ERR_print_errors(bio_err);    DSA_free(dsa);    BN_GENCB_free(cb);    CRYPTO_cleanup_all_ex_data();    ERR_remove_thread_state(NULL);    ERR_free_strings();#ifndef OPENSSL_NO_CRYPTO_MDEBUG    CRYPTO_mem_leaks(bio_err);#endif    BIO_free(bio_err);    bio_err = NULL;# ifdef OPENSSL_SYS_NETWARE    if (!ret)        printf("ERROR/n");# endif    EXIT(!ret);//.........这里部分代码省略.........
开发者ID:erbridge,项目名称:openssl,代码行数:101,


示例19: MAIN

int MAIN(int argc, char **argv){    ENGINE *e = NULL;    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;    int crl_download = 0;    char *engine = NULL;    cert_ctx = X509_STORE_new();    if (cert_ctx == NULL)        goto end;    X509_STORE_set_verify_cb(cert_ctx, cb);    ERR_load_crypto_strings();    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);    if (!load_config(bio_err, NULL))        goto end;    argc--;    argv++;    for (;;) {        if (argc >= 1) {            if (strcmp(*argv, "-CApath") == 0) {                if (argc-- < 1)                    goto usage;                CApath = *(++argv);            } else if (strcmp(*argv, "-CAfile") == 0) {                if (argc-- < 1)                    goto usage;                CAfile = *(++argv);            } else if (args_verify(&argv, &argc, &badarg, bio_err, &vpm)) {                if (badarg)                    goto usage;                continue;            } else if (strcmp(*argv, "-untrusted") == 0) {                if (argc-- < 1)                    goto usage;                untfile = *(++argv);            } else if (strcmp(*argv, "-trusted") == 0) {                if (argc-- < 1)                    goto usage;                trustfile = *(++argv);            } else if (strcmp(*argv, "-CRLfile") == 0) {                if (argc-- < 1)                    goto usage;                crlfile = *(++argv);            } else if (strcmp(*argv, "-crl_download") == 0)                crl_download = 1;#ifndef OPENSSL_NO_ENGINE            else if (strcmp(*argv, "-engine") == 0) {                if (--argc < 1)                    goto usage;                engine = *(++argv);            }#endif            else if (strcmp(*argv, "-help") == 0)                goto usage;            else if (strcmp(*argv, "-verbose") == 0)                v_verbose = 1;            else if (argv[0][0] == '-')                goto usage;            else                break;            argc--;            argv++;        } else            break;    }    e = setup_engine(bio_err, engine, 0);    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());//.........这里部分代码省略.........
开发者ID:2trill2spill,项目名称:freebsd,代码行数:101,


示例20: MAIN

//.........这里部分代码省略.........		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 - one of DER PEM/n");		BIO_printf(bio_err," -outform arg  output format - one of DER PEM/n");		BIO_printf(bio_err," -in arg       input file/n");		BIO_printf(bio_err," -out arg      output file/n");		BIO_printf(bio_err," -check        check the DH parameters/n");		BIO_printf(bio_err," -text         print a text form of the DH parameters/n");		BIO_printf(bio_err," -C            Output C code/n");		BIO_printf(bio_err," -noout        no output/n");#ifndef OPENSSL_NO_ENGINE		BIO_printf(bio_err," -engine e     use engine e, possibly a hardware device./n");#endif		goto end;		}	ERR_load_crypto_strings();#ifndef OPENSSL_NO_ENGINE        setup_engine(bio_err, engine, 0);#endif	in=BIO_new(BIO_s_file());	out=BIO_new(BIO_s_file());	if ((in == NULL) || (out == NULL))		{		ERR_print_errors(bio_err);		goto end;		}	if (infile == NULL)		BIO_set_fp(in,OPENSSL_TYPE__FILE_STDIN,BIO_NOCLOSE);	else		{		if (BIO_read_filename(in,infile) <= 0)			{			TINYCLR_SSL_PERROR(infile);			goto end;			}		}	if (outfile == NULL)		{		BIO_set_fp(out,OPENSSL_TYPE__FILE_STDOUT,BIO_NOCLOSE);#ifdef OPENSSL_SYS_VMS		{		BIO *tmpbio = BIO_new(BIO_f_linebuffer());		out = BIO_push(tmpbio, out);		}#endif		}	else		{		if (BIO_write_filename(out,outfile) <= 0)			{			TINYCLR_SSL_PERROR(outfile);			goto end;			}		}
开发者ID:EddieGarmon,项目名称:netduino-netmf,代码行数:66,


示例21: MAIN

//.........这里部分代码省略.........			goto end;			}		}	else#endif		{		/* DH parameters */		if (num && !g)			g = 2;		}	if(num) {		BN_GENCB cb;		BN_GENCB_set(&cb, dh_cb, bio_err);		if (!app_RAND_load_file(NULL, bio_err, 1) && inrand == NULL)			{			BIO_printf(bio_err,"warning, not much extra random data, consider using the -rand option/n");			}		if (inrand != NULL)			BIO_printf(bio_err,"%ld semi-random bytes loaded/n",				app_RAND_load_files(inrand));#ifndef OPENSSL_NO_DSA		if (dsaparam)			{			DSA *dsa = DSA_new();						BIO_printf(bio_err,"Generating DSA parameters, %d bit long prime/n",num);			if(!dsa || !DSA_generate_parameters_ex(dsa, num,						NULL, 0, NULL, NULL, &cb))				{				if(dsa) DSA_free(dsa);				ERR_print_errors(bio_err);				goto end;				}			dh = DSA_dup_DH(dsa);			DSA_free(dsa);			if (dh == NULL)				{				ERR_print_errors(bio_err);				goto end;				}			}		else#endif			{			dh = DH_new();			BIO_printf(bio_err,"Generating DH parameters, %d bit long safe prime, generator %d/n",num,g);			BIO_printf(bio_err,"This is going to take a long time/n");			if(!dh || !DH_generate_parameters_ex(dh, num, g, &cb))				{				if(dh) DH_free(dh);				ERR_print_errors(bio_err);				goto end;				}			}		app_RAND_write_file(NULL, bio_err);	} else {		in=BIO_new(BIO_s_file());		if (in == NULL)			{			ERR_print_errors(bio_err);
开发者ID:0omega,项目名称:platform_external_openssl,代码行数:67,


示例22: pkeyutl_main

intpkeyutl_main(int argc, char **argv){	BIO *in = NULL, *out = NULL;	char *infile = NULL, *outfile = NULL, *sigfile = NULL;	int pkey_op = EVP_PKEY_OP_SIGN, key_type = KEY_PRIVKEY;	int keyform = FORMAT_PEM, peerform = FORMAT_PEM;	char badarg = 0, rev = 0;	char hexdump = 0, asn1parse = 0;	EVP_PKEY_CTX *ctx = NULL;	char *passargin = NULL;	int keysize = -1;	unsigned char *buf_in = NULL, *buf_out = NULL, *sig = NULL;	size_t buf_outlen;	int buf_inlen = 0, siglen = -1;	int ret = 1, rv = -1;	if (single_execution) {		if (pledge("stdio cpath wpath rpath tty", NULL) == -1) {			perror("pledge");			exit(1);		}	}	argc--;	argv++;	while (argc >= 1) {		if (!strcmp(*argv, "-in")) {			if (--argc < 1)				badarg = 1;			else				infile = *(++argv);		} else if (!strcmp(*argv, "-out")) {			if (--argc < 1)				badarg = 1;			else				outfile = *(++argv);		} else if (!strcmp(*argv, "-sigfile")) {			if (--argc < 1)				badarg = 1;			else				sigfile = *(++argv);		} else if (!strcmp(*argv, "-inkey")) {			if (--argc < 1)				badarg = 1;			else {				ctx = init_ctx(&keysize,				    *(++argv), keyform, key_type,				    passargin, pkey_op);				if (!ctx) {					BIO_puts(bio_err,					    "Error initializing context/n");					ERR_print_errors(bio_err);					badarg = 1;				}			}		} else if (!strcmp(*argv, "-peerkey")) {			if (--argc < 1)				badarg = 1;			else if (!setup_peer(bio_err, ctx, peerform, *(++argv)))				badarg = 1;		} else if (!strcmp(*argv, "-passin")) {			if (--argc < 1)				badarg = 1;			else				passargin = *(++argv);		} else if (strcmp(*argv, "-peerform") == 0) {			if (--argc < 1)				badarg = 1;			else				peerform = str2fmt(*(++argv));		} else if (strcmp(*argv, "-keyform") == 0) {			if (--argc < 1)				badarg = 1;			else				keyform = str2fmt(*(++argv));		}		else if (!strcmp(*argv, "-pubin"))			key_type = KEY_PUBKEY;		else if (!strcmp(*argv, "-certin"))			key_type = KEY_CERT;		else if (!strcmp(*argv, "-asn1parse"))			asn1parse = 1;		else if (!strcmp(*argv, "-hexdump"))			hexdump = 1;		else if (!strcmp(*argv, "-sign"))			pkey_op = EVP_PKEY_OP_SIGN;		else if (!strcmp(*argv, "-verify"))			pkey_op = EVP_PKEY_OP_VERIFY;		else if (!strcmp(*argv, "-verifyrecover"))			pkey_op = EVP_PKEY_OP_VERIFYRECOVER;		else if (!strcmp(*argv, "-rev"))			rev = 1;		else if (!strcmp(*argv, "-encrypt"))			pkey_op = EVP_PKEY_OP_ENCRYPT;		else if (!strcmp(*argv, "-decrypt"))			pkey_op = EVP_PKEY_OP_DECRYPT;//.........这里部分代码省略.........
开发者ID:soundsrc,项目名称:git-lfs-server,代码行数:101,


示例23: MAIN

//.........这里部分代码省略.........    if (operation == SMIME_ENCRYPT)    {        if (!cipher)        {#ifndef OPENSSL_NO_RC2            cipher = EVP_rc2_40_cbc();#else            BIO_printf(bio_err, "No cipher selected/n");            goto end;#endif        }        encerts = sk_X509_new_null();        while (*args)        {            if (!(cert = load_cert(bio_err,*args,FORMAT_PEM,                                   NULL, e, "recipient certificate file")))            {#if 0				/* An appropriate message is already printed */                BIO_printf(bio_err, "Can't read recipient certificate file %s/n", *args);#endif                goto end;            }            sk_X509_push(encerts, cert);            cert = NULL;            args++;        }    }    if (certfile)    {        if (!(other = load_certs(bio_err,certfile,FORMAT_PEM, NULL,                                 e, "certificate file")))        {            ERR_print_errors(bio_err);            goto end;        }    }    if (recipfile && (operation == SMIME_DECRYPT))    {        if (!(recip = load_cert(bio_err,recipfile,FORMAT_PEM,NULL,                                e, "recipient certificate file")))        {            ERR_print_errors(bio_err);            goto end;        }    }    if (operation == SMIME_DECRYPT)    {        if (!keyfile)            keyfile = recipfile;    }    else if (operation == SMIME_SIGN)    {        if (!keyfile)            keyfile = signerfile;    }    else keyfile = NULL;    if (keyfile)    {        key = load_key(bio_err, keyfile, keyform, 0, passin, e,                       "signing key file");        if (!key)            goto end;
开发者ID:G-P-S,项目名称:openssl-1.0.1g-win,代码行数:67,


示例24: srp_main

//.........这里部分代码省略.........                    if (!                        (gNid =                         srp_create_user(user, &(row[DB_srpverifier]),                                         &(row[DB_srpsalt]),                                         gNrow ? gNrow[DB_srpsalt] : NULL,                                         gNrow ? gNrow[DB_srpverifier] : NULL,                                         passout, verbose))) {                        BIO_printf(bio_err,                                   "Cannot create srp verifier for user /"%s/", operation abandoned./n",                                   user);                        errors++;                        goto end;                    }                    row[DB_srptype][0] = 'v';                    row[DB_srpgN] = OPENSSL_strdup(gNid);                    if (row[DB_srpid] == NULL                        || row[DB_srpgN] == NULL                        || row[DB_srptype] == NULL                        || row[DB_srpverifier] == NULL                        || row[DB_srpsalt] == NULL                        || (userinfo                            && ((row[DB_srpinfo] = OPENSSL_strdup(userinfo))                                == NULL)))                        goto end;                    doupdatedb = 1;                }            }        } else if (mode == OPT_DELETE) {            if (userindex < 0) {                BIO_printf(bio_err,                           "user /"%s/" does not exist, operation ignored. t/n",                           user);                errors++;            } else {                char **xpp = sk_OPENSSL_PSTRING_value(db->db->data, userindex);                BIO_printf(bio_err, "user /"%s/" revoked. t/n", user);                xpp[DB_srptype][0] = 'R';                doupdatedb = 1;            }        }        if (--argc > 0)            user = *(argv++);        else {            user = NULL;        }    }    if (verbose)        BIO_printf(bio_err, "User procession done./n");    if (doupdatedb) {        /* Lets check some fields */        for (i = 0; i < sk_OPENSSL_PSTRING_num(db->db->data); i++) {            pp = sk_OPENSSL_PSTRING_value(db->db->data, i);            if (pp[DB_srptype][0] == 'v') {                pp[DB_srptype][0] = 'V';                print_user(db, i, verbose);            }        }        if (verbose)            BIO_printf(bio_err, "Trying to update srpvfile./n");        if (!save_index(srpvfile, "new", db))            goto end;        if (verbose)            BIO_printf(bio_err, "Temporary srpvfile created./n");        if (!rotate_index(srpvfile, "new", "old"))            goto end;        if (verbose)            BIO_printf(bio_err, "srpvfile updated./n");    }    ret = (errors != 0); end:    if (errors != 0)        if (verbose)            BIO_printf(bio_err, "User errors %d./n", errors);    if (verbose)        BIO_printf(bio_err, "SRP terminating with code %d./n", ret);    OPENSSL_free(passin);    OPENSSL_free(passout);    if (ret)        ERR_print_errors(bio_err);    if (randfile)        app_RAND_write_file(randfile);    NCONF_free(conf);    free_index(db);    release_engine(e);    return (ret);}
开发者ID:Sp1l,项目名称:openssl,代码行数:101,


示例25: dgst_main

//.........这里部分代码省略.........        case OPT_SIGOPT:            if (!sigopts)                sigopts = sk_OPENSSL_STRING_new_null();            if (!sigopts || !sk_OPENSSL_STRING_push(sigopts, opt_arg()))                goto opthelp;            break;        case OPT_MACOPT:            if (!macopts)                macopts = sk_OPENSSL_STRING_new_null();            if (!macopts || !sk_OPENSSL_STRING_push(macopts, opt_arg()))                goto opthelp;            break;        case OPT_DIGEST:            if (!opt_md(opt_unknown(), &m))                goto opthelp;            md = m;            break;        }    }    argc = opt_num_rest();    argv = opt_rest();    if (do_verify && !sigfile) {        BIO_printf(bio_err,                   "No signature to verify: use the -signature option/n");        goto end;    }    if (engine_impl)        impl = e;    in = BIO_new(BIO_s_file());    bmd = BIO_new(BIO_f_md());    if ((in == NULL) || (bmd == NULL)) {        ERR_print_errors(bio_err);        goto end;    }    if (debug) {        BIO_set_callback(in, BIO_debug_callback);        /* needed for windows 3.1 */        BIO_set_callback_arg(in, (char *)bio_err);    }    if (!app_passwd(passinarg, NULL, &passin, NULL)) {        BIO_printf(bio_err, "Error getting password/n");        goto end;    }    if (out_bin == -1) {        if (keyfile)            out_bin = 1;        else            out_bin = 0;    }    if (randfile)        app_RAND_load_file(randfile, 0);    out = bio_open_default(outfile, 'w', out_bin ? FORMAT_BINARY : FORMAT_TEXT);    if (out == NULL)        goto end;    if ((! !mac_name + ! !keyfile + ! !hmac_key) > 1) {        BIO_printf(bio_err, "MAC and Signing key cannot both be specified/n");        goto end;    }
开发者ID:Distrotech,项目名称:openssl,代码行数:67,


示例26: nseq_main

intnseq_main(int argc, char **argv){	BIO *in = NULL, *out = NULL;	X509 *x509 = NULL;	NETSCAPE_CERT_SEQUENCE *seq = NULL;	int i, ret = 1;	if (single_execution) {		if (pledge("stdio cpath wpath rpath", NULL) == -1) {			perror("pledge");			exit(1);		}	}	memset(&nseq_config, 0, sizeof(nseq_config));	if (options_parse(argc, argv, nseq_options, NULL, NULL) != 0) {		nseq_usage();		return (1);	}	if (nseq_config.infile) {		if (!(in = BIO_new_file(nseq_config.infile, "r"))) {			BIO_printf(bio_err,			    "Can't open input file %s/n", nseq_config.infile);			goto end;		}	} else		in = BIO_new_fp(stdin, BIO_NOCLOSE);	if (nseq_config.outfile) {		if (!(out = BIO_new_file(nseq_config.outfile, "w"))) {			BIO_printf(bio_err,			    "Can't open output file %s/n", nseq_config.outfile);			goto end;		}	} else {		out = BIO_new_fp(stdout, BIO_NOCLOSE);	}	if (nseq_config.toseq) {		seq = NETSCAPE_CERT_SEQUENCE_new();		seq->certs = sk_X509_new_null();		while ((x509 = PEM_read_bio_X509(in, NULL, NULL, NULL)))			sk_X509_push(seq->certs, x509);		if (!sk_X509_num(seq->certs)) {			BIO_printf(bio_err, "Error reading certs file %s/n", nseq_config.infile);			ERR_print_errors(bio_err);			goto end;		}		PEM_write_bio_NETSCAPE_CERT_SEQUENCE(out, seq);		ret = 0;		goto end;	}	if (!(seq = PEM_read_bio_NETSCAPE_CERT_SEQUENCE(in, NULL, NULL, NULL))) {		BIO_printf(bio_err, "Error reading sequence file %s/n", nseq_config.infile);		ERR_print_errors(bio_err);		goto end;	}	for (i = 0; i < sk_X509_num(seq->certs); i++) {		x509 = sk_X509_value(seq->certs, i);		dump_cert_text(out, x509);		PEM_write_bio_X509(out, x509);	}	ret = 0;end:	BIO_free(in);	BIO_free_all(out);	NETSCAPE_CERT_SEQUENCE_free(seq);	return (ret);}
开发者ID:soundsrc,项目名称:git-lfs-server,代码行数:73,


示例27: MAIN

//.........这里部分代码省略.........		BIO_printf(bio_err,"-prverify file  verify a signature using private key in file/n");		BIO_printf(bio_err,"-keyform arg    key file format (PEM or ENGINE)/n");		BIO_printf(bio_err,"-out filename   output to filename rather than stdout/n");		BIO_printf(bio_err,"-signature file signature to verify/n");		BIO_printf(bio_err,"-sigopt nm:v    signature parameter/n");		BIO_printf(bio_err,"-hmac key       create hashed MAC with key/n");		BIO_printf(bio_err,"-mac algorithm  create MAC (not neccessarily HMAC)/n"); 		BIO_printf(bio_err,"-macopt nm:v    MAC algorithm parameters or key/n");#ifndef OPENSSL_NO_ENGINE		BIO_printf(bio_err,"-engine e       use engine e, possibly a hardware device./n");#endif		EVP_MD_do_all_sorted(list_md_fn, bio_err);		goto end;		}	in=BIO_new(BIO_s_file());	bmd=BIO_new(BIO_f_md());	if (debug)		{		BIO_set_callback(in,BIO_debug_callback);		/* needed for windows 3.1 */		BIO_set_callback_arg(in,(char *)bio_err);		}	if(!app_passwd(bio_err, passargin, NULL, &passin, NULL))		{		BIO_printf(bio_err, "Error getting password/n");		goto end;		}	if ((in == NULL) || (bmd == NULL))		{		ERR_print_errors(bio_err);		goto end;		}	if(out_bin == -1) {		if(keyfile)			out_bin = 1;		else			out_bin = 0;	}	if(randfile)		app_RAND_load_file(randfile, bio_err, 0);	if(outfile) {		if(out_bin)			out = BIO_new_file(outfile, "wb");		else    out = BIO_new_file(outfile, "w");	} else {		out = BIO_new_fp(stdout, BIO_NOCLOSE);#ifdef OPENSSL_SYS_VMS		{		BIO *tmpbio = BIO_new(BIO_f_linebuffer());		out = BIO_push(tmpbio, out);		}#endif	}	if(!out) {		BIO_printf(bio_err, "Error opening output file %s/n", 					outfile ? outfile : "(stdout)");		ERR_print_errors(bio_err);		goto end;
开发者ID:0omega,项目名称:platform_external_openssl,代码行数:67,


示例28: rsa_main

//.........这里部分代码省略.........    if (!app_passwd(passinarg, passoutarg, &passin, &passout)) {        BIO_printf(bio_err, "Error getting passwords/n");        goto end;    }    if (check && pubin) {        BIO_printf(bio_err, "Only private keys can be checked/n");        goto end;    }    {        EVP_PKEY *pkey;        if (pubin) {            int tmpformat = -1;            if (pubin == 2) {                if (informat == FORMAT_PEM)                    tmpformat = FORMAT_PEMRSA;                else if (informat == FORMAT_ASN1)                    tmpformat = FORMAT_ASN1RSA;            } else                tmpformat = informat;            pkey = load_pubkey(infile, tmpformat, 1, passin, e, "Public Key");        } else            pkey = load_key(infile, informat, 1, passin, e, "Private Key");        if (pkey != NULL)            rsa = EVP_PKEY_get1_RSA(pkey);        EVP_PKEY_free(pkey);    }    if (rsa == NULL) {        ERR_print_errors(bio_err);        goto end;    }    out = bio_open_default(outfile, "w");    if (out == NULL)        goto end;    if (text)        if (!RSA_print(out, rsa, 0)) {            perror(outfile);            ERR_print_errors(bio_err);            goto end;        }    if (modulus) {        BIO_printf(out, "Modulus=");        BN_print(out, rsa->n);        BIO_printf(out, "/n");    }    if (check) {        int r = RSA_check_key(rsa);        if (r == 1)            BIO_printf(out, "RSA key ok/n");        else if (r == 0) {            unsigned long err;            while ((err = ERR_peek_error()) != 0 &&                    ERR_GET_LIB(err) == ERR_LIB_RSA &&                    ERR_GET_FUNC(err) == RSA_F_RSA_CHECK_KEY &&                    ERR_GET_REASON(err) != ERR_R_MALLOC_FAILURE) {
开发者ID:nmathewson,项目名称:openssl,代码行数:67,


示例29: us1060c_start_tls_server

/* * This starts a minimal TLS server that only does a * handshake and then closes the connection.  This is * strictly used to test TLS session negotiation * behavior with EST. */static void us1060c_start_tls_server (char *cipherstring){    BIO *conn;    BIO *listener;    BIO *berr;    char h_p[25];    SSL *ssl;    SSL_CTX *ssl_ctx = NULL;    int nid, rv;    EC_KEY *ecdh = NULL;    berr = BIO_new_fp(stderr, BIO_NOCLOSE);    ssl_ctx = SSL_CTX_new(SSLv23_server_method());    if (!ssl_ctx) {	printf("Failed to create SSL context/n");	ERR_print_errors(berr);	return;    }    SSL_CTX_set_mode(ssl_ctx, SSL_MODE_AUTO_RETRY);    if (SSL_CTX_use_certificate_chain_file(ssl_ctx, US1060C_RSA_CERT) != 1) {	printf("Failed to load server certificate/n");	ERR_print_errors(berr);	return;    }    if (SSL_CTX_use_PrivateKey_file(ssl_ctx, US1060C_RSA_KEY, SSL_FILETYPE_PEM) != 1) {	printf("Failed to load server private key/n");	ERR_print_errors(berr);	return;    }    SSL_CTX_set_options(ssl_ctx, SSL_OP_NO_SSLv2 |	                         SSL_OP_NO_SSLv3 |				 SSL_OP_NO_TLSv1 |                                 SSL_OP_SINGLE_ECDH_USE | 				 SSL_OP_SINGLE_DH_USE |			         SSL_OP_NO_TICKET);    nid = OBJ_sn2nid("prime256v1");    ecdh = EC_KEY_new_by_curve_name(nid);    if (ecdh == NULL) {	printf("Failed to retreive ECDH curve/n");	ERR_print_errors(berr);	return;    }    SSL_CTX_set_tmp_ecdh(ssl_ctx, ecdh);    EC_KEY_free(ecdh);    if (SSL_CTX_set_cipher_list(ssl_ctx, cipherstring) != 1) {	printf("Failed to set server cipher list/n");	ERR_print_errors(berr);	return;    }    SSL_CTX_set_srp_username_callback(ssl_ctx, us1060_srp_cb);    sprintf(h_p, "%s:%d", US1060C_SERVER_IP, US1060C_TLS_PORT);    listener = BIO_new_accept(h_p);    if (listener == NULL) {	printf("IP connection failed/n");	return;    }    BIO_set_bind_mode(listener, BIO_BIND_REUSEADDR);    /*     * The first call to do_accept binds the socket     */    if (BIO_do_accept(listener) <= 0) {	printf("TCP bind failed/n");	BIO_free_all(listener);	return;    }    /*     * The second call to do_accept waits for a new     * connection request on the listener.     * Note that we are in blocking mode for this socket     */    if (BIO_do_accept(listener) <= 0) {	printf("TCP accept failed/n");	BIO_free_all(listener);	return;    }    conn = BIO_pop(listener);    ssl = SSL_new(ssl_ctx);    SSL_set_bio(ssl, conn, conn);    /*     * Now that we have everything ready, let's start waiting for     * a client to contact us.  Normally we might using a pthread     * or some other construct to avoid blocking on the main      * thread while waiting for an incoming connection.  This     * code is simply a contrived example, we will wait on the//.........这里部分代码省略.........
开发者ID:StephenWall,项目名称:libest,代码行数:101,



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


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