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

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

?? xormac.h

?? #include "pch.h" #include "base64.h" NAMESPACE_BEGIN(CryptoPP) static const int MAX_LINE_LENG
?? H
字號:
// xormac.h - written and placed in the public domain by Wei Dai

#ifndef CRYPTOPP_XORMAC_H
#define CRYPTOPP_XORMAC_H

#include "iterhash.h"

NAMESPACE_BEGIN(CryptoPP)

template <class T> class XMACC : public IteratedHash<typename T::HashWordType>, public MessageAuthenticationCode
{
public:
	// If you need to generate MACs with XMACC (instead of just verifying them),
	// you must save the counter before destroying an XMACC object
	// and reinitialize it the next time you create an XMACC with the same key.
	// Start counter at 0 when using a key for the first time.

	XMACC(const byte *userKey, word32 counter=0xffffffff);

	word32 CurrentCounter() const {return counter;}

	void Final(byte *mac);
	bool Verify(const byte *mac);
	unsigned int DigestSize() const {return DIGESTSIZE;}

	enum {KEYLENGTH=T::DIGESTSIZE-4, DIGESTSIZE = 4+T::DIGESTSIZE, DATASIZE = T::DATASIZE};

private:
	void Init();
	void HashBlock(const HashWordType *input);
	static void WriteWord32(byte *output, word32 value);
	static void XorDigest(HashWordType *digest, const HashWordType *buffer);

	SecByteBlock key;
	SecBlock<HashWordType> buffer;
	word32 counter, index;
};

template <class T> XMACC<T>::XMACC(const byte *userKey, word32 counter)
	: IteratedHash<T::HashWordType>(DATASIZE, T::DIGESTSIZE)
	, key(KEYLENGTH)
	, buffer(T::DIGESTSIZE/sizeof(HashWordType))
	, counter(counter)
{
	memcpy(key, userKey, KEYLENGTH);
	Init();
}

template <class T> void XMACC<T>::Init()
{
	countLo = countHi = 0;
	index = 0x80000000;
	memset(digest, 0, T::DIGESTSIZE);
}

template <class T> inline void XMACC<T>::WriteWord32(byte *output, word32 value)
{
	output[0] = byte(value >> 24);
	output[1] = byte(value >> 16);
	output[2] = byte(value >> 8);
	output[3] = byte(value);
}

template <class T> inline void XMACC<T>::XorDigest(HashWordType *digest, const HashWordType *buffer)
{
	for (unsigned i=0; i<(T::DIGESTSIZE/sizeof(HashWordType)); i++)
		digest[i] ^= buffer[i];
}

template <class T> void XMACC<T>::HashBlock(const HashWordType *input)
{
	memcpy(buffer, key, KEYLENGTH);
	WriteWord32((byte *)buffer.ptr+KEYLENGTH, ++index);
	T::CorrectEndianess(buffer, buffer, T::DIGESTSIZE);
	T::CorrectEndianess(data, input, DATASIZE);
	T::Transform(buffer, data);
	XorDigest(digest, buffer);
}

template <class T> void XMACC<T>::Final(byte *mac)
{
	assert(counter != 0xffffffff);

	PadLastBlock(DATASIZE-8);
	WriteWord32((byte *)data.ptr+DATASIZE-8, countHi);
	WriteWord32((byte *)data.ptr+DATASIZE-4, countLo);
	HashBlock(data);

	memcpy(buffer, key, KEYLENGTH);
	WriteWord32((byte *)buffer.ptr+KEYLENGTH, 0);
	memset(data, 0, DATASIZE-4);
	WriteWord32((byte *)data.ptr+DATASIZE-4, ++counter);
	T::CorrectEndianess(buffer, buffer, T::DIGESTSIZE);
	T::CorrectEndianess(data, data, DATASIZE);
	T::Transform(buffer, data);
	XorDigest(digest, buffer);

	WriteWord32(mac, counter);
	T::CorrectEndianess(digest, digest, T::DIGESTSIZE);
	memcpy(mac+4, digest, T::DIGESTSIZE);

	Init();		// reinit for next use
}

