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

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

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

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

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

示例1: ENGINE_register_all_RAND

void ENGINE_register_all_RAND (){    ENGINE *e;    for (e = ENGINE_get_first (); e; e = ENGINE_get_next (e))        ENGINE_register_RAND (e);}
开发者ID:274914765,项目名称:C,代码行数:7,


示例2: ENGINE_register_all_ciphers

void ENGINE_register_all_ciphers()	{	ENGINE *e;	for(e=ENGINE_get_first() ; e ; e=ENGINE_get_next(e))		ENGINE_register_ciphers(e);	}
开发者ID:AustinWise,项目名称:Netduino-Micro-Framework,代码行数:7,


示例3: openssl_engine

int openssl_engine(lua_State *L){  const ENGINE* eng = NULL;  if (lua_isstring(L, 1))  {    const char* id = luaL_checkstring(L, 1);    eng = ENGINE_by_id(id);  }  else if (lua_isboolean(L, 1))  {    int first = lua_toboolean(L, 1);    if (first)      eng = ENGINE_get_first();    else      eng = ENGINE_get_last();  }  else    luaL_error(L,               "#1 may be string or boolean/n"               "/tstring for an engine id to load/n"               "/ttrue for first engine, false or last engine/n"               "/tbut we get %s:%s", lua_typename(L, lua_type(L,  1)), lua_tostring(L, 1));  if (eng)  {    PUSH_OBJECT((void*)eng, "openssl.engine");  }  else    lua_pushnil(L);  return 1;}
开发者ID:sdgdsffdsfff,项目名称:lua-openssl,代码行数:30,


示例4: ENGINE_register_all_pkey_asn1_meths

void ENGINE_register_all_pkey_asn1_meths(void){    ENGINE *e;    for (e = ENGINE_get_first(); e; e = ENGINE_get_next(e))        ENGINE_register_pkey_asn1_meths(e);}
开发者ID:DarovskikhAndrei,项目名称:openssl,代码行数:7,


示例5: ENGINE_register_all_STORE

void ENGINE_register_all_STORE (){    ENGINE *e;    for (e = ENGINE_get_first (); e; e = ENGINE_get_next (e))        ENGINE_register_STORE (e);}
开发者ID:274914765,项目名称:C,代码行数:7,


示例6: ENGINE_register_all_complete

int ENGINE_register_all_complete(void)	{	ENGINE *e;	for(e=ENGINE_get_first() ; e ; e=ENGINE_get_next(e))		ENGINE_register_complete(e);	return 1;	}
开发者ID:LucidOne,项目名称:Rovio,代码行数:8,


示例7: ENGINE_register_all_DH

voidENGINE_register_all_DH(void){    ENGINE *e;    for (e = ENGINE_get_first(); e; e = ENGINE_get_next(e))        ENGINE_register_DH(e);}
开发者ID:randombit,项目名称:hacrypto,代码行数:8,


示例8: defined

