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

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

?? md32_common.h

?? Openssl的常用頭文件
?? H
?? 第 1 頁 / 共 2 頁
字號:
/* crypto/md32_common.h *//* ==================================================================== * Copyright (c) 1999 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 *    licensing@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). * *//* * This is a generic 32 bit "collector" for message digest algorithms. * Whenever needed it collects input character stream into chunks of * 32 bit values and invokes a block function that performs actual hash * calculations. * * Porting guide. * * Obligatory macros: * * DATA_ORDER_IS_BIG_ENDIAN or DATA_ORDER_IS_LITTLE_ENDIAN *	this macro defines byte order of input stream. * HASH_CBLOCK *	size of a unit chunk HASH_BLOCK operates on. * HASH_LONG *	has to be at lest 32 bit wide, if it's wider, then *	HASH_LONG_LOG2 *has to* be defined along * HASH_CTX *	context structure that at least contains following *	members: *		typedef struct { *			... *			HASH_LONG	Nl,Nh; *			HASH_LONG	data[HASH_LBLOCK]; *			int		num; *			... *			} HASH_CTX; * HASH_UPDATE *	name of "Update" function, implemented here. * HASH_TRANSFORM *	name of "Transform" function, implemented here. * HASH_FINAL *	name of "Final" function, implemented here. * HASH_BLOCK_HOST_ORDER *	name of "block" function treating *aligned* input message *	in host byte order, implemented externally. * HASH_BLOCK_DATA_ORDER *	name of "block" function treating *unaligned* input message *	in original (data) byte order, implemented externally (it *	actually is optional if data and host are of the same *	"endianess"). * HASH_MAKE_STRING *	macro convering context variables to an ASCII hash string. * * Optional macros: * * B_ENDIAN or L_ENDIAN *	defines host byte-order. * HASH_LONG_LOG2 *	defaults to 2 if not states otherwise. * HASH_LBLOCK *	assumed to be HASH_CBLOCK/4 if not stated otherwise. * HASH_BLOCK_DATA_ORDER_ALIGNED *	alternative "block" function capable of treating *	aligned input message in original (data) order, *	implemented externally. * * MD5 example: * *	#define DATA_ORDER_IS_LITTLE_ENDIAN * *	#define HASH_LONG		MD5_LONG *	#define HASH_LONG_LOG2		MD5_LONG_LOG2 *	#define HASH_CTX		MD5_CTX *	#define HASH_CBLOCK		MD5_CBLOCK *	#define HASH_LBLOCK		MD5_LBLOCK *	#define HASH_UPDATE		MD5_Update *	#define HASH_TRANSFORM		MD5_Transform *	#define HASH_FINAL		MD5_Final *	#define HASH_BLOCK_HOST_ORDER	md5_block_host_order *	#define HASH_BLOCK_DATA_ORDER	md5_block_data_order * *					<appro@fy.chalmers.se> */#if !defined(DATA_ORDER_IS_BIG_ENDIAN) && !defined(DATA_ORDER_IS_LITTLE_ENDIAN)#error "DATA_ORDER must be defined!"#endif#ifndef HASH_CBLOCK#error "HASH_CBLOCK must be defined!"#endif#ifndef HASH_LONG#error "HASH_LONG must be defined!"#endif#ifndef HASH_CTX#error "HASH_CTX must be defined!"#endif#ifndef HASH_UPDATE#error "HASH_UPDATE must be defined!"#endif#ifndef HASH_TRANSFORM#error "HASH_TRANSFORM must be defined!"#endif#ifndef HASH_FINAL#error "HASH_FINAL must be defined!"#endif#ifndef HASH_BLOCK_HOST_ORDER#error "HASH_BLOCK_HOST_ORDER must be defined!"#endif#if 0/* * Moved below as it's required only if HASH_BLOCK_DATA_ORDER_ALIGNED * isn't defined. */#ifndef HASH_BLOCK_DATA_ORDER#error "HASH_BLOCK_DATA_ORDER must be defined!"#endif#endif#ifndef HASH_LBLOCK#define HASH_LBLOCK	(HASH_CBLOCK/4)#endif#ifndef HASH_LONG_LOG2#define HASH_LONG_LOG2	2#endif/* * Engage compiler specific rotate intrinsic function if available. */#undef ROTATE#ifndef PEDANTIC# if defined(_MSC_VER)#  define ROTATE(a,n)	_lrotl(a,n)# elif defined(__MWERKS__)#  if defined(__POWERPC__)#   define ROTATE(a,n)	__rlwinm(a,n,0,31)#  elif defined(__MC68K__)    /* Motorola specific tweak. <appro@fy.chalmers.se> */#   define ROTATE(a,n)	( n<24 ? __rol(a,n) : __ror(a,32-n) )#  else#   define ROTATE(a,n)	__rol(a,n)#  endif# elif defined(__GNUC__) && __GNUC__>=2 && !defined(NO_ASM) && !defined(NO_INLINE_ASM)  /*   * Some GNU C inline assembler templates. Note that these are   * rotates by *constant* number of bits! But that's exactly   * what we need here...   *   * 					<appro@fy.chalmers.se>   */#  if defined(__i386) || defined(__i386__)#   define ROTATE(a,n)	({ register unsigned int ret;	\				asm (			\				"roll %1,%0"		\				: "=r"(ret)		\				: "I"(n), "0"(a)	\				: "cc");		\			   ret;				\			})#  elif defined(__powerpc) || defined(__ppc)#   define ROTATE(a,n)	({ register unsigned int ret;	\				asm (			\				"rlwinm %0,%1,%2,0,31"	\				: "=r"(ret)		\				: "r"(a), "I"(n));	\			   ret;				\			})#  endif# endif/* * Engage compiler specific "fetch in reverse byte order" * intrinsic function if available. */# if defined(__GNUC__) && __GNUC__>=2 && !defined(NO_ASM) && !defined(NO_INLINE_ASM)  /* some GNU C inline assembler templates by <appro@fy.chalmers.se> */#  if (defined(__i386) || defined(__i386__)) && !defined(I386_ONLY)#   define BE_FETCH32(a)	({ register unsigned int l=(a);\				asm (			\				"bswapl %0"		\				: "=r"(l) : "0"(l));	\			  l;				\			})#  elif defined(__powerpc)#   define LE_FETCH32(a)	({ register unsigned int l;	\				asm (			\				"lwbrx %0,0,%1"		\				: "=r"(l)		\				: "r"(a));		\			   l;				\			})#  elif defined(__sparc) && defined(ULTRASPARC)#  define LE_FETCH32(a)	({ register unsigned int l;		\				asm (				\				"lda [%1]#ASI_PRIMARY_LITTLE,%0"\				: "=r"(l)			\				: "r"(a));			\			   l;					\			})#  endif# endif#endif /* PEDANTIC */#if HASH_LONG_LOG2==2	/* Engage only if sizeof(HASH_LONG)== 4 *//* A nice byte order reversal from Wei Dai <weidai@eskimo.com> */#ifdef ROTATE/* 5 instructions with rotate instruction, else 9 */#define REVERSE_FETCH32(a,l)	(					\		l=*(const HASH_LONG *)(a),				\		((ROTATE(l,8)&0x00FF00FF)|(ROTATE((l&0x00FF00FF),24)))	\				)#else/* 6 instructions with rotate instruction, else 8 */#define REVERSE_FETCH32(a,l)	(				\		l=*(const HASH_LONG *)(a),			\		l=(((l>>8)&0x00FF00FF)|((l&0x00FF00FF)<<8)),	\		ROTATE(l,16)					\				)/* * Originally the middle line started with l=(((l&0xFF00FF00)>>8)|... * It's rewritten as above for two reasons: *	- RISCs aren't good at long constants and have to explicitely *	  compose 'em with several (well, usually 2) instructions in a *	  register before performing the actual operation and (as you *	  already realized:-) having same constant should inspire the *	  compiler to permanently allocate the only register for it; *	- most modern CPUs have two ALUs, but usually only one has *	  circuitry for shifts:-( this minor tweak inspires compiler *	  to schedule shift instructions in a better way... * *				<appro@fy.chalmers.se> */#endif#endif#ifndef ROTATE#define ROTATE(a,n)     (((a)<<(n))|(((a)&0xffffffff)>>(32-(n))))#endif/* * Make some obvious choices. E.g., HASH_BLOCK_DATA_ORDER_ALIGNED * and HASH_BLOCK_HOST_ORDER ought to be the same if input data * and host are of the same "endianess". It's possible to mask * this with blank #define HASH_BLOCK_DATA_ORDER though... * *				<appro@fy.chalmers.se> */#if defined(B_ENDIAN)#  if defined(DATA_ORDER_IS_BIG_ENDIAN)#    if !defined(HASH_BLOCK_DATA_ORDER_ALIGNED) && HASH_LONG_LOG2==2#      define HASH_BLOCK_DATA_ORDER_ALIGNED	HASH_BLOCK_HOST_ORDER#    endif#  elif defined(DATA_ORDER_IS_LITTLE_ENDIAN)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕免费观看一区| 午夜精品视频在线观看| 有坂深雪av一区二区精品| 日本免费新一区视频| 91老师国产黑色丝袜在线| 亚洲欧美影音先锋| 91精品国产综合久久久久久久| 调教+趴+乳夹+国产+精品| 日韩精品一区二区在线观看| 日韩影视精彩在线| 欧美二区三区的天堂| 婷婷六月综合亚洲| 精品国产伦一区二区三区免费| 激情久久五月天| 久久一区二区视频| 激情久久久久久久久久久久久久久久| 在线国产亚洲欧美| 亚洲自拍都市欧美小说| 欧美一级夜夜爽| 懂色av中文一区二区三区 | 亚洲色图欧美激情| 国产午夜精品在线观看| 欧美男女性生活在线直播观看| 国产一区二区三区在线观看免费 | 综合久久久久久| 欧美色电影在线| 97久久超碰国产精品| 国产高清不卡二三区| 亚洲成年人网站在线观看| 一区二区三区四区在线免费观看 | 国产成人精品免费视频网站| 一本大道久久a久久综合婷婷| 日韩毛片一二三区| 一区二区中文视频| 亚洲欧美另类小说视频| 中文字幕在线不卡一区| 国产精品福利一区二区三区| 亚洲欧洲精品一区二区三区| 一区二区三区四区在线免费观看| 香港成人在线视频| 色天天综合色天天久久| 亚洲三级免费观看| 国产精品久久99| 亚洲成人福利片| 国产91精品一区二区麻豆网站| 狠狠网亚洲精品| 国产成人精品一区二区三区四区| 日本欧美大码aⅴ在线播放| 秋霞午夜av一区二区三区| 日本不卡在线视频| 国产精品一区一区| 欧美精品乱码久久久久久按摩| 亚洲视频香蕉人妖| 97成人超碰视| 欧美人妇做爰xxxⅹ性高电影| 国产欧美精品一区| 国产电影精品久久禁18| 久久久蜜桃精品| 国产精品一二三在| 精品国产乱码久久久久久1区2区| 亚洲小少妇裸体bbw| 91超碰这里只有精品国产| 精品国产乱码久久久久久影片| 亚洲午夜久久久久久久久电影网| 国产很黄免费观看久久| 久久看人人爽人人| 免费黄网站欧美| 亚洲人妖av一区二区| 99久精品国产| 欧美成人精品高清在线播放| 亚洲一区二区三区四区五区黄| 成人国产精品免费观看动漫 | 国内外精品视频| 91精品国产aⅴ一区二区| 日韩在线一二三区| 日韩欧美中文一区二区| 国产剧情在线观看一区二区| 久久久久久**毛片大全| 国产.欧美.日韩| 亚洲欧美激情插| 欧美人妖巨大在线| 久久国产精品无码网站| 国产精品色噜噜| www.日韩在线| 成人免费不卡视频| 极品少妇xxxx精品少妇| 亚洲精品免费一二三区| 国产精品自拍一区| 亚洲精品中文字幕在线观看| 精品剧情v国产在线观看在线| 国产乱淫av一区二区三区| 国产精品九色蝌蚪自拍| 日韩一区二区三区视频| 99精品视频中文字幕| 国产麻豆午夜三级精品| 天堂久久久久va久久久久| 国产精品国产三级国产aⅴ无密码| 欧美午夜精品一区二区蜜桃| 成人av电影在线| 激情综合亚洲精品| 国产aⅴ综合色| 日本高清成人免费播放| 欧美高清激情brazzers| 久久美女高清视频| 亚洲精品五月天| 国产福利91精品| 欧美一区二区国产| 国产精品免费av| 天堂一区二区在线免费观看| 国产99久久精品| 6080亚洲精品一区二区| 日韩一区在线播放| 中文字幕av不卡| 亚洲欧美激情视频在线观看一区二区三区 | 亚洲国产毛片aaaaa无费看| 日本一区二区成人在线| 国产精品护士白丝一区av| 亚洲欧美电影一区二区| 日韩和欧美的一区| 久久成人18免费观看| 国产福利一区在线| 日本不卡在线视频| 成人av网站在线观看| 7777精品伊人久久久大香线蕉完整版| 久久婷婷久久一区二区三区| 亚洲国产成人porn| 亚洲综合免费观看高清完整版在线 | 自拍偷自拍亚洲精品播放| 亚洲天堂网中文字| 日韩**一区毛片| 国产不卡免费视频| 欧美日韩日日摸| 精品女同一区二区| 一区二区三区精品视频在线| 天天影视涩香欲综合网 | 国内不卡的二区三区中文字幕| 成人午夜av影视| 欧美电视剧在线观看完整版| 国产欧美一区二区精品忘忧草| 亚洲精品国产无天堂网2021| 麻豆精品新av中文字幕| 不卡av电影在线播放| 欧美喷潮久久久xxxxx| 2022国产精品视频| 亚洲国产精品麻豆| 精品午夜一区二区三区在线观看 | 欧美精品在线视频| 中文字幕乱码日本亚洲一区二区| 午夜欧美在线一二页| 国产在线精品不卡| 欧美喷水一区二区| 国产精品免费视频一区| 国产精品一区二区在线观看网站| 色综合 综合色| 日韩一级视频免费观看在线| 国产精品伦一区| 综合色天天鬼久久鬼色| 狠狠色丁香久久婷婷综合丁香| 91老司机福利 在线| 最新欧美精品一区二区三区| 激情六月婷婷久久| 777久久久精品| 日韩精品免费视频人成| 色天使久久综合网天天| 亚洲毛片av在线| 在线一区二区三区四区五区 | 91精品国产色综合久久| 日韩电影免费一区| 欧美另类z0zxhd电影| 一区二区在线观看视频| 97se亚洲国产综合自在线不卡| 亚洲欧洲成人自拍| 在线观看日产精品| 图片区日韩欧美亚洲| 色噜噜狠狠成人中文综合| 午夜精品一区在线观看| 在线精品观看国产| 亚洲电影欧美电影有声小说| 欧美一区二区视频免费观看| 裸体一区二区三区| 国产欧美一区二区精品性色| av亚洲精华国产精华精| 琪琪久久久久日韩精品| 99久久伊人网影院| 激情久久五月天| 精品奇米国产一区二区三区| 91视视频在线观看入口直接观看www| 欧美成人艳星乳罩| 另类小说色综合网站| 欧美视频在线观看一区二区| 亚洲国产精品欧美一二99 | 日本视频在线一区| 久久综合久久鬼色中文字| 色综合久久久久久久久| 欧美日韩一区二区三区免费看| 国产日产欧产精品推荐色| 国产在线乱码一区二区三区| 欧美日韩日日骚| 亚洲最大成人综合| 在线观看亚洲专区|