亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? engine.h

?? SDL文件。SDL_ERROwenjian.....
?? H
?? 第 1 頁 / 共 3 頁
字號:
/* The following functions handle keys that are stored in some secondary
 * location, handled by the engine.  The storage may be on a card or
 * whatever. */
EVP_PKEY *ENGINE_load_private_key(ENGINE *e, const char *key_id,
	UI_METHOD *ui_method, void *callback_data);
EVP_PKEY *ENGINE_load_public_key(ENGINE *e, const char *key_id,
	UI_METHOD *ui_method, void *callback_data);

/* This returns a pointer for the current ENGINE structure that
 * is (by default) performing any RSA operations. The value returned
 * is an incremented reference, so it should be free'd (ENGINE_finish)
 * before it is discarded. */
ENGINE *ENGINE_get_default_RSA(void);
/* Same for the other "methods" */
ENGINE *ENGINE_get_default_DSA(void);
ENGINE *ENGINE_get_default_ECDH(void);
ENGINE *ENGINE_get_default_ECDSA(void);
ENGINE *ENGINE_get_default_DH(void);
ENGINE *ENGINE_get_default_RAND(void);
/* These functions can be used to get a functional reference to perform
 * ciphering or digesting corresponding to "nid". */
ENGINE *ENGINE_get_cipher_engine(int nid);
ENGINE *ENGINE_get_digest_engine(int nid);

/* This sets a new default ENGINE structure for performing RSA
 * operations. If the result is non-zero (success) then the ENGINE
 * structure will have had its reference count up'd so the caller
 * should still free their own reference 'e'. */
int ENGINE_set_default_RSA(ENGINE *e);
int ENGINE_set_default_string(ENGINE *e, const char *def_list);
/* Same for the other "methods" */
int ENGINE_set_default_DSA(ENGINE *e);
int ENGINE_set_default_ECDH(ENGINE *e);
int ENGINE_set_default_ECDSA(ENGINE *e);
int ENGINE_set_default_DH(ENGINE *e);
int ENGINE_set_default_RAND(ENGINE *e);
int ENGINE_set_default_ciphers(ENGINE *e);
int ENGINE_set_default_digests(ENGINE *e);

/* The combination "set" - the flags are bitwise "OR"d from the
 * ENGINE_METHOD_*** defines above. As with the "ENGINE_register_complete()"
 * function, this function can result in unnecessary static linkage. If your
 * application requires only specific functionality, consider using more
 * selective functions. */
int ENGINE_set_default(ENGINE *e, unsigned int flags);

void ENGINE_add_conf_module(void);

/* Deprecated functions ... */
/* int ENGINE_clear_defaults(void); */

/**************************/
/* DYNAMIC ENGINE SUPPORT */
/**************************/

/* Binary/behaviour compatibility levels */
#define OSSL_DYNAMIC_VERSION		(unsigned long)0x00020000
/* Binary versions older than this are too old for us (whether we're a loader or
 * a loadee) */
#define OSSL_DYNAMIC_OLDEST		(unsigned long)0x00020000

/* When compiling an ENGINE entirely as an external shared library, loadable by
 * the "dynamic" ENGINE, these types are needed. The 'dynamic_fns' structure
 * type provides the calling application's (or library's) error functionality
 * and memory management function pointers to the loaded library. These should
 * be used/set in the loaded library code so that the loading application's
 * 'state' will be used/changed in all operations. The 'static_state' pointer
 * allows the loaded library to know if it shares the same static data as the
 * calling application (or library), and thus whether these callbacks need to be
 * set or not. */
typedef void *(*dyn_MEM_malloc_cb)(size_t);
typedef void *(*dyn_MEM_realloc_cb)(void *, size_t);
typedef void (*dyn_MEM_free_cb)(void *);
typedef struct st_dynamic_MEM_fns {
	dyn_MEM_malloc_cb			malloc_cb;
	dyn_MEM_realloc_cb			realloc_cb;
	dyn_MEM_free_cb				free_cb;
	} dynamic_MEM_fns;
/* FIXME: Perhaps the memory and locking code (crypto.h) should declare and use
 * these types so we (and any other dependant code) can simplify a bit?? */
typedef void (*dyn_lock_locking_cb)(int,int,const char *,int);
typedef int (*dyn_lock_add_lock_cb)(int*,int,int,const char *,int);
typedef struct CRYPTO_dynlock_value *(*dyn_dynlock_create_cb)(
						const char *,int);
