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

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

?? misc.h

?? 實現了hash散列函數的功能并有驗證結果
?? H
字號:
#ifndef CRYPTOPP_MISC_H
#define CRYPTOPP_MISC_H

#include "config.h"
#include <assert.h>
#include <memory.h>
#include <algorithm>

NAMESPACE_BEGIN(CryptoPP)

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 T rotl(T x, unsigned int y)
{
	return ((x<<y) | (x>>(sizeof(T)*8-y)));
}

template <class T> inline T rotr(T x, unsigned int y)
{
	return ((x>>y) | (x<<(sizeof(T)*8-y)));
}

#if defined(_MSC_VER) || defined(__BCPLUSPLUS__)

#include <stdlib.h>
#define FAST_ROTATE

template<> inline unsigned short rotl<unsigned short>(unsigned short x, unsigned int y)
{
	return (unsigned short)((x<<y) | (x>>(16-y)));
}

template<> inline unsigned short rotr<unsigned short>(unsigned short x, unsigned int y)
{
	return (unsigned short)((x>>y) | (x<<(16-y)));
}

template<> inline unsigned long rotl<unsigned long>(unsigned long x, unsigned int y)
{
	return _lrotl(x, y);
}

template<> inline unsigned long rotr<unsigned long>(unsigned long x, unsigned int y)
{
	return _lrotr(x, y);
}
#endif // defined(_MSC_VER) || defined(__BCPLUSPLUS__)

inline word16 byteReverse(word16 value)
{
	return rotl(value, 8U);
}

inline word32 byteReverse(word32 value)
{
#ifdef FAST_ROTATE
	// 5 instructions with rotate instruction, 9 without
	return (rotr(value, 8U) & 0xff00ff00) | (rotl(value, 8U) & 0x00ff00ff);
#else
	// 6 instructions with rotate instruction, 8 without
	value = ((value & 0xFF00FF00) >> 8) | ((value & 0x00FF00FF) << 8);
	return rotl(value, 16U);
#endif
}

#ifdef WORD64_AVAILABLE
inline word64 byteReverse(word64 value)
{
	value = ((value & W64LIT(0xFF00FF00FF00FF00)) >> 8) | ((value & W64LIT(0x00FF00FF00FF00FF)) << 8);
	value = ((value & W64LIT(0xFFFF0000FFFF0000)) >> 16) | ((value & W64LIT(0x0000FFFF0000FFFF)) << 16);
	return rotl(value, 32U);
}
#endif

template <class T> void byteReverse(T *out, const T *in, unsigned int byteCount)
{
	assert(byteCount%sizeof(T) == 0);
	byteCount /= sizeof(T);
	for (unsigned i=0; i<byteCount; i++)
		out[i] = byteReverse(in[i]);
}

#ifdef _MSC_VER
#define GETBYTE(x, y) (((byte *)&(x))[y])
#else
#define GETBYTE(x, y) (unsigned int)(((x)>>(8*(y)))&255)
#endif

unsigned int Parity(unsigned long);
unsigned int BytePrecision(unsigned long);
unsigned int BitPrecision(unsigned long);
unsigned long Crop(unsigned long, int size);

// ********************************************************

#ifdef SECALLOC_DEFAULT
#define SecAlloc(type, number) (new type[(number)])
#define SecFree(ptr, number) (memset((ptr), 0, (number)*sizeof(*(ptr))), delete [] (ptr))
#else
#define SecAlloc(type, number) (new type[(number)])
#define SecFree(ptr, number) (delete [] (ptr))
#endif

