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

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

?? fipstest.cpp

?? 此壓縮包內有cast、blowfish、simple、des、cryptlib、rsa、mqueue、xtrcrypt、gf256、base32,base64、modexppc、network等一些的
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// fipstest.cpp - written and placed in the public domain by Wei Dai

#include "pch.h"

#ifndef CRYPTOPP_IMPORTS

#define CRYPTOPP_DEFAULT_NO_DLL
#include "dll.h"

#ifdef CRYPTOPP_WIN32_AVAILABLE
#define _WIN32_WINNT 0x0400
#include <windows.h>

#if defined(_MSC_VER) && _MSC_VER >= 1400
#ifdef _M_IX86
#define _CRT_DEBUGGER_HOOK _crt_debugger_hook
#else
#define _CRT_DEBUGGER_HOOK __crt_debugger_hook
#endif
extern "C" {_CRTIMP void __cdecl _CRT_DEBUGGER_HOOK(int);}
#endif
#endif

#include <iostream>

NAMESPACE_BEGIN(CryptoPP)

extern PowerUpSelfTestStatus g_powerUpSelfTestStatus;
SecByteBlock g_actualMac;
unsigned long g_macFileLocation = 0;

// use a random dummy string here, to be searched/replaced later with the real MAC
static const byte s_moduleMac[CryptoPP::HMAC<CryptoPP::SHA1>::DIGESTSIZE] = CRYPTOPP_DUMMY_DLL_MAC;
CRYPTOPP_COMPILE_ASSERT(sizeof(s_moduleMac) == CryptoPP::SHA1::DIGESTSIZE);

#ifdef CRYPTOPP_WIN32_AVAILABLE
static HMODULE s_hModule = NULL;
#endif

const byte * CRYPTOPP_API GetActualMacAndLocation(unsigned int &macSize, unsigned int &fileLocation)
{
	macSize = (unsigned int)g_actualMac.size();
	fileLocation = g_macFileLocation;
	return g_actualMac;
}

void KnownAnswerTest(RandomNumberGenerator &rng, const char *output)
{
	EqualityComparisonFilter comparison;

	RandomNumberStore(rng, strlen(output)/2).TransferAllTo(comparison, "0");
	StringSource(output, true, new HexDecoder(new ChannelSwitch(comparison, "1")));

	comparison.ChannelMessageSeriesEnd("0");
	comparison.ChannelMessageSeriesEnd("1");
}

template <class CIPHER>
void X917RNG_KnownAnswerTest(
	const char *key, 
	const char *seed, 
	const char *deterministicTimeVector,
	const char *output,
	CIPHER *dummy = NULL)
{
#ifdef OS_RNG_AVAILABLE
	std::string decodedKey, decodedSeed, decodedDeterministicTimeVector;
	StringSource(key, true, new HexDecoder(new StringSink(decodedKey)));
	StringSource(seed, true, new HexDecoder(new StringSink(decodedSeed)));
	StringSource(deterministicTimeVector, true, new HexDecoder(new StringSink(decodedDeterministicTimeVector)));

	AutoSeededX917RNG<CIPHER> rng;
	rng.Reseed((const byte *)decodedKey.data(), decodedKey.size(), (const byte *)decodedSeed.data(), (const byte *)decodedDeterministicTimeVector.data());
	KnownAnswerTest(rng, output);
#else
	throw 0;
#endif
}

void KnownAnswerTest(StreamTransformation &encryption, StreamTransformation &decryption, const char *plaintext, const char *ciphertext)
{
	EqualityComparisonFilter comparison;

	StringSource(plaintext, true, new HexDecoder(new StreamTransformationFilter(encryption, new ChannelSwitch(comparison, "0"), StreamTransformationFilter::NO_PADDING)));
	StringSource(ciphertext, true, new HexDecoder(new ChannelSwitch(comparison, "1")));

	StringSource(ciphertext, true, new HexDecoder(new StreamTransformationFilter(decryption, new ChannelSwitch(comparison, "0"), StreamTransformationFilter::NO_PADDING)));
	StringSource(plaintext, true, new HexDecoder(new ChannelSwitch(comparison, "1")));

	comparison.ChannelMessageSeriesEnd("0");
	comparison.ChannelMessageSeriesEnd("1");
}

