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

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

?? 3way.cpp

?? 300種加密解密算法
?? CPP
字號:
// 3way.cpp - modifed by Wei Dai from Joan Daemen's 3way.c

#include "pch.h"
#include "3way.h"

NAMESPACE_BEGIN(CryptoPP)

static const word32 START_E = 0x0b0b; // round constant of first encryption round
static const word32 START_D = 0xb1b1; // round constant of first decryption round

static inline word32 reverseBits(word32 a)
{
	a = ((a & 0xAAAAAAAAL) >> 1) | ((a & 0x55555555L) << 1);
	a = ((a & 0xCCCCCCCCL) >> 2) | ((a & 0x33333333L) << 2);
	return ((a & 0xF0F0F0F0L) >> 4) | ((a & 0x0F0F0F0FL) << 4);
}

#define mu(a0, a1, a2)				\
{									\
	a1 = reverseBits(a1);			\
	word32 t = reverseBits(a0);		\
	a0 = reverseBits(a2);			\
	a2 = t;							\
}

#define pi_gamma_pi(a0, a1, a2)		\
{									\
	word32 b0, b2;					\
	b2 = rotl(a2, 1U);				\
	b0 = rotl(a0, 22U);				\
	a0 = rotl(b0 ^ (a1|(~b2)), 1U);	\
	a2 = rotl(b2 ^ (b0|(~a1)), 22U);\
	a1 ^= (b2|(~b0));				\
}

// thanks to Paulo Barreto for this optimized theta()
#define theta(a0, a1, a2)									\
{ 															\
	word32 b0, b1, c; 										\
	c = a0 ^ a1 ^ a2; 										\
	c = rotl(c, 16U) ^ rotl(c, 8U); 						\
	b0 = (a0 << 24) ^ (a2 >> 8) ^ (a1 << 8) ^ (a0 >> 24); 	\
	b1 = (a1 << 24) ^ (a0 >> 8) ^ (a2 << 8) ^ (a1 >> 24); 	\
	a0 ^= c ^ b0; 											\
	a1 ^= c ^ b1; 											\
	a2 ^= c ^ (b0 >> 16) ^ (b1 << 16); 						\
}															

#define rho(a0, a1, a2)			\
{								\
	theta(a0, a1, a2);			\
	pi_gamma_pi(a0, a1, a2);	\
}											

static void GenerateRoundConstants(word32 strt, word32 *rtab, unsigned int rounds)
{
	for(unsigned i=0; i<=rounds; i++)
	{
		rtab[i] = strt;
		strt <<= 1;
		if (strt&0x10000) strt ^= 0x11011;
	}
}

ThreeWayEncryption::ThreeWayEncryption(const byte *uk, unsigned rounds)
	: rounds(rounds), rc(rounds+1)
{
	GenerateRoundConstants(START_E, rc, rounds);
	for (int i=0; i<3; i++)
		k[i] = (word32)uk[4*i+3] | ((word32)uk[4*i+2]<<8) | ((word32)uk[4*i+1]<<16) | ((word32)uk[4*i]<<24);
}

ThreeWayEncryption::~ThreeWayEncryption()
{
	k[0]=k[1]=k[2]=0;
}

void ThreeWayEncryption::ProcessBlock(const byte *in, byte * out) const
{
	word32 a0, a1, a2;

#ifdef IS_LITTLE_ENDIAN
	a0 = byteReverse(*(word32 *)in);
	a1 = byteReverse(*(word32 *)(in+4));
	a2 = byteReverse(*(word32 *)(in+8));
#else
	a0 = *(word32 *)in;
	a1 = *(word32 *)(in+4);
	a2 = *(word32 *)(in+8);
#endif

	for(unsigned i=0; i<rounds; i++)
	{
		a0 ^= k[0] ^ (rc[i]<<16);
		a1 ^= k[1];
		a2 ^= k[2] ^ rc[i];
		rho(a0, a1, a2);
	}
	a0 ^= k[0] ^ (rc[rounds]<<16);
	a1 ^= k[1];
	a2 ^= k[2] ^ rc[rounds];
	theta(a0, a1, a2);

#ifdef IS_LITTLE_ENDIAN
	*(word32 *)out = byteReverse(a0);
	*(word32 *)(out+4) = byteReverse(a1);
	*(word32 *)(out+8) = byteReverse(a2);
#else
	*(word32 *)out = a0;
	*(word32 *)(out+4) = a1;
	*(word32 *)(out+8) = a2;
#endif
}