typedef void (*dyn_dynlock_lock_cb)(int,struct CRYPTO_dynlock_value *,
						const char *,int);
typedef void (*dyn_dynlock_destroy_cb)(struct CRYPTO_dynlock_value *,
						const char *,int);
typedef struct st_dynamic_LOCK_fns {
	dyn_lock_locking_cb			lock_locking_cb;
	dyn_lock_add_lock_cb			lock_add_lock_cb;
	dyn_dynlock_create_cb			dynlock_create_cb;
	dyn_dynlock_lock_cb			dynlock_lock_cb;
	dyn_dynlock_destroy_cb			dynlock_destroy_cb;
	} dynamic_LOCK_fns;
/* The top-level structure */
typedef struct st_dynamic_fns {
	void 					*static_state;
	const ERR_FNS				*err_fns;
	const CRYPTO_EX_DATA_IMPL		*ex_data_fns;
	dynamic_MEM_fns				mem_fns;
	dynamic_LOCK_fns			lock_fns;
	} dynamic_fns;

/* The version checking function should be of this prototype. NB: The
 * ossl_version value passed in is the OSSL_DYNAMIC_VERSION of the loading code.
 * If this function returns zero, it indicates a (potential) version
 * incompatibility and the loaded library doesn't believe it can proceed.
 * Otherwise, the returned value is the (latest) version supported by the
 * loading library. The loader may still decide that the loaded code's version
 * is unsatisfactory and could veto the load. The function is expected to
 * be implemented with the symbol name "v_check", and a default implementation
 * can be fully instantiated with IMPLEMENT_DYNAMIC_CHECK_FN(). */
typedef unsigned long (*dynamic_v_check_fn)(unsigned long ossl_version);
#define IMPLEMENT_DYNAMIC_CHECK_FN() \
	OPENSSL_EXPORT unsigned long v_check(unsigned long v) { \
		if(v >= OSSL_DYNAMIC_OLDEST) return OSSL_DYNAMIC_VERSION; \
		return 0; }

/* This function is passed the ENGINE structure to initialise with its own
 * function and command settings. It should not adjust the structural or
 * functional reference counts. If this function returns zero, (a) the load will
 * be aborted, (b) the previous ENGINE state will be memcpy'd back onto the
 * structure, and (c) the shared library will be unloaded. So implementations
 * should do their own internal cleanup in failure circumstances otherwise they
 * could leak. The 'id' parameter, if non-NULL, represents the ENGINE id that
 * the loader is looking for. If this is NULL, the shared library can choose to
 * return failure or to initialise a 'default' ENGINE. If non-NULL, the shared
 * library must initialise only an ENGINE matching the passed 'id'. The function
 * is expected to be implemented with the symbol name "bind_engine". A standard
 * implementation can be instantiated with IMPLEMENT_DYNAMIC_BIND_FN(fn) where
 * the parameter 'fn' is a callback function that populates the ENGINE structure
 * and returns an int value (zero for failure). 'fn' should have prototype;
 *    [static] int fn(ENGINE *e, const char *id); */
typedef int (*dynamic_bind_engine)(ENGINE *e, const char *id,
				const dynamic_fns *fns);
#define IMPLEMENT_DYNAMIC_BIND_FN(fn) \
	OPENSSL_EXPORT \
	int bind_engine(ENGINE *e, const char *id, const dynamic_fns *fns) { \
		if(ENGINE_get_static_state() == fns->static_state) goto skip_cbs; \
		if(!CRYPTO_set_mem_functions(fns->mem_fns.malloc_cb, \
			fns->mem_fns.realloc_cb, fns->mem_fns.free_cb)) \
			return 0; \
		CRYPTO_set_locking_callback(fns->lock_fns.lock_locking_cb); \
		CRYPTO_set_add_lock_callback(fns->lock_fns.lock_add_lock_cb); \
		CRYPTO_set_dynlock_create_callback(fns->lock_fns.dynlock_create_cb); \
		CRYPTO_set_dynlock_lock_callback(fns->lock_fns.dynlock_lock_cb); \
		CRYPTO_set_dynlock_destroy_callback(fns->lock_fns.dynlock_destroy_cb); \
		if(!CRYPTO_set_ex_data_implementation(fns->ex_data_fns)) \
			return 0; \
		if(!ERR_set_implementation(fns->err_fns)) return 0; \
	skip_cbs: \
		if(!fn(e,id)) return 0; \
		return 1; }

