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

📄 ssf43.c

📁 一种的著名的加解密算法ssf43. 国家密码管理委员会办公室批准的用于WLAN的SSF43对称分组加密算法.
💻 C
📖 第 1 页 / 共 2 页
字号:
#include "ssf43.h"

static bit8 S0[] = {
			   0xef,0xd9,0x5c,0x06,0x7a,0x45,0x3f,0xd4,0xf8,0x94,0x2b,0x31,0x88,0x7d,0x9b,0xa6,
			   0x69,0x57,0x43,0x74,0xf4,0xa1,0xe7,0x33,0x52,0x8d,0xb2,0xc4,0x5f,0x1c,0x6e,0xcf,
			   0x81,0x5e,0x75,0x72,0xdb,0xe9,0xb3,0xaf,0xa2,0x6c,0x47,0x85,0x17,0x54,0x3c,0x6a,
			   0x38,0xbb,0x9f,0xb5,0x62,0xee,0x56,0x80,0x0e,0x36,0xa8,0xe3,0xc5,0x92,0x21,0xf0,
			   0xc3,0x4c,0x8c,0xf6,0x13,0xad,0x55,0x27,0x05,0x2f,0x48,0xc7,0x63,0xbe,0x30,0xc9,
			   0xbf,0xd2,0x0a,0xce,0x96,0x66,0xae,0x0c,0xeb,0x8a,0x76,0x09,0x40,0xd1,0xf5,0xec,
			   0x6b,0x77,0xff,0x82,0x9c,0xc0,0x3a,0x59,0x39,0x61,0x24,0xde,0xfd,0x1a,0xe0,0x35,
			   0x65,0x01,0x14,0xf9,0x0f,0xcb,0x83,0x9a,0xd6,0xa5,0xb7,0x90,0xb8,0x7b,0xdc,0x41,
			   0x37,0x8b,0xfa,0x15,0xe2,0x00,0x19,0xf7,0xdd,0x60,0xe4,0xbc,0xd3,0xc6,0xca,0x1e,
			   0xc1,0x12,0x26,0x4f,0xfb,0x07,0x6d,0xe8,0x6f,0xf2,0x1d,0x7e,0x0b,0xfc,0x84,0xb1,
			   0x2e,0xea,0xb0,0xe1,0x71,0x67,0x64,0x4e,0x50,0x99,0x68,0xab,0x02,0x4d,0x98,0x97,
			   0xa3,0xcd,0xc2,0x20,0x04,0x5b,0x91,0x3e,0x25,0x1f,0xed,0xda,0xb6,0x8e,0x49,0x42,
			   0xf1,0x2a,0x93,0xa4,0x2c,0xd5,0x78,0x53,0x32,0x11,0xa9,0x5a,0xa0,0x3b,0x8f,0xaa,
			   0x03,0x86,0x51,0xd7,0x89,0x18,0xbd,0x34,0x4a,0xcc,0xf3,0x16,0x79,0xe5,0x23,0x2d,
			   0x7c,0xa7,0xd8,0x29,0x46,0xba,0x08,0xe6,0x9e,0x44,0x0d,0x73,0xc8,0xdf,0x7f,0x10,
			   0xb9,0xb4,0x4b,0x9d,0xd0,0x3d,0x5d,0xac,0x28,0x58,0xfe,0x87,0x95,0x22,0x70,0x1b
			};