template <class CIPHER>
void SymmetricEncryptionKnownAnswerTest(
	const char *key, 
	const char *hexIV, 
	const char *plaintext, 
	const char *ecb,
	const char *cbc,
	const char *cfb,
	const char *ofb,
	const char *ctr,
	CIPHER *dummy = NULL)
{
	std::string decodedKey;
	StringSource(key, true, new HexDecoder(new StringSink(decodedKey)));

	typename CIPHER::Encryption encryption((const byte *)decodedKey.data(), decodedKey.size());
	typename CIPHER::Decryption decryption((const byte *)decodedKey.data(), decodedKey.size());

	SecByteBlock iv(encryption.BlockSize());
	StringSource(hexIV, true, new HexDecoder(new ArraySink(iv, iv.size())));

	if (ecb)
		KnownAnswerTest(ECB_Mode_ExternalCipher::Encryption(encryption).Ref(), ECB_Mode_ExternalCipher::Decryption(decryption).Ref(), plaintext, ecb);
	if (cbc)
		KnownAnswerTest(CBC_Mode_ExternalCipher::Encryption(encryption, iv).Ref(), CBC_Mode_ExternalCipher::Decryption(decryption, iv).Ref(), plaintext, cbc);
	if (cfb)
		KnownAnswerTest(CFB_Mode_ExternalCipher::Encryption(encryption, iv).Ref(), CFB_Mode_ExternalCipher::Decryption(encryption, iv).Ref(), plaintext, cfb);
	if (ofb)
		KnownAnswerTest(OFB_Mode_ExternalCipher::Encryption(encryption, iv).Ref(), OFB_Mode_ExternalCipher::Decryption(encryption, iv).Ref(), plaintext, ofb);
	if (ctr)
		KnownAnswerTest(CTR_Mode_ExternalCipher::Encryption(encryption, iv).Ref(), CTR_Mode_ExternalCipher::Decryption(encryption, iv).Ref(), plaintext, ctr);
}

void KnownAnswerTest(HashTransformation &hash, const char *message, const char *digest)
{
	EqualityComparisonFilter comparison;
	StringSource(digest, true, new HexDecoder(new ChannelSwitch(comparison, "1")));
	StringSource(message, true, new HashFilter(hash, new ChannelSwitch(comparison, "0")));

	comparison.ChannelMessageSeriesEnd("0");
	comparison.ChannelMessageSeriesEnd("1");
}

template <class HASH>
void SecureHashKnownAnswerTest(const char *message, const char *digest, HASH *dummy = NULL)
{
	HASH hash;
	KnownAnswerTest(hash, message, digest);
}

template <class MAC>
void MAC_KnownAnswerTest(const char *key, const char *message, const char *digest, MAC *dummy = NULL)
{
	std::string decodedKey;
	StringSource(key, true, new HexDecoder(new StringSink(decodedKey)));

	MAC mac((const byte *)decodedKey.data(), decodedKey.size());
	KnownAnswerTest(mac, message, digest);
}

template <class SCHEME>
void SignatureKnownAnswerTest(const char *key, const char *message, const char *signature, SCHEME *dummy = NULL)
{
#ifdef OS_RNG_AVAILABLE
	DefaultAutoSeededRNG rng;
#else
	RandomNumberGenerator &rng = NullRNG();
#endif

	typename SCHEME::Signer signer(StringSource(key, true, new HexDecoder).Ref());
	typename SCHEME::Verifier verifier(signer);

	EqualityComparisonFilter comparison;

	StringSource(message, true, new SignerFilter(rng, signer, new ChannelSwitch(comparison, "0")));
	StringSource(signature, true, new HexDecoder(new ChannelSwitch(comparison, "1")));

	comparison.ChannelMessageSeriesEnd("0");
	comparison.ChannelMessageSeriesEnd("1");

	VerifierFilter verifierFilter(verifier, NULL, VerifierFilter::SIGNATURE_AT_BEGIN | VerifierFilter::THROW_EXCEPTION);
	StringSource(signature, true, new HexDecoder(new Redirector(verifierFilter, Redirector::DATA_ONLY)));
	StringSource(message, true, new Redirector(verifierFilter));
}