/* If the loading application (or library) and the loaded ENGINE library share
 * the same static data (eg. they're both dynamically linked to the same
 * libcrypto.so) we need a way to avoid trying to set system callbacks - this
 * would fail, and for the same reason that it's unnecessary to try. If the
 * loaded ENGINE has (or gets from through the loader) its own copy of the
 * libcrypto static data, we will need to set the callbacks. The easiest way to
 * detect this is to have a function that returns a pointer to some static data
 * and let the loading application and loaded ENGINE compare their respective
 * values. */
void *ENGINE_get_static_state(void);

#if defined(__OpenBSD__) || defined(__FreeBSD__)
void ENGINE_setup_bsd_cryptodev(void);
#endif

/* BEGIN ERROR CODES */
/* The following lines are auto generated by the script mkerr.pl. Any changes
 * made after this point may be overwritten when the script is next run.
 */
void ERR_load_ENGINE_strings(void);

/* Error codes for the ENGINE functions. */

/* Function codes. */
#define ENGINE_F_DYNAMIC_CTRL				 180
#define ENGINE_F_DYNAMIC_GET_DATA_CTX			 181
#define ENGINE_F_DYNAMIC_LOAD				 182
#define ENGINE_F_DYNAMIC_SET_DATA_CTX			 183
#define ENGINE_F_ENGINE_ADD				 105
#define ENGINE_F_ENGINE_BY_ID				 106
#define ENGINE_F_ENGINE_CMD_IS_EXECUTABLE		 170
#define ENGINE_F_ENGINE_CTRL				 142
#define ENGINE_F_ENGINE_CTRL_CMD			 178
#define ENGINE_F_ENGINE_CTRL_CMD_STRING			 171
#define ENGINE_F_ENGINE_FINISH				 107
#define ENGINE_F_ENGINE_FREE_UTIL			 108
#define ENGINE_F_ENGINE_GET_CIPHER			 185
#define ENGINE_F_ENGINE_GET_DEFAULT_TYPE		 177
#define ENGINE_F_ENGINE_GET_DIGEST			 186
#define ENGINE_F_ENGINE_GET_NEXT			 115
#define ENGINE_F_ENGINE_GET_PREV			 116
#define ENGINE_F_ENGINE_INIT				 119
#define ENGINE_F_ENGINE_LIST_ADD			 120
#define ENGINE_F_ENGINE_LIST_REMOVE			 121
#define ENGINE_F_ENGINE_LOAD_PRIVATE_KEY		 150
#define ENGINE_F_ENGINE_LOAD_PUBLIC_KEY			 151
#define ENGINE_F_ENGINE_NEW				 122
#define ENGINE_F_ENGINE_REMOVE				 123
#define ENGINE_F_ENGINE_SET_DEFAULT_STRING		 189
#define ENGINE_F_ENGINE_SET_DEFAULT_TYPE		 126
#define ENGINE_F_ENGINE_SET_ID				 129
#define ENGINE_F_ENGINE_SET_NAME			 130
#define ENGINE_F_ENGINE_TABLE_REGISTER			 184
#define ENGINE_F_ENGINE_UNLOAD_KEY			 152
#define ENGINE_F_ENGINE_UNLOCKED_FINISH			 191
#define ENGINE_F_ENGINE_UP_REF				 190
#define ENGINE_F_INT_CTRL_HELPER			 172
#define ENGINE_F_INT_ENGINE_CONFIGURE			 188
#define ENGINE_F_INT_ENGINE_MODULE_INIT			 187
#define ENGINE_F_LOG_MESSAGE				 141

