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

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

?? idea.cpp

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

#include "pch.h"
#include "idea.h"
#include "misc.h"

NAMESPACE_BEGIN(CryptoPP)

static const int IDEA_KEYLEN=(6*IDEA::ROUNDS+4);  // key schedule length in # of word16s

#define low16(x) ((x)&0xffff)	// compiler should be able to optimize this away if word is 16 bits
#define high16(x) ((x)>>16)

CRYPTOPP_COMPILE_ASSERT(sizeof(IDEA::Word) >= 2);

// should use an inline function but macros are still faster in MSVC 4.0
#define DirectMUL(a,b)					\
{										\
	assert(b <= 0xffff);				\
										\
	word32 p=(word32)low16(a)*b;		\
										\
	if (p)								\
	{									\
		p = low16(p) - high16(p);		\
		a = (IDEA::Word)p - (IDEA::Word)high16(p);	\
	}									\
	else								\
		a = 1-a-b;						\
}

#ifdef IDEA_LARGECACHE
bool IDEA::Base::tablesBuilt = false;
word16 IDEA::Base::log[0x10000];
word16 IDEA::Base::antilog[0x10000];

void IDEA::Base::BuildLogTables()
{
	if (tablesBuilt)
		return;
	else
	{
		tablesBuilt = true;
		
		IDEA::Word x=1;
		word32 i;
		
		for (i=0; i<0x10000; i++)
		{
			antilog[i] = (word16)x;
			DirectMUL(x, 3);
		}
		
		for (i=0; i<0x10000; i++)
			log[antilog[i]] = (word16)i;
	}
}

void IDEA::Base::LookupKeyLogs()
{
	IDEA::Word* Z=key;
	int r=ROUNDS;
	do
	{
		Z[0] = log[Z[0]];
		Z[3] = log[Z[3]];
		Z[4] = log[Z[4]];
		Z[5] = log[Z[5]];
		Z+=6;
	} while (--r);
	Z[0] = log[Z[0]];
	Z[3] = log[Z[3]];
}

inline void IDEA::Base::LookupMUL(IDEA::Word &a, IDEA::Word b)
{
	a = antilog[low16(log[low16(a)]+b)];
}
#endif // IDEA_LARGECACHE

void IDEA::Base::UncheckedSetKey(const byte *userKey, unsigned int length, const NameValuePairs &)
{
	AssertValidKeyLength(length);
	
#ifdef IDEA_LARGECACHE
	BuildLogTables();
#endif
	
	EnKey(userKey);
	
	if (!IsForwardTransformation())
		DeKey();
	
#ifdef IDEA_LARGECACHE
	LookupKeyLogs();
#endif
}

void IDEA::Base::EnKey (const byte *userKey)
{
	unsigned int i;
	
	for (i=0; i<8; i++)
		m_key[i] = ((IDEA::Word)userKey[2*i]<<8) | userKey[2*i+1];
	
	for (; i<IDEA_KEYLEN; i++)
	{
		unsigned int j = RoundDownToMultipleOf(i,8U)-8;
		m_key[i] = low16((m_key[j+(i+1)%8] << 9) | (m_key[j+(i+2)%8] >> 7));
	}
}

static IDEA::Word MulInv(IDEA::Word x)
{
	IDEA::Word y=x;
	for (unsigned i=0; i<15; i++)
	{
		DirectMUL(y,low16(y));
		DirectMUL(y,x);
	}
	return low16(y);
}

static inline IDEA::Word AddInv(IDEA::Word x)
{
	return low16(0-x);
}

void IDEA::Base::DeKey()
{
	FixedSizeSecBlock<IDEA::Word, 6*ROUNDS+4> tempkey;
	unsigned int i;

	for (i=0; i<ROUNDS; i++)
	{
		tempkey[i*6+0] = MulInv(m_key[(ROUNDS-i)*6+0]);
		tempkey[i*6+1] = AddInv(m_key[(ROUNDS-i)*6+1+(i>0)]);
		tempkey[i*6+2] = AddInv(m_key[(ROUNDS-i)*6+2-(i>0)]);
		tempkey[i*6+3] = MulInv(m_key[(ROUNDS-i)*6+3]);
		tempkey[i*6+4] =        m_key[(ROUNDS-1-i)*6+4];
		tempkey[i*6+5] =        m_key[(ROUNDS-1-i)*6+5];
	}

	tempkey[i*6+0] = MulInv(m_key[(ROUNDS-i)*6+0]);
	tempkey[i*6+1] = AddInv(m_key[(ROUNDS-i)*6+1]);
	tempkey[i*6+2] = AddInv(m_key[(ROUNDS-i)*6+2]);
	tempkey[i*6+3] = MulInv(m_key[(ROUNDS-i)*6+3]);

	m_key = tempkey;
}