void EncryptionPairwiseConsistencyTest(const PK_Encryptor &encryptor, const PK_Decryptor &decryptor)
{
	try
	{
#ifdef OS_RNG_AVAILABLE
		DefaultAutoSeededRNG rng;
#else
		RandomNumberGenerator &rng = NullRNG();
#endif
		const char *testMessage ="test message";
		std::string ciphertext, decrypted;

		StringSource(
			testMessage, 
			true, 
			new PK_EncryptorFilter(
				rng, 
				encryptor, 
				new StringSink(ciphertext)));

		if (ciphertext == testMessage)
			throw 0;

		StringSource(
			ciphertext, 
			true, 
			new PK_DecryptorFilter(
				rng, 
				decryptor, 
				new StringSink(decrypted)));

		if (decrypted != testMessage)
			throw 0;
	}
	catch (...)
	{
		throw SelfTestFailure(encryptor.AlgorithmName() + ": pairwise consistency test failed");
	}
}

void SignaturePairwiseConsistencyTest(const PK_Signer &signer, const PK_Verifier &verifier)
{
	try
	{
#ifdef OS_RNG_AVAILABLE
		DefaultAutoSeededRNG rng;
#else
		RandomNumberGenerator &rng = NullRNG();
#endif

		StringSource(
			"test message", 
			true, 
			new SignerFilter(
				rng, 
				signer, 
				new VerifierFilter(verifier, NULL, VerifierFilter::THROW_EXCEPTION),
				true));
	}
	catch (...)
	{
		throw SelfTestFailure(signer.AlgorithmName() + ": pairwise consistency test failed");
	}
}

template <class SCHEME>
void SignaturePairwiseConsistencyTest(const char *key, SCHEME *dummy = NULL)
{
	typename SCHEME::Signer signer(StringSource(key, true, new HexDecoder).Ref());
	typename SCHEME::Verifier verifier(signer);

	SignaturePairwiseConsistencyTest(signer, verifier);
}

MessageAuthenticationCode * NewIntegrityCheckingMAC()
{
	byte key[] = {0x47, 0x1E, 0x33, 0x96, 0x65, 0xB1, 0x6A, 0xED, 0x0B, 0xF8, 0x6B, 0xFD, 0x01, 0x65, 0x05, 0xCC};
	return new HMAC<SHA1>(key, sizeof(key));
}

