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

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

?? filters.h

?? AlgorithmType: SymmetricCipher Name: AES/ECB Source: NIST Special Publication 800-38A Plaintext:
?? H
?? 第 1 頁 / 共 3 頁
字號:
	SimpleProxyFilter(BufferedTransformation *filter, BufferedTransformation *attachment)
		: ProxyFilter(filter, 0, 0, attachment) {}

	void FirstPut(const byte *) {}
	void LastPut(const byte *, size_t) {m_filter->MessageEnd();}
};

//! proxy for the filter created by PK_Encryptor::CreateEncryptionFilter
/*! This class is here just to provide symmetry with VerifierFilter. */
class CRYPTOPP_DLL PK_EncryptorFilter : public SimpleProxyFilter
{
public:
	PK_EncryptorFilter(RandomNumberGenerator &rng, const PK_Encryptor &encryptor, BufferedTransformation *attachment = NULL)
		: SimpleProxyFilter(encryptor.CreateEncryptionFilter(rng), attachment) {}
};

//! proxy for the filter created by PK_Decryptor::CreateDecryptionFilter
/*! This class is here just to provide symmetry with SignerFilter. */
class CRYPTOPP_DLL PK_DecryptorFilter : public SimpleProxyFilter
{
public:
	PK_DecryptorFilter(RandomNumberGenerator &rng, const PK_Decryptor &decryptor, BufferedTransformation *attachment = NULL)
		: SimpleProxyFilter(decryptor.CreateDecryptionFilter(rng), attachment) {}
};

//! Append input to a string object
template <class T>
class StringSinkTemplate : public Bufferless<Sink>
{
public:
	// VC60 workaround: no T::char_type
	typedef typename T::traits_type::char_type char_type;

	StringSinkTemplate(T &output)
		: m_output(&output) {assert(sizeof(output[0])==1);}

	void IsolatedInitialize(const NameValuePairs &parameters)
		{if (!parameters.GetValue("OutputStringPointer", m_output)) throw InvalidArgument("StringSink: OutputStringPointer not specified");}

	size_t Put2(const byte *begin, size_t length, int messageEnd, bool blocking)
	{
		if (length > 0)
		{
			typename T::size_type size = m_output->size();
			if (length < size && size + length > m_output->capacity())
				m_output->reserve(2*size);
		m_output->append((const char_type *)begin, (const char_type *)begin+length);
		}
		return 0;
	}

private:	
	T *m_output;
};

//! Append input to an std::string
CRYPTOPP_DLL_TEMPLATE_CLASS StringSinkTemplate<std::string>;
typedef StringSinkTemplate<std::string> StringSink;

//! incorporates input into RNG as additional entropy
class RandomNumberSink : public Bufferless<Sink>
{
public:
	RandomNumberSink()
		: m_rng(NULL) {}

	RandomNumberSink(RandomNumberGenerator &rng)
		: m_rng(&rng) {}

	void IsolatedInitialize(const NameValuePairs &parameters);
	size_t Put2(const byte *begin, size_t length, int messageEnd, bool blocking);

private:
	RandomNumberGenerator *m_rng;
};

//! Copy input to a memory buffer
class CRYPTOPP_DLL ArraySink : public Bufferless<Sink>
{
public:
	ArraySink(const NameValuePairs &parameters = g_nullNameValuePairs) {IsolatedInitialize(parameters);}
	ArraySink(byte *buf, size_t size) : m_buf(buf), m_size(size), m_total(0) {}

	size_t AvailableSize() {return SaturatingSubtract(m_size, m_total);}
	lword TotalPutLength() {return m_total;}

	void IsolatedInitialize(const NameValuePairs &parameters);
	byte * CreatePutSpace(size_t &size);
	size_t Put2(const byte *begin, size_t length, int messageEnd, bool blocking);

protected:
	byte *m_buf;
	size_t m_size;
	lword m_total;
};

//! Xor input to a memory buffer
class CRYPTOPP_DLL ArrayXorSink : public ArraySink
{
public:
	ArrayXorSink(byte *buf, size_t size)
		: ArraySink(buf, size) {}

	size_t Put2(const byte *begin, size_t length, int messageEnd, bool blocking);
	byte * CreatePutSpace(size_t &size) {return BufferedTransformation::CreatePutSpace(size);}
};

