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

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

?? salsa.cpp

?? 此壓縮包內(nèi)有cast、blowfish、simple、des、cryptlib、rsa、mqueue、xtrcrypt、gf256、base32,base64、modexppc、network等一些的
?? CPP
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
// salsa.cpp - written and placed in the public domain by Wei Dai

// use "cl /EP /P /DCRYPTOPP_GENERATE_X64_MASM salsa.cpp" to generate MASM code

#include "pch.h"

#ifndef CRYPTOPP_GENERATE_X64_MASM

#include "salsa.h"
#include "misc.h"
#include "argnames.h"
#include "cpu.h"

#if CRYPTOPP_BOOL_SSE2_INTRINSICS_AVAILABLE
#include <emmintrin.h>
#endif

NAMESPACE_BEGIN(CryptoPP)

void Salsa20_TestInstantiations()
{
	Salsa20::Encryption x;
}

void Salsa20_Policy::CipherSetKey(const NameValuePairs &params, const byte *key, size_t length)
{
	m_rounds = params.GetIntValueWithDefault(Name::Rounds(), 20);

	if (!(m_rounds == 8 || m_rounds == 12 || m_rounds == 20))
		throw InvalidRounds(StaticAlgorithmName(), m_rounds);

	// m_state is reordered for SSE2
	GetBlock<word32, LittleEndian, false> get1(key);
	get1(m_state[13])(m_state[10])(m_state[7])(m_state[4]);
	GetBlock<word32, LittleEndian, false> get2(key + length - 16);
	get2(m_state[15])(m_state[12])(m_state[9])(m_state[6]);

	// "expand 16-byte k" or "expand 32-byte k"
	m_state[0] = 0x61707865;
	m_state[1] = (length == 16) ? 0x3120646e : 0x3320646e;
	m_state[2] = (length == 16) ? 0x79622d36 : 0x79622d32;
	m_state[3] = 0x6b206574;
}

void Salsa20_Policy::CipherResynchronize(byte *keystreamBuffer, const byte *IV)
{
	GetBlock<word32, LittleEndian, false> get(IV);
	get(m_state[14])(m_state[11]);
	m_state[8] = m_state[5] = 0;
}

void Salsa20_Policy::SeekToIteration(lword iterationCount)
{
	m_state[8] = (word32)iterationCount;
	m_state[5] = (word32)SafeRightShift<32>(iterationCount);
}

#if CRYPTOPP_BOOL_X86 || CRYPTOPP_BOOL_X64
unsigned int Salsa20_Policy::GetAlignment() const
{
#if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE
	if (HasSSE2())
		return 16;
	else
#endif
		return 1;
}

unsigned int Salsa20_Policy::GetOptimalBlockSize() const
{
#if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE
	if (HasSSE2())
		return 4*BYTES_PER_ITERATION;
	else
#endif
		return BYTES_PER_ITERATION;
}
#endif

#ifdef CRYPTOPP_X64_MASM_AVAILABLE
extern "C" {
void Salsa20_OperateKeystream(byte *output, const byte *input, size_t iterationCount, int rounds, void *state);
}
#endif

#pragma warning(disable: 4731)	// frame pointer register 'ebp' modified by inline assembly code

