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

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

?? shark.cpp

?? 利用VC編寫的加解密算法程序,包括DES、RSA等多個算法
?? CPP
字號:
// shark.cpp - written and placed in the public domain by Wei Dai

#include "pch.h"

#ifdef WORD64_AVAILABLE

#include "shark.h"
#include "misc.h"
#include "modes.h"
#include "gf256.h"

NAMESPACE_BEGIN(CryptoPP)

static word64 SHARKTransform(word64 a)
{
	static const byte iG[8][8] = {
		0xe7, 0x30, 0x90, 0x85, 0xd0, 0x4b, 0x91, 0x41, 
		0x53, 0x95, 0x9b, 0xa5, 0x96, 0xbc, 0xa1, 0x68, 
		0x02, 0x45, 0xf7, 0x65, 0x5c, 0x1f, 0xb6, 0x52, 
		0xa2, 0xca, 0x22, 0x94, 0x44, 0x63, 0x2a, 0xa2, 
		0xfc, 0x67, 0x8e, 0x10, 0x29, 0x75, 0x85, 0x71, 
		0x24, 0x45, 0xa2, 0xcf, 0x2f, 0x22, 0xc1, 0x0e, 
		0xa1, 0xf1, 0x71, 0x40, 0x91, 0x27, 0x18, 0xa5, 
		0x56, 0xf4, 0xaf, 0x32, 0xd2, 0xa4, 0xdc, 0x71, 
	};

	word64 result=0;
	GF256 gf256(0xf5);
	for (unsigned int i=0; i<8; i++)
		for(unsigned int j=0; j<8; j++) 
			result ^= word64(gf256.Multiply(iG[i][j], GF256::Element(a>>(56-8*j)))) << (56-8*i);
	return result;
}

void SHARK::Base::UncheckedSetKey(const byte *key, unsigned int keyLen, const NameValuePairs &params)
{
	AssertValidKeyLength(keyLen);

	m_rounds = GetRoundsAndThrowIfInvalid(params, this);
	m_roundKeys.New(m_rounds+1);

	// concatenate key enought times to fill a
	for (unsigned int i=0; i<(m_rounds+1)*8; i++)
		((byte *)m_roundKeys.begin())[i] = key[i%keyLen];

	SHARK::Encryption e;
	e.InitForKeySetup();
	byte IV[8] = {0,0,0,0,0,0,0,0};
	CFB_Mode_ExternalCipher::Encryption cfb(e, IV);

	cfb.ProcessString((byte *)m_roundKeys.begin(), (m_rounds+1)*8);

	ConditionalByteReverse(BIG_ENDIAN_ORDER, m_roundKeys.begin(), m_roundKeys.begin(), (m_rounds+1)*8);

	m_roundKeys[m_rounds] = SHARKTransform(m_roundKeys[m_rounds]);

	if (!IsForwardTransformation())
	{
		unsigned int i;

		// transform encryption round keys into decryption round keys
		for (i=0; i<m_rounds/2; i++)
			std::swap(m_roundKeys[i], m_roundKeys[m_rounds-i]);

		for (i=1; i<m_rounds; i++)
			m_roundKeys[i] = SHARKTransform(m_roundKeys[i]);
	}

#ifdef IS_LITTLE_ENDIAN
	m_roundKeys[0] = ByteReverse(m_roundKeys[0]);
	m_roundKeys[m_rounds] = ByteReverse(m_roundKeys[m_rounds]);
#endif
}

// construct an SHARK_Enc object with fixed round keys, to be used to initialize actual round keys
void SHARK::Enc::InitForKeySetup()
{
	m_rounds = DEFAULT_ROUNDS;
	m_roundKeys.New(DEFAULT_ROUNDS+1);

	for (unsigned int i=0; i<DEFAULT_ROUNDS; i++)
		m_roundKeys[i] = cbox[0][i];

	m_roundKeys[DEFAULT_ROUNDS] = SHARKTransform(cbox[0][DEFAULT_ROUNDS]);

#ifdef IS_LITTLE_ENDIAN
	m_roundKeys[0] = ByteReverse(m_roundKeys[0]);
	m_roundKeys[m_rounds] = ByteReverse(m_roundKeys[m_rounds]);
#endif
}

typedef word64 ArrayOf256Word64s[256];

