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

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

?? ui.h

?? SDL文件。SDL_ERROwenjian.....
?? H
?? 第 1 頁 / 共 2 頁
字號:
/* crypto/ui/ui.h -*- mode:C; c-file-style: "eay" -*- */
/* Written by Richard Levitte (richard@levitte.org) for the OpenSSL
 * project 2001.
 */
/* ====================================================================
 * Copyright (c) 2001 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer. 
 *
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in
 *    the documentation and/or other materials provided with the
 *    distribution.
 *
 * 3. All advertising materials mentioning features or use of this
 *    software must display the following acknowledgment:
 *    "This product includes software developed by the OpenSSL Project
 *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
 *
 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
 *    endorse or promote products derived from this software without
 *    prior written permission. For written permission, please contact
 *    openssl-core@openssl.org.
 *
 * 5. Products derived from this software may not be called "OpenSSL"
 *    nor may "OpenSSL" appear in their names without prior written
 *    permission of the OpenSSL Project.
 *
 * 6. Redistributions of any form whatsoever must retain the following
 *    acknowledgment:
 *    "This product includes software developed by the OpenSSL Project
 *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
 *
 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 * OF THE POSSIBILITY OF SUCH DAMAGE.
 * ====================================================================
 *
 * This product includes cryptographic software written by Eric Young
 * (eay@cryptsoft.com).  This product includes software written by Tim
 * Hudson (tjh@cryptsoft.com).
 *
 */

#ifndef HEADER_UI_H
#define HEADER_UI_H

#ifndef OPENSSL_NO_DEPRECATED
#include <openssl/crypto.h>
#endif
#include <openssl/safestack.h>
#include <openssl/ossl_typ.h>