/* Return list of OpenSSL crypto engine names. */struct curl_slist *Curl_ossl_engines_list(struct SessionHandle *data){  struct curl_slist *list = NULL;#if defined(USE_SSLEAY) && defined(HAVE_OPENSSL_ENGINE_H)  ENGINE *e;  for (e = ENGINE_get_first(); e; e = ENGINE_get_next(e))    list = curl_slist_append(list, ENGINE_get_id(e));#endif  (void) data;  return (list);}
开发者ID:dangardner,项目名称:mudmagic-client,代码行数:14,


示例9: ossl_engine_s_engines

static VALUEossl_engine_s_engines(VALUE klass, SEL sel){    ENGINE *e;    VALUE ary, obj;    ary = rb_ary_new();    for(e = ENGINE_get_first(); e; e = ENGINE_get_next(e)){        WrapEngine(klass, obj, e);        rb_ary_push(ary, obj);    }    return ary;}
开发者ID:1nueve,项目名称:MacRuby,代码行数:14,


示例10: ossl_engine_s_engines

static VALUEossl_engine_s_engines(VALUE klass){    ENGINE *e;    VALUE ary, obj;    ary = rb_ary_new();    for(e = ENGINE_get_first(); e; e = ENGINE_get_next(e)){	/* Need a ref count of two here because of ENGINE_free being	 * called internally by OpenSSL when moving to the next ENGINE	 * and by us when releasing the ENGINE reference */	ENGINE_up_ref(e);	WrapEngine(klass, obj, e);        rb_ary_push(ary, obj);    }    return ary;}
开发者ID:Emily,项目名称:rubinius,代码行数:18,


示例11: display_engine_list

static void display_engine_list(void)	{	ENGINE *h;	int loop;	h = ENGINE_get_first();	loop = 0;	printf("listing available engine types/n");	while(h)		{		printf("engine %i, id = /"%s/", name = /"%s/"/n",			loop++, ENGINE_get_id(h), ENGINE_get_name(h));		h = ENGINE_get_next(h);		}	printf("end of list/n");	/* ENGINE_get_first() increases the struct_ref counter, so we            must call ENGINE_free() to decrease it again */	ENGINE_free(h);	}
开发者ID:ashwinraghav,项目名称:Parallel_Open_SSL,代码行数:19,


示例12: throw

std::vector<std::string> Engines::getEnginesList() throw (EngineException){	ENGINE *e;	const char *name;	std::vector<std::string> ret;	e = ENGINE_get_first();	if (!e)	{		throw EngineException(EngineException::ENGINE_NOT_FOUND, "Engines::getEnginesList");	}	name = ENGINE_get_name(e);	ret.push_back(name);	while ((e = ENGINE_get_next(e)) != NULL)	{		name = ENGINE_get_name(e);		ret.push_back(name);	}	return ret;}
开发者ID:GNakayama,项目名称:libcryptosec,代码行数:19,


示例13: engine_get_first_nif

ERL_NIF_TERM engine_get_first_nif(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]){/* () */#ifdef HAS_ENGINE_SUPPORT    ERL_NIF_TERM ret, result;    ENGINE *engine;    ErlNifBinary engine_bin;    struct engine_ctx *ctx = NULL;    ASSERT(argc == 0);    if ((engine = ENGINE_get_first()) == NULL) {        if (!enif_alloc_binary(0, &engine_bin))            goto err;        engine_bin.size = 0;        return enif_make_tuple2(env, atom_ok, enif_make_binary(env, &engine_bin));    }    if ((ctx = enif_alloc_resource(engine_ctx_rtype, sizeof(struct engine_ctx))) == NULL)        goto err;    ctx->engine = engine;    ctx->id = NULL;    result = enif_make_resource(env, ctx);    ret = enif_make_tuple2(env, atom_ok, result);    goto done; err:    ret = enif_make_badarg(env); done:    if (ctx)        enif_release_resource(ctx);    return ret;#else    return atom_notsup;#endif}
开发者ID:bjorng,项目名称:otp,代码行数:38,


示例14: show_available_engines

voidshow_available_engines (){#if HAVE_OPENSSL_ENGINE /* Only defined for OpenSSL */  ENGINE *e;  printf ("OpenSSL Crypto Engines/n/n");  ENGINE_load_builtin_engines ();  e = ENGINE_get_first ();  while (e)    {      printf ("%s [%s]/n",	      ENGINE_get_name (e),	      ENGINE_get_id (e));      e = ENGINE_get_next (e);    }  ENGINE_cleanup ();#else  printf ("Sorry, OpenSSL hardware crypto engine functionality is not available./n");#endif}
开发者ID:AllardJ,项目名称:Tomato,代码行数:23,


示例15: myModConfig

const char *ssl_cmd_SSLCryptoDevice(cmd_parms *cmd,                                    void *dcfg,                                    const char *arg){    SSLModConfigRec *mc = myModConfig(cmd->server);    const char *err;    ENGINE *e;    if ((err = ap_check_cmd_context(cmd, GLOBAL_ONLY))) {        return err;    }    if (strcEQ(arg, "builtin")) {        mc->szCryptoDevice = NULL;    }    else if ((e = ENGINE_by_id(arg))) {        mc->szCryptoDevice = arg;        ENGINE_free(e);    }    else {        err = "SSLCryptoDevice: Invalid argument; must be one of: "              "'builtin' (none)";        e = ENGINE_get_first();        while (e) {            ENGINE *en;            err = apr_pstrcat(cmd->pool, err, ", '", ENGINE_get_id(e),                                         "' (", ENGINE_get_name(e), ")", NULL);            en = ENGINE_get_next(e);            ENGINE_free(e);            e = en;        }        return err;    }    apn_set_unsupport(cmd, "SSLCryptoDevice: No relevant directive in Nginx.");    return NULL;}
开发者ID:Alivx,项目名称:apache2nginx,代码行数:37,


示例16: main

int main(int argc, char *argv[])	{	ENGINE *block[512];	char buf[256];	const char *id, *name;	ENGINE *ptr;	int loop;	int to_return = 1;	ENGINE *new_h1 = NULL;	ENGINE *new_h2 = NULL;	ENGINE *new_h3 = NULL;	ENGINE *new_h4 = NULL;	/* enable memory leak checking unless explicitly disabled */	if (!((getenv("OPENSSL_DEBUG_MEMORY") != NULL) && (0 == strcmp(getenv("OPENSSL_DEBUG_MEMORY"), "off"))))		{		CRYPTO_malloc_debug_init();		CRYPTO_set_mem_debug_options(V_CRYPTO_MDEBUG_ALL);		}	else		{		/* OPENSSL_DEBUG_MEMORY=off */		CRYPTO_set_mem_debug_functions(0, 0, 0, 0, 0);		}	CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);	ERR_load_crypto_strings();	memset(block, 0, 512 * sizeof(ENGINE *));	if(((new_h1 = ENGINE_new()) == NULL) ||			!ENGINE_set_id(new_h1, "test_id0") ||			!ENGINE_set_name(new_h1, "First test item") ||			((new_h2 = ENGINE_new()) == NULL) ||			!ENGINE_set_id(new_h2, "test_id1") ||			!ENGINE_set_name(new_h2, "Second test item") ||			((new_h3 = ENGINE_new()) == NULL) ||			!ENGINE_set_id(new_h3, "test_id2") ||			!ENGINE_set_name(new_h3, "Third test item") ||			((new_h4 = ENGINE_new()) == NULL) ||			!ENGINE_set_id(new_h4, "test_id3") ||			!ENGINE_set_name(new_h4, "Fourth test item"))		{		printf("Couldn't set up test ENGINE structures/n");		goto end;		}	printf("/nenginetest beginning/n/n");	display_engine_list();	if(!ENGINE_add(new_h1))		{		printf("Add failed!/n");		goto end;		}	display_engine_list();	ptr = ENGINE_get_first();	if(!ENGINE_remove(ptr))		{		printf("Remove failed!/n");		goto end;		}	if (ptr)		ENGINE_free(ptr);	display_engine_list();	if(!ENGINE_add(new_h3) || !ENGINE_add(new_h2))		{		printf("Add failed!/n");		goto end;		}	display_engine_list();	if(!ENGINE_remove(new_h2))		{		printf("Remove failed!/n");		goto end;		}	display_engine_list();	if(!ENGINE_add(new_h4))		{		printf("Add failed!/n");		goto end;		}	display_engine_list();	if(ENGINE_add(new_h3))		{		printf("Add *should* have failed but didn't!/n");		goto end;		}	else		printf("Add that should fail did./n");	ERR_clear_error();	if(ENGINE_remove(new_h2))		{		printf("Remove *should* have failed but didn't!/n");		goto end;		}	else		printf("Remove that should fail did./n");	ERR_clear_error();	if(!ENGINE_remove(new_h3))		{		printf("Remove failed!/n");		goto end;		}//.........这里部分代码省略.........
开发者ID:ashwinraghav,项目名称:Parallel_Open_SSL,代码行数:101,


示例17: dst__openssl_init

isc_result_tdst__openssl_init() {	isc_result_t result;#ifdef USE_ENGINE	/* const char  *name; */	ENGINE *re;#endif#ifdef  DNS_CRYPTO_LEAKS	CRYPTO_malloc_debug_init();	CRYPTO_set_mem_debug_options(V_CRYPTO_MDEBUG_ALL);	CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);#endif	CRYPTO_set_mem_functions(mem_alloc, mem_realloc, mem_free);	nlocks = CRYPTO_num_locks();	locks = mem_alloc(sizeof(isc_mutex_t) * nlocks);	if (locks == NULL)		return (ISC_R_NOMEMORY);	result = isc_mutexblock_init(locks, nlocks);	if (result != ISC_R_SUCCESS)		goto cleanup_mutexalloc;	CRYPTO_set_locking_callback(lock_callback);	CRYPTO_set_id_callback(id_callback);	rm = mem_alloc(sizeof(RAND_METHOD));	if (rm == NULL) {		result = ISC_R_NOMEMORY;		goto cleanup_mutexinit;	}	rm->seed = NULL;	rm->bytes = entropy_get;	rm->cleanup = NULL;	rm->add = entropy_add;	rm->pseudorand = entropy_getpseudo;	rm->status = entropy_status;#ifdef USE_ENGINE	OPENSSL_config(NULL);#ifdef USE_PKCS11#ifndef PKCS11_SO_PATH#define PKCS11_SO_PATH		"/usr/local/lib/engines/engine_pkcs11.so"#endif#ifndef PKCS11_MODULE_PATH#define PKCS11_MODULE_PATH	"/usr/lib/libpkcs11.so"#endif	{		/*		 * to use this to config the PIN, add in openssl.cnf:		 *  - at the beginning: "openssl_conf = openssl_def"		 *  - at any place these sections:		 * [ openssl_def ]		 * engines = engine_section		 * [ engine_section ]		 * pkcs11 = pkcs11_section		 * [ pkcs11_section ]		 * PIN = my___pin		 */		const char *pre_cmds[] = {			"SO_PATH", PKCS11_SO_PATH,			"LOAD", NULL,			"MODULE_PATH", PKCS11_MODULE_PATH		};		const char *post_cmds[] = {			/* "PIN", "my___pin" */		};		result = dst__openssl_load_engine("pkcs11", "pkcs11",						  pre_cmds, 0,						  post_cmds, /*1*/ 0);		if (result != ISC_R_SUCCESS)			goto cleanup_rm;	}#endif /* USE_PKCS11 */	if (engine_id != NULL) {		e = ENGINE_by_id(engine_id);		if (e == NULL) {			result = ISC_R_NOTFOUND;			goto cleanup_rm;		}		if (!ENGINE_init(e)) {			result = ISC_R_FAILURE;			ENGINE_free(e);			goto cleanup_rm;		}		ENGINE_set_default(e, ENGINE_METHOD_ALL);		ENGINE_free(e);	} else {		ENGINE_register_all_complete();		for (e = ENGINE_get_first(); e != NULL; e = ENGINE_get_next(e)) {			/*			 * Something weird here. If we call ENGINE_finish()			 * ENGINE_get_default_RAND() will fail.			 */			if (ENGINE_init(e)) {				if (he == NULL)					he = e;			}		}	}	re = ENGINE_get_default_RAND();//.........这里部分代码省略.........
开发者ID:rodrigc,项目名称:bz-vimage,代码行数:101,


示例18: main

int main(int argc, char *argv[]){    ENGINE *block[512];    char buf[256];    const char *id, *name, *p;    ENGINE *ptr;    int loop;    int to_return = 1;    ENGINE *new_h1 = NULL;    ENGINE *new_h2 = NULL;    ENGINE *new_h3 = NULL;    ENGINE *new_h4 = NULL;    p = getenv("OPENSSL_DEBUG_MEMORY");    if (p != NULL && strcmp(p, "on") == 0)        CRYPTO_set_mem_debug(1);    memset(block, 0, sizeof(block));    if (((new_h1 = ENGINE_new()) == NULL) ||        !ENGINE_set_id(new_h1, "test_id0") ||        !ENGINE_set_name(new_h1, "First test item") ||        ((new_h2 = ENGINE_new()) == NULL) ||        !ENGINE_set_id(new_h2, "test_id1") ||        !ENGINE_set_name(new_h2, "Second test item") ||        ((new_h3 = ENGINE_new()) == NULL) ||        !ENGINE_set_id(new_h3, "test_id2") ||        !ENGINE_set_name(new_h3, "Third test item") ||        ((new_h4 = ENGINE_new()) == NULL) ||        !ENGINE_set_id(new_h4, "test_id3") ||        !ENGINE_set_name(new_h4, "Fourth test item")) {        printf("Couldn't set up test ENGINE structures/n");        goto end;    }    printf("/nenginetest beginning/n/n");    display_engine_list();    if (!ENGINE_add(new_h1)) {        printf("Add failed!/n");        goto end;    }    display_engine_list();    ptr = ENGINE_get_first();    if (!ENGINE_remove(ptr)) {        printf("Remove failed!/n");        goto end;    }    ENGINE_free(ptr);    display_engine_list();    if (!ENGINE_add(new_h3) || !ENGINE_add(new_h2)) {        printf("Add failed!/n");        goto end;    }    display_engine_list();    if (!ENGINE_remove(new_h2)) {        printf("Remove failed!/n");        goto end;    }    display_engine_list();    if (!ENGINE_add(new_h4)) {        printf("Add failed!/n");        goto end;    }    display_engine_list();    if (ENGINE_add(new_h3)) {        printf("Add *should* have failed but didn't!/n");        goto end;    } else        printf("Add that should fail did./n");    ERR_clear_error();    if (ENGINE_remove(new_h2)) {        printf("Remove *should* have failed but didn't!/n");        goto end;    } else        printf("Remove that should fail did./n");    ERR_clear_error();    if (!ENGINE_remove(new_h3)) {        printf("Remove failed!/n");        goto end;    }    display_engine_list();    if (!ENGINE_remove(new_h4)) {        printf("Remove failed!/n");        goto end;    }    display_engine_list();    /*     * Depending on whether there's any hardware support compiled in, this     * remove may be destined to fail.     */    ptr = ENGINE_get_first();    if (ptr)        if (!ENGINE_remove(ptr))            printf("Remove failed!i - probably no hardware "                   "support present./n");    ENGINE_free(ptr);    display_engine_list();    if (!ENGINE_add(new_h1) || !ENGINE_remove(new_h1)) {        printf("Couldn't add and remove to an empty list!/n");        goto end;    } else        printf("Successfully added and removed to an empty list!/n");//.........这里部分代码省略.........
开发者ID:1234-,项目名称:openssl,代码行数:101,


示例19: main

int main(int argc, char *argv[])	{	ENGINE *block[512];	char *id, *name;	ENGINE *ptr;	int loop;	int to_return = 1;	ENGINE *new_h1 = NULL;	ENGINE *new_h2 = NULL;	ENGINE *new_h3 = NULL;	ENGINE *new_h4 = NULL;	ERR_load_crypto_strings();	memset(block, 0, 512 * sizeof(ENGINE *));	if(((new_h1 = ENGINE_new()) == NULL) ||			!ENGINE_set_id(new_h1, "test_id0") ||			!ENGINE_set_name(new_h1, "First test item") ||			((new_h2 = ENGINE_new()) == NULL) ||			!ENGINE_set_id(new_h2, "test_id1") ||			!ENGINE_set_name(new_h2, "Second test item") ||			((new_h3 = ENGINE_new()) == NULL) ||			!ENGINE_set_id(new_h3, "test_id2") ||			!ENGINE_set_name(new_h3, "Third test item") ||			((new_h4 = ENGINE_new()) == NULL) ||			!ENGINE_set_id(new_h4, "test_id3") ||			!ENGINE_set_name(new_h4, "Fourth test item"))		{		printf("Couldn't set up test ENGINE structures/n");		goto end;		}	printf("/nenginetest beginning/n/n");	display_engine_list();	if(!ENGINE_add(new_h1))		{		printf("Add failed!/n");		goto end;		}	display_engine_list();	ptr = ENGINE_get_first();	if(!ENGINE_remove(ptr))		{		printf("Remove failed!/n");		goto end;		}	if (ptr)		ENGINE_free(ptr);	display_engine_list();	if(!ENGINE_add(new_h3) || !ENGINE_add(new_h2))		{		printf("Add failed!/n");		goto end;		}	display_engine_list();	if(!ENGINE_remove(new_h2))		{		printf("Remove failed!/n");		goto end;		}	display_engine_list();	if(!ENGINE_add(new_h4))		{		printf("Add failed!/n");		goto end;		}	display_engine_list();	if(ENGINE_add(new_h3))		{		printf("Add *should* have failed but didn't!/n");		goto end;		}	else		printf("Add that should fail did./n");	ERR_clear_error();	if(ENGINE_remove(new_h2))		{		printf("Remove *should* have failed but didn't!/n");		goto end;		}	else		printf("Remove that should fail did./n");	ERR_clear_error();	if(!ENGINE_remove(new_h3))		{		printf("Remove failed!/n");		goto end;		}	display_engine_list();	if(!ENGINE_remove(new_h4))		{		printf("Remove failed!/n");		goto end;		}	display_engine_list();	/* Depending on whether there's any hardware support compiled	 * in, this remove may be destined to fail. */	ptr = ENGINE_get_first();	if(ptr)		if(!ENGINE_remove(ptr))			printf("Remove failed!i - probably no hardware "//.........这里部分代码省略.........
开发者ID:Basskrapfen,项目名称:openbsd,代码行数:101,


示例20: 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. */			BIO_printf(bio_out, "(%s) %s/n", id, name);			util_do_cmds(e, pre_cmds, bio_out, indent);//.........这里部分代码省略.........
开发者ID:174high,项目名称:openssl-0.9.8e_linux_porting,代码行数:101,



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


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