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

📄 cipher-des.c

📁 海思KEY驱动
💻 C
📖 第 1 页 / 共 3 页
字号:
        w  |= (b1[key[20+24]] | b0[key[21+24]]) << 2;        w  |=  b1[key[22+24]] | b0[key[23+24]];        method[1] = generic_rotr32 (w, 4);      /* could be eliminated */        key += 48;        method  += 2;    } while ( --n );    return 0;}static void DesSmallFipsEncrypt (DesData d, DesKeys r, DesData s){    register u32 x, y, z;    x  = s [7];    x <<= 8;    x |= s [6];    x <<= 8;    x |= s [5];    x <<= 8;    x |= s [4];    y  = s [3];    y <<= 8;    y |= s [2];    y <<= 8;    y |= s [1];    y <<= 8;    y |= s [0];    z  = ((x >> 004) ^ y) & 0X0F0F0F0FL;    x ^= z << 004;    y ^= z;    z  = ((y >> 020) ^ x) & 0X0000FFFFL;    y ^= z << 020;    x ^= z;    z  = ((x >> 002) ^ y) & 0X33333333L;    x ^= z << 002;    y ^= z;    z  = ((y >> 010) ^ x) & 0X00FF00FFL;    y ^= z << 010;    x ^= z;    x  = x >> 1 | x << 31;    z  = (x ^ y) & 0X55555555L;    y ^= z;    x ^= z;    y  = y >> 1 | y << 31;    z  = r [0];    z ^= y;    x ^= * (u32 *) ((u8 *) (des_keymap + 192) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 128) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 64) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) des_keymap + (0XFC & z));    z  = r [1];    z ^= y;    z  = z << 4 | z >> 28;    x ^= * (u32 *) ((u8 *) (des_keymap + 448) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 384) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 320) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 256) + (0XFC & z));    z  = r [2];    z ^= x;    y ^= * (u32 *) ((u8 *) (des_keymap + 192) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 128) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 64) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) des_keymap + (0XFC & z));    z  = r [3];    z ^= x;    z  = z << 4 | z >> 28;    y ^= * (u32 *) ((u8 *) (des_keymap + 448) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 384) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 320) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 256) + (0XFC & z));    z  = r [4];    z ^= y;    x ^= * (u32 *) ((u8 *) (des_keymap + 192) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 128) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 64) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) des_keymap + (0XFC & z));    z  = r [5];    z ^= y;    z  = z << 4 | z >> 28;    x ^= * (u32 *) ((u8 *) (des_keymap + 448) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 384) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 320) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 256) + (0XFC & z));    z  = r [6];    z ^= x;    y ^= * (u32 *) ((u8 *) (des_keymap + 192) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 128) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 64) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) des_keymap + (0XFC & z));    z  = r [7];    z ^= x;    z  = z << 4 | z >> 28;    y ^= * (u32 *) ((u8 *) (des_keymap + 448) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 384) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 320) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 256) + (0XFC & z));    z  = r [8];    z ^= y;    x ^= * (u32 *) ((u8 *) (des_keymap + 192) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 128) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 64) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) des_keymap + (0XFC & z));    z  = r [9];    z ^= y;    z  = z << 4 | z >> 28;    x ^= * (u32 *) ((u8 *) (des_keymap + 448) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 384) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 320) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 256) + (0XFC & z));    z  = r [10];    z ^= x;    y ^= * (u32 *) ((u8 *) (des_keymap + 192) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 128) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 64) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) des_keymap + (0XFC & z));    z  = r [11];    z ^= x;    z  = z << 4 | z >> 28;    y ^= * (u32 *) ((u8 *) (des_keymap + 448) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 384) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 320) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 256) + (0XFC & z));    z  = r [12];    z ^= y;    x ^= * (u32 *) ((u8 *) (des_keymap + 192) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 128) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 64) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) des_keymap + (0XFC & z));    z  = r [13];    z ^= y;    z  = z << 4 | z >> 28;    x ^= * (u32 *) ((u8 *) (des_keymap + 448) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 384) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 320) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 256) + (0XFC & z));    z  = r [14];    z ^= x;    y ^= * (u32 *) ((u8 *) (des_keymap + 192) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 128) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 64) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) des_keymap + (0XFC & z));    z  = r [15];    z ^= x;    z  = z << 4 | z >> 28;    y ^= * (u32 *) ((u8 *) (des_keymap + 448) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 384) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 320) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 256) + (0XFC & z));    z  = r [16];    z ^= y;    x ^= * (u32 *) ((u8 *) (des_keymap + 192) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 128) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 64) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) des_keymap + (0XFC & z));    z  = r [17];    z ^= y;    z  = z << 4 | z >> 28;    x ^= * (u32 *) ((u8 *) (des_keymap + 448) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 384) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 320) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 256) + (0XFC & z));    z  = r [18];    z ^= x;    y ^= * (u32 *) ((u8 *) (des_keymap + 192) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 128) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 64) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) des_keymap + (0XFC & z));    z  = r [19];    z ^= x;    z  = z << 4 | z >> 28;    y ^= * (u32 *) ((u8 *) (des_keymap + 448) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 384) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 320) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 256) + (0XFC & z));    z  = r [20];    z ^= y;    x ^= * (u32 *) ((u8 *) (des_keymap + 192) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 128) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 64) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) des_keymap + (0XFC & z));    z  = r [21];    z ^= y;    z  = z << 4 | z >> 28;    x ^= * (u32 *) ((u8 *) (des_keymap + 448) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 384) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 320) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 256) + (0XFC & z));    z  = r [22];    z ^= x;    y ^= * (u32 *) ((u8 *) (des_keymap + 192) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 128) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 64) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) des_keymap + (0XFC & z));    z  = r [23];    z ^= x;    z  = z << 4 | z >> 28;    y ^= * (u32 *) ((u8 *) (des_keymap + 448) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 384) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 320) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 256) + (0XFC & z));    z  = r [24];    z ^= y;    x ^= * (u32 *) ((u8 *) (des_keymap + 192) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 128) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 64) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) des_keymap + (0XFC & z));    z  = r [25];    z ^= y;    z  = z << 4 | z >> 28;    x ^= * (u32 *) ((u8 *) (des_keymap + 448) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 384) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 320) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 256) + (0XFC & z));    z  = r [26];    z ^= x;    y ^= * (u32 *) ((u8 *) (des_keymap + 192) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 128) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 64) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) des_keymap + (0XFC & z));    z  = r [27];    z ^= x;    z  = z << 4 | z >> 28;    y ^= * (u32 *) ((u8 *) (des_keymap + 448) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 384) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 320) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 256) + (0XFC & z));    z  = r [28];    z ^= y;    x ^= * (u32 *) ((u8 *) (des_keymap + 192) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 128) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 64) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) des_keymap + (0XFC & z));    z  = r [29];    z ^= y;    z  = z << 4 | z >> 28;    x ^= * (u32 *) ((u8 *) (des_keymap + 448) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 384) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 320) + (0XFC & z));    z >>= 8;    x ^= * (u32 *) ((u8 *) (des_keymap + 256) + (0XFC & z));    z  = r [30];    z ^= x;    y ^= * (u32 *) ((u8 *) (des_keymap + 192) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 128) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 64) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) des_keymap + (0XFC & z));    z  = r [31];    z ^= x;    z  = z << 4 | z >> 28;    y ^= * (u32 *) ((u8 *) (des_keymap + 448) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 384) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 320) + (0XFC & z));    z >>= 8;    y ^= * (u32 *) ((u8 *) (des_keymap + 256) + (0XFC & z));    x  = x << 1 | x >> 31;    z  = (x ^ y) & 0X55555555L;    y ^= z;    x ^= z;    y  = y << 1 | y >> 31;    z  = ((x >> 010) ^ y) & 0X00FF00FFL;    x ^= z << 010;    y ^= z;    z  = ((y >> 002) ^ x) & 0X33333333L;    y ^= z << 002;    x ^= z;    z  = ((x >> 020) ^ y) & 0X0000FFFFL;    x ^= z << 020;    y ^= z;    z  = ((y >> 004) ^ x) & 0X0F0F0F0FL;    y ^= z << 004;    x ^= z;    d [0] = x;    x >>= 8;    d [1] = x;    x >>= 8;    d [2] = x;    x >>= 8;    d [3] = x;    d [4] = y;    y >>= 8;    d [5] = y;    y >>= 8;    d [6] = y;    y >>= 8;    d [7] = y;    return;}static void DesSmallFipsDecrypt (u8 *d, u32 *r, u8 *s){    register u32 x, y, z;    x  = s [7];    x <<= 8;    x |= s [6];    x <<= 8;    x |= s [5];    x <<= 8;    x |= s [4];    y  = s [3];    y <<= 8;    y |= s [2];    y <<= 8;    y |= s [1];

⌨️ 快捷键说明

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