//! string-based implementation of Store interface
class StringStore : public Store
{
public:
	StringStore(const char *string = NULL)
		{StoreInitialize(MakeParameters("InputBuffer", ConstByteArrayParameter(string)));}
	StringStore(const byte *string, size_t length)
		{StoreInitialize(MakeParameters("InputBuffer", ConstByteArrayParameter(string, length)));}
	template <class T> StringStore(const T &string)
		{StoreInitialize(MakeParameters("InputBuffer", ConstByteArrayParameter(string)));}

	CRYPTOPP_DLL size_t TransferTo2(BufferedTransformation &target, lword &transferBytes, const std::string &channel=NULL_CHANNEL, bool blocking=true);
	CRYPTOPP_DLL size_t CopyRangeTo2(BufferedTransformation &target, lword &begin, lword end=LWORD_MAX, const std::string &channel=NULL_CHANNEL, bool blocking=true) const;

private:
	CRYPTOPP_DLL void StoreInitialize(const NameValuePairs &parameters);

	const byte *m_store;
	size_t m_length, m_count;
};

//! RNG-based implementation of Source interface
class CRYPTOPP_DLL RandomNumberStore : public Store
{
public:
	RandomNumberStore()
		: m_rng(NULL), m_length(0), m_count(0) {}

	RandomNumberStore(RandomNumberGenerator &rng, lword length)
		: m_rng(&rng), m_length(length), m_count(0) {}

	bool AnyRetrievable() const {return MaxRetrievable() != 0;}
	lword MaxRetrievable() const {return m_length-m_count;}

	size_t TransferTo2(BufferedTransformation &target, lword &transferBytes, const std::string &channel=NULL_CHANNEL, bool blocking=true);
	size_t CopyRangeTo2(BufferedTransformation &target, lword &begin, lword end=LWORD_MAX, const std::string &channel=NULL_CHANNEL, bool blocking=true) const
	{
		throw NotImplemented("RandomNumberStore: CopyRangeTo2() is not supported by this store");
	}

private:
	void StoreInitialize(const NameValuePairs &parameters);

	RandomNumberGenerator *m_rng;
	lword m_length, m_count;
};

//! empty store
class CRYPTOPP_DLL NullStore : public Store
{
public:
	NullStore(lword size = ULONG_MAX) : m_size(size) {}
	void StoreInitialize(const NameValuePairs &parameters) {}
	lword MaxRetrievable() const {return m_size;}
	size_t TransferTo2(BufferedTransformation &target, lword &transferBytes, const std::string &channel=NULL_CHANNEL, bool blocking=true);
	size_t CopyRangeTo2(BufferedTransformation &target, lword &begin, lword end=LWORD_MAX, const std::string &channel=NULL_CHANNEL, bool blocking=true) const;

private:
	lword m_size;
};

//! A Filter that pumps data into its attachment as input
class CRYPTOPP_DLL CRYPTOPP_NO_VTABLE Source : public InputRejecting<Filter>
{
public:
	Source(BufferedTransformation *attachment = NULL)
		{Source::Detach(attachment);}

	lword Pump(lword pumpMax=size_t(0)-1)
		{Pump2(pumpMax); return pumpMax;}
	unsigned int PumpMessages(unsigned int count=UINT_MAX)
		{PumpMessages2(count); return count;}
	void PumpAll()
		{PumpAll2();}
	virtual size_t Pump2(lword &byteCount, bool blocking=true) =0;
	virtual size_t PumpMessages2(unsigned int &messageCount, bool blocking=true) =0;
	virtual size_t PumpAll2(bool blocking=true);
	virtual bool SourceExhausted() const =0;

protected:
	void SourceInitialize(bool pumpAll, const NameValuePairs &parameters)
	{
		IsolatedInitialize(parameters);
		if (pumpAll)
			PumpAll();
	}
};

//! Turn a Store into a Source
template <class T>
class SourceTemplate : public Source
{
public:
	SourceTemplate<T>(BufferedTransformation *attachment)
		: Source(attachment) {}
	void IsolatedInitialize(const NameValuePairs &parameters)
		{m_store.IsolatedInitialize(parameters);}
	size_t Pump2(lword &byteCount, bool blocking=true)
		{return m_store.TransferTo2(*AttachedTransformation(), byteCount, NULL_CHANNEL, blocking);}
	size_t PumpMessages2(unsigned int &messageCount, bool blocking=true)
		{return m_store.TransferMessagesTo2(*AttachedTransformation(), messageCount, NULL_CHANNEL, blocking);}
	size_t PumpAll2(bool blocking=true)
		{return m_store.TransferAllTo2(*AttachedTransformation(), NULL_CHANNEL, blocking);}
	bool SourceExhausted() const
		{return !m_store.AnyRetrievable() && !m_store.AnyMessages();}
	void SetAutoSignalPropagation(int propagation)
		{m_store.SetAutoSignalPropagation(propagation);}
	int GetAutoSignalPropagation() const
		{return m_store.GetAutoSignalPropagation();}

protected:
	T m_store;
};

