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

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

?? cryptodev.h

?? linux下基于加密芯片的加密設備
?? H
字號:
/*	$FreeBSD: src/sys/opencrypto/cryptodev.h,v 1.9 2004/02/02 17:06:34 phk Exp $	*//*	$OpenBSD: cryptodev.h,v 1.31 2002/06/11 11:14:29 beck Exp $	*//* * The linux port of this code done by David McCullough <davidm@snapgear.com> * The license and original author are listed below. * Copyright (C) 2004 David McCullough <davidm@snapgear.com> * * The author of this code is Angelos D. Keromytis (angelos@cis.upenn.edu) * * This code was written by Angelos D. Keromytis in Athens, Greece, in * February 2000. Network Security Technologies Inc. (NSTI) kindly * supported the development of this code. * * Copyright (c) 2000 Angelos D. Keromytis * * Permission to use, copy, and modify this software with or without fee * is hereby granted, provided that this entire notice is included in * all source code copies of any software which is or includes a copy or * modification of this software. * * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR * IMPLIED WARRANTY. IN PARTICULAR, NONE OF THE AUTHORS MAKES ANY * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE * MERCHANTABILITY OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR * PURPOSE. * * Copyright (c) 2001 Theo de Raadt * * 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. The name of the author may not be used to endorse or promote products *   derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS 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 AUTHOR 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. * * Effort sponsored in part by the Defense Advanced Research Projects * Agency (DARPA) and Air Force Research Laboratory, Air Force * Materiel Command, USAF, under agreement number F30602-01-2-0537. * */#ifndef _CRYPTO_CRYPTO_H_#define _CRYPTO_CRYPTO_H_/* Some initial values */#define CRYPTO_DRIVERS_INITIAL	4#define CRYPTO_SW_SESSIONS	32/* HMAC values */#define HMAC_BLOCK_LEN		64#define HMAC_IPAD_VAL		0x36#define HMAC_OPAD_VAL		0x5C/* Encryption algorithm block sizes */#define DES_BLOCK_LEN		8#define DES3_BLOCK_LEN		8#define BLOWFISH_BLOCK_LEN	8#define SKIPJACK_BLOCK_LEN	8#define CAST128_BLOCK_LEN	8#define RIJNDAEL128_BLOCK_LEN	16#define EALG_MAX_BLOCK_LEN	16 /* Keep this updated *//* Maximum hash algorithm result length */#define AALG_MAX_RESULT_LEN	64 /* Keep this updated */#define	CRYPTO_ALGORITHM_MIN	1#define CRYPTO_DES_CBC		1#define CRYPTO_3DES_CBC		2#define CRYPTO_BLF_CBC		3#define CRYPTO_CAST_CBC		4#define CRYPTO_SKIPJACK_CBC	5#define CRYPTO_MD5_HMAC		6#define CRYPTO_SHA1_HMAC	7#define CRYPTO_RIPEMD160_HMAC	8#define CRYPTO_MD5_KPDK		9#define CRYPTO_SHA1_KPDK	10#define CRYPTO_RIJNDAEL128_CBC	11 /* 128 bit blocksize */#define CRYPTO_AES_CBC		11 /* 128 bit blocksize -- the same as above */#define CRYPTO_ARC4		12#define	CRYPTO_MD5		13#define	CRYPTO_SHA1		14#define	CRYPTO_SHA2_HMAC	15#define CRYPTO_NULL_HMAC	16#define CRYPTO_NULL_CBC		17#define CRYPTO_DEFLATE_COMP	18 /* Deflate compression algorithm */#define CRYPTO_ALGORITHM_MAX	18 /* Keep updated - see below *//* Algorithm flags */#define	CRYPTO_ALG_FLAG_SUPPORTED	0x01 /* Algorithm is supported */#define	CRYPTO_ALG_FLAG_RNG_ENABLE	0x02 /* Has HW RNG for DH/DSA */#define	CRYPTO_ALG_FLAG_DSA_SHA		0x04 /* Can do SHA on msg */struct session_op {	u_int32_t	cipher;		/* ie. CRYPTO_DES_CBC */	u_int32_t	mac;		/* ie. CRYPTO_MD5_HMAC */	u_int32_t	keylen;		/* cipher key */	caddr_t		key;	int		mackeylen;	/* mac key */	caddr_t		mackey;  	u_int32_t	ses;		/* returns: session # */ };struct crypt_op {	u_int32_t	ses;	u_int16_t	op;		/* i.e. COP_ENCRYPT */#define COP_ENCRYPT	1#define COP_DECRYPT	2	u_int16_t	flags;#define	COP_F_BATCH	0x0008		/* Batch op if possible */	u_int		len;	caddr_t		src, dst;	/* become iov[] inside kernel */	caddr_t		mac;		/* must be big enough for chosen MAC */	caddr_t		iv;};#define CRYPTO_MAX_MAC_LEN	20/* bignum parameter, in packed bytes, ... */struct crparam {	caddr_t		crp_p;	u_int		crp_nbits;};#define CRK_MAXPARAM	8struct crypt_kop {	u_int		crk_op;		/* ie. CRK_MOD_EXP or other */	u_int		crk_status;	/* return status */	u_short		crk_iparams;	/* # of input parameters */	u_short		crk_oparams;	/* # of output parameters */	u_int		crk_pad1;	struct crparam	crk_param[CRK_MAXPARAM];};#define	CRK_ALGORITM_MIN	0#define CRK_MOD_EXP		0#define CRK_MOD_EXP_CRT		1#define CRK_DSA_SIGN		2#define CRK_DSA_VERIFY		3#define CRK_DH_COMPUTE_KEY	4#define CRK_ALGORITHM_MAX	4 /* Keep updated - see below */#define CRF_MOD_EXP		(1 << CRK_MOD_EXP)#define CRF_MOD_EXP_CRT		(1 << CRK_MOD_EXP_CRT)#define CRF_DSA_SIGN		(1 << CRK_DSA_SIGN)#define CRF_DSA_VERIFY		(1 << CRK_DSA_VERIFY)#define CRF_DH_COMPUTE_KEY	(1 << CRK_DH_COMPUTE_KEY)/* * done against open of /dev/crypto, to get a cloned descriptor. * Please use F_SETFD against the cloned descriptor. */#define	CRIOGET		_IOWR('c', 100, u_int32_t)/* the following are done against the cloned descriptor */#define	CIOCGSESSION	_IOWR('c', 101, struct session_op)#define	CIOCFSESSION	_IOW('c', 102, u_int32_t)#define CIOCCRYPT	_IOWR('c', 103, struct crypt_op)#define CIOCKEY		_IOWR('c', 104, struct crypt_kop)#define CIOCASYMFEAT	_IOR('c', 105, u_int32_t)struct cryptotstat {	struct timespec	acc;		/* total accumulated time */	struct timespec	min;		/* min time */	struct timespec	max;		/* max time */	u_int32_t	count;		/* number of observations */};struct cryptostats {	u_int32_t	cs_ops;		/* symmetric crypto ops submitted */	u_int32_t	cs_errs;	/* symmetric crypto ops that failed */	u_int32_t	cs_kops;	/* asymetric/key ops submitted */	u_int32_t	cs_kerrs;	/* asymetric/key ops that failed */	u_int32_t	cs_intrs;	/* crypto swi thread activations */	u_int32_t	cs_rets;	/* crypto return thread activations */	u_int32_t	cs_blocks;	/* symmetric op driver block */	u_int32_t	cs_kblocks;	/* symmetric op driver block */	/*	 * When CRYPTO_TIMING is defined at compile time and the	 * sysctl debug.crypto is set to 1, the crypto system will	 * accumulate statistics about how long it takes to process	 * crypto requests at various points during processing.	 */	struct cryptotstat cs_invoke;	/* crypto_dipsatch -> crypto_invoke */	struct cryptotstat cs_done;	/* crypto_invoke -> crypto_done */	struct cryptotstat cs_cb;	/* crypto_done -> callback */	struct cryptotstat cs_finis;	/* callback -> callback return */};#ifdef __KERNEL__/* Standard initialization structure beginning */struct cryptoini {	int		cri_alg;	/* Algorithm to use */	int		cri_klen;	/* Key length, in bits */	int		cri_rnd;	/* Algorithm rounds, where relevant */	caddr_t		cri_key;	/* key to use */	u_int8_t	cri_iv[EALG_MAX_BLOCK_LEN];	/* IV to use */	struct cryptoini *cri_next;};/* Describe boundaries of a single crypto operation */struct cryptodesc {	int		crd_skip;	/* How many bytes to ignore from start */	int		crd_len;	/* How many bytes to process */	int		crd_inject;	/* Where to inject results, if applicable */	int		crd_flags;#define	CRD_F_ENCRYPT		0x01	/* Set when doing encryption */#define	CRD_F_IV_PRESENT	0x02	/* When encrypting, IV is already in					   place, so don't copy. */#define	CRD_F_IV_EXPLICIT	0x04	/* IV explicitly provided */#define	CRD_F_DSA_SHA_NEEDED	0x08	/* Compute SHA-1 of buffer for DSA */#define	CRD_F_KEY_EXPLICIT	0x10	/* Key explicitly provided */#define CRD_F_COMP		0x0f    /* Set when doing compression */	struct cryptoini	CRD_INI; /* Initialization/context data */#define crd_iv		CRD_INI.cri_iv#define crd_key		CRD_INI.cri_key#define crd_rnd		CRD_INI.cri_rnd#define crd_alg		CRD_INI.cri_alg#define crd_klen	CRD_INI.cri_klen	struct cryptodesc *crd_next;};/* Structure describing complete operation */struct cryptop {	struct list_head crp_list;	wait_queue_head_t crp_waitq;	u_int64_t	crp_sid;	/* Session ID */	int		crp_ilen;	/* Input data total length */	int		crp_olen;	/* Result total length */	int		crp_etype;	/*					 * Error type (zero means no error).					 * All error codes except EAGAIN					 * indicate possible data corruption (as in,					 * the data have been touched). On all					 * errors, the crp_sid may have changed					 * (reset to a new one), so the caller					 * should always check and use the new					 * value on future requests.					 */	int		crp_flags;#define CRYPTO_F_IMBUF		0x0001	/* Input/output are mbuf chains */#define CRYPTO_F_IOV		0x0002	/* Input/output are uio */#define CRYPTO_F_REL		0x0004	/* Must return data in same place */#define	CRYPTO_F_BATCH		0x0008	/* Batch op if possible */#define	CRYPTO_F_CBIMM		0x0010	/* Do callback immediately */#define	CRYPTO_F_DONE		0x0020	/* Operation completed */#define	CRYPTO_F_CBIFSYNC	0x0040	/* Do CBIMM if op is synchronous */	caddr_t		crp_buf;	/* Data to be processed */	caddr_t		crp_opaque;	/* Opaque pointer, passed along */	struct cryptodesc *crp_desc;	/* Linked list of processing descriptors */	int (*crp_callback)(struct cryptop *); /* Callback function */	caddr_t		crp_mac;};#define CRYPTO_BUF_CONTIG	0x0#define CRYPTO_BUF_IOV		0x1#define CRYPTO_BUF_MBUF		0x2#define CRYPTO_OP_DECRYPT	0x0#define CRYPTO_OP_ENCRYPT	0x1/* * Hints passed to process methods. */#define	CRYPTO_HINT_MORE	0x1	/* more ops coming shortly */struct cryptkop {	struct list_head krp_list;	wait_queue_head_t krp_waitq;	u_int		krp_op;		/* ie. CRK_MOD_EXP or other */	u_int		krp_status;	/* return status */	u_short		krp_iparams;	/* # of input parameters */	u_short		krp_oparams;	/* # of output parameters */	u_int32_t	krp_hid;	struct crparam	krp_param[CRK_MAXPARAM];	/* kvm */	int		(*krp_callback)(struct cryptkop *);};/* Crypto capabilities structure */struct cryptocap {	u_int32_t	cc_sessions;	/*	 * Largest possible operator length (in bits) for each type of	 * encryption algorithm.	 */	u_int16_t	cc_max_op_len[CRYPTO_ALGORITHM_MAX + 1];	u_int8_t	cc_alg[CRYPTO_ALGORITHM_MAX + 1];	u_int8_t	cc_kalg[CRK_ALGORITHM_MAX + 1];	u_int8_t	cc_flags;	u_int8_t	cc_qblocked;		/* symmetric q blocked */	u_int8_t	cc_kqblocked;		/* asymmetric q blocked */#define CRYPTOCAP_F_CLEANUP	0x01		/* needs resource cleanup */#define CRYPTOCAP_F_SOFTWARE	0x02		/* software implementation */#define CRYPTOCAP_F_SYNC	0x04		/* operates synchronously */	void		*cc_arg;		/* callback argument */	int		(*cc_newsession)(void*, u_int32_t*, struct cryptoini*);	int		(*cc_process)(void*, struct cryptop *, int);	int		(*cc_freesession)(void*, u_int64_t);	void		*cc_karg;		/* callback argument */	int		(*cc_kprocess) (void*, struct cryptkop *, int);};/* * Session ids are 64 bits.  The lower 32 bits contain a "local id" which * is a driver-private session identifier.  The upper 32 bits contain a * "hardware id" used by the core crypto code to identify the driver and * a copy of the driver's capabilities that can be used by client code to * optimize operation. */#define	CRYPTO_SESID2HID(_sid)	(((_sid) >> 32) & 0xffffff)#define	CRYPTO_SESID2CAPS(_sid)	(((_sid) >> 56) & 0xff)#define	CRYPTO_SESID2LID(_sid)	(((u_int32_t) (_sid)) & 0xffffffff)extern	int crypto_newsession(u_int64_t *sid, struct cryptoini *cri, int hard);extern	int crypto_freesession(u_int64_t sid);extern	int32_t crypto_get_driverid(u_int32_t flags);extern	int crypto_register(u_int32_t driverid, int alg, u_int16_t maxoplen,	    u_int32_t flags,	    int (*newses)(void*, u_int32_t*, struct cryptoini*),	    int (*freeses)(void*, u_int64_t),	    int (*process)(void*, struct cryptop *, int),	    void *arg);extern	int crypto_kregister(u_int32_t, int, u_int32_t,	    int (*)(void*, struct cryptkop *, int),	    void *arg);extern	int crypto_unregister(u_int32_t driverid, int alg);extern	int crypto_unregister_all(u_int32_t driverid);extern	int crypto_dispatch(struct cryptop *crp);extern	int crypto_kdispatch(struct cryptkop *);#define	CRYPTO_SYMQ	0x1#define	CRYPTO_ASYMQ	0x2extern	int crypto_unblock(u_int32_t, int);extern	void crypto_done(struct cryptop *crp);extern	void crypto_kdone(struct cryptkop *);extern	int crypto_getfeat(int *);extern	void crypto_freereq(struct cryptop *crp);extern	struct cryptop *crypto_getreq(int num);extern	int crypto_usercrypto;		/* userland may do crypto requests */extern	int crypto_userasymcrypto;	/* userland may do asym crypto reqs */extern	int crypto_devallowsoft;	/* only use hardware crypto *//* * Crypto-related utility routines used mainly by drivers. * * XXX these don't really belong here; but for now they're *     kept apart from the rest of the system. */struct uio;extern	void cuio_copydata(struct uio* uio, int off, int len, caddr_t cp);extern	void cuio_copyback(struct uio* uio, int off, int len, caddr_t cp);extern	struct iovec *cuio_getptr(struct uio *uio, int loc, int *off);/* * common debug for all */#if 1#define dprintk(a...)	if (debug) { printk(a); } else#else#define dprintk(a...)#endif#endif /* __KERNEL__ */#endif /* _CRYPTO_CRYPTO_H_ */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美三级日本三级少妇99| 一区二区三区不卡视频| 91国产免费看| 激情综合网天天干| 亚洲精品久久7777| 国产亚洲女人久久久久毛片| 色av一区二区| 丁香啪啪综合成人亚洲小说| 日韩二区在线观看| 一区二区三区在线免费| 国产欧美中文在线| 欧美一级专区免费大片| 91一区二区在线观看| 黄色成人免费在线| 日韩福利电影在线观看| 一区二区三区成人| 国产精品入口麻豆九色| 日韩欧美的一区二区| 欧美精品日韩一区| 欧美性猛片xxxx免费看久爱| 成人app下载| 成人永久aaa| 国产麻豆视频精品| 精品综合久久久久久8888| 亚洲色图欧美在线| 琪琪一区二区三区| 视频在线观看91| 国产河南妇女毛片精品久久久 | 欧美国产精品专区| 欧美在线免费视屏| 久久不见久久见免费视频7 | 久久久久久久精| 91精品国产手机| 色婷婷香蕉在线一区二区| 午夜视频一区在线观看| 制服.丝袜.亚洲.中文.综合| 亚洲欧洲国产日本综合| 欧美一区二区女人| 91精品综合久久久久久| 91日韩精品一区| 91日韩在线专区| 在线一区二区视频| 欧美va亚洲va国产综合| 亚洲免费伊人电影| 国产尤物一区二区| 亚洲国产精品传媒在线观看| 免费成人av在线| 精品视频一区二区不卡| 国产精品国产三级国产| 成人sese在线| 久久精品亚洲精品国产欧美kt∨ | 欧美精品18+| 不卡视频在线观看| 一本色道久久综合狠狠躁的推荐| av电影在线观看不卡| 91影视在线播放| 色综合久久综合中文综合网| 欧美日韩免费观看一区二区三区| 欧美日韩中文国产| 久久综合九色欧美综合狠狠 | 亚洲午夜久久久久中文字幕久| 91色视频在线| 激情小说亚洲一区| 国产一区视频在线看| 国产老女人精品毛片久久| 成人一区在线观看| 色老头久久综合| 欧美一区永久视频免费观看| 26uuu国产一区二区三区| 国产精品系列在线| 亚洲一二三四区不卡| 免费在线欧美视频| 丁香亚洲综合激情啪啪综合| 欧美手机在线视频| 久久久亚洲综合| 亚洲视频在线一区| 日本在线不卡视频一二三区| 国产精品99久久久久久似苏梦涵| 99re成人精品视频| 欧美一区二区不卡视频| 国产精品久久国产精麻豆99网站| 夜夜精品视频一区二区| 久久精品噜噜噜成人88aⅴ| 成人黄色软件下载| 日韩一区二区在线观看视频播放| 日本一区二区免费在线观看视频| 亚洲精品水蜜桃| 精品亚洲国产成人av制服丝袜| 成人福利视频在线看| 91精品国产高清一区二区三区| 欧美极品aⅴ影院| 日日欢夜夜爽一区| 91在线观看地址| 26uuuu精品一区二区| 亚洲黄一区二区三区| 激情成人午夜视频| 欧美男同性恋视频网站| 成人欧美一区二区三区小说| 美国毛片一区二区三区| 91在线播放网址| 久久久欧美精品sm网站| 亚洲aaa精品| 99国产精品国产精品久久| 久久精品一级爱片| 丝袜诱惑亚洲看片| 色综合天天综合在线视频| 国产亚洲欧美日韩日本| 日韩激情视频网站| 日本乱码高清不卡字幕| 中文字幕av资源一区| 免费亚洲电影在线| 欧美撒尿777hd撒尿| 中文字幕在线一区免费| 激情欧美日韩一区二区| 在线电影国产精品| 亚洲狠狠爱一区二区三区| 99国内精品久久| 国产精品久久久久桃色tv| 狠狠狠色丁香婷婷综合久久五月| 欧美日韩国产高清一区二区| 一区二区三区鲁丝不卡| 91在线云播放| 亚洲欧洲另类国产综合| 成人午夜av影视| 国产日韩精品视频一区| 国产自产2019最新不卡| 精品三级在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美日韩性生活| 亚洲成人av电影在线| 在线欧美小视频| 亚洲综合丁香婷婷六月香| 91国内精品野花午夜精品| 一个色妞综合视频在线观看| 欧美午夜宅男影院| 亚洲无人区一区| 欧美日韩一二三区| 天堂成人国产精品一区| 日韩一区二区视频| 久久99国产精品免费网站| 精品福利在线导航| 国产一区二区三区香蕉| 国产欧美一区二区精品秋霞影院 | 91麻豆精品国产91久久久使用方法 | 91看片淫黄大片一级| 亚洲欧洲日本在线| 色八戒一区二区三区| 一区二区在线观看视频| 色欧美乱欧美15图片| 一区二区三区在线视频观看| 欧美亚洲综合久久| 日韩av在线免费观看不卡| 欧美大肚乱孕交hd孕妇| 国产乱人伦偷精品视频不卡| 欧美国产欧美综合| 91传媒视频在线播放| 婷婷开心激情综合| 日韩精品一区二区三区中文不卡 | 综合激情成人伊人| 欧美性色欧美a在线播放| 丝袜美腿亚洲色图| 日韩精品资源二区在线| 国产91在线|亚洲| 亚洲区小说区图片区qvod| 欧美在线免费视屏| 理论片日本一区| 国产欧美精品区一区二区三区 | 欧美在线不卡一区| 美国十次了思思久久精品导航| 久久久久久久免费视频了| 国产ts人妖一区二区| 一区二区三区不卡视频| 日韩欧美色电影| 成人av资源站| 天天影视网天天综合色在线播放| 欧美大片免费久久精品三p| 国产成人精品亚洲午夜麻豆| 亚洲在线视频一区| 欧美mv日韩mv| 91久久精品日日躁夜夜躁欧美| 日韩av电影免费观看高清完整版 | 肉丝袜脚交视频一区二区| 久久久综合精品| 欧美色网站导航| 韩国视频一区二区| 亚洲一区二区av在线| 久久综合久色欧美综合狠狠| 欧美午夜影院一区| 国产盗摄一区二区| 午夜精品久久一牛影视| 国产日韩高清在线| 欧美一区午夜视频在线观看| 91小视频在线| 国产曰批免费观看久久久| 亚洲一区在线播放| 中文字幕乱码日本亚洲一区二区| 欧美日韩亚洲国产综合| av不卡在线播放| 国产精品69久久久久水密桃| 三级一区在线视频先锋|