#ifdef IDEA_LARGECACHE
#define MUL(a,b) LookupMUL(a,b)
#else
#define MUL(a,b) DirectMUL(a,b)
#endif

void IDEA::Base::ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const
{
	typedef BlockGetAndPut<word16, BigEndian> Block;

	const IDEA::Word *key = m_key;
	IDEA::Word x0,x1,x2,x3,t0,t1;
	Block::Get(inBlock)(x0)(x1)(x2)(x3);

	for (unsigned int i=0; i<ROUNDS; i++)
	{
		MUL(x0, key[i*6+0]);
		x1 += key[i*6+1];
		x2 += key[i*6+2];
		MUL(x3, key[i*6+3]);
		t0 = x0^x2; 
		MUL(t0, key[i*6+4]);
		t1 = t0 + (x1^x3);
		MUL(t1, key[i*6+5]);
		t0 += t1;
		x0 ^= t1;
		x3 ^= t0;
		t0 ^= x1;
		x1 = x2^t1;
		x2 = t0;
	}

	MUL(x0, key[ROUNDS*6+0]);
	x2 += key[ROUNDS*6+1];
	x1 += key[ROUNDS*6+2];
	MUL(x3, key[ROUNDS*6+3]);

	Block::Put(xorBlock, outBlock)(x0)(x2)(x1)(x3);
}