static bit8 S1[] = {
			   0x73,0x5a,0xf9,0x1d,0xc2,0x0f,0x9a,0x72,0x3a,0xc3,0x82,0x97,0x66,0xb2,0x51,0xdd,
			   0xa8,0x94,0x93,0x7c,0x30,0x6d,0xef,0xc8,0x41,0xea,0x39,0x04,0xb7,0xe1,0x0a,0x8f,
			   0xb6,0x2c,0x84,0xa9,0x57,0xa7,0x10,0xb4,0x8b,0x65,0xda,0xf6,0x19,0x6a,0xf0,0x98,
			   0xe3,0x17,0x60,0x4e,0xd8,0x1a,0x4d,0xe5,0xa4,0x5c,0x47,0x6b,0xd6,0xbc,0x6e,0x11,
			   0x8a,0xc0,0xd5,0x2b,0x90,0x54,0x8c,0x61,0x5d,0x2d,0x69,0x62,0xeb,0x3b,0x12,0x27,
			   0x7f,0x64,0x05,0x1e,0x1c,0x23,0x53,0xdf,0xae,0x9b,0xe4,0xb0,0xd1,0xc6,0x40,0x76,
			   0x13,0xa2,0x08,0x36,0x38,0xfd,0xbb,0x03,0x7b,0xd2,0x91,0xf8,0xbe,0x24,0x0d,0x8e,
			   0x9f,0x0b,0xcb,0x52,0xb5,0x06,0xe8,0x89,0x02,0xc5,0xbd,0x48,0x87,0x2f,0xf3,0xdc,
			   0xc1,0xf5,0x3c,0x37,0x2a,0xd3,0x58,0x86,0x16,0x31,0x9d,0xd0,0xcf,0x42,0x7d,0x09,
			   0x1f,0x59,0x4c,0xac,0x95,0x74,0xfa,0x21,0x78,0xc4,0x4b,0xba,0x29,0x88,0x83,0x6f,
			   0xb8,0x80,0xce,0x1b,0xd4,0xee,0xaf,0xf7,0x63,0x4f,0xaa,0x85,0x25,0xab,0xe6,0x3f,
			   0x33,0xc7,0x26,0xa3,0x01,0xf1,0x96,0x43,0xe9,0x28,0x18,0x35,0x3e,0x14,0xff,0xa0,
			   0xfc,0xcd,0x46,0x79,0xb9,0x00,0xde,0x2e,0xe0,0x5e,0xcc,0xbf,0x77,0x9c,0x70,0xed,
			   0x71,0xb3,0x32,0xf4,0x68,0xa5,0x3d,0x92,0x81,0xd7,0x0e,0x6c,0x45,0x50,0xe7,0x22,
			   0xd9,0x55,0x8d,0x4a,0xf2,0x49,0x67,0x44,0x0c,0xec,0xfe,0x20,0xca,0xb1,0x5b,0x75,
			   0x7a,0x34,0x5f,0xfb,0x56,0x9e,0xa1,0x7e,0x15,0xa6,0xe2,0x99,0xad,0xdb,0xc9,0x07
			};

static bit8 S2[] = {
				0x8b,0xf0,0x59,0x42,0xad,0x19,0x92,0x5f,0x13,0x7c,0xf3,0xb6,0x9c,0x55,0x04,0xbd,
				0x0e,0xcd,0x97,0x2a,0x27,0x94,0x62,0xd3,0xeb,0x20,0x2d,0xe8,0x76,0x7b,0xa6,0xc4,
				0xce,0xbc,0xc5,0xff,0x75,0xd2,0xae,0x83,0x6f,0xb1,0x32,0x4c,0xd9,0x37,0xb4,0x21,
				0x50,0xfa,0x98,0x1b,0x08,0x31,0x1e,0xa0,0x5e,0xe4,0xbb,0x79,0x69,0x3c,0x8c,0xda,
				0xe2,0x8e,0xb5,0xc7,0xc8,0x67,0xd4,0x0c,0x3f,0x71,0x48,0x5d,0x43,0x12,0x66,0xef,
				0xf7,0xb9,0xe1,0x33,0xb0,0x41,0x09,0x74,0x88,0x0f,0x03,0x16,0x4e,0xbe,0x15,0x39,
				0x87,0x64,0xf9,0xa2,0x6e,0x4b,0x70,0x3b,0xaa,0xde,0x53,0x99,0x38,0x85,0xe3,0x58,
				0xed,0x90,0x56,0xac,0x81,0x0d,0xdb,0xe5,0x14,0x5b,0x26,0x3a,0xe0,0x2b,0x00,0x9f,
				0xe7,0x3d,0x01,0x95,0x51,0x93,0xe9,0x25,0x06,0x9e,0x54,0xc3,0x8f,0x61,0x47,0xea,
				0xbf,0x5c,0x5a,0xee,0x46,0x8a,0xa3,0x4d,0xc2,0xa7,0x9d,0x05,0xc9,0xfd,0x10,0x36,
				0x72,0xa9,0xcb,0x57,0x2c,0xfe,0x80,0x7d,0xfb,0xdd,0xb7,0x84,0x40,0x1a,0x2f,0x91,
				0x68,0xf5,0x86,0x8d,0xb2,0x17,0xd5,0xf8,0x35,0xd6,0xf4,0x28,0xa8,0xcf,0x63,0x1d,
				0x45,0xfc,0x78,0xba,0x0a,0x34,0x77,0xc1,0x29,0xb3,0xf6,0x2e,0xf1,0x6c,0xa4,0xd7,
				0x11,0x6b,0x1c,0x60,0x7e,0xd8,0xf2,0xc6,0xdc,0x02,0xaf,0xd1,0xe6,0xa1,0x96,0x7a,
				0xd0,0x3e,0x1f,0x6a,0xab,0xb8,0x18,0xec,0x4a,0x30,0x82,0x07,0x22,0x73,0x9b,0x65,
				0x23,0xdf,0xcc,0x6d,0xca,0x44,0x24,0x0b,0x7f,0x9a,0x89,0xa5,0x52,0x49,0x4f,0xc0
			};