template <const byte *sbox, const ArrayOf256Word64s *cbox>
struct SharkProcessAndXorBlock{		// VC60 workaround: problem with template functions
inline SharkProcessAndXorBlock(const word64 *roundKeys, unsigned int rounds, const byte *inBlock, const byte *xorBlock, byte *outBlock)
{
	word64 tmp = *(word64 *)inBlock ^ roundKeys[0];

	ByteOrder order = GetNativeByteOrder();
	tmp = cbox[0][GetByte(order, tmp, 0)] ^ cbox[1][GetByte(order, tmp, 1)] 
		^ cbox[2][GetByte(order, tmp, 2)] ^ cbox[3][GetByte(order, tmp, 3)] 
		^ cbox[4][GetByte(order, tmp, 4)] ^ cbox[5][GetByte(order, tmp, 5)] 
		^ cbox[6][GetByte(order, tmp, 6)] ^ cbox[7][GetByte(order, tmp, 7)]
		^ roundKeys[1];

	for(unsigned int i=2; i<rounds; i++) 
	{
		tmp = cbox[0][GETBYTE(tmp, 7)] ^ cbox[1][GETBYTE(tmp, 6)] 
			^ cbox[2][GETBYTE(tmp, 5)] ^ cbox[3][GETBYTE(tmp, 4)] 
			^ cbox[4][GETBYTE(tmp, 3)] ^ cbox[5][GETBYTE(tmp, 2)] 
			^ cbox[6][GETBYTE(tmp, 1)] ^ cbox[7][GETBYTE(tmp, 0)]
			^ roundKeys[i];
	}

	PutBlock<byte, BigEndian>(xorBlock, outBlock)
		(sbox[GETBYTE(tmp, 7)])
		(sbox[GETBYTE(tmp, 6)])
		(sbox[GETBYTE(tmp, 5)])
		(sbox[GETBYTE(tmp, 4)])
		(sbox[GETBYTE(tmp, 3)])
		(sbox[GETBYTE(tmp, 2)])
		(sbox[GETBYTE(tmp, 1)])
		(sbox[GETBYTE(tmp, 0)]);

	*(word64 *)outBlock ^= roundKeys[rounds];
}};

void SHARK::Enc::ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const
{
	SharkProcessAndXorBlock<sbox, cbox>(m_roundKeys, m_rounds, inBlock, xorBlock, outBlock);
}

void SHARK::Dec::ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const
{
	SharkProcessAndXorBlock<sbox, cbox>(m_roundKeys, m_rounds, inBlock, xorBlock, outBlock);
}

NAMESPACE_END