ThreeWayDecryption::ThreeWayDecryption(const byte *uk, unsigned rounds)
	: rounds(rounds), rc(rounds+1)
{
	GenerateRoundConstants(START_D, rc, rounds);
	for (int i=0; i<3; i++)
		k[i] = (word32)uk[4*i+3] | ((word32)uk[4*i+2]<<8) | ((word32)uk[4*i+1]<<16) | ((word32)uk[4*i]<<24);
	theta(k[0], k[1], k[2]);
	mu(k[0], k[1], k[2]);
	k[0] = byteReverse(k[0]);
	k[1] = byteReverse(k[1]);
	k[2] = byteReverse(k[2]);
}

ThreeWayDecryption::~ThreeWayDecryption()
{
	k[0]=k[1]=k[2]=0;
}

void ThreeWayDecryption::ProcessBlock(const byte *in, byte * out) const
{
	word32 a0, a1, a2;

#ifndef IS_LITTLE_ENDIAN
	a0 = byteReverse(*(word32 *)in);
	a1 = byteReverse(*(word32 *)(in+4));
	a2 = byteReverse(*(word32 *)(in+8));
#else
	a0 = *(word32 *)in;
	a1 = *(word32 *)(in+4);
	a2 = *(word32 *)(in+8);
#endif

	mu(a0, a1, a2);
	for(unsigned i=0; i<rounds; i++)
	{
		a0 ^= k[0] ^ (rc[i]<<16);
		a1 ^= k[1];
		a2 ^= k[2] ^ rc[i];
		rho(a0, a1, a2);
	}
	a0 ^= k[0] ^ (rc[rounds]<<16);
	a1 ^= k[1];
	a2 ^= k[2] ^ rc[rounds];
	theta(a0, a1, a2);
	mu(a0, a1, a2);

#ifndef IS_LITTLE_ENDIAN
	*(word32 *)out = byteReverse(a0);
	*(word32 *)(out+4) = byteReverse(a1);
	*(word32 *)(out+8) = byteReverse(a2);
#else
	*(word32 *)out = a0;
	*(word32 *)(out+4) = a1;
	*(word32 *)(out+8) = a2;
#endif
}