bool IntegrityCheckModule(const char *moduleFilename, const byte *expectedModuleMac, SecByteBlock *pActualMac, unsigned long *pMacFileLocation)
{
	std::auto_ptr<MessageAuthenticationCode> mac(NewIntegrityCheckingMAC());
	unsigned int macSize = mac->DigestSize();

	SecByteBlock tempMac;
	SecByteBlock &actualMac = pActualMac ? *pActualMac : tempMac;
	actualMac.resize(macSize);

	unsigned long tempLocation;
	unsigned long &macFileLocation = pMacFileLocation ? *pMacFileLocation : tempLocation;
	macFileLocation = 0;

	MeterFilter verifier(new HashFilter(*mac, new ArraySink(actualMac, actualMac.size())));
//	MeterFilter verifier(new FileSink("c:\\dt.tmp"));
	std::ifstream moduleStream;

#ifdef CRYPTOPP_WIN32_AVAILABLE
	HMODULE h;
	{
	char moduleFilenameBuf[MAX_PATH] = "";
	if (moduleFilename == NULL)
	{
#if (_MSC_VER >= 1400 && !defined(_STLPORT_VERSION))	// ifstream doesn't support wide filename on other compilers
		wchar_t wideModuleFilename[MAX_PATH];
		if (GetModuleFileNameW(s_hModule, wideModuleFilename, MAX_PATH) > 0)
		{
			moduleStream.open(wideModuleFilename, std::ios::in | std::ios::binary);
			h = GetModuleHandleW(wideModuleFilename);
		}
		else
#endif
		{
			GetModuleFileNameA(s_hModule, moduleFilenameBuf, MAX_PATH);
			moduleFilename = moduleFilenameBuf;
		}
	}
#endif
	if (moduleFilename != NULL)
	{
			moduleStream.open(moduleFilename, std::ios::in | std::ios::binary);
#ifdef CRYPTOPP_WIN32_AVAILABLE
			h = GetModuleHandleA(moduleFilename);
			moduleFilename = NULL;
	}
#endif
	}

	if (!moduleStream)
	{
#ifdef CRYPTOPP_WIN32_AVAILABLE

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
丁香桃色午夜亚洲一区二区三区| 日本一区二区三区久久久久久久久不 | 欧美日韩一区二区三区在线| 蜜桃av噜噜一区二区三区小说| 亚洲乱码中文字幕综合| www精品美女久久久tv| 欧美美女激情18p| 91小视频免费观看| 91免费国产视频网站| 精品国产区一区| 久久精品一区四区| 国产女人水真多18毛片18精品视频 | 欧美性受xxxx黑人xyx| 91电影在线观看| 欧洲精品一区二区三区在线观看| 欧美亚洲动漫精品| 久久看人人爽人人| 国产精品私人自拍| 亚洲色图视频网| 尤物在线观看一区| 国产成人亚洲综合a∨猫咪| 波多野结衣中文字幕一区二区三区| 国产成人小视频| 欧美一级专区免费大片| 欧美大片免费久久精品三p| 久久亚洲二区三区| 青青草视频一区| 国产成人av一区二区| 日韩欧美精品在线视频| 亚洲无人区一区| 九九视频精品免费| 国产成人免费视频网站 | av电影一区二区| 欧美日韩亚洲综合| 一区av在线播放| 九九**精品视频免费播放| 欧美日韩精品一区二区三区四区| 精品国产欧美一区二区| 日韩激情视频网站| 成人做爰69片免费看网站| 久久久久一区二区三区四区| 狠狠色丁香久久婷婷综合丁香| 本田岬高潮一区二区三区| 久久久久久夜精品精品免费| 国产精品小仙女| 在线免费观看日韩欧美| 亚洲精品免费电影| 欧美亚洲丝袜传媒另类| 亚洲国产日韩综合久久精品| 欧美性生活影院| 亚洲v精品v日韩v欧美v专区| 高清国产一区二区三区| 国产精品伦理在线| 色婷婷综合在线| 亚洲超丰满肉感bbw| 欧美一区二区三区在线电影| 亚洲成a人片在线不卡一二三区| 在线国产电影不卡| 日韩影院在线观看| 久久综合久色欧美综合狠狠| 成熟亚洲日本毛茸茸凸凹| 中文字幕字幕中文在线中不卡视频| 色综合久久久久网| 日本女优在线视频一区二区| 国产揄拍国内精品对白| 欧美日韩一区不卡| 免费av成人在线| 欧美激情中文字幕| 国产综合色精品一区二区三区| 欧美国产日韩在线观看| 色婷婷一区二区三区四区| 午夜欧美在线一二页| 成人午夜激情视频| 久久精品男人天堂av| www.在线成人| 午夜伦欧美伦电影理论片| 亚洲精品在线观| 色呦呦一区二区三区| 六月婷婷色综合| 欧美喷水一区二区| 国产一区在线看| 亚洲精品日日夜夜| 欧美成人三级电影在线| 免费成人在线视频观看| 国产精品免费免费| 91精品午夜视频| 亚洲成av人影院| 国产精品视频一二三| 7777精品伊人久久久大香线蕉最新版| 国产一区二区三区免费| 亚洲第一福利一区| 国产精品剧情在线亚洲| 色哟哟一区二区在线观看| 激情国产一区二区| 日本美女视频一区二区| 亚洲欧美偷拍三级| 欧美欧美欧美欧美| 91麻豆国产在线观看| 国产综合色在线视频区| 日韩av一区二区在线影视| 亚洲视频免费看| 久久精品夜夜夜夜久久| 777午夜精品视频在线播放| 91麻豆高清视频| 成人深夜福利app| 国产一区二区三区蝌蚪| 久久丁香综合五月国产三级网站| 亚洲国产美国国产综合一区二区| 一区在线观看视频| 欧美视频自拍偷拍| 91最新地址在线播放| 亚洲第一成人在线| 亚洲综合色噜噜狠狠| 欧美一级日韩免费不卡| 欧美少妇xxx| 在线观看91精品国产入口| 一本色道久久综合亚洲91 | 欧美色国产精品| 色综合天天综合狠狠| 亚洲一区av在线| 一区二区三区四区在线播放| 日韩美女视频一区| 亚洲欧美色图小说| 中文字幕中文在线不卡住| 中文字幕在线不卡一区| 国产精品国模大尺度视频| 国产精品欧美一区喷水| 国产精品久久久久毛片软件| 亚洲视频香蕉人妖| 亚洲电影视频在线| 午夜精品久久久| 人禽交欧美网站| 精品一区二区三区在线播放视频| 狠狠色丁香婷婷综合| 国产精品亚洲成人| 国产精品18久久久久久久久| 亚洲成人黄色小说| 亚洲精品中文在线影院| 中文字幕在线观看一区二区| 最新久久zyz资源站| 一区二区视频免费在线观看| 亚洲成人1区2区| 久久99国产精品久久99| 国产精品一区二区在线观看不卡| 成人午夜电影久久影院| 色婷婷综合久久久中文字幕| 在线不卡一区二区| 久久天天做天天爱综合色| 国产精品美女久久久久久久久久久| 亚洲人成在线观看一区二区| 亚洲一区在线视频| 精品一区二区三区欧美| 成人高清伦理免费影院在线观看| 在线观看区一区二| 精品国产91久久久久久久妲己| 欧美激情一区在线| 亚洲一区二区视频| 国产专区欧美精品| 色婷婷久久久久swag精品| 91精品国产乱| 精品福利av导航| 亚洲你懂的在线视频| 韩国精品主播一区二区在线观看| 9人人澡人人爽人人精品| 欧美丰满嫩嫩电影| 国产精品三级在线观看| 午夜精品久久久久久久| 成人午夜在线免费| 欧美一区二区三区视频免费| 国产欧美日韩在线看| 午夜电影久久久| 99久久久精品免费观看国产蜜| 91麻豆精品国产无毒不卡在线观看 | 久久99深爱久久99精品| 99精品欧美一区二区蜜桃免费 | 国产精品久久久久7777按摩| 日本美女一区二区三区| 97se亚洲国产综合自在线| 久久人人超碰精品| 日韩中文字幕不卡| 一本久道中文字幕精品亚洲嫩| 久久久久久黄色| 三级久久三级久久| 欧洲另类一二三四区| 中文字幕亚洲视频| 国模无码大尺度一区二区三区| 欧美精品久久一区| 夜夜嗨av一区二区三区| 国产成人免费视频网站 | 五月天亚洲婷婷| 91麻豆精品视频| 国产精品久久久久久久久久久免费看| 极品少妇xxxx精品少妇偷拍 | 岛国av在线一区| 精品国产电影一区二区| 欧美中文字幕不卡| 亚洲欧美影音先锋| 久久99久久久久| 欧美老女人在线| 亚洲曰韩产成在线|