void Salsa20_Policy::OperateKeystream(KeystreamOperation operation, byte *output, const byte *input, size_t iterationCount)
{
#endif	// #ifdef CRYPTOPP_GENERATE_X64_MASM

#ifdef CRYPTOPP_X64_MASM_AVAILABLE
	Salsa20_OperateKeystream(output, input, iterationCount, m_rounds, m_state.data());
	return;
#endif

#if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE
#ifdef CRYPTOPP_GENERATE_X64_MASM
		ALIGN   8
	Salsa20_OperateKeystream	PROC FRAME
		mov		r10, [rsp + 5*8]			; state
		alloc_stack(10*16 + 32*16 + 8)
		save_xmm128 xmm6, 0200h
		save_xmm128 xmm7, 0210h
		save_xmm128 xmm8, 0220h
		save_xmm128 xmm9, 0230h
		save_xmm128 xmm10, 0240h
		save_xmm128 xmm11, 0250h
		save_xmm128 xmm12, 0260h
		save_xmm128 xmm13, 0270h
		save_xmm128 xmm14, 0280h
		save_xmm128 xmm15, 0290h
		.endprolog

	#define REG_output			rcx
	#define REG_input			rdx
	#define REG_iterationCount	r8
	#define REG_state			r10
	#define REG_rounds			e9d
	#define REG_roundsLeft		eax
	#define REG_temp32			r11d
	#define REG_temp			r11
	#define SSE2_WORKSPACE		rsp
#else
	if (HasSSE2())
	{
	#if CRYPTOPP_BOOL_X64
		#define REG_output			%4
		#define REG_input			%1
		#define REG_iterationCount	%2
		#define REG_state			%3
		#define REG_rounds			%0
		#define REG_roundsLeft		eax
		#define REG_temp32			edx
		#define REG_temp			rdx
		#define SSE2_WORKSPACE		%5

		__m128i workspace[32];
	#else
		#define REG_output			edi
		#define REG_input			eax
		#define REG_iterationCount	ecx
		#define REG_state			esi
		#define REG_rounds			edx
		#define REG_roundsLeft		ebx
		#define REG_temp32			ebp
		#define REG_temp			ebp
		#define SSE2_WORKSPACE		esp + WORD_SZ
	#endif

	#ifdef __GNUC__
		__asm__ __volatile__
		(
			".intel_syntax noprefix;"
			AS_PUSH_IF86(	bx)
	#else
		void *s = m_state.data();
		word32 r = m_rounds;

		AS2(	mov		REG_iterationCount, iterationCount)
		AS2(	mov		REG_input, input)
		AS2(	mov		REG_output, output)
		AS2(	mov		REG_state, s)
		AS2(	mov		REG_rounds, r)
	#endif
#endif	// #ifndef CRYPTOPP_GENERATE_X64_MASM

		AS_PUSH_IF86(	bp)
		AS2(	cmp		REG_iterationCount, 4)
		ASJ(	jl,		5, f)

#if CRYPTOPP_BOOL_X86
		AS2(	mov		ebx, esp)
		AS2(	and		esp, -16)
		AS2(	sub		esp, 32*16)
		AS1(	push	ebx)
#endif

#define SSE2_EXPAND_S(i, j)		\
	ASS(	pshufd	xmm4, xmm##i, j, j, j, j)	\
	AS2(	movdqa	[SSE2_WORKSPACE + (i*4+j)*16 + 256], xmm4)

		AS2(	movdqa	xmm0, [REG_state + 0*16])
		AS2(	movdqa	xmm1, [REG_state + 1*16])
		AS2(	movdqa	xmm2, [REG_state + 2*16])
		AS2(	movdqa	xmm3, [REG_state + 3*16])
		SSE2_EXPAND_S(0, 0)
		SSE2_EXPAND_S(0, 1)
		SSE2_EXPAND_S(0, 2)
		SSE2_EXPAND_S(0, 3)
		SSE2_EXPAND_S(1, 0)
		SSE2_EXPAND_S(1, 2)
		SSE2_EXPAND_S(1, 3)
		SSE2_EXPAND_S(2, 1)
		SSE2_EXPAND_S(2, 2)
		SSE2_EXPAND_S(2, 3)
		SSE2_EXPAND_S(3, 0)
		SSE2_EXPAND_S(3, 1)
		SSE2_EXPAND_S(3, 2)
		SSE2_EXPAND_S(3, 3)

#define SSE2_EXPAND_S85(i)		\
		AS2(	mov		dword ptr [SSE2_WORKSPACE + 8*16 + i*4 + 256], REG_roundsLeft)	\
		AS2(	mov		dword ptr [SSE2_WORKSPACE + 5*16 + i*4 + 256], REG_temp32)	\
		AS2(	add		REG_roundsLeft, 1)	\
		AS2(	adc		REG_temp32, 0)

		ASL(1)
		AS2(	mov		REG_roundsLeft, dword ptr [REG_state + 8*4])
		AS2(	mov		REG_temp32, dword ptr [REG_state + 5*4])
		SSE2_EXPAND_S85(0)
		SSE2_EXPAND_S85(1)
		SSE2_EXPAND_S85(2)
		SSE2_EXPAND_S85(3)
		AS2(	mov		dword ptr [REG_state + 8*4], REG_roundsLeft)
		AS2(	mov		dword ptr [REG_state + 5*4], REG_temp32)

#define SSE2_QUARTER_ROUND(a, b, d, i)		\
	AS2(	movdqa	xmm4, xmm##d)			\
	AS2(	paddd	xmm4, xmm##a)			\
	AS2(	movdqa	xmm5, xmm4)				\
	AS2(	pslld	xmm4, i)				\
	AS2(	psrld	xmm5, 32-i)				\
	AS2(	pxor	xmm##b, xmm4)			\
	AS2(	pxor	xmm##b, xmm5)

#define L01(A,B,C,D,a,b,c,d,i)		AS2(	movdqa	xmm##A, [SSE2_WORKSPACE + d*16 + i*256])	/* y3 */
#define L02(A,B,C,D,a,b,c,d,i)		AS2(	movdqa	xmm##C, [SSE2_WORKSPACE + a*16 + i*256])	/* y0 */	
#define L03(A,B,C,D,a,b,c,d,i)		AS2(	paddd	xmm##A, xmm##C)		/* y0+y3 */							
#define L04(A,B,C,D,a,b,c,d,i)		AS2(	movdqa	xmm##B, xmm##A)											
#define L05(A,B,C,D,a,b,c,d,i)		AS2(	pslld	xmm##A, 7)											
#define L06(A,B,C,D,a,b,c,d,i)		AS2(	psrld	xmm##B, 32-7)											
#define L07(A,B,C,D,a,b,c,d,i)		AS2(	pxor	xmm##A, [SSE2_WORKSPACE + b*16 + i*256])				
#define L08(A,B,C,D,a,b,c,d,i)		AS2(	pxor	xmm##A, xmm##B)		/* z1 */							
#define L09(A,B,C,D,a,b,c,d,i)		AS2(	movdqa	[SSE2_WORKSPACE + b*16], xmm##A)				
#define L10(A,B,C,D,a,b,c,d,i)		AS2(	movdqa	xmm##B, xmm##A)											
#define L11(A,B,C,D,a,b,c,d,i)		AS2(	paddd	xmm##A, xmm##C)		/* z1+y0 */							
#define L12(A,B,C,D,a,b,c,d,i)		AS2(	movdqa	xmm##D, xmm##A)											
#define L13(A,B,C,D,a,b,c,d,i)		AS2(	pslld	xmm##A, 9)											
#define L14(A,B,C,D,a,b,c,d,i)		AS2(	psrld	xmm##D, 32-9)											
#define L15(A,B,C,D,a,b,c,d,i)		AS2(	pxor	xmm##A, [SSE2_WORKSPACE + c*16 + i*256])				
#define L16(A,B,C,D,a,b,c,d,i)		AS2(	pxor	xmm##A, xmm##D)		/* z2 */							
#define L17(A,B,C,D,a,b,c,d,i)		AS2(	movdqa	[SSE2_WORKSPACE + c*16], xmm##A)				
#define L18(A,B,C,D,a,b,c,d,i)		AS2(	movdqa	xmm##D, xmm##A)											
#define L19(A,B,C,D,a,b,c,d,i)		AS2(	paddd	xmm##A, xmm##B)		/* z2+z1 */							
#define L20(A,B,C,D,a,b,c,d,i)		AS2(	movdqa	xmm##B, xmm##A)											
#define L21(A,B,C,D,a,b,c,d,i)		AS2(	pslld	xmm##A, 13)											
#define L22(A,B,C,D,a,b,c,d,i)		AS2(	psrld	xmm##B, 32-13)										
#define L23(A,B,C,D,a,b,c,d,i)		AS2(	pxor	xmm##A, [SSE2_WORKSPACE + d*16 + i*256])				
#define L24(A,B,C,D,a,b,c,d,i)		AS2(	pxor	xmm##A, xmm##B)		/* z3 */							
#define L25(A,B,C,D,a,b,c,d,i)		AS2(	movdqa	[SSE2_WORKSPACE + d*16], xmm##A)				
#define L26(A,B,C,D,a,b,c,d,i)		AS2(	paddd	xmm##A, xmm##D)		/* z3+z2 */							
#define L27(A,B,C,D,a,b,c,d,i)		AS2(	movdqa	xmm##D, xmm##A)											
#define L28(A,B,C,D,a,b,c,d,i)		AS2(	pslld	xmm##A, 18)											
#define L29(A,B,C,D,a,b,c,d,i)		AS2(	psrld	xmm##D, 32-18)										
#define L30(A,B,C,D,a,b,c,d,i)		AS2(	pxor	xmm##A, xmm##C)		/* xor y0 */						
#define L31(A,B,C,D,a,b,c,d,i)		AS2(	pxor	xmm##A, xmm##D)		/* z0 */							
#define L32(A,B,C,D,a,b,c,d,i)		AS2(	movdqa	[SSE2_WORKSPACE + a*16], xmm##A)				

#define SSE2_QUARTER_ROUND_X8(i, a, b, c, d, e, f, g, h)	\
	L01(0,1,2,3, a,b,c,d, i)	L01(4,5,6,7, e,f,g,h, i)	\
	L02(0,1,2,3, a,b,c,d, i)	L02(4,5,6,7, e,f,g,h, i)	\
	L03(0,1,2,3, a,b,c,d, i)	L03(4,5,6,7, e,f,g,h, i)	\
	L04(0,1,2,3, a,b,c,d, i)	L04(4,5,6,7, e,f,g,h, i)	\
	L05(0,1,2,3, a,b,c,d, i)	L05(4,5,6,7, e,f,g,h, i)	\
	L06(0,1,2,3, a,b,c,d, i)	L06(4,5,6,7, e,f,g,h, i)	\
	L07(0,1,2,3, a,b,c,d, i)	L07(4,5,6,7, e,f,g,h, i)	\
	L08(0,1,2,3, a,b,c,d, i)	L08(4,5,6,7, e,f,g,h, i)	\
	L09(0,1,2,3, a,b,c,d, i)	L09(4,5,6,7, e,f,g,h, i)	\
	L10(0,1,2,3, a,b,c,d, i)	L10(4,5,6,7, e,f,g,h, i)	\
	L11(0,1,2,3, a,b,c,d, i)	L11(4,5,6,7, e,f,g,h, i)	\
	L12(0,1,2,3, a,b,c,d, i)	L12(4,5,6,7, e,f,g,h, i)	\
	L13(0,1,2,3, a,b,c,d, i)	L13(4,5,6,7, e,f,g,h, i)	\
	L14(0,1,2,3, a,b,c,d, i)	L14(4,5,6,7, e,f,g,h, i)	\
	L15(0,1,2,3, a,b,c,d, i)	L15(4,5,6,7, e,f,g,h, i)	\
	L16(0,1,2,3, a,b,c,d, i)	L16(4,5,6,7, e,f,g,h, i)	\
	L17(0,1,2,3, a,b,c,d, i)	L17(4,5,6,7, e,f,g,h, i)	\
	L18(0,1,2,3, a,b,c,d, i)	L18(4,5,6,7, e,f,g,h, i)	\
	L19(0,1,2,3, a,b,c,d, i)	L19(4,5,6,7, e,f,g,h, i)	\
	L20(0,1,2,3, a,b,c,d, i)	L20(4,5,6,7, e,f,g,h, i)	\
	L21(0,1,2,3, a,b,c,d, i)	L21(4,5,6,7, e,f,g,h, i)	\
	L22(0,1,2,3, a,b,c,d, i)	L22(4,5,6,7, e,f,g,h, i)	\
	L23(0,1,2,3, a,b,c,d, i)	L23(4,5,6,7, e,f,g,h, i)	\

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
极品美女销魂一区二区三区| 国产成人精品影视| 久久综合一区二区| 欧美性淫爽ww久久久久无| 看片网站欧美日韩| 亚洲一区二区三区影院| 国产午夜精品久久久久久免费视| 欧美精品在线视频| 成人av在线播放网址| 美女视频网站久久| 亚洲国产毛片aaaaa无费看| 国产女人水真多18毛片18精品视频| 欧美专区在线观看一区| 成人精品免费看| 激情都市一区二区| 日韩高清一区在线| 亚洲国产视频一区| 亚洲免费av观看| 国产精品丝袜一区| 国产亚洲精品7777| 欧美精品一区二区蜜臀亚洲| 欧美另类一区二区三区| 在线观看亚洲一区| 91蜜桃在线免费视频| 国产91在线看| 国产一区欧美日韩| 精品一区二区三区免费毛片爱| 天堂一区二区在线| 亚洲福利电影网| 亚洲自拍都市欧美小说| 亚洲图片你懂的| **欧美大码日韩| 国产精品传媒视频| 国产精品污污网站在线观看| 久久精品视频在线免费观看| 精品国产麻豆免费人成网站| 欧美一级日韩不卡播放免费| 3d动漫精品啪啪一区二区竹菊| 欧美日韩精品电影| 欧美日韩一区 二区 三区 久久精品| 色www精品视频在线观看| 成人激情小说乱人伦| 成人晚上爱看视频| 成人av网站在线| 91亚洲精品乱码久久久久久蜜桃| 91视频com| 欧洲一区二区三区免费视频| 在线观看亚洲精品视频| 欧美精品亚洲一区二区在线播放| 3d成人h动漫网站入口| 欧美一级淫片007| 精品久久久三级丝袜| 欧美精品一区二区三区很污很色的 | 国产精品免费久久久久| 中文字幕精品一区二区三区精品| 国产精品女主播在线观看| 国产精品视频一二| 最新高清无码专区| 亚洲一区在线观看视频| 秋霞电影网一区二区| 久久99精品国产麻豆婷婷洗澡| 黄页网站大全一区二区| 成人免费的视频| 欧美在线影院一区二区| 欧美人成免费网站| 久久嫩草精品久久久精品一| 国产精品嫩草影院av蜜臀| 一区二区免费在线| 久久精品免费看| 成人性生交大片免费看中文 | 欧亚洲嫩模精品一区三区| 欧美日韩精品一区二区三区蜜桃| 日韩欧美国产一区在线观看| 久久九九久久九九| 亚洲美女屁股眼交| 日韩中文字幕麻豆| 国产高清在线精品| 欧美伊人精品成人久久综合97| 欧美一区二区视频在线观看2020| 国产午夜亚洲精品不卡| 亚洲伊人伊色伊影伊综合网| 久久9热精品视频| 色综合中文字幕| 日韩欧美在线123| 亚洲青青青在线视频| 麻豆国产欧美日韩综合精品二区| 成人高清视频在线| 91精品国产全国免费观看| 亚洲国产精品99久久久久久久久| 亚洲电影一区二区三区| 国产suv精品一区二区三区| 在线视频国内自拍亚洲视频| 精品国产三级电影在线观看| 一区二区三区成人在线视频| 国产乱子轮精品视频| 欧美亚日韩国产aⅴ精品中极品| 久久久国产精品不卡| 亚洲国产日日夜夜| proumb性欧美在线观看| 精品国产自在久精品国产| 亚洲免费av高清| 懂色av噜噜一区二区三区av| 7777精品伊人久久久大香线蕉完整版 | 中文字幕av资源一区| 日韩精品一级二级| 91蜜桃在线免费视频| 久久久久久影视| 日韩黄色一级片| 在线一区二区三区四区| 亚洲国产精品精华液ab| 久久99精品久久久久久久久久久久 | 99精品久久久久久| 久久久久久免费毛片精品| 日韩高清一区在线| 欧美影视一区二区三区| 日韩一区日韩二区| 粉嫩嫩av羞羞动漫久久久| 精品日韩99亚洲| 三级在线观看一区二区| 一本大道久久精品懂色aⅴ| 久久蜜桃av一区二区天堂| 蜜桃视频第一区免费观看| 欧美日韩亚洲丝袜制服| 欧美国产视频在线| 国产一区二区三区av电影| 日韩一区二区电影| 日韩精品乱码av一区二区| 91在线观看美女| 国产色婷婷亚洲99精品小说| 美女视频黄 久久| 欧美一区二区视频在线观看| 亚洲福利一区二区| 欧美色综合天天久久综合精品| 综合久久一区二区三区| 91丨porny丨蝌蚪视频| 中文字幕亚洲欧美在线不卡| 成人激情视频网站| 亚洲婷婷综合久久一本伊一区| 成人高清伦理免费影院在线观看| 久久久精品天堂| 丰满白嫩尤物一区二区| 国产精品麻豆久久久| 不卡的电影网站| 亚洲婷婷综合色高清在线| 91麻豆免费看| 亚洲主播在线播放| 3d动漫精品啪啪一区二区竹菊| 奇米影视一区二区三区小说| 91精品国产综合久久精品麻豆| 日韩va欧美va亚洲va久久| 欧美一区二区成人| 国产尤物一区二区| 欧美国产精品一区| 色综合久久天天| 亚洲成a人片在线不卡一二三区| 精品视频全国免费看| 日韩精品色哟哟| 26uuu久久天堂性欧美| 成人午夜精品在线| **性色生活片久久毛片| 欧美色倩网站大全免费| 毛片av中文字幕一区二区| 久久久久国产精品麻豆ai换脸| www.欧美精品一二区| 亚洲成人久久影院| 日韩欧美中文字幕制服| 高清不卡在线观看| 亚洲午夜一区二区三区| 欧美不卡一区二区三区四区| 国产成人免费视频| 亚洲大片免费看| 久久一留热品黄| 色婷婷久久99综合精品jk白丝| 亚洲mv大片欧洲mv大片精品| 精品乱码亚洲一区二区不卡| 成人97人人超碰人人99| 午夜精品久久久久久久 | 欧美撒尿777hd撒尿| 久久精品72免费观看| 中文字幕视频一区二区三区久| 欧美日韩黄色影视| 国产不卡高清在线观看视频| 亚洲午夜精品在线| 国产日韩欧美一区二区三区乱码| 色狠狠桃花综合| 国产永久精品大片wwwapp| 亚洲自拍与偷拍| 久久久久久日产精品| 欧美日韩国产小视频| 成人a区在线观看| 日本亚洲一区二区| 亚洲视频你懂的| 日韩一区二区在线观看视频| 91在线国产福利| 国产在线视频一区二区三区| 亚洲一区免费视频| 国产精品少妇自拍| 精品国产免费一区二区三区四区 | 91麻豆国产精品久久| 久久国产精品区|