#endif // WORD64_AVAILABLE

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产一区二区三区不卡| wwwwww.欧美系列| 欧美精品久久99| 欧美日韩另类一区| 日韩免费在线观看| 欧美va在线播放| 欧美国产日韩在线观看| 国产精品你懂的在线欣赏| 中文字幕国产精品一区二区| 久久精品一区二区三区不卡 | 国产精品免费aⅴ片在线观看| 精品国精品自拍自在线| 国产精品剧情在线亚洲| 亚洲女同ⅹxx女同tv| 亚洲成人综合视频| 中文字幕中文字幕在线一区| 精品久久久久久久久久久久久久久久久 | 亚洲国产精品视频| 免费观看成人鲁鲁鲁鲁鲁视频| 蜜桃视频第一区免费观看| 国产一区二区三区四区五区入口 | 国产网红主播福利一区二区| 综合分类小说区另类春色亚洲小说欧美| 中文字幕日韩av资源站| 精品一二线国产| 精品视频免费看| 国产精品剧情在线亚洲| 另类小说一区二区三区| 在线观看三级视频欧美| 日本一区二区免费在线观看视频 | 日韩女优制服丝袜电影| 亚洲精品第1页| jiyouzz国产精品久久| 精品国产一二三区| 日本欧美一区二区在线观看| 欧美日韩一区小说| 亚洲激情第一区| 欧美日韩一区国产| 亚洲成人中文在线| 欧美日韩高清在线播放| 午夜影院久久久| 欧美理论在线播放| 三级成人在线视频| 日韩丝袜情趣美女图片| 日韩成人伦理电影在线观看| 欧美精品久久天天躁| 石原莉奈在线亚洲三区| 欧美一级片免费看| 黄色日韩三级电影| 国产精品视频在线看| 99久久夜色精品国产网站| 一区二区三区成人在线视频| 精品视频资源站| 国内久久精品视频| 最新不卡av在线| 欧美猛男超大videosgay| 伦理电影国产精品| 中国色在线观看另类| 欧美三级电影一区| 国产精品中文字幕日韩精品| 亚洲欧洲日韩综合一区二区| 在线播放一区二区三区| 国产成人在线看| 免费观看在线综合| 国产精品乱码一区二三区小蝌蚪| 色噜噜狠狠色综合中国| 精品亚洲免费视频| 亚洲国产精品精华液网站| 26uuu欧美日本| 91精品婷婷国产综合久久竹菊| 国产精品一区久久久久| 欧美性大战久久| 亚洲乱码国产乱码精品精的特点 | 亚洲一区二区三区在线看| 欧美国产精品一区二区| 精品剧情v国产在线观看在线| 99久久久久久| 粉嫩aⅴ一区二区三区四区五区 | 欧美色精品天天在线观看视频| 国精产品一区一区三区mba视频| 亚洲国产成人精品视频| 亚洲人被黑人高潮完整版| 久久日一线二线三线suv| 在线综合视频播放| 欧美美女网站色| 欧美丝袜第三区| 欧美三级午夜理伦三级中视频| 色噜噜狠狠色综合中国| 97久久精品人人做人人爽50路| 黄一区二区三区| 国产精品性做久久久久久| 成人午夜大片免费观看| 成人教育av在线| 97精品久久久午夜一区二区三区| 成人av中文字幕| 99久久久久久99| 国产精品久久久久精k8| 欧美日韩国产中文| 色av综合在线| 91精品欧美一区二区三区综合在| 精品1区2区3区| 精品国产乱码久久久久久图片 | 成人黄色小视频| 91看片淫黄大片一级| 欧美日韩视频专区在线播放| 欧美精品日韩综合在线| 国产亚洲欧美日韩俺去了| 综合久久久久久| 青青草成人在线观看| 成人一道本在线| 欧美日韩在线不卡| 国产精品久久久久久久久图文区| 亚洲综合视频在线| 成人ar影院免费观看视频| 日韩精品一区二区三区在线| 亚洲欧美日韩综合aⅴ视频| 久久精品国产一区二区三 | 亚洲精品v日韩精品| 精品一区二区三区免费视频| 91国偷自产一区二区三区成为亚洲经典 | 日韩一区二区在线观看| 亚洲综合色在线| 欧美性猛片xxxx免费看久爱| 日本一区二区三区视频视频| 久久超级碰视频| 91精品国产一区二区三区蜜臀| 亚洲精品第一国产综合野| a4yy欧美一区二区三区| 欧美国产一区二区在线观看| 国产麻豆91精品| 国产日韩欧美a| 91同城在线观看| 99精品在线观看视频| 日韩精品一区二区三区中文不卡| 五月天激情综合网| 7777女厕盗摄久久久| 奇米精品一区二区三区四区| 欧美日韩一区 二区 三区 久久精品| 中文字幕国产一区二区| 一本色道久久综合亚洲aⅴ蜜桃| 亚洲欧洲一区二区在线播放| 色综合天天综合给合国产| 成人欧美一区二区三区白人| 色婷婷久久久亚洲一区二区三区 | 国产精品996| 亚洲欧美成人一区二区三区| 在线看国产一区| 久久99精品久久久久久久久久久久 | 正在播放一区二区| 国产麻豆91精品| 性做久久久久久久久| 精品国产乱码久久久久久夜甘婷婷| 成人性视频网站| 天堂久久久久va久久久久| 久久久国产精品午夜一区ai换脸| 成人免费精品视频| 蜜桃av噜噜一区二区三区小说| 久久―日本道色综合久久| 色欲综合视频天天天| 极品美女销魂一区二区三区免费| 亚洲人成网站影音先锋播放| 精品久久人人做人人爰| 欧美日韩在线电影| 国产成人综合在线| 亚洲国产成人av网| 亚洲视频一区二区在线| 久久久久久久久久久久久女国产乱| 色婷婷综合久久久中文字幕| 国产精品中文字幕日韩精品| 午夜成人免费电影| 亚洲国产日产av| 亚洲永久免费视频| 尤物在线观看一区| 亚洲女同女同女同女同女同69| 中国色在线观看另类| 欧美激情在线看| 久久精品视频在线看| 久久在线免费观看| 久久亚洲精华国产精华液| 久久久久综合网| 久久久久久久久久久黄色| 久久色.com| 亚洲少妇中出一区| 综合分类小说区另类春色亚洲小说欧美 | 欧美一区二区三区视频在线观看| 欧美专区在线观看一区| 日本黄色一区二区| 欧美一区二区在线不卡| 欧美sm极限捆绑bd| 国产精品久久久久久久久免费丝袜 | 欧美极品美女视频| 亚洲女性喷水在线观看一区| 伊人性伊人情综合网| 日本vs亚洲vs韩国一区三区 | 欧美一卡二卡在线观看| 日韩你懂的在线播放| 亚洲欧洲国产日韩| 日韩精品久久久久久| 丁香婷婷综合网| 日韩一卡二卡三卡四卡|