/* Reason codes. */
#define ENGINE_R_ALREADY_LOADED				 100
#define ENGINE_R_ARGUMENT_IS_NOT_A_NUMBER		 133
#define ENGINE_R_CMD_NOT_EXECUTABLE			 134
#define ENGINE_R_COMMAND_TAKES_INPUT			 135
#define ENGINE_R_COMMAND_TAKES_NO_INPUT			 136
#define ENGINE_R_CONFLICTING_ENGINE_ID			 103
#define ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED		 119
#define ENGINE_R_DH_NOT_IMPLEMENTED			 139
#define ENGINE_R_DSA_NOT_IMPLEMENTED			 140
#define ENGINE_R_DSO_FAILURE				 104
#define ENGINE_R_DSO_NOT_FOUND				 132
#define ENGINE_R_ENGINES_SECTION_ERROR			 148
#define ENGINE_R_ENGINE_IS_NOT_IN_LIST			 105
#define ENGINE_R_ENGINE_SECTION_ERROR			 149
#define ENGINE_R_FAILED_LOADING_PRIVATE_KEY		 128
#define ENGINE_R_FAILED_LOADING_PUBLIC_KEY		 129
#define ENGINE_R_FINISH_FAILED				 106
#define ENGINE_R_GET_HANDLE_FAILED			 107
#define ENGINE_R_ID_OR_NAME_MISSING			 108
#define ENGINE_R_INIT_FAILED				 109
#define ENGINE_R_INTERNAL_LIST_ERROR			 110
#define ENGINE_R_INVALID_ARGUMENT			 143
#define ENGINE_R_INVALID_CMD_NAME			 137
#define ENGINE_R_INVALID_CMD_NUMBER			 138
#define ENGINE_R_INVALID_INIT_VALUE			 151
#define ENGINE_R_INVALID_STRING				 150
#define ENGINE_R_NOT_INITIALISED			 117
#define ENGINE_R_NOT_LOADED				 112
#define ENGINE_R_NO_CONTROL_FUNCTION			 120
#define ENGINE_R_NO_INDEX				 144
#define ENGINE_R_NO_LOAD_FUNCTION			 125
#define ENGINE_R_NO_REFERENCE				 130
#define ENGINE_R_NO_SUCH_ENGINE				 116
#define ENGINE_R_NO_UNLOAD_FUNCTION			 126
#define ENGINE_R_PROVIDE_PARAMETERS			 113
#define ENGINE_R_RSA_NOT_IMPLEMENTED			 141
#define ENGINE_R_UNIMPLEMENTED_CIPHER			 146
#define ENGINE_R_UNIMPLEMENTED_DIGEST			 147
#define ENGINE_R_VERSION_INCOMPATIBILITY		 145