template <class T> bool XMACC<T>::Verify(const byte *mac)
{
	PadLastBlock(DATASIZE-8);
	WriteWord32((byte *)data.ptr+DATASIZE-8, countHi);
	WriteWord32((byte *)data.ptr+DATASIZE-4, countLo);
	HashBlock(data);

	memcpy(buffer, key, KEYLENGTH);
	WriteWord32((byte *)buffer.ptr+KEYLENGTH, 0);
	memset(data, 0, DATASIZE-4);
	memcpy((byte *)data.ptr+DATASIZE-4, mac, 4);
	T::CorrectEndianess(buffer, buffer, T::DIGESTSIZE);
	T::CorrectEndianess(data, data, DATASIZE);
	T::Transform(buffer, data);
	XorDigest(digest, buffer);

	T::CorrectEndianess(digest, digest, T::DIGESTSIZE);
	bool macValid = (memcmp(mac+4, digest, T::DIGESTSIZE) == 0);
	Init();		// reinit for next use
	return macValid;
}

NAMESPACE_END

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人毛片在线观看| ...中文天堂在线一区| 欧美性色欧美a在线播放| 国产jizzjizz一区二区| 国产一区二区三区黄视频| 美国毛片一区二区三区| 九九视频精品免费| 高清不卡在线观看av| a亚洲天堂av| 日本黄色一区二区| 538prom精品视频线放| 日韩精品一区二区三区视频| 精品99999| 中文字幕亚洲视频| 亚洲国产成人av好男人在线观看| 亚洲国产成人精品视频| 日韩激情在线观看| 国产宾馆实践打屁股91| 在线视频你懂得一区| 欧美裸体一区二区三区| 欧美大黄免费观看| 国产婷婷色一区二区三区在线| 亚洲欧美在线另类| 丝袜亚洲精品中文字幕一区| 美日韩一区二区三区| 成人免费电影视频| 欧美日免费三级在线| 欧美一级一区二区| 亚洲欧美中日韩| 美女视频黄频大全不卡视频在线播放| 国产一区二区不卡| 日本韩国一区二区三区| 欧美不卡视频一区| 一区二区三区精品在线观看| 亚洲国产裸拍裸体视频在线观看乱了| 午夜欧美电影在线观看| 韩国视频一区二区| 欧美日韩一级视频| 国产午夜精品理论片a级大结局| 亚洲精品va在线观看| 日韩高清一区二区| 国产精品一二三区| 91麻豆精品国产91久久久久久久久| 久久综合给合久久狠狠狠97色69| |精品福利一区二区三区| 美女尤物国产一区| 欧美网站大全在线观看| 精品免费一区二区三区| 亚洲成人综合在线| 成人的网站免费观看| 日韩美女天天操| 亚洲国产aⅴ天堂久久| 国产一区二区三区四| 欧美少妇性性性| 亚洲国产成人自拍| 久久99久久精品| 欧美日韩精品三区| 国产精品视频线看| 精品一区二区在线看| 91精品国产综合久久小美女| 午夜在线成人av| 99久久99久久精品免费观看| 欧美极品少妇xxxxⅹ高跟鞋| 久久99国产精品久久| 91在线无精精品入口| 亚洲日韩欧美一区二区在线| 国产91丝袜在线播放0| 久久这里只有精品视频网| 日本亚洲三级在线| 678五月天丁香亚洲综合网| 亚洲综合男人的天堂| 日本电影亚洲天堂一区| 亚洲理论在线观看| 欧美色图天堂网| 午夜不卡在线视频| 欧美精品在线一区二区三区| 亚洲成人在线观看视频| 欧美日韩国产一级二级| 五月激情综合婷婷| 91麻豆精品久久久久蜜臀| 日韩综合小视频| 欧美草草影院在线视频| 国产.欧美.日韩| 国产精品第五页| 欧美性大战久久久久久久| 亚洲成人激情自拍| 日韩精品一区二区三区swag| 精品一区二区av| 国产精品国产三级国产普通话99 | 色噜噜偷拍精品综合在线| 亚洲欧美日韩国产中文在线| 欧美色成人综合| 日韩国产在线观看| 26uuu亚洲综合色| 99精品久久只有精品| 亚洲免费在线视频一区 二区| 91香蕉视频污| 日本少妇一区二区| 国产精品久久综合| 在线免费观看一区| 裸体歌舞表演一区二区| 欧美国产1区2区| 欧美色视频一区| 国产一区二区精品久久91| 亚洲欧美另类综合偷拍| 精品久久久久久综合日本欧美| 成人h动漫精品| 日韩精品国产精品| 中文字幕在线不卡视频| 欧美一区二区三区视频在线| 粉嫩av一区二区三区在线播放| 一区二区国产视频| 久久精品亚洲精品国产欧美kt∨| 在线观看91精品国产入口| 极品美女销魂一区二区三区免费| 亚洲另类色综合网站| 久久综合99re88久久爱| 欧美男男青年gay1069videost| 国产91丝袜在线观看| 蜜桃视频在线一区| 亚洲小少妇裸体bbw| 中文字幕乱码一区二区免费| 欧美一级精品在线| 91黄色激情网站| 白白色 亚洲乱淫| 激情欧美一区二区| 亚洲成人精品在线观看| 亚洲色图欧美在线| 欧美激情一区二区在线| 日韩一区二区三区在线视频| 欧美伊人精品成人久久综合97| 高清不卡在线观看av| 国产真实乱偷精品视频免| 天天综合日日夜夜精品| 亚洲欧美另类小说视频| 国产日韩欧美综合一区| 日韩欧美色综合网站| 91国偷自产一区二区使用方法| 国产盗摄视频一区二区三区| 蜜桃久久久久久久| 天堂久久久久va久久久久| 日韩精品影音先锋| 日韩一区二区三区在线观看| 欧美猛男超大videosgay| 一本久道中文字幕精品亚洲嫩| 成人久久18免费网站麻豆 | 国产性做久久久久久| 欧美sm美女调教| 欧美电影免费观看完整版| 欧美精品亚洲二区| 91精品国产综合久久久蜜臀图片| 日本道免费精品一区二区三区| 99精品一区二区三区| 白白色 亚洲乱淫| 色综合久久久网| 欧亚洲嫩模精品一区三区| 欧美亚洲综合色| 欧美日韩国产小视频| 日韩一区二区三区视频在线| 日韩欧美国产综合在线一区二区三区| 91精品国产黑色紧身裤美女| 欧美高清激情brazzers| 欧美一区二区视频在线观看2022 | 91黄色在线观看| 日本韩国视频一区二区| 色婷婷亚洲婷婷| 正在播放亚洲一区| 91精品国产色综合久久不卡电影| 日韩视频一区二区三区在线播放| 日韩精品一区二区三区视频播放 | 精品一二三四区| 日本中文一区二区三区| 久久超碰97人人做人人爱| 国产制服丝袜一区| 色综合天天综合网国产成人综合天| 色综合中文字幕国产| 91在线观看下载| 在线观看日产精品| 精品久久久久久无| 中文字幕亚洲不卡| 日韩电影在线一区二区三区| 国产成人在线视频播放| 在线欧美日韩精品| 久久久亚洲精品石原莉奈 | 亚洲福利视频一区二区| 日本特黄久久久高潮| 成人一级片在线观看| 欧美午夜宅男影院| 国产欧美日本一区视频| 天堂蜜桃一区二区三区| 成人app软件下载大全免费| 欧美老人xxxx18| 日韩久久一区二区| 九一九一国产精品| 色偷偷一区二区三区| 欧美成人精品3d动漫h| 亚洲国产一二三| 成人黄色网址在线观看| 欧美电影免费观看高清完整版| 综合婷婷亚洲小说|