#ifdef  __cplusplus
extern "C" {
#endif

/* Declared already in ossl_typ.h */
/* typedef struct ui_st UI; */
/* typedef struct ui_method_st UI_METHOD; */


/* All the following functions return -1 or NULL on error and in some cases
   (UI_process()) -2 if interrupted or in some other way cancelled.
   When everything is fine, they return 0, a positive value or a non-NULL
   pointer, all depending on their purpose. */

/* Creators and destructor.   */
UI *UI_new(void);
UI *UI_new_method(const UI_METHOD *method);
void UI_free(UI *ui);

/* The following functions are used to add strings to be printed and prompt
   strings to prompt for data.  The names are UI_{add,dup}_<function>_string
   and UI_{add,dup}_input_boolean.

   UI_{add,dup}_<function>_string have the following meanings:
	add	add a text or prompt string.  The pointers given to these
		functions are used verbatim, no copying is done.
	dup	make a copy of the text or prompt string, then add the copy
		to the collection of strings in the user interface.
	<function>
		The function is a name for the functionality that the given
		string shall be used for.  It can be one of:
			input	use the string as data prompt.
			verify	use the string as verification prompt.  This
				is used to verify a previous input.
			info	use the string for informational output.
			error	use the string for error output.
   Honestly, there's currently no difference between info and error for the
   moment.

   UI_{add,dup}_input_boolean have the same semantics for "add" and "dup",
   and are typically used when one wants to prompt for a yes/no response.


   All of the functions in this group take a UI and a prompt string.
   The string input and verify addition functions also take a flag argument,
   a buffer for the result to end up with, a minimum input size and a maximum
   input size (the result buffer MUST be large enough to be able to contain
   the maximum number of characters).  Additionally, the verify addition
   functions takes another buffer to compare the result against.
   The boolean input functions take an action description string (which should
   be safe to ignore if the expected user action is obvious, for example with
   a dialog box with an OK button and a Cancel button), a string of acceptable
   characters to mean OK and to mean Cancel.  The two last strings are checked
   to make sure they don't have common characters.  Additionally, the same
   flag argument as for the string input is taken, as well as a result buffer.
   The result buffer is required to be at least one byte long.  Depending on
   the answer, the first character from the OK or the Cancel character strings
   will be stored in the first byte of the result buffer.  No NUL will be
   added, so the result is *not* a string.

   On success, the all return an index of the added information.  That index
   is usefull when retrieving results with UI_get0_result(). */
int UI_add_input_string(UI *ui, const char *prompt, int flags,
	char *result_buf, int minsize, int maxsize);
int UI_dup_input_string(UI *ui, const char *prompt, int flags,
	char *result_buf, int minsize, int maxsize);
int UI_add_verify_string(UI *ui, const char *prompt, int flags,
	char *result_buf, int minsize, int maxsize, const char *test_buf);
int UI_dup_verify_string(UI *ui, const char *prompt, int flags,
	char *result_buf, int minsize, int maxsize, const char *test_buf);
int UI_add_input_boolean(UI *ui, const char *prompt, const char *action_desc,
	const char *ok_chars, const char *cancel_chars,
	int flags, char *result_buf);
int UI_dup_input_boolean(UI *ui, const char *prompt, const char *action_desc,
	const char *ok_chars, const char *cancel_chars,
	int flags, char *result_buf);
int UI_add_info_string(UI *ui, const char *text);
int UI_dup_info_string(UI *ui, const char *text);
int UI_add_error_string(UI *ui, const char *text);
int UI_dup_error_string(UI *ui, const char *text);

/* These are the possible flags.  They can be or'ed together. */
/* Use to have echoing of input */
#define UI_INPUT_FLAG_ECHO		0x01
/* Use a default password.  Where that password is found is completely
   up to the application, it might for example be in the user data set
   with UI_add_user_data().  It is not recommended to have more than
   one input in each UI being marked with this flag, or the application
   might get confused. */
#define UI_INPUT_FLAG_DEFAULT_PWD	0x02

/* The user of these routines may want to define flags of their own.  The core
   UI won't look at those, but will pass them on to the method routines.  They
   must use higher bits so they don't get confused with the UI bits above.
   UI_INPUT_FLAG_USER_BASE tells which is the lowest bit to use.  A good
   example of use is this:

	#define MY_UI_FLAG1	(0x01 << UI_INPUT_FLAG_USER_BASE)

*/
#define UI_INPUT_FLAG_USER_BASE	16


/* The following function helps construct a prompt.  object_desc is a
   textual short description of the object, for example "pass phrase",
   and object_name is the name of the object (might be a card name or
   a file name.
   The returned string shall always be allocated on the heap with
   OPENSSL_malloc(), and need to be free'd with OPENSSL_free().

   If the ui_method doesn't contain a pointer to a user-defined prompt
   constructor, a default string is built, looking like this:

	"Enter {object_desc} for {object_name}:"

   So, if object_desc has the value "pass phrase" and object_name has
   the value "foo.key", the resulting string is:

	"Enter pass phrase for foo.key:"
*/
char *UI_construct_prompt(UI *ui_method,
	const char *object_desc, const char *object_name);


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合中文字幕| 蜜臀av一区二区在线观看| 久久精品久久综合| 国产精品一卡二| 在线91免费看| 日韩成人午夜精品| 91精品久久久久久久91蜜桃| 亚洲成人av一区二区| 日本电影欧美片| 亚洲一区在线观看网站| 欧美在线观看一区二区| 亚洲日本在线a| 色琪琪一区二区三区亚洲区| 亚洲综合一二三区| 在线观看国产日韩| 婷婷久久综合九色综合伊人色| 欧美疯狂性受xxxxx喷水图片| 日韩电影免费在线| 91精品福利在线一区二区三区| 久久影院午夜片一区| 成人福利视频网站| 亚洲免费观看高清完整| 在线看日韩精品电影| 亚洲二区在线视频| 91精品国产综合久久精品麻豆| 免费观看成人av| 国产精品女同一区二区三区| 欧美在线视频全部完| 极品少妇一区二区| 亚洲激情五月婷婷| 久久久噜噜噜久噜久久综合| 欧美在线视频不卡| 成人综合在线观看| 奇米777欧美一区二区| 亚洲欧美激情小说另类| 精品日韩一区二区三区免费视频| 欧美色涩在线第一页| 久久国产婷婷国产香蕉| 一区二区三区四区av| 久久夜色精品一区| 在线观看91精品国产麻豆| 丁香五精品蜜臀久久久久99网站| 日韩av网站在线观看| 一区二区在线电影| 日韩视频一区在线观看| 久久精品国产免费| 欧美综合一区二区三区| 中文字幕亚洲区| 成人av在线网站| 亚洲五码中文字幕| 欧美日精品一区视频| 婷婷久久综合九色综合伊人色| 制服丝袜成人动漫| 毛片不卡一区二区| 久久久99精品免费观看| 国产**成人网毛片九色 | 性做久久久久久免费观看欧美| 欧美日韩综合一区| 三级不卡在线观看| 久久精品一区二区三区四区 | 欧美日韩视频不卡| 激情久久五月天| 经典一区二区三区| 亚洲成av人片一区二区梦乃| 成人福利视频在线| 国产午夜精品久久久久久免费视| 国产成人午夜精品影院观看视频| 亚洲欧美自拍偷拍| 欧美熟乱第一页| 国产成人精品影视| 亚洲夂夂婷婷色拍ww47| 欧美一级在线免费| 色视频一区二区| 精品久久一区二区| 中文字幕二三区不卡| 一区二区三区在线不卡| 中文字幕在线不卡视频| 中文字幕乱码久久午夜不卡| 老色鬼精品视频在线观看播放| 久久久综合激的五月天| 欧美亚洲丝袜传媒另类| 成人精品鲁一区一区二区| 免费成人性网站| 91视频国产观看| 国产日韩欧美电影| 中文字幕一区二| 综合av第一页| 一区二区三区在线观看动漫| 亚洲欧美aⅴ...| 亚洲国产精品久久久男人的天堂| 午夜伦欧美伦电影理论片| 日韩激情一区二区| 精品在线播放免费| 成人午夜激情片| 91亚洲男人天堂| 欧美日韩美女一区二区| 91精品国产一区二区三区香蕉| 精品国产一区二区三区四区四| 欧美精品一区二| 国产精品午夜电影| 洋洋成人永久网站入口| 五月天丁香久久| 国产呦精品一区二区三区网站| 成人免费视频caoporn| 色综合天天综合网天天狠天天 | 日韩一二三区不卡| 26uuu国产电影一区二区| 久久久九九九九| 亚洲综合色噜噜狠狠| 美女网站色91| 成人福利视频网站| 欧美日韩国产a| 国产三级久久久| 亚洲成人av电影| 韩国精品主播一区二区在线观看| 波多野洁衣一区| 欧美一卡二卡三卡| ...av二区三区久久精品| 亚洲3atv精品一区二区三区| 国产在线日韩欧美| 成人动漫av在线| 69精品人人人人| 国产精品超碰97尤物18| 日韩高清不卡一区二区| 成人网在线免费视频| 一本久久a久久精品亚洲| 欧美日韩一级二级三级| 国产亚洲欧美日韩日本| 午夜成人免费视频| 91天堂素人约啪| 久久久久久久av麻豆果冻| 天天操天天综合网| 91国偷自产一区二区开放时间| 91精品免费观看| 亚洲第四色夜色| a级精品国产片在线观看| 久久久三级国产网站| 日韩国产欧美一区二区三区| 一本久久精品一区二区| 欧美精彩视频一区二区三区| 免费久久99精品国产| 欧美专区日韩专区| 亚洲一区二区三区在线播放| 不卡的电影网站| 国产精品免费免费| 日本高清无吗v一区| 久久国产精品一区二区| 老司机免费视频一区二区三区| 久久超碰97中文字幕| 欧美日韩久久久一区| 亚洲特黄一级片| 91在线一区二区| 亚洲午夜精品在线| 欧美日韩和欧美的一区二区| 日韩成人午夜精品| 亚洲精品一区二区三区精华液| 一区二区激情视频| 久久精品一区二区三区四区| 久久综合九色综合久久久精品综合| 中文字幕的久久| 97精品视频在线观看自产线路二| 2021久久国产精品不只是精品| 免费在线观看一区| 欧美一区二区三区不卡| 五月天亚洲精品| 亚洲女与黑人做爰| 精品久久国产老人久久综合| 久久精品国产99国产| 日本一区二区三区久久久久久久久不| 成人免费观看男女羞羞视频| 成人激情文学综合网| 91精品国产欧美一区二区18 | 国产黄色91视频| 精品少妇一区二区三区视频免付费 | 日韩二区三区四区| 91.com视频| 久久精品国产澳门| 久久久综合精品| av亚洲精华国产精华精| √…a在线天堂一区| 在线看不卡av| 午夜不卡av免费| 91精品国产乱| 国产一区二区免费看| 中文字幕av一区二区三区免费看| eeuss鲁一区二区三区| 国产精品视频一二三区| 91美女片黄在线观看91美女| 夜夜揉揉日日人人青青一国产精品 | 在线亚洲一区二区| 夜夜精品浪潮av一区二区三区| 欧美精品一二三| 精品一二三四在线| 欧美国产日产图区| 色噜噜偷拍精品综合在线| 午夜亚洲福利老司机| 日韩欧美二区三区| 不卡电影一区二区三区| 五月激情六月综合| 久久综合资源网|