#ifdef  __cplusplus
}
#endif
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美欧美午夜aⅴ在线观看| 欧美一区二区三区免费视频| 国产欧美日产一区| 激情文学综合网| 欧美r级电影在线观看| 青青草原综合久久大伊人精品 | 亚洲成人动漫在线免费观看| 成人av高清在线| 国产欧美精品一区二区三区四区| 国内精品国产成人| 精品福利一区二区三区免费视频| 蜜桃久久av一区| 日韩欧美一区二区视频| 麻豆成人在线观看| 日韩欧美美女一区二区三区| 另类专区欧美蜜桃臀第一页| 久久综合久久综合九色| 精品一区二区三区在线视频| 精品国产一二三区| 国产精品影视在线| 国产精品免费免费| 99国产精品视频免费观看| 亚洲欧洲另类国产综合| 91麻豆国产福利精品| 一区二区三区久久| 欧美三级午夜理伦三级中视频| 亚洲福利视频一区二区| 欧美一区二区在线播放| 久久成人免费电影| 国产片一区二区| www.欧美精品一二区| 亚洲美女屁股眼交3| 91成人在线观看喷潮| 亚洲第一会所有码转帖| 日韩女优制服丝袜电影| 国产精品一区二区视频| 国产精品的网站| 欧美色图片你懂的| 美女网站色91| 中文av字幕一区| 色婷婷精品久久二区二区蜜臂av | 91小视频在线| 亚洲成av人片www| 日韩免费观看高清完整版在线观看| 国产一区欧美一区| 自拍偷拍国产精品| 欧美日韩一区二区在线观看| 美国欧美日韩国产在线播放| 国产日产欧美一区| 欧美性色黄大片| 另类专区欧美蜜桃臀第一页| 国产精品国产精品国产专区不片| 欧美在线视频日韩| 久久精品国产久精国产| 国产精品毛片久久久久久久| 欧美亚洲尤物久久| 经典三级在线一区| 国产精品久久久久久久久果冻传媒 | 99精品视频在线播放观看| 亚洲成a天堂v人片| 国产日韩在线不卡| 在线免费av一区| 激情综合网激情| 亚洲综合丝袜美腿| 久久网这里都是精品| 一本大道综合伊人精品热热 | 岛国一区二区在线观看| 亚洲成人av一区二区三区| 久久综合久久综合久久| 欧美亚洲国产一区在线观看网站| 狠狠色丁香久久婷婷综合_中| 亚洲欧美日韩精品久久久久| 日韩小视频在线观看专区| caoporen国产精品视频| 欧美aⅴ一区二区三区视频| 国产精品女同互慰在线看| 欧美一区二区三区啪啪| 色综合久久中文字幕| 激情综合一区二区三区| 亚洲成人资源网| 中文字幕 久热精品 视频在线| 欧美日韩国产一二三| 丁香天五香天堂综合| 日韩电影在线观看电影| 亚洲女同一区二区| 国产视频视频一区| 91精品国产入口在线| 一本大道综合伊人精品热热| 国产一区 二区| 婷婷开心激情综合| 成人欧美一区二区三区视频网页| 精品国产一区二区在线观看| 欧洲av在线精品| 99久久综合色| 国产露脸91国语对白| 日韩国产欧美三级| 樱花草国产18久久久久| 中文字幕精品—区二区四季| 欧美成人午夜电影| 欧美久久一二区| 日本韩国欧美一区二区三区| 高清视频一区二区| 免费在线观看视频一区| 香蕉成人啪国产精品视频综合网 | 亚洲一区二区在线免费观看视频| 国产女人18水真多18精品一级做| 欧美zozo另类异族| 欧美精品少妇一区二区三区| 色综合网站在线| 成人动漫一区二区三区| 国产精品综合二区| 久久国产精品72免费观看| 日韩成人午夜精品| 性做久久久久久免费观看欧美| 18成人在线观看| 中文字幕一区二区三区四区不卡| 国产清纯在线一区二区www| 久久婷婷综合激情| 日韩精品一区二区三区在线播放| 91麻豆精品国产91久久久资源速度| 日本高清不卡视频| 91在线视频在线| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 国产精品久久久久影院老司| 国产欧美日本一区视频| 国产欧美一区二区三区鸳鸯浴| 精品欧美一区二区久久| 欧美xxxx老人做受| 精品国产91久久久久久久妲己 | 日韩一区二区免费视频| 91精品国产全国免费观看| 欧美日韩五月天| 欧美日韩激情在线| 欧美日韩精品一区二区天天拍小说 | 亚洲国产高清不卡| 中文字幕不卡在线观看| 国产欧美日韩在线观看| 国产精品嫩草99a| 国产精品美女久久久久高潮| 亚洲欧洲av另类| 亚洲男人天堂一区| 一级特黄大欧美久久久| 亚洲国产精品影院| 手机精品视频在线观看| 日韩成人精品视频| 久久99国产精品麻豆| 国产在线视频一区二区三区| 国产精品123区| 91在线观看成人| 欧美亚洲综合网| 91精品午夜视频| 亚洲精品在线免费播放| 国产视频一区二区在线观看| 一区在线观看视频| 一区二区三区日韩精品视频| 亚洲成av人片在线观看无码| 免费av网站大全久久| 国产乱理伦片在线观看夜一区| 成人免费毛片嘿嘿连载视频| 91视频.com| 欧美日韩国产在线观看| 日韩午夜在线影院| 亚洲国产精品成人综合 | 欧美经典三级视频一区二区三区| 国产精品久久久久久久浪潮网站| 一区二区三区在线视频播放| 天堂va蜜桃一区二区三区漫画版| 麻豆91在线播放免费| 国产91高潮流白浆在线麻豆| 日本韩国欧美一区二区三区| 91精品国产高清一区二区三区蜜臀| 精品福利二区三区| ...中文天堂在线一区| 亚洲第一成人在线| 国产综合久久久久影院| 99久久久无码国产精品| 欧美精品xxxxbbbb| 久久久国产午夜精品| 亚洲黄一区二区三区| 蜜桃av一区二区三区电影| 成人亚洲一区二区一| 欧美日韩免费电影| 国产日韩欧美一区二区三区乱码| 亚洲天堂久久久久久久| 日本美女视频一区二区| 波多野结衣中文字幕一区| 欧美日本免费一区二区三区| 国产网红主播福利一区二区| 亚洲成人在线网站| 懂色av一区二区在线播放| 欧美伦理电影网| 国产精品日日摸夜夜摸av| 青青草国产精品97视觉盛宴| 成人h动漫精品一区二区 | 在线观看精品一区| 欧美sm美女调教| 亚洲成人一二三| 成人app在线观看| 欧美成人aa大片| 亚洲一二三专区|