template <class T> struct SecBlock
{
	SecBlock(unsigned int size=0)
		: size(size) {ptr = SecAlloc(T, size);}
	SecBlock(const SecBlock<T> &t)
		: size(t.size) {ptr = SecAlloc(T, size); CopyFrom(t);}
	SecBlock(const T *t, unsigned int size)
		: size(size) {ptr = SecAlloc(T, size); memcpy(ptr, t, size*sizeof(T));}
	~SecBlock()
		{SecFree(ptr, size);}

#if defined(__GNUC__) || defined(__BCPLUSPLUS__)
	operator const void *() const
		{return ptr;}
	operator void *()
		{return ptr;}
#endif

	operator const T *() const
		{return ptr;}
	operator T *()
		{return ptr;}

#ifndef _MSC_VER
	T *operator +(unsigned int offset)
		{return ptr+offset;}
	const T *operator +(unsigned int offset) const
		{return ptr+offset;}
	T& operator[](unsigned int index)
		{assert(index<size); return ptr[index];}
	const T& operator[](unsigned int index) const
		{assert(index<size); return ptr[index];}
#endif

	const T* Begin() const
		{return ptr;}
	T* Begin()
		{return ptr;}
	const T* End() const
		{return ptr+size;}
	T* End()
		{return ptr+size;}

	void CopyFrom(const SecBlock<T> &t)
	{
		New(t.size);
		memcpy(ptr, t.ptr, size*sizeof(T));
	}

	SecBlock& operator=(const SecBlock<T> &t)
	{
		CopyFrom(t);
		return *this;
	}

	bool operator==(const SecBlock<T> &t) const
	{
		return size == t.size && memcmp(ptr, t.ptr, size*sizeof(T)) == 0;
	}

	void New(unsigned int newSize)
	{
		if (newSize != size)
		{
			T *newPtr = SecAlloc(T, newSize);
			SecFree(ptr, size);
			ptr = newPtr;
			size = newSize;
		}
	}

	void CleanNew(unsigned int newSize)
	{
		if (newSize != size)
		{
			T *newPtr = SecAlloc(T, newSize);
			SecFree(ptr, size);
			ptr = newPtr;
			size = newSize;
		}
		memset(ptr, 0, size*sizeof(T));
	}

	void Grow(unsigned int newSize)
	{
		if (newSize > size)
		{
			T *newPtr = SecAlloc(T, newSize);
			memcpy(newPtr, ptr, size*sizeof(T));
			SecFree(ptr, size);
			ptr = newPtr;
			size = newSize;
		}
	}

	void CleanGrow(unsigned int newSize)
	{
		if (newSize > size)
		{
			T *newPtr = SecAlloc(T, newSize);
			memcpy(newPtr, ptr, size*sizeof(T));
			memset(newPtr+size, 0, (newSize-size)*sizeof(T));
			SecFree(ptr, size);
			ptr = newPtr;
			size = newSize;
		}
	}

	void Resize(unsigned int newSize)
	{
		if (newSize != size)
		{
			T *newPtr = SecAlloc(T, newSize);
			memcpy(newPtr, ptr, STDMIN(newSize, size)*sizeof(T));
			SecFree(ptr, size);
			ptr = newPtr;
			size = newSize;
		}
	}

	void swap(SecBlock<T> &b);

	unsigned int size;
	T *ptr;
};

template <class T> void SecBlock<T>::swap(SecBlock<T> &b)
{
	std::swap(size, b.size);
	std::swap(ptr, b.ptr);
}

typedef SecBlock<byte> SecByteBlock;
typedef SecBlock<word> SecWordBlock;

NAMESPACE_END

NAMESPACE_BEGIN(std)
template <class T>
inline void swap(CryptoPP::SecBlock<T> &a, CryptoPP::SecBlock<T> &b)
{
	a.swap(b);
}
NAMESPACE_END