//! string-based implementation of Source interface
class CRYPTOPP_DLL StringSource : public SourceTemplate<StringStore>
{
public:
	StringSource(BufferedTransformation *attachment = NULL)
		: SourceTemplate<StringStore>(attachment) {}
	//! zero terminated string as source
	StringSource(const char *string, bool pumpAll, BufferedTransformation *attachment = NULL)
		: SourceTemplate<StringStore>(attachment) {SourceInitialize(pumpAll, MakeParameters("InputBuffer", ConstByteArrayParameter(string)));}
	//! binary byte array as source
	StringSource(const byte *string, size_t length, bool pumpAll, BufferedTransformation *attachment = NULL)
		: SourceTemplate<StringStore>(attachment) {SourceInitialize(pumpAll, MakeParameters("InputBuffer", ConstByteArrayParameter(string, length)));}
	//! std::string as source
	StringSource(const std::string &string, bool pumpAll, BufferedTransformation *attachment = NULL)
		: SourceTemplate<StringStore>(attachment) {SourceInitialize(pumpAll, MakeParameters("InputBuffer", ConstByteArrayParameter(string)));}
};

//! use the third constructor for an array source
typedef StringSource ArraySource;

//! RNG-based implementation of Source interface
class CRYPTOPP_DLL RandomNumberSource : public SourceTemplate<RandomNumberStore>
{
public:
	RandomNumberSource(RandomNumberGenerator &rng, int length, bool pumpAll, BufferedTransformation *attachment = NULL)
		: SourceTemplate<RandomNumberStore>(attachment) 
		{SourceInitialize(pumpAll, MakeParameters("RandomNumberGeneratorPointer", &rng)("RandomNumberStoreSize", length));}
};

NAMESPACE_END

