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

📄 seed.c

📁 OpenSSL 0.9.8k 最新版OpenSSL
💻 C
📖 第 1 页 / 共 2 页
字号:
	0xc8d0d818, 0x0b23282b, 0x46626426, 0x4a72783a, 0x07232427, 0x0f232c2f, 0xc1f1f031, 0x42727032,	0x42424002, 0xc4d0d414, 0x41414001, 0xc0c0c000, 0x43737033, 0x47636427, 0x8ca0ac2c, 0x8b83880b,	0xc7f3f437, 0x8da1ac2d, 0x80808000, 0x0f131c1f, 0xcac2c80a, 0x0c202c2c, 0x8aa2a82a, 0x04303434,	0xc2d2d012, 0x0b03080b, 0xcee2ec2e, 0xc9e1e829, 0x4d515c1d, 0x84909414, 0x08101818, 0xc8f0f838,	0x47535417, 0x8ea2ac2e, 0x08000808, 0xc5c1c405, 0x03131013, 0xcdc1cc0d, 0x86828406, 0x89b1b839,	0xcff3fc3f, 0x4d717c3d, 0xc1c1c001, 0x01313031, 0xc5f1f435, 0x8a82880a, 0x4a62682a, 0x81b1b031,	0xc1d1d011, 0x00202020, 0xc7d3d417, 0x02020002, 0x02222022, 0x04000404, 0x48606828, 0x41717031,	0x07030407, 0xcbd3d81b, 0x8d919c1d, 0x89919819, 0x41616021, 0x8eb2bc3e, 0xc6e2e426, 0x49515819,	0xcdd1dc1d, 0x41515011, 0x80909010, 0xccd0dc1c, 0x8a92981a, 0x83a3a023, 0x8ba3a82b, 0xc0d0d010,	0x81818001, 0x0f030c0f, 0x47434407, 0x0a12181a, 0xc3e3e023, 0xcce0ec2c, 0x8d818c0d, 0x8fb3bc3f,	0x86929416, 0x4b73783b, 0x4c505c1c, 0x82a2a022, 0x81a1a021, 0x43636023, 0x03232023, 0x4d414c0d,	0xc8c0c808, 0x8e929c1e, 0x8c909c1c, 0x0a32383a, 0x0c000c0c, 0x0e222c2e, 0x8ab2b83a, 0x4e626c2e,	0x8f939c1f, 0x4a52581a, 0xc2f2f032, 0x82929012, 0xc3f3f033, 0x49414809, 0x48707838, 0xccc0cc0c,	0x05111415, 0xcbf3f83b, 0x40707030, 0x45717435, 0x4f737c3f, 0x05313435, 0x00101010, 0x03030003,	0x44606424, 0x4d616c2d, 0xc6c2c406, 0x44707434, 0xc5d1d415, 0x84b0b434, 0xcae2e82a, 0x09010809,	0x46727436, 0x09111819, 0xcef2fc3e, 0x40404000, 0x02121012, 0xc0e0e020, 0x8db1bc3d, 0x05010405,	0xcaf2f83a, 0x01010001, 0xc0f0f030, 0x0a22282a, 0x4e525c1e, 0x89a1a829, 0x46525416, 0x43434003,	0x85818405, 0x04101414, 0x89818809, 0x8b93981b, 0x80b0b030, 0xc5e1e425, 0x48404808, 0x49717839,	0x87939417, 0xccf0fc3c, 0x0e121c1e, 0x82828002, 0x01212021, 0x8c808c0c, 0x0b13181b, 0x4f535c1f,	0x47737437, 0x44505414, 0x82b2b032, 0x0d111c1d, 0x05212425, 0x4f434c0f, 0x00000000, 0x46424406,	0xcde1ec2d, 0x48505818, 0x42525012, 0xcbe3e82b, 0x4e727c3e, 0xcad2d81a, 0xc9c1c809, 0xcdf1fc3d,	0x00303030, 0x85919415, 0x45616425, 0x0c303c3c, 0x86b2b436, 0xc4e0e424, 0x8bb3b83b, 0x4c707c3c,	0x0e020c0e, 0x40505010, 0x09313839, 0x06222426, 0x02323032, 0x84808404, 0x49616829, 0x83939013,	0x07333437, 0xc7e3e427, 0x04202424, 0x84a0a424, 0xcbc3c80b, 0x43535013, 0x0a02080a, 0x87838407,	0xc9d1d819, 0x4c404c0c, 0x83838003, 0x8f838c0f, 0xcec2cc0e, 0x0b33383b, 0x4a42480a, 0x87b3b437}	};/* key schedule constants - golden ratio */#define KC0     0x9e3779b9#define KC1     0x3c6ef373#define KC2     0x78dde6e6#define KC3     0xf1bbcdcc#define KC4     0xe3779b99#define KC5     0xc6ef3733#define KC6     0x8dde6e67#define KC7     0x1bbcdccf#define KC8     0x3779b99e#define KC9     0x6ef3733c#define KC10    0xdde6e678#define KC11    0xbbcdccf1#define KC12    0x779b99e3#define KC13    0xef3733c6#define KC14    0xde6e678d#define KC15    0xbcdccf1bvoid SEED_set_key(const unsigned char rawkey[SEED_KEY_LENGTH], SEED_KEY_SCHEDULE *ks){	seed_word x1, x2, x3, x4;	seed_word t0, t1;	char2word(rawkey   , x1);	char2word(rawkey+4 , x2);	char2word(rawkey+8 , x3);	char2word(rawkey+12, x4);	t0 = (x1 + x3 - KC0) & 0xffffffff;	t1 = (x2 - x4 + KC0) & 0xffffffff;                     KEYUPDATE_TEMP(t0, t1, &ks->data[0]);	KEYSCHEDULE_UPDATE1(t0, t1, x1, x2, x3, x4, KC1);      KEYUPDATE_TEMP(t0, t1, &ks->data[2]);	KEYSCHEDULE_UPDATE0(t0, t1, x1, x2, x3, x4, KC2);      KEYUPDATE_TEMP(t0, t1, &ks->data[4]);	KEYSCHEDULE_UPDATE1(t0, t1, x1, x2, x3, x4, KC3);      KEYUPDATE_TEMP(t0, t1, &ks->data[6]);	KEYSCHEDULE_UPDATE0(t0, t1, x1, x2, x3, x4, KC4);      KEYUPDATE_TEMP(t0, t1, &ks->data[8]);	KEYSCHEDULE_UPDATE1(t0, t1, x1, x2, x3, x4, KC5);      KEYUPDATE_TEMP(t0, t1, &ks->data[10]);	KEYSCHEDULE_UPDATE0(t0, t1, x1, x2, x3, x4, KC6);      KEYUPDATE_TEMP(t0, t1, &ks->data[12]);	KEYSCHEDULE_UPDATE1(t0, t1, x1, x2, x3, x4, KC7);      KEYUPDATE_TEMP(t0, t1, &ks->data[14]);	KEYSCHEDULE_UPDATE0(t0, t1, x1, x2, x3, x4, KC8);      KEYUPDATE_TEMP(t0, t1, &ks->data[16]);	KEYSCHEDULE_UPDATE1(t0, t1, x1, x2, x3, x4, KC9);      KEYUPDATE_TEMP(t0, t1, &ks->data[18]);	KEYSCHEDULE_UPDATE0(t0, t1, x1, x2, x3, x4, KC10);     KEYUPDATE_TEMP(t0, t1, &ks->data[20]);	KEYSCHEDULE_UPDATE1(t0, t1, x1, x2, x3, x4, KC11);     KEYUPDATE_TEMP(t0, t1, &ks->data[22]);	KEYSCHEDULE_UPDATE0(t0, t1, x1, x2, x3, x4, KC12);     KEYUPDATE_TEMP(t0, t1, &ks->data[24]);	KEYSCHEDULE_UPDATE1(t0, t1, x1, x2, x3, x4, KC13);     KEYUPDATE_TEMP(t0, t1, &ks->data[26]);	KEYSCHEDULE_UPDATE0(t0, t1, x1, x2, x3, x4, KC14);     KEYUPDATE_TEMP(t0, t1, &ks->data[28]);	KEYSCHEDULE_UPDATE1(t0, t1, x1, x2, x3, x4, KC15);     KEYUPDATE_TEMP(t0, t1, &ks->data[30]);}void SEED_encrypt(const unsigned char s[SEED_BLOCK_SIZE], unsigned char d[SEED_BLOCK_SIZE], const SEED_KEY_SCHEDULE *ks){	seed_word x1, x2, x3, x4;	seed_word t0, t1;	char2word(s,    x1);	char2word(s+4,  x2);	char2word(s+8,  x3);	char2word(s+12, x4);		E_SEED(t0, t1, x1, x2, x3, x4, 0);	E_SEED(t0, t1, x3, x4, x1, x2, 2);	E_SEED(t0, t1, x1, x2, x3, x4, 4);	E_SEED(t0, t1, x3, x4, x1, x2, 6);	E_SEED(t0, t1, x1, x2, x3, x4, 8);	E_SEED(t0, t1, x3, x4, x1, x2, 10);	E_SEED(t0, t1, x1, x2, x3, x4, 12);	E_SEED(t0, t1, x3, x4, x1, x2, 14);	E_SEED(t0, t1, x1, x2, x3, x4, 16);	E_SEED(t0, t1, x3, x4, x1, x2, 18);	E_SEED(t0, t1, x1, x2, x3, x4, 20);	E_SEED(t0, t1, x3, x4, x1, x2, 22);	E_SEED(t0, t1, x1, x2, x3, x4, 24);	E_SEED(t0, t1, x3, x4, x1, x2, 26);	E_SEED(t0, t1, x1, x2, x3, x4, 28);	E_SEED(t0, t1, x3, x4, x1, x2, 30);	word2char(x3, d);	word2char(x4, d+4);	word2char(x1, d+8);	word2char(x2, d+12);}void SEED_decrypt(const unsigned char s[SEED_BLOCK_SIZE], unsigned char d[SEED_BLOCK_SIZE], const SEED_KEY_SCHEDULE *ks){	seed_word x1, x2, x3, x4;	seed_word t0, t1;	char2word(s,    x1);	char2word(s+4,  x2);	char2word(s+8,  x3);	char2word(s+12, x4);		E_SEED(t0, t1, x1, x2, x3, x4, 30);	E_SEED(t0, t1, x3, x4, x1, x2, 28);	E_SEED(t0, t1, x1, x2, x3, x4, 26);	E_SEED(t0, t1, x3, x4, x1, x2, 24);	E_SEED(t0, t1, x1, x2, x3, x4, 22);	E_SEED(t0, t1, x3, x4, x1, x2, 20);	E_SEED(t0, t1, x1, x2, x3, x4, 18);	E_SEED(t0, t1, x3, x4, x1, x2, 16);	E_SEED(t0, t1, x1, x2, x3, x4, 14);	E_SEED(t0, t1, x3, x4, x1, x2, 12);	E_SEED(t0, t1, x1, x2, x3, x4, 10);	E_SEED(t0, t1, x3, x4, x1, x2, 8);	E_SEED(t0, t1, x1, x2, x3, x4, 6);	E_SEED(t0, t1, x3, x4, x1, x2, 4);	E_SEED(t0, t1, x1, x2, x3, x4, 2);	E_SEED(t0, t1, x3, x4, x1, x2, 0);	word2char(x3, d);	word2char(x4, d+4);	word2char(x1, d+8);	word2char(x2, d+12);}#endif /* OPENSSL_NO_SEED */

⌨️ 快捷键说明

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