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

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

?? osrng.h

?? 加密函數庫:包括多種加密解密算法,數字簽名,散列算法
?? H
字號:
#ifndef CRYPTOPP_OSRNG_H
#define CRYPTOPP_OSRNG_H

#include "config.h"

#ifdef OS_RNG_AVAILABLE

#include "randpool.h"
#include "rng.h"

NAMESPACE_BEGIN(CryptoPP)

//! Exception class for Operating-System Random Number Generator.
class OS_RNG_Err : public Exception
{
public:
	OS_RNG_Err(const std::string &operation);
};

#ifdef NONBLOCKING_RNG_AVAILABLE

#ifdef CRYPTOPP_WIN32_AVAILABLE
class MicrosoftCryptoProvider
{
public:
	MicrosoftCryptoProvider();
	~MicrosoftCryptoProvider();
#if defined(_WIN64)
	typedef unsigned __int64 ProviderHandle;	// type HCRYPTPROV, avoid #include <windows.h>
#else
	typedef unsigned long ProviderHandle;
#endif
	ProviderHandle GetProviderHandle() const {return m_hProvider;}
private:
	ProviderHandle m_hProvider;
};
#endif

//! encapsulate CryptoAPI's CryptGenRandom or /dev/urandom
class NonblockingRng : public RandomNumberGenerator
{
public:
	NonblockingRng();
	~NonblockingRng();
	byte GenerateByte();
	void GenerateBlock(byte *output, unsigned int size);

protected:
#ifdef CRYPTOPP_WIN32_AVAILABLE
#	ifndef WORKAROUND_MS_BUG_Q258000
		MicrosoftCryptoProvider m_Provider;
#	endif
#else
	int m_fd;
#endif
};

#endif

#ifdef BLOCKING_RNG_AVAILABLE

//! encapsulate /dev/random
class BlockingRng : public RandomNumberGenerator
{
public:
	BlockingRng();
	~BlockingRng();
	byte GenerateByte();
	void GenerateBlock(byte *output, unsigned int size);

protected:
	int m_fd;
};

#endif

void OS_GenerateRandomBlock(bool blocking, byte *output, unsigned int size);

//! Automaticly Seeded Randomness Pool
/*! This class seeds itself using an operating system provided RNG. */
class AutoSeededRandomPool : public RandomPool
{
public:
	//! blocking will be ignored if the prefered RNG isn't available
	explicit AutoSeededRandomPool(bool blocking = false, unsigned int seedSize = 32)
		{Reseed(blocking, seedSize);}
	void Reseed(bool blocking = false, unsigned int seedSize = 32);
};

//! RNG from ANSI X9.17 Appendix C, seeded using an OS provided RNG
template <class BLOCK_CIPHER>
class AutoSeededX917RNG : public RandomNumberGenerator
{
public:
	//! blocking will be ignored if the prefered RNG isn't available
	explicit AutoSeededX917RNG(bool blocking = false)
		{Reseed(blocking);}
	void Reseed(bool blocking = false);
	// exposed for testing
	void Reseed(const byte *key, unsigned int keylength, const byte *seed, unsigned long timeVector);

	byte GenerateByte();

private:
	member_ptr<RandomNumberGenerator> m_rng;
	SecByteBlock m_lastBlock;
	bool m_isDifferent;
	unsigned int m_counter;
};

template <class BLOCK_CIPHER>
void AutoSeededX917RNG<BLOCK_CIPHER>::Reseed(const byte *key, unsigned int keylength, const byte *seed, unsigned long timeVector)
{
	m_rng.reset(new X917RNG(new typename BLOCK_CIPHER::Encryption(key, keylength), seed, timeVector));

	// for FIPS 140-2
	m_lastBlock.resize(16);
	m_rng->GenerateBlock(m_lastBlock, m_lastBlock.size());
	m_counter = 0;
	m_isDifferent = false;
}

