⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 platform.h

📁 非常经典的加密算法
💻 H
字号:
/***************************************************************************	PLATFORM.H	-- Platform-specific defines for TWOFISH code	Submitters:		Bruce Schneier, Counterpane Systems		Doug Whiting,	Hi/fn		John Kelsey,	Counterpane Systems		Chris Hall,		Counterpane Systems		David Wagner,	UC Berkeley				Code Author:		Doug Whiting,	Hi/fn			Version  1.00		April 1998			Copyright 1998, Hi/fn and Counterpane Systems.  All rights reserved.			Notes:		*	Tab size is set to 4 characters in this file***************************************************************************//* use intrinsic rotate if possible */#define	ROL(x,n) (((x) << ((n) & 0x1F)) | ((x) >> (32-((n) & 0x1F))))#define	ROR(x,n) (((x) >> ((n) & 0x1F)) | ((x) << (32-((n) & 0x1F))))#if (0) && defined(__BORLANDC__) && (__BORLANDC__ >= 0x462)#error "!!!This does not work for some reason!!!"#include	<stdlib.h>					/* get prototype for _lrotl() , _lrotr() */#pragma inline __lrotl__#pragma inline __lrotr__#undef	ROL								/* get rid of inefficient definitions */#undef	ROR#define	ROL(x,n)	__lrotl__(x,n)		/* use compiler intrinsic rotations */#define	ROR(x,n)	__lrotr__(x,n)#endif#ifdef _MSC_VER#include	<stdlib.h>					/* get prototypes for rotation functions */#undef	ROL#undef	ROR#pragma intrinsic(_lrotl,_lrotr)		/* use intrinsic compiler rotations */#define	ROL(x,n)	_lrotl(x,n)			#define	ROR(x,n)	_lrotr(x,n)#endif#ifndef _M_IX86#ifdef	__BORLANDC__#define	_M_IX86					300		/* make sure this is defined for Intel CPUs */#endif#endif#if WORDS_BIGENDIAN#define LittleEndian 0#define ALIGN32 1#else#define		LittleEndian		1		/* e.g., 1 for Pentium, 0 for 68K */#define		ALIGN32				0		/* need dword alignment? (no for Pentium) */#endif#if LittleEndian#define		Bswap(x)			(x)		/* NOP for little-endian machines */#define		ADDR_XOR			0		/* NOP for little-endian machines */#else#define		Bswap(x)			((ROR(x,8) & 0xFF00FF00) | (ROL(x,8) & 0x00FF00FF))#define		ADDR_XOR			3		/* convert byte address in dword */#endif/*	Macros for extracting bytes from dwords (correct for endianness) */#define	_b(x,N)	(((BYTE *)&x)[((N) & 3) ^ ADDR_XOR]) /* pick bytes out of a dword */#define		b0(x)			_b(x,0)		/* extract LSB of DWORD */#define		b1(x)			_b(x,1)#define		b2(x)			_b(x,2)#define		b3(x)			_b(x,3)		/* extract MSB of DWORD */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -