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

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

?? misc.h

?? 常用字符串hash算法
?? H
?? 第 1 頁 / 共 2 頁
字號:
#ifndef CRYPTOPP_MISC_H#define CRYPTOPP_MISC_H#include "config.h"#include "cryptlib.h"#include <assert.h>#include <string.h>		// CodeWarrior doesn't have memory.h#include <algorithm>#include <string>#ifdef INTEL_INTRINSICS#include <stdlib.h>#endifNAMESPACE_BEGIN(CryptoPP)// ************** compile-time assertion ***************template <bool b>struct CompileAssert{	static char dummy[2*b-1];};#define CRYPTOPP_COMPILE_ASSERT(assertion) CRYPTOPP_COMPILE_ASSERT_INSTANCE(assertion, __LINE__)#define CRYPTOPP_COMPILE_ASSERT_INSTANCE(assertion, instance) static CompileAssert<(assertion)> CRYPTOPP_ASSERT_JOIN(cryptopp_assert_, instance)#define CRYPTOPP_ASSERT_JOIN(X, Y) CRYPTOPP_DO_ASSERT_JOIN(X, Y)#define CRYPTOPP_DO_ASSERT_JOIN(X, Y) X##Y// ************** misc classes ***************class Empty{};template <class BASE1, class BASE2>class TwoBases : public BASE1, public BASE2{};template <class BASE1, class BASE2, class BASE3>class ThreeBases : public BASE1, public BASE2, public BASE3{};template <class T>class ObjectHolder{protected:	T m_object;};class NotCopyable{public:	NotCopyable() {}private:    NotCopyable(const NotCopyable &);    void operator=(const NotCopyable &);};// ************** misc functions ***************// can't use std::min or std::max in MSVC60 or Cygwin 1.1.0template <class _Tp> inline const _Tp& STDMIN(const _Tp& __a, const _Tp& __b){	return __b < __a ? __b : __a;}template <class _Tp> inline const _Tp& STDMAX(const _Tp& __a, const _Tp& __b){	return  __a < __b ? __b : __a;}#define RETURN_IF_NONZERO(x) unsigned int returnedValue = x; if (returnedValue) return returnedValue// this version of the macro is fastest on Pentium 3 and Pentium 4 with MSVC 6 SP5 w/ Processor Pack#define GETBYTE(x, y) (unsigned int)byte((x)>>(8*(y)))// these may be faster on other CPUs/compilers// #define GETBYTE(x, y) (unsigned int)(((x)>>(8*(y)))&255)// #define GETBYTE(x, y) (((byte *)&(x))[y])unsigned int Parity(unsigned long);unsigned int BytePrecision(unsigned long);unsigned int BitPrecision(unsigned long);unsigned long Crop(unsigned long, unsigned int size);inline unsigned int BitsToBytes(unsigned int bitCount){	return ((bitCount+7)/(8));}inline unsigned int BytesToWords(unsigned int byteCount){	return ((byteCount+WORD_SIZE-1)/WORD_SIZE);}inline unsigned int BitsToWords(unsigned int bitCount){	return ((bitCount+WORD_BITS-1)/(WORD_BITS));}void xorbuf(byte *buf, const byte *mask, unsigned int count);void xorbuf(byte *output, const byte *input, const byte *mask, unsigned int count);template <class T>inline bool IsPowerOf2(T n){	return n > 0 && (n & (n-1)) == 0;}template <class T1, class T2>inline T2 ModPowerOf2(T1 a, T2 b){	assert(IsPowerOf2(b));	return T2(a) & (b-1);}template <class T>inline T RoundDownToMultipleOf(T n, T m){	return n - (IsPowerOf2(m) ? ModPowerOf2(n, m) : (n%m));}template <class T>inline T RoundUpToMultipleOf(T n, T m){	return RoundDownToMultipleOf(n+m-1, m);}template <class T>inline unsigned int GetAlignment(T *dummy=NULL)	// VC60 workaround{#if (_MSC_VER >= 1300)	return __alignof(T);#elif defined(__GNUC__)	return __alignof__(T);#else	return sizeof(T);#endif}inline bool IsAlignedOn(const void *p, unsigned int alignment){	return IsPowerOf2(alignment) ? ModPowerOf2((unsigned int)p, alignment) == 0 : (unsigned int)p % alignment == 0;}template <class T>inline bool IsAligned(const void *p, T *dummy=NULL)	// VC60 workaround{	return IsAlignedOn(p, GetAlignment<T>());}#ifdef IS_LITTLE_ENDIAN	typedef LittleEndian NativeByteOrder;#else	typedef BigEndian NativeByteOrder;#endifinline ByteOrder GetNativeByteOrder(){	return NativeByteOrder::ToEnum();}inline bool NativeByteOrderIs(ByteOrder order){	return order == GetNativeByteOrder();}template <class T>		// can't use <sstream> because GCC 2.95.2 doesn't have itstd::string IntToString(T a, unsigned int base = 10){	if (a == 0)		return "0";	bool negate = false;	if (a < 0)	{		negate = true;		a = 0-a;	// VC .NET does not like -a	}	std::string result;	while (a > 0)	{		T digit = a % base;		result = char((digit < 10 ? '0' : ('a' - 10)) + digit) + result;		a /= base;	}	if (negate)		result = "-" + result;	return result;}template <class T1, class T2>inline T1 SaturatingSubtract(T1 a, T2 b){	CRYPTOPP_COMPILE_ASSERT_INSTANCE(T1(-1)>0, 0);	// T1 is unsigned type	CRYPTOPP_COMPILE_ASSERT_INSTANCE(T2(-1)>0, 1);	// T2 is unsigned type	return T1((a > b) ? (a - b) : 0);}template <class T>inline CipherDir GetCipherDir(const T &obj){	return obj.IsForwardTransformation() ? ENCRYPTION : DECRYPTION;}// ************** rotate functions ***************template <class T> inline T rotlFixed(T x, unsigned int y){	assert(y < sizeof(T)*8);	return (x<<y) | (x>>(sizeof(T)*8-y));}template <class T> inline T rotrFixed(T x, unsigned int y){	assert(y < sizeof(T)*8);	return (x>>y) | (x<<(sizeof(T)*8-y));}template <class T> inline T rotlVariable(T x, unsigned int y){	assert(y < sizeof(T)*8);	return (x<<y) | (x>>(sizeof(T)*8-y));}template <class T> inline T rotrVariable(T x, unsigned int y){	assert(y < sizeof(T)*8);	return (x>>y) | (x<<(sizeof(T)*8-y));}template <class T> inline T rotlMod(T x, unsigned int y){	y %= sizeof(T)*8;	return (x<<y) | (x>>(sizeof(T)*8-y));}template <class T> inline T rotrMod(T x, unsigned int y){	y %= sizeof(T)*8;	return (x>>y) | (x<<(sizeof(T)*8-y));}#ifdef INTEL_INTRINSICS#pragma intrinsic(_lrotl, _lrotr)template<> inline word32 rotlFixed<word32>(word32 x, unsigned int y){	assert(y < 32);	return y ? _lrotl(x, y) : x;}template<> inline word32 rotrFixed<word32>(word32 x, unsigned int y){	assert(y < 32);	return y ? _lrotr(x, y) : x;}template<> inline word32 rotlVariable<word32>(word32 x, unsigned int y){	assert(y < 32);	return _lrotl(x, y);}template<> inline word32 rotrVariable<word32>(word32 x, unsigned int y){	assert(y < 32);	return _lrotr(x, y);}template<> inline word32 rotlMod<word32>(word32 x, unsigned int y){	return _lrotl(x, y);}template<> inline word32 rotrMod<word32>(word32 x, unsigned int y){	return _lrotr(x, y);}#endif // #ifdef INTEL_INTRINSICS#ifdef PPC_INTRINSICStemplate<> inline word32 rotlFixed<word32>(word32 x, unsigned int y){	assert(y < 32);	return y ? __rlwinm(x,y,0,31) : x;}template<> inline word32 rotrFixed<word32>(word32 x, unsigned int y){	assert(y < 32);	return y ? __rlwinm(x,32-y,0,31) : x;}template<> inline word32 rotlVariable<word32>(word32 x, unsigned int y){	assert(y < 32);	return (__rlwnm(x,y,0,31));}template<> inline word32 rotrVariable<word32>(word32 x, unsigned int y){	assert(y < 32);	return (__rlwnm(x,32-y,0,31));}template<> inline word32 rotlMod<word32>(word32 x, unsigned int y){	return (__rlwnm(x,y,0,31));}template<> inline word32 rotrMod<word32>(word32 x, unsigned int y){	return (__rlwnm(x,32-y,0,31));}#endif // #ifdef PPC_INTRINSICS// ************** endian reversal ***************template <class T>inline unsigned int GetByte(ByteOrder order, T value, unsigned int index){	if (order == LITTLE_ENDIAN_ORDER)		return GETBYTE(value, index);	else		return GETBYTE(value, sizeof(T)-index-1);}inline byte ByteReverse(byte value){	return value;}inline word16 ByteReverse(word16 value){	return rotlFixed(value, 8U);}inline word32 ByteReverse(word32 value){

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
狠狠色丁香久久婷婷综| 午夜免费久久看| 日韩欧美国产1| 欧美一区二区三区喷汁尤物| 欧美性感一类影片在线播放| 不卡免费追剧大全电视剧网站| 国产精品麻豆欧美日韩ww| 久久久五月婷婷| 久久久久久一二三区| 国产亚洲污的网站| 国产精品久久久久永久免费观看 | 国产久卡久卡久卡久卡视频精品| 蜜桃av噜噜一区二区三区小说| 婷婷国产在线综合| 免费日本视频一区| 久草中文综合在线| 国产麻豆视频精品| av不卡在线播放| 在线区一区二视频| 欧美一级免费大片| 欧美精品一区二区三区在线| 精品盗摄一区二区三区| 国产日韩欧美a| 亚洲男同1069视频| 日韩国产精品久久| 国产精品主播直播| 91行情网站电视在线观看高清版| 欧美日韩国产高清一区二区三区 | 亚洲一区二区在线免费看| 亚洲香肠在线观看| 黄色资源网久久资源365| 成人午夜电影小说| 欧美日韩一卡二卡三卡 | 成人精品免费视频| 色综合久久综合网97色综合| 欧美色图第一页| 久久精品亚洲一区二区三区浴池| 亚洲女同ⅹxx女同tv| 美国毛片一区二区三区| 成人免费视频视频在线观看免费| 在线视频国产一区| 国产网站一区二区| 琪琪久久久久日韩精品| 91蜜桃在线免费视频| 欧美精品一区二区不卡| 一区二区三区国产精品| 国产美女av一区二区三区| 91成人免费在线视频| 精品国产人成亚洲区| 亚洲伊人色欲综合网| 国产一区二区三区免费播放| 色一区在线观看| 国产色产综合产在线视频| 日韩精品五月天| 在线观看欧美黄色| 日韩美女精品在线| 国产成人精品一区二区三区网站观看| 欧美精品三级日韩久久| 一区二区三区四区国产精品| 国产成人午夜高潮毛片| 欧美一级二级三级乱码| 亚洲午夜在线视频| 色综合久久久久综合体| 国产精品乱码一区二区三区软件| 免费精品视频最新在线| 欧美日韩和欧美的一区二区| 国产精品久久久久久久岛一牛影视| 日本成人中文字幕在线视频| 欧美性猛交xxxx乱大交退制版 | 国产乱码一区二区三区| 欧美一区二区三区男人的天堂| 一区二区三区四区高清精品免费观看| 成人91在线观看| 亚洲色图19p| 在线观看国产日韩| 亚洲综合色噜噜狠狠| 色爱区综合激月婷婷| 亚洲精品伦理在线| 色视频成人在线观看免| 樱花草国产18久久久久| 色婷婷av一区二区三区软件| 亚洲激情综合网| 欧美日韩免费在线视频| 亚洲国产欧美日韩另类综合 | 麻豆国产精品一区二区三区| 日韩欧美一二三区| 美日韩一级片在线观看| 欧美一区二区在线不卡| 理论片日本一区| 欧美成人激情免费网| 国产精品一区二区三区网站| 国产欧美一区二区精品秋霞影院| 国产91精品欧美| 尤物视频一区二区| 欧美一区二区大片| 国产精品18久久久久久久久久久久 | 91 com成人网| 麻豆国产精品一区二区三区 | 国产一区二区三区国产| 日本一区二区久久| 色婷婷久久久亚洲一区二区三区| 日韩福利电影在线| 久久久久久久久久久久久久久99| 丁香亚洲综合激情啪啪综合| 亚洲激情在线播放| 精品少妇一区二区| 成人av午夜影院| 亚洲1区2区3区4区| 国产三级精品在线| 欧美亚洲国产怡红院影院| 美女在线视频一区| 亚洲免费观看视频| 日韩精品一区二区三区swag | 亚洲综合在线五月| 久久欧美中文字幕| 欧美亚洲一区二区在线| 国产一区高清在线| 亚洲大片免费看| 国产精品女同互慰在线看| 欧美三级在线看| 成人av电影在线网| 久久精品国产99国产精品| 亚洲视频精选在线| 久久精品亚洲一区二区三区浴池 | 国产高清不卡二三区| 午夜精品免费在线观看| 亚洲欧美经典视频| 88在线观看91蜜桃国自产| 成人污污视频在线观看| 美日韩一级片在线观看| 一区二区三区四区精品在线视频| 久久精品视频免费观看| 欧美高清一级片在线| www.欧美日韩国产在线| 韩国av一区二区三区在线观看| 一区二区三区中文字幕| 中文字幕精品一区二区精品绿巨人| 538在线一区二区精品国产| 91理论电影在线观看| 国产iv一区二区三区| 激情久久五月天| 激情偷乱视频一区二区三区| 国产综合久久久久久鬼色| 亚洲与欧洲av电影| 亚洲精品视频在线| 亚洲欧美日韩国产综合| 国产精品色哟哟网站| 久久久久国产精品人| 26uuu亚洲综合色欧美| 欧美成人精精品一区二区频| 日韩欧美一区二区久久婷婷| 在线电影欧美成精品| 制服丝袜亚洲网站| 911精品产国品一二三产区| 这里只有精品免费| 欧美精品高清视频| 91精品蜜臀在线一区尤物| 欧美色爱综合网| 51午夜精品国产| 欧美成人午夜电影| 久久久精品天堂| 国产欧美中文在线| 国产精品高清亚洲| 一区二区三区四区高清精品免费观看| 亚洲欧美日韩在线不卡| 夜夜操天天操亚洲| 首页亚洲欧美制服丝腿| 美脚の诱脚舐め脚责91 | 豆国产96在线|亚洲| 国产又黄又大久久| 99精品在线观看视频| 色琪琪一区二区三区亚洲区| 欧美日韩综合色| 精品少妇一区二区三区在线播放 | 成人av网站免费| 日本久久精品电影| 制服丝袜在线91| 国产日韩成人精品| 一个色在线综合| 久久99国产精品久久99 | 夜色激情一区二区| 久久精品99国产精品| 国产精品77777竹菊影视小说| 91丨国产丨九色丨pron| 欧美精品精品一区| 国产精品麻豆视频| 青青草97国产精品免费观看| 成人免费黄色在线| 欧美日韩国产一级| 欧美国产日本韩| 日韩在线卡一卡二| 99久久精品免费精品国产| 制服丝袜日韩国产| 国产精品免费久久| 免费成人av在线播放| 99精品视频在线免费观看| 欧美一区二区三区系列电影| 中文字幕av一区二区三区免费看| 婷婷一区二区三区| 91丨九色丨蝌蚪富婆spa|