template <class BLOCK_CIPHER>
void AutoSeededX917RNG<BLOCK_CIPHER>::Reseed(bool blocking)
{
	SecByteBlock seed(BLOCK_CIPHER::BLOCKSIZE + BLOCK_CIPHER::DEFAULT_KEYLENGTH);
	const byte *key;
	do
	{
		OS_GenerateRandomBlock(blocking, seed, seed.size());
		key = seed + BLOCK_CIPHER::BLOCKSIZE;
	}	// check that seed and key don't have same value
	while (memcmp(key, seed, STDMIN((unsigned int)BLOCK_CIPHER::BLOCKSIZE, (unsigned int)BLOCK_CIPHER::DEFAULT_KEYLENGTH)) == 0);

	Reseed(key, BLOCK_CIPHER::DEFAULT_KEYLENGTH, seed, 0);
}

template <class BLOCK_CIPHER>
byte AutoSeededX917RNG<BLOCK_CIPHER>::GenerateByte()
{
	byte b = m_rng->GenerateByte();

	// for FIPS 140-2
	m_isDifferent = m_isDifferent || b != m_lastBlock[m_counter];
	m_lastBlock[m_counter] = b;
	++m_counter;
	if (m_counter == m_lastBlock.size())
	{
		if (!m_isDifferent)
			throw SelfTestFailure("AutoSeededX917RNG: Continuous random number generator test failed.");
		m_counter = 0;
		m_isDifferent = false;
	}

	return b;
}

NAMESPACE_END

