亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
亚洲一区二区三区四区五区中文| 久久精品人人爽人人爽| 成人性色生活片| 理论电影国产精品| 日本v片在线高清不卡在线观看| 亚洲一卡二卡三卡四卡无卡久久 | 日韩av午夜在线观看| 亚洲男帅同性gay1069| 亚洲视频香蕉人妖| 亚洲女同ⅹxx女同tv| 一区二区三区欧美激情| 一区二区三区中文字幕在线观看| 一区二区免费视频| 亚洲成a人v欧美综合天堂| 亚洲国产美国国产综合一区二区| 亚洲一本大道在线| 秋霞午夜av一区二区三区| 久久国产尿小便嘘嘘| 国产中文字幕精品| 成人精品一区二区三区四区 | 久久精品av麻豆的观看方式| 激情都市一区二区| 福利一区二区在线| 色偷偷成人一区二区三区91| 欧美伊人精品成人久久综合97 | 欧美激情中文不卡| 亚洲人妖av一区二区| 亚洲最新视频在线播放| 日本怡春院一区二区| 国产激情一区二区三区| 欧洲一区二区三区在线| 日韩一二三区不卡| 欧美国产一区在线| 亚洲成人动漫一区| 国产精品18久久久久久久网站| 91麻豆swag| 制服.丝袜.亚洲.中文.综合| 26uuu亚洲| 一区二区在线观看视频在线观看| 蜜臀久久99精品久久久久宅男| 成人久久18免费网站麻豆| 欧美日韩中文另类| 中文字幕欧美区| 婷婷综合久久一区二区三区| 国产99久久久久| 欧美浪妇xxxx高跟鞋交| 国产精品视频在线看| 日韩国产精品久久| 一本一道波多野结衣一区二区| 日韩一区二区三区四区五区六区| 国产精品女主播在线观看| 日本不卡视频一二三区| 91麻豆精品视频| 欧美激情一区二区三区四区| 日韩av成人高清| 91久久免费观看| 国产精品天干天干在线综合| 蜜桃av一区二区| 欧美无人高清视频在线观看| 中文字幕日韩欧美一区二区三区| 激情久久五月天| 欧美一级久久久久久久大片| 亚洲综合无码一区二区| 91香蕉视频黄| 亚洲欧美在线高清| 国产aⅴ综合色| 久久夜色精品国产噜噜av| 日本美女一区二区三区| 在线精品视频一区二区三四| 亚洲精品亚洲人成人网在线播放| 成人av片在线观看| 欧美激情一区在线观看| 福利一区福利二区| 国产精品每日更新| 成人激情小说网站| 中文字幕一区二区视频| av一区二区久久| 国产精品不卡一区| 99精品热视频| 亚洲乱码国产乱码精品精98午夜 | 久久夜色精品国产噜噜av| 日本va欧美va精品| 2020国产成人综合网| 精品亚洲porn| 国产欧美日韩另类视频免费观看| 国产麻豆日韩欧美久久| 国产精品一二一区| 亚洲一二三专区| 99国产精品久| 亚洲人快播电影网| 不卡的看片网站| 亚洲三级小视频| 色婷婷精品久久二区二区蜜臂av| 亚洲精品成人精品456| 欧美在线观看禁18| 天堂在线一区二区| 久久久不卡网国产精品二区| 国产成人精品综合在线观看 | 国产精品综合一区二区| 久久精子c满五个校花| 成年人网站91| 亚洲精品国产品国语在线app| 欧美三区在线观看| 国产专区综合网| 日韩毛片在线免费观看| 欧美丰满高潮xxxx喷水动漫| 黄色资源网久久资源365| 国产嫩草影院久久久久| 欧美伊人久久大香线蕉综合69 | 国产不卡在线一区| 亚洲精品免费一二三区| 日韩欧美国产不卡| 成人国产一区二区三区精品| 视频一区国产视频| 亚洲国产精品高清| 777久久久精品| 丁香六月久久综合狠狠色| 亚洲成人动漫在线免费观看| 国产亚洲欧美日韩在线一区| 欧美四级电影网| 高清久久久久久| 日韩电影网1区2区| 亚洲色图一区二区三区| 欧美一区二区日韩| 在线一区二区三区四区| 东方aⅴ免费观看久久av| 日韩 欧美一区二区三区| 亚洲欧美在线另类| 欧美激情中文不卡| 欧美成人高清电影在线| 欧美日韩你懂得| 94-欧美-setu| www.亚洲人| 国产乱码精品一品二品| 免费的成人av| 亚洲成人福利片| 夜夜爽夜夜爽精品视频| 亚洲色图第一区| 日本一区二区三区视频视频| 精品国产制服丝袜高跟| 欧美精品少妇一区二区三区| 91小视频免费观看| eeuss鲁片一区二区三区在线看| 久久99精品久久久久久动态图| 亚洲国产日韩综合久久精品| 亚洲免费伊人电影| 国产精品美女久久久久久 | 91在线无精精品入口| 国产成人综合视频| 国产自产2019最新不卡| 国产麻豆视频一区二区| 国产精品一区二区黑丝| 91免费版在线| 99久久亚洲一区二区三区青草| 成人在线视频一区二区| 国产91清纯白嫩初高中在线观看| 国产一区二区三区蝌蚪| 久久精品国产99| 国产精品123| 成人av在线播放网站| 成人av电影观看| 色婷婷亚洲婷婷| 欧美日韩国产精选| 欧美巨大另类极品videosbest| 欧美人狂配大交3d怪物一区| 欧美午夜精品一区二区蜜桃| 这里是久久伊人| 精品久久人人做人人爰| 久久伊人中文字幕| 亚洲日本成人在线观看| 亚洲国产一区二区视频| 蜜臀av性久久久久蜜臀aⅴ| 激情五月播播久久久精品| 国产**成人网毛片九色| 在线免费精品视频| 欧美一级黄色录像| 国产欧美视频在线观看| 亚洲你懂的在线视频| 图片区小说区国产精品视频| 91福利国产精品| 欧美一区午夜精品| 26uuu精品一区二区在线观看| 国产情人综合久久777777| 18成人在线视频| 五月激情综合网| 国产精品一线二线三线| 色8久久精品久久久久久蜜| 日韩一区二区三区免费看| 国产日韩一级二级三级| 亚洲自拍另类综合| 国内精品久久久久影院薰衣草| 国产99久久久久| 6080午夜不卡| 国产精品乱码人人做人人爱 | 91精品国产综合久久久久久久久久| 日韩免费观看高清完整版在线观看| 亚洲国产高清在线| 日韩在线播放一区二区| 99re这里只有精品6| 精品免费日韩av|