NAMESPACE_END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一级二级三级| 日韩一区中文字幕| 国产精品毛片久久久久久| 亚洲精品中文在线| 国产不卡视频一区二区三区| 欧美日本在线一区| 综合久久久久久| 国产乱人伦偷精品视频免下载| 在线观看亚洲精品视频| 国产精品视频一二三区| 麻豆视频一区二区| 欧美日韩精品专区| 亚洲精品免费在线观看| 成人小视频免费观看| 欧美大尺度电影在线| 水蜜桃久久夜色精品一区的特点| 成人动漫精品一区二区| 久久新电视剧免费观看| 日韩国产精品久久久| 欧美日韩激情一区二区三区| 亚洲精品午夜久久久| 国产suv精品一区二区三区| 精品久久久久香蕉网| 日韩av网站在线观看| 欧美美女喷水视频| 亚洲r级在线视频| 91九色最新地址| 亚洲特级片在线| 99国产精品国产精品毛片| 国产精品乱码久久久久久| 国产麻豆精品theporn| 精品伦理精品一区| 久久99久久久欧美国产| 日韩免费看的电影| 久久福利视频一区二区| 欧美成人伊人久久综合网| 精品亚洲成a人| 久久男人中文字幕资源站| 国产最新精品免费| 国产三级精品视频| fc2成人免费人成在线观看播放| 亚洲国产精品v| 99久久婷婷国产精品综合| 成人免费在线视频观看| 色综合色狠狠综合色| 亚洲国产精品久久人人爱蜜臀| 欧美专区日韩专区| 日韩中文字幕不卡| 欧美成va人片在线观看| 国产精品综合在线视频| 欧美极品xxx| 91久久精品日日躁夜夜躁欧美| 亚洲在线观看免费| 日韩欧美电影一区| 成人综合婷婷国产精品久久蜜臀| 国产精品久久久久国产精品日日 | 午夜激情久久久| 欧美一级在线视频| 国产成人亚洲综合a∨婷婷| 国产精品国产自产拍高清av | 欧美精品久久天天躁| 精品一区二区三区免费播放| 中文子幕无线码一区tr| 色婷婷av一区| 精品写真视频在线观看| 中文字幕中文字幕中文字幕亚洲无线| 91福利社在线观看| 精品午夜一区二区三区在线观看| 国产精品美女久久久久久久| 欧美私模裸体表演在线观看| 久久www免费人成看片高清| 国产精品久久久久影院老司| 欧美天堂一区二区三区| 国内外成人在线| 亚洲成人黄色小说| 国产视频一区在线播放| 欧美日韩国产电影| 成人毛片在线观看| 久久精品国产亚洲一区二区三区| 国产精品第一页第二页第三页| 91精品国产色综合久久ai换脸 | 91行情网站电视在线观看高清版| 日韩电影免费在线观看网站| 国产精品国产三级国产a| 日韩亚洲电影在线| 欧美在线观看一区| 国产成人8x视频一区二区| 日产精品久久久久久久性色 | 日韩精品一区二区三区老鸭窝| av激情成人网| 国产精品综合一区二区| 丝袜亚洲另类欧美综合| 综合自拍亚洲综合图不卡区| 日韩精品自拍偷拍| 欧美人牲a欧美精品| 91原创在线视频| 国产精品1区2区| 美女视频黄频大全不卡视频在线播放| 中文字幕日韩一区| 欧美国产精品久久| 久久久久久久电影| 精品国产乱子伦一区| 日韩一级黄色大片| 9191成人精品久久| 欧美在线视频不卡| 欧美性生活久久| 91国偷自产一区二区使用方法| 成人性生交大片免费看在线播放| 国产精品18久久久| 久久se精品一区二区| 久久爱www久久做| 久久 天天综合| 韩国一区二区视频| 精品一区二区三区在线观看| 日本特黄久久久高潮| 日韩精品电影在线| 视频一区在线视频| 免费欧美在线视频| 美女任你摸久久| 经典三级在线一区| 国产精品一区在线观看你懂的| 黄页视频在线91| 国产福利一区二区三区视频| 韩国女主播成人在线| 韩国精品主播一区二区在线观看 | 欧美性猛交xxxxxx富婆| 欧美专区亚洲专区| 欧美美女喷水视频| 日韩午夜av一区| 2020日本不卡一区二区视频| 久久伊99综合婷婷久久伊| 久久久精品影视| 国产精品免费观看视频| 亚洲欧美成人一区二区三区| 亚洲最色的网站| 男男视频亚洲欧美| 国产精华液一区二区三区| 99免费精品视频| 欧美日韩在线三级| 日韩欧美在线观看一区二区三区| 26uuu另类欧美亚洲曰本| 国产欧美一区二区精品仙草咪| 亚洲素人一区二区| 日韩av在线播放中文字幕| 极品少妇一区二区三区精品视频 | 一本到一区二区三区| 欧美三级日韩三级国产三级| 日韩欧美中文字幕公布| 国产精品嫩草久久久久| 亚洲一区av在线| 国产一区不卡视频| 欧美亚洲国产一区在线观看网站| 欧美一卡2卡3卡4卡| 国产精品视频麻豆| 日韩成人免费看| 福利一区福利二区| 91精品国产综合久久香蕉麻豆| 久久久噜噜噜久久人人看| 亚洲激情成人在线| 久久丁香综合五月国产三级网站| bt欧美亚洲午夜电影天堂| 欧美日韩电影在线| 欧美激情艳妇裸体舞| 日韩电影在线看| 91网页版在线| 久久久久久久精| 日韩综合在线视频| 波多野结衣中文字幕一区二区三区| 欧美人动与zoxxxx乱| 亚洲欧美综合在线精品| 国内成人自拍视频| 6080午夜不卡| 亚洲综合一二区| 91在线视频免费91| 国产欧美精品一区aⅴ影院| 三级欧美在线一区| 色狠狠一区二区| 中文字幕av一区 二区| 九九在线精品视频| 91精品国产色综合久久不卡蜜臀| 亚洲欧美日韩在线| 成人午夜免费av| 久久久精品国产免大香伊| 日av在线不卡| 欧美日韩国产天堂| 樱花草国产18久久久久| 丰满白嫩尤物一区二区| 久久伊人蜜桃av一区二区| 麻豆91在线看| 日韩一区二区电影网| 视频在线观看一区| 91精品久久久久久久91蜜桃| 亚洲午夜国产一区99re久久| 色哟哟欧美精品| 综合久久久久综合| 色哟哟日韩精品| 中文字幕一区二区在线播放| 国产精品91一区二区| 国产亚洲精品中文字幕| 国产一区二区三区免费看|