#endif

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜精品国产更新| 久久精品人人做人人爽97| 自拍偷拍亚洲综合| 99精品在线免费| 亚洲人成在线播放网站岛国| 99久久精品国产导航| 日韩伦理av电影| 在线观看日韩国产| 午夜精品久久久久久久久| 在线成人高清不卡| 久久精品国产亚洲a| 久久这里只有精品首页| 国产99久久久国产精品潘金网站| 久久久久国产精品麻豆ai换脸| 国产主播一区二区| 最新日韩在线视频| 欧美人与禽zozo性伦| 久久激五月天综合精品| 国产日产欧产精品推荐色| 成人在线综合网| 亚洲一区二区五区| 欧美一区二区三区视频| 国产69精品久久777的优势| 1区2区3区国产精品| 欧美日韩一区在线| 国产一区二区剧情av在线| 国产精品午夜电影| 欧美人体做爰大胆视频| 国产成人精品影视| 亚洲午夜视频在线| 26uuu精品一区二区在线观看| 成人av集中营| 蜜乳av一区二区三区| 中文一区二区完整视频在线观看| 91福利精品视频| 国产在线不卡一区| 亚洲激情中文1区| 欧美精品一区二区三区久久久| 91免费版在线| 久久99久久精品欧美| 亚洲精品写真福利| 久久久久久久久久久黄色| 欧美丝袜丝交足nylons图片| 大陆成人av片| 免费看黄色91| 亚洲一区二区综合| 国产清纯在线一区二区www| 欧美精品亚洲二区| 91免费视频观看| 国产一区在线观看视频| 亚洲第一二三四区| 国产精品网站在线观看| 欧美成人免费网站| 欧美日韩黄色影视| 91麻豆国产精品久久| 国产精品综合视频| 久久99久久99小草精品免视看| 亚洲一区二区3| 成人欧美一区二区三区白人| 久久午夜免费电影| 日韩精品一区二区在线| 欧美日韩黄视频| 精品视频1区2区3区| 99re成人精品视频| 成人做爰69片免费看网站| 极品少妇一区二区| 蜜桃一区二区三区在线| 日本欧美久久久久免费播放网| 亚洲免费观看在线观看| 成人欧美一区二区三区小说| 国产日韩欧美电影| 国产亚洲视频系列| 国产亚洲1区2区3区| 久久中文娱乐网| 久久影院视频免费| 精品国产凹凸成av人导航| 日韩一区二区三区电影在线观看| 欧美日韩国产一区| 欧美高清性hdvideosex| 91精品国产色综合久久久蜜香臀| 欧美四级电影在线观看| 欧美中文一区二区三区| 在线免费观看视频一区| 欧美伊人精品成人久久综合97 | 精品美女在线观看| 欧美成人女星排行榜| 久久久精品黄色| 国产女主播视频一区二区| 久久久精品国产免费观看同学| 精品sm捆绑视频| 久久久久久久久久久99999| 久久久亚洲欧洲日产国码αv| 久久九九全国免费| 国产精品久久久久影院| 亚洲视频在线一区二区| 亚洲国产成人va在线观看天堂| 亚洲第一狼人社区| 捆绑紧缚一区二区三区视频| 国内欧美视频一区二区| 丰满白嫩尤物一区二区| 91亚洲午夜精品久久久久久| 在线观看视频一区二区| 欧美精品日韩综合在线| 2024国产精品| 亚洲欧洲国产日本综合| 亚洲妇女屁股眼交7| 开心九九激情九九欧美日韩精美视频电影| 麻豆成人免费电影| 北岛玲一区二区三区四区| 在线免费一区三区| 精品国精品自拍自在线| 国产精品成人免费精品自在线观看| 亚洲蜜桃精久久久久久久| 午夜欧美一区二区三区在线播放| 国产综合色视频| 91久久香蕉国产日韩欧美9色| 欧美一区二区视频在线观看2020| 久久夜色精品国产欧美乱极品| 国产精品国产三级国产三级人妇| 亚洲午夜激情网站| 美女国产一区二区| av电影在线不卡| 日韩亚洲欧美中文三级| 中文字幕制服丝袜成人av| 天堂va蜜桃一区二区三区 | 一区二区三区加勒比av| 美女脱光内衣内裤视频久久网站 | 久久黄色级2电影| 成人99免费视频| 日韩一区二区精品葵司在线 | 91视频在线看| 精品理论电影在线观看| 亚洲在线一区二区三区| 国产盗摄视频一区二区三区| 欧美午夜精品久久久久久孕妇| 久久久久久久电影| 天天亚洲美女在线视频| 99久久综合色| 久久精品亚洲国产奇米99| 亚洲成人综合视频| 99精品久久99久久久久| 久久品道一品道久久精品| 日日夜夜免费精品视频| 91丨porny丨户外露出| 国产午夜亚洲精品理论片色戒| 午夜精品福利一区二区蜜股av| 99久久精品一区二区| 久久久综合视频| 久久国产视频网| 欧美日韩免费视频| 日韩理论片网站| 暴力调教一区二区三区| 国产欧美日韩在线观看| 老司机精品视频线观看86 | 91女人视频在线观看| 精品99999| 蜜臀av一级做a爰片久久| 欧美日韩视频第一区| 一区二区不卡在线播放 | 久久亚洲精精品中文字幕早川悠里| 亚洲成a人v欧美综合天堂下载 | 日本视频一区二区三区| 欧美影院一区二区| 亚洲精品成人悠悠色影视| 99v久久综合狠狠综合久久| 欧美激情在线免费观看| 国产成人h网站| 国产午夜精品一区二区三区视频| 精品一区二区三区在线播放视频| 日韩欧美www| 精品一区二区成人精品| 亚洲精品在线观看视频| 看电影不卡的网站| 2023国产一二三区日本精品2022| 激情小说欧美图片| 久久精品一区二区三区不卡 | 91麻豆高清视频| 一区二区日韩电影| 欧美精品久久一区二区三区| 午夜免费久久看| 精品少妇一区二区三区视频免付费 | av激情亚洲男人天堂| 亚洲男人天堂一区| 欧洲精品一区二区三区在线观看| 亚洲另类在线视频| 欧美色涩在线第一页| 日韩精品国产精品| 欧美大黄免费观看| 国产福利电影一区二区三区| 欧美国产精品劲爆| 在线观看一区日韩| 日韩成人精品视频| 欧美精品一区二区不卡| 成人av电影在线观看| 亚洲一区中文日韩| 日韩欧美久久一区| 成人丝袜高跟foot| 亚洲精品乱码久久久久| 91精品久久久久久久久99蜜臂| 国内精品伊人久久久久av影院|