static bit8 S3[] = {
				0x8c,0x4f,0x09,0x70,0x68,0x94,0x04,0x7f,0x35,0x26,0x6e,0xa8,0x9d,0xc7,0xe4,0x18,
				0xbf,0x62,0x82,0x2d,0xf1,0xfe,0x1b,0xb8,0xb0,0x1f,0x21,0x54,0xeb,0xd8,0x87,0x79,
				0x11,0x3f,0x40,0xd5,0x0b,0x41,0xc9,0xa0,0x80,0x4a,0x05,0xed,0x36,0x7c,0xde,0x72,
				0x1e,0x97,0xd6,0x33,0x99,0xad,0x27,0x5a,0x24,0xb9,0x9f,0xe3,0xfd,0xaa,0x08,0x3e,
				0x66,0xaf,0x3d,0x9b,0xd7,0x25,0xbe,0xdc,0xbb,0xce,0x95,0xff,0x14,0x03,0x0d,0x92,
				0x4c,0x01,0x51,0xf2,0x2b,0xa6,0xda,0xef,0xe2,0x6d,0x3a,0xc5,0xcd,0xf3,0x46,0x89,
				0x20,0x8a,0xd3,0xb4,0x6f,0xd9,0xf5,0x86,0x52,0x5d,0xa2,0x0c,0xae,0x3b,0xd0,0xe7,
				0x37,0xf8,0x85,0x67,0x96,0x6a,0x30,0x2c,0xe5,0x02,0x19,0x4b,0x83,0xe0,0x5c,0xfa,
				0xa9,0xc3,0x10,0x56,0xb6,0xdf,0x39,0x64,0x4d,0xb7,0xc1,0x48,0xd2,0x63,0xf7,0x15,
				0x57,0xf4,0xac,0x8b,0xcc,0x13,0x91,0x42,0x8e,0xdb,0x75,0xea,0x2a,0x4e,0xdd,0x76,
				0xc8,0x06,0x17,0xb1,0x65,0x7a,0xba,0x23,0xf9,0x9e,0xc6,0x7b,0x98,0xcb,0x6c,0x0a,
				0xe1,0x59,0x7e,0x84,0xe6,0x47,0xf0,0x16,0x38,0xc0,0x43,0x1c,0x71,0xb3,0xa5,0x90,
				0xb5,0xc4,0xf6,0x28,0x22,0xca,0x07,0xe9,0x1a,0xfc,0x73,0xab,0x7d,0x29,0xcf,0xbd,
				0x60,0xa3,0x34,0x12,0x5b,0x55,0xb2,0x58,0x1d,0x77,0xa7,0x61,0x88,0x32,0xfb,0x53,
				0x69,0x8d,0x0e,0xec,0x31,0xa4,0x9c,0x45,0xd4,0xa1,0x78,0x93,0x00,0x5e,0x49,0x2f,
				0x9a,0x3c,0x44,0xd1,0x2e,0x81,0x8f,0x5f,0xe8,0x0f,0xbc,0x74,0x6b,0x50,0xee,0xc2
			};

