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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ui.h

?? openssl加密例子
?? 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

#include <openssl/crypto.h>
#include <openssl/safestack.h>

#ifdef  __cplusplus
extern "C" {
#endif

/* The UI type is a holder for a specific user interface session.  It can
   contain an illimited number of informational or error strings as well
   as things to prompt for, both passwords (noecho mode) and others (echo
   mode), and verification of the same.  All of these are called strings,
   and are further described below. */
typedef struct ui_st UI;

/* All instances of UI have a reference to a method structure, which is a
   ordered vector of functions that implement the lower level things to do.
   There is an instruction on the implementation further down, in the section
   for method implementors. */
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,

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文一区一区三区高中清不卡| 国产精品免费网站在线观看| 欧美经典一区二区| 亚洲精品欧美综合四区| 国产一区二区三区精品欧美日韩一区二区三区 | 日本福利一区二区| 精品国产乱码久久久久久免费| 一二三区精品视频| 成人性生交大片| 精品久久久久久无| 丝袜亚洲精品中文字幕一区| 色综合网色综合| 中文字幕一区二区三区在线不卡| 美女网站视频久久| 欧美一区二区三区不卡| 又紧又大又爽精品一区二区| 99久久国产综合精品色伊| 久久久久国产成人精品亚洲午夜| 蜜桃视频一区二区三区| 91.xcao| 亚洲综合清纯丝袜自拍| 91香蕉国产在线观看软件| 国产精品久久久久久亚洲毛片| 久久99精品久久久久久久久久久久| 欧美三级在线播放| 亚洲成av人片在线观看| 欧美日韩视频不卡| 婷婷亚洲久悠悠色悠在线播放 | 大桥未久av一区二区三区中文| 久久理论电影网| 免费成人在线视频观看| 91.com视频| 九九热在线视频观看这里只有精品| 欧美狂野另类xxxxoooo| 日韩专区中文字幕一区二区| 欧美一区二区精美| 男女男精品视频网| 国产亚洲欧美一区在线观看| 国产久卡久卡久卡久卡视频精品| 国产日产欧美精品一区二区三区| 高清成人在线观看| 一区二区三区在线观看欧美| 欧美乱熟臀69xxxxxx| 免费精品视频在线| 国产视频一区二区在线观看| eeuss鲁一区二区三区| 亚洲视频免费观看| 91精品中文字幕一区二区三区| 欧美a级一区二区| 欧美国产一区视频在线观看| 91麻豆6部合集magnet| 午夜欧美一区二区三区在线播放| 日韩欧美久久久| 不卡的av在线播放| 亚洲超碰精品一区二区| 久久蜜桃一区二区| 色又黄又爽网站www久久| 日本sm残虐另类| 国产精品区一区二区三区| 欧美最新大片在线看| 久久福利视频一区二区| 亚洲色图欧洲色图婷婷| 欧美一级午夜免费电影| 不卡视频在线看| 视频在线在亚洲| 国产精品美女久久久久aⅴ| 欧美日韩国产精选| 国产精品综合二区| 亚洲国产综合人成综合网站| 久久久亚洲精品石原莉奈| 欧美艳星brazzers| 国产美女精品在线| 日产精品久久久久久久性色| 国产精品污网站| 日韩欧美一区在线观看| 91在线国内视频| 国产九色精品成人porny| 婷婷成人激情在线网| 综合电影一区二区三区| 精品成人一区二区三区四区| 欧美日韩久久久| eeuss影院一区二区三区| 成人一级黄色片| 婷婷国产在线综合| 亚洲精品第一国产综合野| 国产日韩欧美电影| 日韩一区二区在线观看| 欧美在线观看一区二区| 成人成人成人在线视频| 国内精品伊人久久久久影院对白| 午夜精品久久久久久久蜜桃app| 国产精品伦理在线| 精品久久久久久久久久久久包黑料| 在线欧美日韩国产| 成人性视频免费网站| 精品综合久久久久久8888| 亚洲国产色一区| 亚洲国产视频在线| 亚洲天堂精品视频| 国产精品国产馆在线真实露脸| 久久综合九色综合欧美亚洲| 日韩一区二区精品| 欧美一三区三区四区免费在线看 | 丰满白嫩尤物一区二区| 狠狠色丁香久久婷婷综| 蜜桃一区二区三区四区| 日韩中文字幕亚洲一区二区va在线 | 中文字幕乱码亚洲精品一区| 精品久久五月天| 欧美电影免费观看高清完整版在 | 中文字幕一区二区三区色视频 | av电影天堂一区二区在线观看| 国产在线播放一区二区三区| 久久99热这里只有精品| 日产精品久久久久久久性色| 日本女优在线视频一区二区| 日本不卡一区二区三区| 奇米精品一区二区三区在线观看| 国产一区二区视频在线| 日本网站在线观看一区二区三区| 日av在线不卡| 国产精品一区二区视频| 成人福利电影精品一区二区在线观看| 国产经典欧美精品| www.久久久久久久久| 色综合久久综合网97色综合| 欧洲国内综合视频| 91精品国产综合久久婷婷香蕉 | 欧美日韩大陆在线| 在线综合视频播放| 久久综合av免费| 国产精品福利在线播放| 亚洲国产视频一区| 美女尤物国产一区| 成人美女视频在线观看18| 色素色在线综合| 欧美卡1卡2卡| 国产情人综合久久777777| 亚洲三级在线观看| 美女脱光内衣内裤视频久久网站 | 亚洲女同女同女同女同女同69| 一区二区在线看| 极品少妇一区二区| www.性欧美| 日韩亚洲欧美综合| 国产精品久久久久影视| 一区二区免费在线| 久久99国产精品免费| 色一区在线观看| 久久男人中文字幕资源站| 亚洲精品菠萝久久久久久久| 极品销魂美女一区二区三区| 色综合视频一区二区三区高清| 欧美一区二区二区| 亚洲日韩欧美一区二区在线| 免费精品视频在线| 91在线看国产| 久久精品男人天堂av| 天天综合网天天综合色| 99久久精品久久久久久清纯| 欧美岛国在线观看| 亚洲一区av在线| 成a人片国产精品| 日韩精品中午字幕| 亚洲综合成人网| 成人av电影在线| 久久久综合九色合综国产精品| 亚洲一区中文日韩| 成人激情视频网站| 欧美电影免费观看高清完整版| 亚洲午夜精品在线| 99热99精品| 日本一区二区综合亚洲| 免费在线观看精品| 日韩一卡二卡三卡四卡| 亚洲日穴在线视频| 床上的激情91.| 久久久影视传媒| 久久99精品国产.久久久久久| 欧美日韩一区二区三区高清| 亚洲欧美另类在线| eeuss影院一区二区三区| 久久久www免费人成精品| 蜜乳av一区二区| 欧美一级欧美一级在线播放| 性做久久久久久久免费看| 在线视频你懂得一区二区三区| 亚洲色图视频网| 91欧美一区二区| 自拍av一区二区三区| 国产a久久麻豆| 国产精品免费看片| 成人精品小蝌蚪| 中文字幕在线不卡国产视频| 成人美女视频在线看| 中文字幕在线播放不卡一区| 懂色av一区二区三区免费观看| 欧美高清在线一区| 99麻豆久久久国产精品免费优播| 国产视频不卡一区|