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

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

?? shark.cpp

?? AlgorithmType: SymmetricCipher Name: AES/ECB Source: NIST Special Publication 800-38A Plaintext:
?? 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一区二区三区免费野_久草精品视频
久久久久久97三级| 精品国产乱子伦一区| 国产美女娇喘av呻吟久久| 偷拍日韩校园综合在线| 亚洲风情在线资源站| 亚洲sss视频在线视频| 日韩国产在线观看一区| 午夜国产精品影院在线观看| 亚洲18影院在线观看| 亚洲国产精品影院| 午夜久久久久久久久久一区二区| 亚洲国产精品久久久久婷婷884 | 美国欧美日韩国产在线播放| 首页欧美精品中文字幕| 日日嗨av一区二区三区四区| 欧美aⅴ一区二区三区视频| 蜜臀va亚洲va欧美va天堂| 久久精品国产精品青草| 国产一区二区在线视频| 国产成人aaa| 色视频欧美一区二区三区| 欧美日韩精品一区视频| 日韩精品一区二区三区在线观看 | 精品一区二区三区香蕉蜜桃| 久久精品99国产精品| 国产成人丝袜美腿| 色菇凉天天综合网| 欧美一区二区精品在线| 久久精品免视看| 一区二区三区精品久久久| 免费国产亚洲视频| 高清不卡一区二区| 在线观看日韩精品| 欧美电影免费观看高清完整版在线观看 | 国产剧情av麻豆香蕉精品| 99精品久久久久久| 欧美一二三四区在线| 亚洲欧洲精品一区二区三区不卡| 丝袜诱惑亚洲看片| 91日韩一区二区三区| 欧美一区二区三区在线电影 | 欧美精品1区2区| 久久品道一品道久久精品| 国产精品美日韩| 美女一区二区视频| 在线观看欧美黄色| 国产欧美日韩在线| 日本美女视频一区二区| 在线观看中文字幕不卡| 中日韩免费视频中文字幕| 美日韩一区二区| 欧美三级韩国三级日本三斤| 国产精品免费久久久久| 国产麻豆午夜三级精品| 欧美精品九九99久久| 亚洲欧美在线视频观看| 国产寡妇亲子伦一区二区| 在线播放视频一区| 婷婷久久综合九色综合绿巨人| www..com久久爱| 国产三级精品在线| 久久精品国产久精国产| 777亚洲妇女| 亚洲国产一区二区三区 | 欧美一区二区三区免费在线看| 亚洲欧洲日韩一区二区三区| 国产精品影视网| 2022国产精品视频| 久色婷婷小香蕉久久| 7777精品伊人久久久大香线蕉经典版下载 | 在线亚洲欧美专区二区| 136国产福利精品导航| 成人在线综合网| 国产日韩精品一区二区三区在线| 黄色成人免费在线| 久久影院午夜片一区| 国内精品伊人久久久久av影院 | 国产精品一区在线观看你懂的| 欧美精品色一区二区三区| 一区二区三区欧美视频| 91高清视频免费看| 亚洲成人免费观看| 欧美一区二区视频观看视频| 日韩精品成人一区二区在线| 777奇米四色成人影色区| 日韩av一级电影| 26uuu久久综合| 国产成人丝袜美腿| 国产精品对白交换视频| 色综合中文字幕国产| 国产精品进线69影院| 色婷婷久久综合| 婷婷综合五月天| 精品va天堂亚洲国产| 国产成人丝袜美腿| 亚洲视频在线一区| 欧美视频你懂的| 久久99在线观看| 中文字幕+乱码+中文字幕一区| 99久久精品99国产精品| 一区二区高清免费观看影视大全 | 国产精品久久久久久久久快鸭| 色综合亚洲欧洲| 男女性色大片免费观看一区二区| 久久综合久久综合九色| 99免费精品在线| 午夜精品国产更新| 2欧美一区二区三区在线观看视频| 国产99久久久国产精品免费看| 亚洲激情av在线| 精品少妇一区二区三区日产乱码| 国产suv精品一区二区三区| 亚洲影院免费观看| 国产日产欧美精品一区二区三区| 欧美性猛片xxxx免费看久爱| 麻豆久久一区二区| 亚洲日本护士毛茸茸| 欧美成人精精品一区二区频| 91美女片黄在线观看91美女| 久久99精品国产.久久久久久| 成人欧美一区二区三区白人| 日韩欧美在线一区二区三区| 色婷婷激情综合| 国产乱子轮精品视频| 午夜免费久久看| 亚洲精品网站在线观看| 亚洲精品在线三区| 4438x亚洲最大成人网| 99九九99九九九视频精品| 国产一区二区在线免费观看| 天堂av在线一区| 亚洲国产中文字幕| 最新国产の精品合集bt伙计| 精品电影一区二区三区 | 精品一区二区综合| 天天亚洲美女在线视频| 一区二区在线免费| 国产精品色一区二区三区| 久久丝袜美腿综合| 欧美变态口味重另类| 欧美日韩精品免费观看视频| 色综合天天综合狠狠| 国产成人欧美日韩在线电影| 青草国产精品久久久久久| 亚洲国产精品久久人人爱蜜臀| 亚洲桃色在线一区| 18欧美亚洲精品| 国产精品美女久久久久久久| 欧美二区三区的天堂| 欧美人狂配大交3d怪物一区| 欧美日韩国产一级二级| 欧美少妇xxx| 欧美日韩国产在线播放网站| 欧美男男青年gay1069videost| 色婷婷av一区| 欧美三级在线视频| 欧美伦理影视网| 91精品欧美久久久久久动漫| 3751色影院一区二区三区| 7777精品伊人久久久大香线蕉超级流畅 | 在线影视一区二区三区| 色哟哟在线观看一区二区三区| 91视视频在线观看入口直接观看www| 成人免费福利片| 91麻豆精品在线观看| 91免费观看视频在线| 日本韩国一区二区| 精品视频一区三区九区| 欧美一区二区三区在线观看 | 国产不卡在线一区| 成人在线一区二区三区| 91亚洲永久精品| 欧美另类变人与禽xxxxx| 欧美成人伊人久久综合网| 国产亚洲成年网址在线观看| 国产精品成人网| 亚洲成人高清在线| 精品一区二区三区不卡| 高清成人在线观看| 91高清视频免费看| 日韩欧美一级在线播放| 日本一区二区三区在线观看| 亚洲综合色区另类av| 美日韩一区二区| 91啪九色porn原创视频在线观看| 欧美色爱综合网| 国产色一区二区| 偷拍日韩校园综合在线| 国产凹凸在线观看一区二区| 欧美丝袜丝交足nylons| 久久久久久久精| 日本中文字幕不卡| 不卡视频免费播放| 日韩一级二级三级| 亚洲欧美aⅴ...| 国产精品综合一区二区| 欧美日韩精品二区第二页| 欧美激情在线观看视频免费| 日韩中文字幕麻豆| 91论坛在线播放|