static bit8 S4[] = {
				0xf3,0xda,0x48,0xc5,0x0a,0x66,0xa5,0x3a,0xbe,0x37,0x1c,0x29,0x47,0xc1,0x6b,0xde,
				0x41,0x4f,0x16,0xb8,0x79,0xaa,0x50,0x65,0xd0,0x88,0x20,0xa6,0xbd,0x03,0x81,0x92,
				0x62,0x13,0xb2,0xef,0x01,0xa4,0x8b,0x63,0xa3,0xec,0x56,0x78,0xff,0x3e,0xd5,0xe9,
				0x35,0x7a,0xe8,0x55,0xd3,0xf0,0xc6,0x85,0x8f,0xb4,0x2b,0x9b,0xa8,0x5c,0x6d,0x39,
				0x57,0xf6,0x2a,0x5e,0x95,0x61,0x9a,0xcc,0xdd,0x1a,0x72,0xd8,0x04,0x96,0x31,0x0d,
				0xf5,0x9c,0xc7,0xe1,0xbb,0xad,0x68,0x86,0x36,0xb9,0x19,0x7f,0x8a,0x49,0x17,0xea,
				0x1d,0x27,0x7c,0x94,0xb6,0x42,0x44,0xfe,0x28,0xd7,0xe7,0x02,0xe2,0xc4,0x58,0xc3,
				0x12,0x83,0x89,0x64,0xa1,0x08,0xfd,0x9f,0xf8,0x73,0x4e,0x30,0x11,0xae,0xc0,0xf4,
				0x6f,0x51,0x87,0xb3,0x1f,0xd4,0xe3,0x99,0x74,0xe5,0xe6,0x10,0xcd,0x69,0x06,0xbc,
				0xc2,0x0c,0x5a,0xed,0x00,0x9e,0x2c,0x43,0x59,0x4a,0xfc,0xd6,0xf2,0x26,0xce,0x1b,
				0x90,0x46,0x2e,0x82,0xd9,0x18,0x52,0x3f,0x7b,0x2d,0x09,0x8c,0x24,0x5f,0x38,0x40,
				0xf7,0xab,0xcf,0xdc,0xe4,0xca,0xa7,0x21,0x84,0x75,0x9d,0xe0,0x1e,0x05,0xfb,0x76,
				0xfa,0xc8,0xd1,0xeb,0xac,0x4d,0x7e,0xa0,0x0e,0xbf,0x23,0x71,0x77,0x25,0xf9,0x93,
				0x4b,0xb0,0x98,0x14,0x54,0xdb,0x0f,0xba,0x60,0x45,0xc9,0x8e,0x3c,0xf1,0x32,0x67,
				0x33,0x7d,0x5b,0x4c,0x07,0xb5,0xa9,0x6a,0x8d,0x15,0x34,0xee,0x80,0x70,0xdf,0x0b,
				0x6e,0xd2,0x3d,0xb7,0x22,0x2f,0x91,0x5d,0xb1,0xa2,0xaf,0x3b,0xcb,0x97,0x53,0x6c
			};