#endif // MISC_H

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本强好片久久久久久aaa| 99r国产精品| 亚洲成人自拍偷拍| 欧美韩国日本一区| 欧美成人国产一区二区| 在线视频观看一区| 成人国产精品免费观看动漫| 激情综合色综合久久| 亚洲va欧美va人人爽| 综合久久久久久| 国产精品卡一卡二卡三| 久久精品一区二区| 精品国产91乱码一区二区三区| 在线亚洲欧美专区二区| 一区二区中文视频| 久久久久九九视频| 精品国产伦理网| 精品国产123| 久久久一区二区| 精品日韩在线观看| 精品国产乱码91久久久久久网站| 91.麻豆视频| 欧美一区二区三区视频在线 | 在线电影国产精品| 欧美日韩高清不卡| 91精品在线免费观看| 在线观看免费一区| 欧美日韩精品系列| 欧美日韩亚洲国产综合| 天堂久久一区二区三区| 亚洲6080在线| 日本aⅴ精品一区二区三区| 久久99久久99| 国产精品白丝jk黑袜喷水| 国产91高潮流白浆在线麻豆| 成av人片一区二区| 在线免费观看日本欧美| 欧美年轻男男videosbes| 日韩三级高清在线| 国产欧美日本一区视频| 一区二区久久久| 日本伊人色综合网| 风间由美一区二区av101 | 欧美激情一区二区三区全黄| 国产欧美日韩另类一区| 一区二区在线观看视频在线观看| 在线精品视频小说1| 欧美一区二区三区在线电影| 国产亚洲短视频| 五月婷婷综合网| 国产福利一区二区三区| 在线亚洲免费视频| 久久久久久久综合色一本| 亚洲精品v日韩精品| 激情欧美一区二区| 在线观看av不卡| 久久精品人人爽人人爽| 视频一区中文字幕国产| 成人黄色大片在线观看| 欧美日韩一级二级| 国产精品进线69影院| 毛片av中文字幕一区二区| 91免费视频网| 日本一区二区久久| 日本亚洲三级在线| 欧美性色欧美a在线播放| 国内精品伊人久久久久影院对白| 欧美影院一区二区| 国产精品久久久久影院色老大| 另类人妖一区二区av| 欧美怡红院视频| 亚洲欧美日韩中文播放| 成人一级片网址| 久久精品综合网| 久久国产婷婷国产香蕉| 欧美麻豆精品久久久久久| 亚洲天堂精品在线观看| 成人av免费在线观看| 中文字幕成人av| 国产成人av福利| 久久久精品人体av艺术| 精品系列免费在线观看| 精品黑人一区二区三区久久| 免费在线观看日韩欧美| 91精品国产一区二区三区蜜臀| 亚洲成年人网站在线观看| 亚洲福中文字幕伊人影院| 97成人超碰视| 亚洲福利电影网| 欧美日韩精品一区二区三区| 婷婷丁香激情综合| 日韩区在线观看| 极品少妇一区二区三区精品视频| 欧美一区二区三区免费观看视频| 日日夜夜精品视频免费| 日韩欧美的一区二区| 国产一区在线精品| 国产精品麻豆欧美日韩ww| 97久久精品人人爽人人爽蜜臀| 综合精品久久久| 欧美日韩一区高清| 开心九九激情九九欧美日韩精美视频电影 | 日韩三级.com| 欧美国产精品一区二区三区| 99久久精品久久久久久清纯| 亚洲免费视频成人| 精品捆绑美女sm三区| k8久久久一区二区三区| 一区二区三区中文在线观看| 欧美丰满嫩嫩电影| 国产精品综合久久| 亚洲精品成人在线| 久久一夜天堂av一区二区三区 | 久久青草欧美一区二区三区| 99久久er热在这里只有精品66| 丝袜美腿亚洲一区二区图片| 精品国产一区二区三区忘忧草| 99久久精品久久久久久清纯| 日韩成人午夜电影| 国产精品久久久久久亚洲毛片| 欧美日韩免费电影| yourporn久久国产精品| 久久精品国产免费| 97久久人人超碰| 久久激情五月激情| 亚洲国产中文字幕在线视频综合 | 精品久久久三级丝袜| 91蜜桃免费观看视频| 精品综合久久久久久8888| 亚洲免费观看高清| 国产三级三级三级精品8ⅰ区| 91浏览器打开| 福利一区二区在线观看| 久久99久久99| 日本特黄久久久高潮| 亚洲码国产岛国毛片在线| 久久久久亚洲综合| 精品毛片乱码1区2区3区| 7777精品伊人久久久大香线蕉经典版下载 | 中文字幕欧美国产| 亚洲精品一区二区三区福利| 555www色欧美视频| 欧美专区日韩专区| 91黄色激情网站| 日本韩国一区二区三区视频| 99精品久久只有精品| 不卡一区二区中文字幕| 成人性视频免费网站| 国产精品综合一区二区| 国产一区二区三区最好精华液| 美女网站一区二区| 麻豆成人综合网| 久久er精品视频| 国产高清亚洲一区| 国产成人av一区二区| 成人自拍视频在线观看| av在线不卡网| 色婷婷亚洲综合| 欧美三级在线看| 日韩一二三四区| 欧美极品aⅴ影院| 亚洲你懂的在线视频| 欧美亚洲尤物久久| 精品视频一区二区不卡| 51久久夜色精品国产麻豆| 日韩美女天天操| 久久久精品免费观看| 国产精品毛片无遮挡高清| 夜夜嗨av一区二区三区| 美女久久久精品| 成人黄动漫网站免费app| 91传媒视频在线播放| 欧美一级欧美三级在线观看| 26uuu亚洲婷婷狠狠天堂| 中文字幕日韩精品一区| 亚瑟在线精品视频| 国产乱理伦片在线观看夜一区| 99免费精品在线| 91精品国产乱| 国产精品毛片久久久久久久| 婷婷综合五月天| 成人国产在线观看| 欧美高清你懂得| 国产精品高潮呻吟| 午夜精品成人在线视频| 成人激情开心网| 欧美一级午夜免费电影| 《视频一区视频二区| 91精品国产色综合久久| 日本一区二区三区四区在线视频 | 日韩女同互慰一区二区| 亚洲欧美色一区| 国产精品综合视频| 91精品国产综合久久蜜臀| 18成人在线观看| 国产精品亚洲视频| 精品黑人一区二区三区久久| 亚洲国产一区视频| 99riav一区二区三区| 国产欧美日韩在线|