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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? cryptlib.cpp

?? 常用字符串hash算法
?? CPP
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
// cryptlib.cpp - written and placed in the public domain by Wei Dai#include "pch.h"#include "cryptlib.h"#include "misc.h"#include "filters.h"#include "algparam.h"#include "fips140.h"#include "argnames.h"#include <memory>NAMESPACE_BEGIN(CryptoPP)CRYPTOPP_COMPILE_ASSERT(sizeof(byte) == 1);CRYPTOPP_COMPILE_ASSERT(sizeof(word16) == 2);CRYPTOPP_COMPILE_ASSERT(sizeof(word32) == 4);#ifdef WORD64_AVAILABLECRYPTOPP_COMPILE_ASSERT(sizeof(word64) == 8);#endifCRYPTOPP_COMPILE_ASSERT(sizeof(dword) == 2*sizeof(word));const std::string BufferedTransformation::NULL_CHANNEL;const NullNameValuePairs g_nullNameValuePairs;BufferedTransformation & TheBitBucket(){	static BitBucket bitBucket;	return bitBucket;}Algorithm::Algorithm(bool checkSelfTestStatus){	if (checkSelfTestStatus && FIPS_140_2_ComplianceEnabled())	{		if (GetPowerUpSelfTestStatus() == POWER_UP_SELF_TEST_NOT_DONE && !PowerUpSelfTestInProgressOnThisThread())			throw SelfTestFailure("Cryptographic algorithms are disabled before the power-up self tests are performed.");		if (GetPowerUpSelfTestStatus() == POWER_UP_SELF_TEST_FAILED)			throw SelfTestFailure("Cryptographic algorithms are disabled after power-up a self test failed.");	}}void SimpleKeyingInterface::SetKeyWithRounds(const byte *key, unsigned int length, int rounds){	SetKey(key, length, MakeParameters(Name::Rounds(), rounds));}void SimpleKeyingInterface::SetKeyWithIV(const byte *key, unsigned int length, const byte *iv){	SetKey(key, length, MakeParameters(Name::IV(), iv));}void SimpleKeyingInterface::ThrowIfInvalidKeyLength(const Algorithm &algorithm, unsigned int length){	if (!IsValidKeyLength(length))		throw InvalidKeyLength(algorithm.AlgorithmName(), length);}void BlockTransformation::ProcessAndXorMultipleBlocks(const byte *inBlocks, const byte *xorBlocks, byte *outBlocks, unsigned int numberOfBlocks) const{	unsigned int blockSize = BlockSize();	while (numberOfBlocks--)	{		ProcessAndXorBlock(inBlocks, xorBlocks, outBlocks);		inBlocks += blockSize;		outBlocks += blockSize;		if (xorBlocks)			xorBlocks += blockSize;	}}void StreamTransformation::ProcessLastBlock(byte *outString, const byte *inString, unsigned int length){	assert(MinLastBlockSize() == 0);	// this function should be overriden otherwise	if (length == MandatoryBlockSize())		ProcessData(outString, inString, length);	else if (length != 0)		throw NotImplemented("StreamTransformation: this object does't support a special last block");}unsigned int RandomNumberGenerator::GenerateBit(){	return Parity(GenerateByte());}void RandomNumberGenerator::GenerateBlock(byte *output, unsigned int size){	while (size--)		*output++ = GenerateByte();}word32 RandomNumberGenerator::GenerateWord32(word32 min, word32 max){	word32 range = max-min;	const int maxBytes = BytePrecision(range);	const int maxBits = BitPrecision(range);	word32 value;	do	{		value = 0;		for (int i=0; i<maxBytes; i++)			value = (value << 8) | GenerateByte();		value = Crop(value, maxBits);	} while (value > range);	return value+min;}void RandomNumberGenerator::DiscardBytes(unsigned int n){	while (n--)		GenerateByte();}RandomNumberGenerator & NullRNG(){	class NullRNG : public RandomNumberGenerator	{	public:		std::string AlgorithmName() const {return "NullRNG";}		byte GenerateByte() {throw NotImplemented("NullRNG: NullRNG should only be passed to functions that don't need to generate random bytes");}	};	static NullRNG s_nullRNG;	return s_nullRNG;}bool HashTransformation::TruncatedVerify(const byte *digestIn, unsigned int digestLength){	ThrowIfInvalidTruncatedSize(digestLength);	SecByteBlock digest(digestLength);	TruncatedFinal(digest, digestLength);	return memcmp(digest, digestIn, digestLength) == 0;}void HashTransformation::ThrowIfInvalidTruncatedSize(unsigned int size) const{	if (size > DigestSize())		throw InvalidArgument("HashTransformation: can't truncate a " + IntToString(DigestSize()) + " byte digest to " + IntToString(size) + " bytes");}unsigned int BufferedTransformation::GetMaxWaitObjectCount() const{	const BufferedTransformation *t = AttachedTransformation();	return t ? t->GetMaxWaitObjectCount() : 0;}void BufferedTransformation::GetWaitObjects(WaitObjectContainer &container){	BufferedTransformation *t = AttachedTransformation();	if (t)		t->GetWaitObjects(container);}void BufferedTransformation::Initialize(const NameValuePairs &parameters, int propagation){	assert(!AttachedTransformation());	IsolatedInitialize(parameters);}bool BufferedTransformation::Flush(bool hardFlush, int propagation, bool blocking){	assert(!AttachedTransformation());	return IsolatedFlush(hardFlush, blocking);}bool BufferedTransformation::MessageSeriesEnd(int propagation, bool blocking){	assert(!AttachedTransformation());	return IsolatedMessageSeriesEnd(blocking);}byte * BufferedTransformation::ChannelCreatePutSpace(const std::string &channel, unsigned int &size){	if (channel.empty())		return CreatePutSpace(size);	else		throw NoChannelSupport();}unsigned int BufferedTransformation::ChannelPut2(const std::string &channel, const byte *begin, unsigned int length, int messageEnd, bool blocking){	if (channel.empty())		return Put2(begin, length, messageEnd, blocking);	else		throw NoChannelSupport();}unsigned int BufferedTransformation::ChannelPutModifiable2(const std::string &channel, byte *begin, unsigned int length, int messageEnd, bool blocking){	if (channel.empty())		return PutModifiable2(begin, length, messageEnd, blocking);	else		return ChannelPut2(channel, begin, length, messageEnd, blocking);}void BufferedTransformation::ChannelInitialize(const std::string &channel, const NameValuePairs &parameters, int propagation){	if (channel.empty())		Initialize(parameters, propagation);	else		throw NoChannelSupport();}bool BufferedTransformation::ChannelFlush(const std::string &channel, bool completeFlush, int propagation, bool blocking){	if (channel.empty())		return Flush(completeFlush, propagation, blocking);	else		throw NoChannelSupport();}bool BufferedTransformation::ChannelMessageSeriesEnd(const std::string &channel, int propagation, bool blocking){	if (channel.empty())		return MessageSeriesEnd(propagation, blocking);	else		throw NoChannelSupport();}unsigned long BufferedTransformation::MaxRetrievable() const{	if (AttachedTransformation())		return AttachedTransformation()->MaxRetrievable();	else		return CopyTo(TheBitBucket());}bool BufferedTransformation::AnyRetrievable() const{	if (AttachedTransformation())		return AttachedTransformation()->AnyRetrievable();	else	{		byte b;		return Peek(b) != 0;	}}unsigned int BufferedTransformation::Get(byte &outByte){	if (AttachedTransformation())		return AttachedTransformation()->Get(outByte);	else		return Get(&outByte, 1);}unsigned int BufferedTransformation::Get(byte *outString, unsigned int getMax){	if (AttachedTransformation())		return AttachedTransformation()->Get(outString, getMax);	else	{		ArraySink arraySink(outString, getMax);		return TransferTo(arraySink, getMax);	}}unsigned int BufferedTransformation::Peek(byte &outByte) const{	if (AttachedTransformation())		return AttachedTransformation()->Peek(outByte);	else		return Peek(&outByte, 1);}unsigned int BufferedTransformation::Peek(byte *outString, unsigned int peekMax) const{	if (AttachedTransformation())		return AttachedTransformation()->Peek(outString, peekMax);	else	{		ArraySink arraySink(outString, peekMax);		return CopyTo(arraySink, peekMax);	}}unsigned long BufferedTransformation::Skip(unsigned long skipMax){	if (AttachedTransformation())		return AttachedTransformation()->Skip(skipMax);	else		return TransferTo(TheBitBucket(), skipMax);}unsigned long BufferedTransformation::TotalBytesRetrievable() const{	if (AttachedTransformation())		return AttachedTransformation()->TotalBytesRetrievable();	else		return MaxRetrievable();}unsigned int BufferedTransformation::NumberOfMessages() const{	if (AttachedTransformation())		return AttachedTransformation()->NumberOfMessages();	else		return CopyMessagesTo(TheBitBucket());}bool BufferedTransformation::AnyMessages() const{	if (AttachedTransformation())		return AttachedTransformation()->AnyMessages();	else		return NumberOfMessages() != 0;}bool BufferedTransformation::GetNextMessage(){	if (AttachedTransformation())		return AttachedTransformation()->GetNextMessage();	else	{		assert(!AnyMessages());		return false;	}}unsigned int BufferedTransformation::SkipMessages(unsigned int count){	if (AttachedTransformation())		return AttachedTransformation()->SkipMessages(count);	else		return TransferMessagesTo(TheBitBucket(), count);}unsigned int BufferedTransformation::TransferMessagesTo2(BufferedTransformation &target, unsigned int &messageCount, const std::string &channel, bool blocking){	if (AttachedTransformation())		return AttachedTransformation()->TransferMessagesTo2(target, messageCount, channel, blocking);	else	{		unsigned int maxMessages = messageCount;		for (messageCount=0; messageCount < maxMessages && AnyMessages(); messageCount++)		{			unsigned int blockedBytes;			unsigned long transferedBytes;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区欧美视频| 久久精品免费观看| 精品国产一区二区三区久久久蜜月 | 韩国女主播成人在线观看| 国产精品久久久久aaaa| 精品日产卡一卡二卡麻豆| 97国产精品videossex| 久久99热这里只有精品| 亚洲欧美电影一区二区| 国产亚洲欧洲997久久综合| 欧美猛男男办公室激情| 91网站最新地址| 国产成人免费视频| 麻豆成人在线观看| 视频一区免费在线观看| 亚洲女同女同女同女同女同69| 国产日韩欧美制服另类| 精品国产免费视频| 日韩一区二区在线观看| 欧美色图12p| 欧美视频在线一区| 色综合网站在线| av在线播放一区二区三区| 国产乱理伦片在线观看夜一区| 日本在线观看不卡视频| 亚洲h在线观看| 亚洲午夜三级在线| 一区二区三区国产精品| 亚洲黄色录像片| 亚洲嫩草精品久久| 亚洲色图欧洲色图婷婷| 日韩一区欧美小说| 亚洲欧美另类图片小说| 专区另类欧美日韩| 亚洲另类色综合网站| 亚洲素人一区二区| 亚洲男人的天堂一区二区| 亚洲色图第一区| 亚洲欧美日韩一区二区 | 国产精品麻豆视频| 国产亚洲va综合人人澡精品| 久久精品日产第一区二区三区高清版| 精品少妇一区二区三区免费观看 | 欧美剧情片在线观看| 欧美日韩久久久久久| 欧美日本在线视频| 91精品一区二区三区在线观看| 欧美精品三级日韩久久| 91精品国产乱| 日韩你懂的在线观看| 精品成a人在线观看| 久久网站最新地址| 国产精品欧美久久久久一区二区| 国产精品成人一区二区艾草 | 亚洲第一二三四区| 日韩高清电影一区| 久久精品免费看| 国产馆精品极品| 97精品国产露脸对白| 欧美午夜精品久久久久久超碰 | 中文字幕欧美一| 亚洲一区二区三区四区的 | 91在线云播放| 欧美日韩免费高清一区色橹橹| 欧美电影一区二区| 国产婷婷一区二区| 亚洲免费伊人电影| 日本女优在线视频一区二区| 国产精品原创巨作av| 色八戒一区二区三区| 欧美精品一二三| 国产欧美一区在线| 一区二区三区视频在线观看| 麻豆精品蜜桃视频网站| 波多野结衣精品在线| 欧美色中文字幕| 久久久久9999亚洲精品| 一区二区三区视频在线观看| 欧美aⅴ一区二区三区视频| 国产精品一二三区在线| 欧美影院午夜播放| 久久久91精品国产一区二区精品| 一区二区视频在线| 精品亚洲国产成人av制服丝袜| 白白色亚洲国产精品| 6080yy午夜一二三区久久| 国产欧美日韩综合| 日韩av高清在线观看| 99国产一区二区三精品乱码| 日韩精品专区在线| 亚洲综合色噜噜狠狠| 国产电影一区二区三区| 欧美一二三区精品| 亚洲精品欧美专区| 国产成人激情av| 日韩三级在线免费观看| 亚洲精品中文在线观看| 国产麻豆精品theporn| 欧美日韩国产三级| 综合精品久久久| 国产成人啪午夜精品网站男同| 欧美一区二区视频在线观看2022| 亚洲欧美一区二区不卡| 国产成人免费视频一区| 欧美不卡在线视频| 午夜日韩在线观看| 色综合中文字幕| 国产精品热久久久久夜色精品三区| 蜜桃一区二区三区在线观看| 欧美日韩国产一二三| 一区二区三区在线免费| a美女胸又www黄视频久久| 久久只精品国产| 蜜桃久久久久久久| 91精品免费观看| 亚洲高清在线精品| 欧美亚日韩国产aⅴ精品中极品| 国产精品久久影院| 国产伦理精品不卡| 精品成人免费观看| 韩国女主播成人在线| 日韩三级视频在线看| 蜜臀av性久久久久av蜜臀妖精| 欧美美女视频在线观看| 亚洲成人av资源| 欧美视频一区在线观看| 亚洲综合色自拍一区| 在线免费观看不卡av| 亚洲蜜臀av乱码久久精品蜜桃| 成人动漫av在线| 国产精品三级视频| av影院午夜一区| 亚洲四区在线观看| 91国产视频在线观看| 尤物在线观看一区| 欧美在线免费观看视频| 午夜久久久影院| 日韩一级视频免费观看在线| 日日夜夜免费精品| 日韩欧美三级在线| 国产一区二区主播在线| 2023国产精华国产精品| 国产精品原创巨作av| 国产精品伦一区| 91色porny在线视频| 亚洲综合色视频| 777久久久精品| 精品影视av免费| 国产欧美综合在线| 91官网在线免费观看| 亚洲第一会所有码转帖| 日韩欧美色综合| 国产成人精品影院| 亚洲欧美日韩一区二区 | 欧美日韩一区在线| 青青国产91久久久久久| 精品国产乱码久久久久久久久 | 欧美亚洲国产bt| 视频一区在线播放| 精品国产乱码久久久久久浪潮| 国产91丝袜在线观看| 亚洲欧美自拍偷拍色图| 欧美视频中文一区二区三区在线观看 | 亚洲柠檬福利资源导航| 欧美丰满嫩嫩电影| 国产成人av一区二区| 亚洲精品免费看| 欧美成人一区二区三区| 成人免费高清在线| 偷拍一区二区三区四区| 国产人妖乱国产精品人妖| 欧洲日韩一区二区三区| 免费人成黄页网站在线一区二区| 国产欧美日韩视频一区二区| 欧美色窝79yyyycom| 国产一区免费电影| 亚洲国产欧美在线人成| 久久免费偷拍视频| 在线一区二区三区四区五区| 精品亚洲欧美一区| 亚洲精品一二三| 久久久久久免费网| 欧美色国产精品| 国产乱色国产精品免费视频| 亚洲国产日韩一级| 国产精品天干天干在观线| 欧美一区二视频| 91蝌蚪porny| 国产在线播放一区三区四| 亚洲综合一区二区三区| 久久久精品综合| 这里只有精品电影| 在线一区二区三区四区五区| 国产成人av电影在线播放| 图片区小说区区亚洲影院| 亚洲视频你懂的| 国产欧美日韩不卡| 欧美夫妻性生活| 91老师国产黑色丝袜在线| 国产成人高清视频|