static bit8 S5[] = {
				0xad,0x61,0x77,0x26,0x52,0x0e,0x88,0x85,0xc7,0x9c,0x0c,0xfe,0x7b,0xf7,0xdc,0x1f,
				0x16,0x2a,0xf1,0x50,0x87,0x1b,0x9d,0x65,0xea,0x09,0x69,0x1a,0x46,0x96,0x30,0xfd,
				0xfa,0x84,0xc2,0x68,0xe3,0x98,0x7e,0x8b,0x54,0xeb,0xbf,0x21,0x31,0x43,0x24,0xa8,
				0x41,0xb9,0x19,0xaf,0x04,0x36,0xc9,0x4a,0x0f,0xdf,0xb4,0x47,0x18,0xb3,0xe6,0x15,
				0x02,0x2c,0xe5,0x4d,0xbc,0xd0,0x79,0xaa,0xc0,0x53,0x17,0x99,0x4f,0x60,0xc6,0x12,
				0x33,0xf6,0xda,0x7f,0xd3,0xe9,0xa0,0x83,0x9e,0x7c,0x2e,0x20,0xdd,0xee,0xbb,0x57,
				0xcc,0xc3,0x1c,0x00,0x8a,0x05,0x95,0xe4,0xf3,0xd6,0x6a,0x3b,0x28,0x8c,0xcb,0x5c,
				0xa5,0x44,0xd7,0xba,0xb2,0x94,0x10,0xd1,0x39,0x81,0xec,0x48,0x86,0x72,0x42,0x2d,
				0xd5,0x32,0x29,0xc4,0x37,0x66,0xe1,0xfb,0xf9,0x3d,0x82,0x73,0x22,0x55,0x49,0x78,
				0xa4,0x97,0xc8,0xb0,0x08,0x2f,0x23,0x5d,0x45,0x58,0xcf,0xa7,0xed,0x63,0xae,0xf2,
				0x25,0xdb,0x56,0x3f,0xe8,0xb5,0xa6,0xfc,0x3e,0xc1,0x07,0x4e,0xce,0x9f,0x75,0x62,
				0x4c,0x71,0x92,0x06,0xab,0x03,0x0d,0x80,0xe0,0x4b,0x38,0xbe,0xd2,0x64,0xff,0x2b,
				0x93,0xde,0x70,0xe2,0xa9,0x34,0x0b,0x11,0xf4,0x27,0xbd,0x8f,0x01,0xd9,0x3a,0x6f,
				0xb8,0xa3,0x8e,0x89,0x5a,0xf5,0x6d,0xd8,0x14,0x9b,0x76,0x51,0xb1,0x0a,0x13,0xcd,
				0xef,0xb6,0x7d,0x67,0x1e,0x6b,0x40,0x8d,0x6c,0x90,0x9a,0x74,0xc5,0xa1,0xf0,0x5b,
				0x1d,0xca,0x6e,0x35,0xac,0x5f,0xb7,0x7a,0x5e,0xe7,0x91,0xf8,0x59,0x3c,0xa2,0xd4
			};

static bit8 S6[] = {
				0x1b,0xb6,0x84,0x93,0x64,0x33,0x35,0x5e,0x88,0xf8,0x3a,0x6c,0x6a,0x7d,0xf6,0xbc,
				0x16,0xaa,0xce,0x2f,0x18,0x40,0x54,0x8d,0x3f,0xd1,0x10,0x42,0xcd,0xb0,0x7b,0x36,
				0xd7,0x52,0x08,0x14,0xbb,0xac,0x9c,0x78,0xb2,0xe5,0xdb,0xe2,0x5f,0xd9,0x49,0x83,
				0x80,0x23,0xf3,0xd8,0xe7,0x0a,0x92,0x61,0x7a,0xcf,0xa1,0x67,0xbd,0xc4,0xae,0xf5,
				0x29,0x6f,0xdd,0x22,0x02,0x0d,0x47,0x11,0xda,0x00,0x37,0xf4,0x85,0xaf,0x2c,0xb3,
				0x0c,0xd4,0x58,0xe3,0xee,0x71,0xf0,0x5d,0xf7,0x4b,0x55,0x8f,0xa2,0x56,0x99,0x69,
				0x63,0x9a,0x79,0xb1,0xfd,0x60,0xe8,0x0b,0x38,0xff,0x82,0x44,0xd0,0x96,0xbf,0x30,
				0x6d,0xf2,0xe6,0x3e,0x8b,0xb9,0x77,0x86,0x07,0xb4,0x4a,0xd6,0x74,0x4d,0xc7,0x5b,
				0xa3,0x51,0x7f,0x1d,0x4f,0x76,0xc8,0xc6,0xc2,0x28,0xa9,0x06,0xdc,0x81,0xf1,0x6b,
				0x43,0xfc,0x68,0x12,0x9b,0xa6,0xef,0x97,0x59,0x8c,0x25,0xe0,0x7e,0xe9,0x4c,0xc5,
				0xcb,0x9f,0x13,0xd5,0x1e,0x05,0xdf,0x6e,0x45,0x66,0xfe,0x09,0x34,0x8a,0x5a,0xed,
				0x2e,0x39,0xb5,0x70,0x21,0x91,0x3b,0xa0,0xd3,0xab,0x46,0x87,0x62,0xde,0xc0,0x57,
				0xe4,0x89,0x8e,0xfa,0x7c,0xe1,0xb7,0x1a,0x0f,0x94,0x53,0x2d,0xbe,0x48,0x01,0xd2,
				0xb8,0x15,0xad,0xcc,0x72,0x0e,0x24,0x2b,0xea,0xa7,0x3c,0x50,0x31,0x98,0x17,0x73,
				0x4e,0x32,0x65,0xc3,0x26,0x19,0xba,0x90,0xa5,0xec,0xeb,0x9d,0xa8,0x75,0x1c,0xa4,
				0xfb,0x5c,0x1f,0x27,0xc1,0xca,0x03,0x3d,0x9e,0xc9,0x41,0x20,0x95,0x04,0x2a,0xf9
			};