#endif

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一卡二卡三卡四卡五卡| 国产在线不卡一区| 另类小说一区二区三区| 国产麻豆午夜三级精品| 一道本成人在线| 久久久亚洲精品石原莉奈| 午夜影院在线观看欧美| 成人免费三级在线| 精品久久久久久无| 婷婷国产在线综合| 一本到不卡免费一区二区| 久久久精品天堂| 免费成人在线播放| 欧美日韩国产高清一区二区| 中文字幕中文乱码欧美一区二区 | 欧美私人免费视频| 国产精品成人一区二区三区夜夜夜| 看片网站欧美日韩| 欧美一区二区三区的| 亚洲一区二区综合| 色婷婷综合久色| 国产精品久久久一本精品| 国产一区二区福利视频| wwwwxxxxx欧美| 免费成人小视频| 欧美日本一区二区| 亚洲成人av在线电影| 在线观看三级视频欧美| 亚洲老司机在线| heyzo一本久久综合| 中文在线资源观看网站视频免费不卡 | 极品瑜伽女神91| 日韩一区和二区| 日本欧美加勒比视频| 4438x成人网最大色成网站| 一区二区三区在线免费| 色综合一个色综合亚洲| 亚洲精选在线视频| 色久优优欧美色久优优| 一区2区3区在线看| 欧美三级韩国三级日本三斤| 亚洲另类色综合网站| 欧美日韩视频在线第一区 | 国产欧美一区二区精品仙草咪| 国产一区二区电影| 亚洲欧洲无码一区二区三区| 91在线视频免费91| 亚洲国产欧美在线| 91精品国产91久久综合桃花| 看片网站欧美日韩| 国产日本一区二区| 色网站国产精品| 日韩av高清在线观看| 精品久久久久久久人人人人传媒| 国产毛片精品视频| 亚洲免费av网站| 91精品国产丝袜白色高跟鞋| 激情综合网最新| 国产精品欧美久久久久一区二区| 91久久精品午夜一区二区| 人人狠狠综合久久亚洲| 日本一区二区视频在线观看| eeuss影院一区二区三区| 一区二区不卡在线视频 午夜欧美不卡在 | 欧美精品在线视频| 国产在线视频精品一区| 亚洲人亚洲人成电影网站色| 欧美高清视频一二三区| 国产一区二区三区观看| 亚洲精品乱码久久久久久日本蜜臀| 欧美三级资源在线| 国产成人在线电影| 亚洲高清久久久| 日本一区二区三区在线不卡| 欧美综合一区二区三区| 国产精品一品视频| 亚洲成av人片一区二区梦乃| 日本一区二区三级电影在线观看| 91传媒视频在线播放| 国产一区欧美一区| 亚洲午夜在线视频| 国产日韩三级在线| 91精品国产色综合久久ai换脸| 粉嫩aⅴ一区二区三区四区五区| 性欧美疯狂xxxxbbbb| 中文字幕av一区二区三区免费看| 69堂精品视频| 色婷婷亚洲一区二区三区| 精品一区二区国语对白| 一区二区三区久久| 国产精品亲子乱子伦xxxx裸| 日韩精品一区二| 欧美精品在欧美一区二区少妇| 91欧美一区二区| 不卡的电视剧免费网站有什么| 美女任你摸久久| 午夜av区久久| 一区二区三区四区国产精品| 国产精品嫩草99a| 2021国产精品久久精品| 日韩一区二区在线观看视频播放| 在线精品亚洲一区二区不卡| www.亚洲人| 国产一区二区不卡| 国产在线视视频有精品| 久久精品国产**网站演员| 热久久久久久久| 日韩精品电影在线| 亚洲成人自拍偷拍| 亚洲成人资源在线| 亚洲国产成人av网| 一区二区三区精品| 亚洲一区二区三区影院| 亚洲激情av在线| 亚洲激情图片小说视频| 亚洲欧美色图小说| 亚洲欧美区自拍先锋| 亚洲高清视频在线| 欧美a级一区二区| 日韩va欧美va亚洲va久久| 日韩精品视频网| 蜜臀久久99精品久久久久宅男| 蜜桃久久久久久久| 韩国精品免费视频| 懂色av一区二区夜夜嗨| av影院午夜一区| 欧美亚洲精品一区| 日韩女优制服丝袜电影| 日韩欧美电影一区| 国产日韩欧美精品电影三级在线| 久久久天堂av| 亚洲欧美成人一区二区三区| 亚洲一区二区高清| 美女视频第一区二区三区免费观看网站| 欧美aa在线视频| 高清视频一区二区| 99精品久久只有精品| 欧美在线小视频| 欧美一二三四在线| 中文字幕高清一区| 一区二区三区日韩| 免费在线看一区| 成人中文字幕电影| 欧美亚洲愉拍一区二区| 日韩免费成人网| 亚洲天堂成人网| 欧美aaaaaa午夜精品| 成人av影院在线| 欧美日本一道本在线视频| 国产三级三级三级精品8ⅰ区| 中文字幕一区二区三区蜜月| 日韩一区欧美二区| 国产成人精品三级| 欧美日韩二区三区| 国产欧美日韩另类一区| 亚洲成年人影院| 国产精品乡下勾搭老头1| 91福利精品第一导航| 欧美tickling挠脚心丨vk| 国产精品免费视频观看| 免费看欧美女人艹b| 波多野结衣中文字幕一区| 91精品免费观看| **网站欧美大片在线观看| 另类小说综合欧美亚洲| 色偷偷久久一区二区三区| 久久久久97国产精华液好用吗 | 国产视频亚洲色图| 首页国产欧美久久| 成人精品视频一区二区三区| 欧美日韩国产大片| 亚洲精品成人天堂一二三| 激情深爱一区二区| 久久亚洲欧美国产精品乐播 | 国产一本一道久久香蕉| 欧美日韩你懂得| 国产精品日韩精品欧美在线| 免费xxxx性欧美18vr| 一本大道久久a久久精二百| 久久久精品国产99久久精品芒果| 丝袜美腿高跟呻吟高潮一区| 97精品久久久午夜一区二区三区| 精品福利一二区| 日韩中文欧美在线| 欧美区一区二区三区| 中文字幕亚洲一区二区av在线 | 成人性视频免费网站| 亚洲精品一区二区三区在线观看| 五月综合激情网| 欧美日韩一区二区三区在线| 亚洲影视在线播放| 97久久超碰国产精品电影| 欧美激情在线一区二区三区| 国产精品一区专区| 久久这里只精品最新地址| 麻豆精品精品国产自在97香蕉| 91精品午夜视频| 视频一区二区三区入口| 欧美一区二区三区日韩视频| 亚洲国产欧美另类丝袜|