NAMESPACE_END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产网站一区二区三区| 国产日韩欧美精品综合| 在线看不卡av| 日韩美女一区二区三区四区| 中文字幕免费观看一区| 亚洲综合男人的天堂| 日本不卡一二三区黄网| 国产精品一品二品| 欧美日韩情趣电影| 国产香蕉久久精品综合网| 亚洲综合区在线| 成人黄动漫网站免费app| 欧美日韩精品久久久| 欧美videos中文字幕| 亚洲欧美在线另类| 亚洲精品视频在线观看网站| 日韩成人精品在线| 成人免费观看av| 欧美日韩亚洲高清一区二区| 久久只精品国产| 亚洲欧美激情视频在线观看一区二区三区 | 欧美私模裸体表演在线观看| 久久夜色精品国产欧美乱极品| 亚洲黄色在线视频| 欧美aa在线视频| 9i在线看片成人免费| 日韩你懂的在线观看| 天堂成人免费av电影一区| 91小视频在线免费看| 中文字幕av一区二区三区| 精品一区二区在线观看| 精品国产乱码久久久久久浪潮| 青青草伊人久久| 欧美精品一区二区三区蜜桃视频| 亚洲激情图片一区| 在线视频中文字幕一区二区| 美女视频一区二区三区| 日韩欧美的一区| 国产成人自拍网| 1区2区3区欧美| 色综合天天综合网天天狠天天| 国产精品国产三级国产普通话三级| 免费观看在线色综合| 欧美精品一区二区精品网| 亚洲123区在线观看| 欧美日韩国产高清一区二区 | 91丝袜美女网| 丝袜诱惑亚洲看片| 欧美va亚洲va| 国产成人免费视频网站 | 91丨九色丨黑人外教| 亚欧色一区w666天堂| www成人在线观看| 粉嫩久久99精品久久久久久夜| 一区二区高清在线| 欧美变态tickling挠脚心| 色狠狠综合天天综合综合| 亚洲午夜精品久久久久久久久| 日韩欧美色电影| 91视频一区二区三区| 亚洲成人动漫一区| 欧美极品xxx| 在线精品视频小说1| 国产精品羞羞答答xxdd| 日本欧美加勒比视频| 一二三四区精品视频| 国产精品久久久久7777按摩| 欧美日高清视频| 色婷婷综合视频在线观看| 国产精品一区二区久久精品爱涩 | 色婷婷精品久久二区二区蜜臀av| 一区二区三区产品免费精品久久75| 2021久久国产精品不只是精品| 欧美影片第一页| zzijzzij亚洲日本少妇熟睡| 国产一区二区三区四区五区入口 | 91久久线看在观草草青青 | 欧美一级精品大片| 欧美日韩中文另类| 欧美男女性生活在线直播观看| 成人av综合在线| 不卡av免费在线观看| 懂色av一区二区夜夜嗨| 风间由美一区二区av101 | 欧美mv日韩mv| 日韩欧美你懂的| 亚洲精品在线电影| 国产午夜三级一区二区三| 久久久三级国产网站| 1024国产精品| 亚洲国产成人av| 美女视频黄a大片欧美| 国产一区二区三区在线看麻豆| 国产酒店精品激情| 色视频一区二区| 精品三级av在线| 综合亚洲深深色噜噜狠狠网站| 亚洲久本草在线中文字幕| 日韩精品成人一区二区在线| 麻豆精品国产91久久久久久| 国产精品99久久久久久久vr| 97精品视频在线观看自产线路二| 色狠狠桃花综合| 中文成人av在线| 亚洲影视资源网| 久久精品国产第一区二区三区| 成人aaaa免费全部观看| 91浏览器入口在线观看| 日韩一区二区三区电影在线观看| 亚洲特黄一级片| 激情小说亚洲一区| 日韩小视频在线观看专区| ...xxx性欧美| 精品一区二区三区免费| 欧美日韩精品一区视频| 亚洲精品你懂的| 成人精品视频一区二区三区| 日韩一区二区在线看片| 亚洲一卡二卡三卡四卡无卡久久| 成人永久aaa| 久久久综合九色合综国产精品| 午夜国产精品一区| 日本韩国欧美一区二区三区| 欧美韩国日本综合| 国产精品中文字幕欧美| 久久综合九色欧美综合狠狠| 精品在线一区二区| 日韩欧美国产一区二区在线播放| 夜夜操天天操亚洲| 欧美美女一区二区在线观看| 石原莉奈一区二区三区在线观看| 欧美视频一区二区| 亚洲一区二区三区四区中文字幕| 欧美伊人久久大香线蕉综合69| 亚洲一区在线看| 欧美日韩国产综合一区二区 | 欧美日韩午夜在线视频| 日韩综合小视频| 欧美国产精品一区| 色94色欧美sute亚洲线路一ni | 91精品国产综合久久久久久| 美腿丝袜在线亚洲一区| 久久精品一区蜜桃臀影院| 成人免费av在线| 午夜国产精品一区| 中文字幕免费在线观看视频一区| 色偷偷成人一区二区三区91| 蜜臀av在线播放一区二区三区| 国产欧美精品国产国产专区| 国产很黄免费观看久久| 亚洲一区二区三区小说| 国产天堂亚洲国产碰碰| 欧美男女性生活在线直播观看| 国产美女精品一区二区三区| 亚洲美女精品一区| 日本一区二区三区在线观看| 欧美精品高清视频| 色综合网色综合| jiyouzz国产精品久久| 国产最新精品免费| 天天影视涩香欲综合网| 亚洲日本va在线观看| 欧美激情一区二区三区四区| 精品欧美一区二区久久| 欧美电视剧免费观看| 日韩一区二区三区视频在线观看| 精品视频一区三区九区| 日本高清免费不卡视频| 色综合久久久久网| 在线一区二区三区| 色婷婷激情综合| 欧美吞精做爰啪啪高潮| 在线视频一区二区免费| 欧美性视频一区二区三区| 欧美日韩色一区| 欧美成人精品1314www| 精品乱人伦一区二区三区| 精品日韩av一区二区| 欧美精彩视频一区二区三区| 国产精品成人免费在线| 亚洲女人小视频在线观看| 一区二区三区免费| 日韩国产在线观看一区| 久久丁香综合五月国产三级网站| 韩国精品主播一区二区在线观看 | 亚洲欧洲av一区二区三区久久| 亚洲国产欧美日韩另类综合| 麻豆精品国产91久久久久久| eeuss鲁一区二区三区| 色美美综合视频| 欧美mv日韩mv国产网站app| 国产精品国产自产拍高清av王其| 一区二区三区欧美在线观看| 极品少妇一区二区三区精品视频 | 日韩高清不卡在线| 成人免费视频视频| 精品日韩一区二区三区| 亚洲女同一区二区| 国产成人在线免费观看| 在线成人av网站|