static bit8 S7[] = {
			   0x48,0x02,0x13,0xf3,0xe4,0x53,0xdb,0x2f,0x95,0x1c,0x29,0xc9,0xaf,0x05,0xfd,0xa2,
			   0x9f,0x72,0xc5,0x54,0xb6,0xde,0x1e,0x87,0x63,0x88,0x0a,0x5f,0x59,0x6f,0x34,0xd1,
			   0xb2,0x44,0x06,0x61,0xcd,0xb7,0xf0,0xee,0xe7,0x17,0x5c,0x92,0x68,0x74,0xc1,0x3b,
			   0x09,0xc2,0x25,0xb9,0x3f,0x91,0xa3,0x77,0xb8,0x7e,0xd9,0x81,0x10,0x86,0xad,0xe8,
			   0x8c,0x2b,0x56,0x7a,0x31,0x9a,0x07,0x4d,0xfa,0x75,0x00,0xe6,0xa0,0x6a,0x73,0x0e,
			   0x65,0xe3,0x18,0xdd,0x40,0xae,0x22,0xf8,0x3c,0x21,0xb1,0x16,0xd2,0x57,0x45,0xcb,
			   0x42,0xd6,0xd5,0x14,0xeb,0x01,0x79,0xa5,0x1d,0xa9,0x9e,0x51,0x83,0x38,0x90,0x67,
			   0xff,0x28,0xcc,0x4b,0x15,0x8b,0x6e,0x12,0x9b,0xdc,0x64,0x2d,0xb4,0x7b,0x5a,0x97,
			   0x3e,0x60,0x0c,0xfe,0x98,0x3d,0x82,0xd4,0xcf,0xac,0x32,0xab,0x24,0xda,0x19,0x69,
			   0x71,0x46,0x7f,0x9c,0x6d,0xe2,0x66,0xbb,0xfb,0x58,0x80,0xca,0x93,0xf5,0x8e,0x08,
			   0xa4,0x11,0x2a,0xa7,0x41,0xf1,0x35,0x7c,0x96,0x23,0xe9,0x04,0xb0,0x8f,0x4a,0xa1,
			   0xd3,0x1a,0x0f,0x62,0x20,0x27,0xea,0x4e,0x47,0x39,0xb3,0xd0,0xc8,0x52,0xf4,0x5d,
			   0x5b,0x37,0x9d,0xd8,0xf6,0x85,0xa8,0x1b,0x6c,0xd7,0xe0,0x5e,0x1f,0xc0,0xc7,0x30,
			   0x8a,0x99,0xbe,0xb5,0x3a,0x03,0x4f,0x7d,0x33,0x94,0xf7,0xf9,0x6b,0x4c,0x89,0xbc,
			   0xfc,0xc3,0xc6,0x76,0x0b,0x55,0xe1,0xba,0x49,0x70,0x26,0x8d,0xbd,0x2e,0xf2,0xec,
			   0x36,0xce,0x2c,0xed,0xc4,0x78,0x50,0xdf,0xe5,0xa6,0xaa,0xbf,0x0d,0xef,0x43,0x84
			};

