亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
91搞黄在线观看| 精品国内二区三区| 欧美老年两性高潮| 国产农村妇女毛片精品久久麻豆| 欧美激情一区二区在线| 午夜精品久久久久久久| 国产成人免费视频| 666欧美在线视频| 亚洲日本丝袜连裤袜办公室| 久久99精品国产麻豆婷婷| 色综合久久久久网| 国产亚洲午夜高清国产拍精品| 亚洲妇女屁股眼交7| 99久久久无码国产精品| 精品精品国产高清一毛片一天堂| 亚洲一区二区av电影| 成人午夜视频福利| 精品福利在线导航| 日本亚洲欧美天堂免费| 色婷婷精品大视频在线蜜桃视频| 久久久电影一区二区三区| 卡一卡二国产精品| 欧美久久久久久久久| 亚洲日本青草视频在线怡红院 | 99久久伊人网影院| 久久午夜色播影院免费高清| 欧美bbbbb| 欧美一三区三区四区免费在线看| 夜夜亚洲天天久久| 91极品视觉盛宴| 亚洲图片你懂的| 99国产一区二区三精品乱码| 国产精品久久久久一区| 成人午夜伦理影院| 中文字幕精品三区| 成人黄色777网| 欧美激情在线观看视频免费| 国产曰批免费观看久久久| 精品国产制服丝袜高跟| 北岛玲一区二区三区四区| 久久综合国产精品| 国产丶欧美丶日本不卡视频| 久久久久久久久久久久久夜| 国产米奇在线777精品观看| 精品国产制服丝袜高跟| 国产一区啦啦啦在线观看| 久久婷婷成人综合色| 国产精品一线二线三线精华| 国产日韩亚洲欧美综合| 成人激情文学综合网| 1区2区3区精品视频| 日本高清视频一区二区| 香蕉乱码成人久久天堂爱免费| 欧美男同性恋视频网站| 麻豆精品一区二区综合av| 26uuu精品一区二区| 风间由美一区二区av101| 中文字幕制服丝袜一区二区三区 | 91丨九色丨尤物| 亚洲夂夂婷婷色拍ww47| 欧美军同video69gay| 老司机午夜精品| 国产欧美一区二区精品忘忧草 | 日韩亚洲电影在线| 国产综合成人久久大片91| 国产精品久久99| 欧美日韩国产精选| 国产一区二区毛片| 亚洲女同女同女同女同女同69| 欧美顶级少妇做爰| 国产成人精品三级麻豆| 一区二区三区精品视频在线| 日韩一区和二区| zzijzzij亚洲日本少妇熟睡| 亚洲国产日韩综合久久精品| 久久久久久99久久久精品网站| 91麻豆精东视频| 久久99久久99小草精品免视看| 国产精品色哟哟网站| 欧美精品乱码久久久久久| 国产精品亚洲成人| 天堂一区二区在线| 国产精品电影院| 精品成人一区二区| 欧洲av在线精品| 成人免费黄色大片| 日韩avvvv在线播放| ...中文天堂在线一区| 欧美成人高清电影在线| 色乱码一区二区三区88| 国产一级精品在线| 亚洲h动漫在线| 亚洲欧美在线视频| 久久久国产精华| 欧美一级理论片| 欧美日韩一区小说| 97久久精品人人澡人人爽| 极品美女销魂一区二区三区| 亚洲一卡二卡三卡四卡无卡久久| 亚洲国产精品传媒在线观看| 欧美一级精品大片| 欧美另类变人与禽xxxxx| 99re成人在线| jlzzjlzz亚洲日本少妇| 国产成人综合视频| 狠狠色狠狠色合久久伊人| 免费观看30秒视频久久| 亚洲自拍偷拍图区| 亚洲精品成人在线| 日韩一区欧美小说| 国产精品国产三级国产普通话99| 久久五月婷婷丁香社区| 精品久久久久久久一区二区蜜臀| 欧美日韩一级视频| 欧美性淫爽ww久久久久无| 色综合天天狠狠| 99精品1区2区| 色综合久久中文字幕综合网| av影院午夜一区| 91麻豆福利精品推荐| 91女人视频在线观看| 91美女视频网站| 在线观看日产精品| 欧美日韩中文国产| 91精品欧美福利在线观看| 欧美日韩精品专区| 91精品国产品国语在线不卡| 制服丝袜中文字幕亚洲| 日韩免费性生活视频播放| 日韩一区二区三区视频在线观看| 日韩女优电影在线观看| 亚洲精品在线免费观看视频| 国产亚洲欧洲一区高清在线观看| 久久精品视频网| 亚洲欧洲www| 亚洲大片精品永久免费| 喷水一区二区三区| 国产精品资源网| av电影在线观看一区| 91传媒视频在线播放| 欧美一二三区在线观看| 久久九九99视频| 亚洲视频香蕉人妖| 视频一区视频二区中文字幕| 极品少妇一区二区| 99视频国产精品| 欧美肥妇毛茸茸| 国产日韩三级在线| 亚洲永久精品大片| 久久av资源网| 91在线高清观看| 日韩亚洲电影在线| 国产精品久久久99| 日本va欧美va精品| 丁香婷婷综合激情五月色| 91高清视频在线| 精品国产伦一区二区三区观看体验 | 成人性色生活片免费看爆迷你毛片| 99久久久久免费精品国产| 欧美日韩午夜精品| 国产日韩欧美一区二区三区乱码 | 成人小视频免费在线观看| 在线亚洲精品福利网址导航| 日韩一区二区三区视频| 日韩一区欧美小说| 国模套图日韩精品一区二区| 在线影视一区二区三区| 久久影院视频免费| 亚洲大片在线观看| 成人免费三级在线| 精品三级在线观看| 亚洲一二三区视频在线观看| 韩国女主播成人在线| 欧美日本在线一区| 国产精品久久网站| 狠狠色综合日日| 欧美一区二区福利视频| 伊人性伊人情综合网| 懂色av噜噜一区二区三区av | av不卡在线观看| 久久夜色精品国产噜噜av| 亚洲a一区二区| 成人美女视频在线观看| 欧美一级二级三级乱码| 亚洲一区二区三区中文字幕在线| 国产剧情一区二区三区| 日韩一区二区视频| 日韩专区中文字幕一区二区| 色婷婷综合五月| 综合分类小说区另类春色亚洲小说欧美| 麻豆传媒一区二区三区| 在线成人av网站| 亚洲国产视频在线| 欧美丝袜丝交足nylons图片| 自拍偷拍亚洲激情| 粉嫩aⅴ一区二区三区四区 | 一区二区三区在线高清| 成人一区在线看| 欧美激情一区二区三区不卡| 精品亚洲成a人|