static bit8 CKEY[] = {
				0x8f,0xab,0x8b,0x5e,0xb3,0x1a,0x71,0xd8,
				0xc4,0xe4,0x50,0x22,0x82,0x86,0xf7,0x7f,
				0x53,0x92,0x56,0xfa,0xc6,0xc7,0x40,0xa9,
				0x8b,0xcc,0x86,0xb5,0x06,0xe2,0xbc,0xe3,
				0x90,0x2b,0x29,0x7b,0xad,0xb8,0x9a,0x92,
				0x44,0x48,0xa0,0xb2,0x5f,0xf0,0x4f,0x2d,
				0x5e,0xf3,0x11,0x10,0x5e,0x06,0xa4,0x8c,
				0x26,0xef,0x23,0x49,0xdf,0x38,0x6f,0xf6,
				0x64,0x40,0x6a,0xc0,0xe2,0x77,0x1f,0x68,
				0xf7,0xd2,0x9e,0x62,0x28,0x8b,0xe3,0x9e
			};

//bit8->bit32,即把bLen个单字节(无符号字符)转换成四字节(无符号长整形)数组
static void ByteToULong(bit8 *bIn,bit32 *ulOut,int bLen)
{
	int i;
	int len = bLen >> 2;
	for(i=0; i<len; i++)
	{
		*ulOut    = ((*bIn++) & 0xffL) << 24;
		*ulOut   |= ((*bIn++) & 0xffL) << 16;
		*ulOut   |= ((*bIn++) & 0xffL) << 8;
		*ulOut++ |= ((*bIn++) & 0xffL) ;
	}
}

//bit32->bit8,即把ulLen个四字节(无符号长整形)转换成单字节(无符号字符)数组
static void ULongToByte(bit32 *ulIn,bit8  *bOut,int ulLen)
{
	int i;
	for(i=0; i<ulLen; i++)
	{
		*bOut++ = (bit8)( (*ulIn>>24) & 0xffL );
		*bOut++ = (bit8)( (*ulIn>>16) & 0xffL );
		*bOut++ = (bit8)( (*ulIn>>8)  & 0xffL );
		*bOut++ = (bit8)( (*ulIn++)   & 0xffL );
	}
}	

//bit8->bit32,即把bLen个单字节(无符号字符)转换成四字节(无符号长整形)数组
static void L_ByteToULong(bit8 *bIn,bit32 *ulOut,int bLen)
{
	int i;
	int len = bLen >> 2;
	for(i=0; i<len; i++)
	{
		*ulOut    = ((*bIn++) & 0xffL) ;
		*ulOut   |= ((*bIn++) & 0xffL) << 8;
		*ulOut   |= ((*bIn++) & 0xffL) << 16;
		*ulOut++ |= ((*bIn++) & 0xffL) << 24;
	}
}

//bit32->bit8,即把ulLen个四字节(无符号长整形)转换成单字节(无符号字符)数组
static void L_ULongToByte(bit32 *ulIn,bit8  *bOut,int ulLen)
{
	int i;
	for(i=0; i<ulLen; i++)
	{
		*bOut++ = (bit8)( (*ulIn) & 0xffL );
		*bOut++ = (bit8)( (*ulIn>>8) & 0xffL );
		*bOut++ = (bit8)( (*ulIn>>16)  & 0xffL );
		*bOut++ = (bit8)( ((*ulIn++)>>24)   & 0xffL );
	}
}	

//S盒函数
static void S_box(bit8 *A)
{
	*A++ = S0[*A];
	*A++ = S1[*A];
	*A++ = S2[*A];
	*A++ = S3[*A];
	*A++ = S4[*A];
	*A++ = S5[*A];
	*A++ = S6[*A];
	*A++ = S7[*A];
}

/****************************************************
 *【函数原型】:void F(bit32 *l_key, bit32 *in, bit32 *out)
 *【功能说明】:实现F函数。
 *【参数说明】:
 * [IN] 	l_key为64位层密钥(范围为:2-17)
 * [IN] 	in为64位输入数据
 * [OUT]    out为64位输出数据
 *【函数返回】:无。
******************************************************/
void F(bit32 *l_key, bit32 *in, 
	   bit32 *out) 
{
	int i;
	bit8 A[8];
	bit16 B[4],Cx[4];
	bit32 C[2],D[2],E[2];	

⌨️ 快捷键说明

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