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

📄 des.c

📁 很强的射频卡reader源代码
💻 C
📖 第 1 页 / 共 2 页
字号:
u_ram.des_str.worka[37] = u_ram.des_str.buffer[24];
u_ram.des_str.worka[38] = u_ram.des_str.buffer[25];
u_ram.des_str.worka[39] = u_ram.des_str.buffer[26];
u_ram.des_str.worka[40] = u_ram.des_str.buffer[27];
u_ram.des_str.worka[41] = u_ram.des_str.buffer[28];
u_ram.des_str.worka[42] = u_ram.des_str.buffer[27];
u_ram.des_str.worka[43] = u_ram.des_str.buffer[28];
u_ram.des_str.worka[44] = u_ram.des_str.buffer[29];
u_ram.des_str.worka[45] = u_ram.des_str.buffer[30];
u_ram.des_str.worka[46] = u_ram.des_str.buffer[31];
u_ram.des_str.worka[47] = u_ram.des_str.buffer[ 0];
/* KS Function Begin */
if (flg) {
nbrofshift = shift[iter-1];
for (i = 0; i < (int) nbrofshift; i++) {
    temp1 = u_ram.des_str.kwork[0];
    temp2 = u_ram.des_str.kwork[28];
    for (j = 0; j < 27; j++) {
     u_ram.des_str.kwork[j] = u_ram.des_str.kwork[j+1];
     u_ram.des_str.kwork[j+28] = u_ram.des_str.kwork[j+29];
    }
    u_ram.des_str.kwork[27] = temp1;
    u_ram.des_str.kwork[55] = temp2;
}
} else if (iter > 1) {
nbrofshift = shift[17-iter];
for (i = 0; i < (int) nbrofshift; i++) {
    temp1 = u_ram.des_str.kwork[27];
    temp2 = u_ram.des_str.kwork[55];
    for (j = 27; j > 0; j--) {
     u_ram.des_str.kwork[j] = u_ram.des_str.kwork[j-1];
     u_ram.des_str.kwork[j+28] = u_ram.des_str.kwork[j+27];
    }
    u_ram.des_str.kwork[0] = temp1;
    u_ram.des_str.kwork[28] = temp2;
}
}
/* Permute u_ram.des_str.hwork - PC2 */
u_ram.des_str.kn[ 0] = u_ram.des_str.kwork[13];
u_ram.des_str.kn[ 1] = u_ram.des_str.kwork[16];
u_ram.des_str.kn[ 2] = u_ram.des_str.kwork[10];
u_ram.des_str.kn[ 3] = u_ram.des_str.kwork[23];
u_ram.des_str.kn[ 4] = u_ram.des_str.kwork[ 0];
u_ram.des_str.kn[ 5] = u_ram.des_str.kwork[ 4];
u_ram.des_str.kn[ 6] = u_ram.des_str.kwork[ 2];
u_ram.des_str.kn[ 7] = u_ram.des_str.kwork[27];
u_ram.des_str.kn[ 8] = u_ram.des_str.kwork[14];
u_ram.des_str.kn[ 9] = u_ram.des_str.kwork[ 5];
u_ram.des_str.kn[10] = u_ram.des_str.kwork[20];
u_ram.des_str.kn[11] = u_ram.des_str.kwork[ 9];
u_ram.des_str.kn[12] = u_ram.des_str.kwork[22];
u_ram.des_str.kn[13] = u_ram.des_str.kwork[18];
u_ram.des_str.kn[14] = u_ram.des_str.kwork[11];
u_ram.des_str.kn[15] = u_ram.des_str.kwork[ 3];
u_ram.des_str.kn[16] = u_ram.des_str.kwork[25];
u_ram.des_str.kn[17] = u_ram.des_str.kwork[ 7];
u_ram.des_str.kn[18] = u_ram.des_str.kwork[15];
u_ram.des_str.kn[19] = u_ram.des_str.kwork[ 6];
u_ram.des_str.kn[20] = u_ram.des_str.kwork[26];
u_ram.des_str.kn[21] = u_ram.des_str.kwork[19];
u_ram.des_str.kn[22] = u_ram.des_str.kwork[12];
u_ram.des_str.kn[23] = u_ram.des_str.kwork[ 1];
u_ram.des_str.kn[24] = u_ram.des_str.kwork[40];
u_ram.des_str.kn[25] = u_ram.des_str.kwork[51];
u_ram.des_str.kn[26] = u_ram.des_str.kwork[30];
u_ram.des_str.kn[27] = u_ram.des_str.kwork[36];
u_ram.des_str.kn[28] = u_ram.des_str.kwork[46];
u_ram.des_str.kn[29] = u_ram.des_str.kwork[54];
u_ram.des_str.kn[30] = u_ram.des_str.kwork[29];
u_ram.des_str.kn[31] = u_ram.des_str.kwork[39];
u_ram.des_str.kn[32] = u_ram.des_str.kwork[50];
u_ram.des_str.kn[33] = u_ram.des_str.kwork[44];
u_ram.des_str.kn[34] = u_ram.des_str.kwork[32];
u_ram.des_str.kn[35] = u_ram.des_str.kwork[47];
u_ram.des_str.kn[36] = u_ram.des_str.kwork[43];
u_ram.des_str.kn[37] = u_ram.des_str.kwork[48];
u_ram.des_str.kn[38] = u_ram.des_str.kwork[38];
u_ram.des_str.kn[39] = u_ram.des_str.kwork[55];
u_ram.des_str.kn[40] = u_ram.des_str.kwork[33];
u_ram.des_str.kn[41] = u_ram.des_str.kwork[52];
u_ram.des_str.kn[42] = u_ram.des_str.kwork[45];
u_ram.des_str.kn[43] = u_ram.des_str.kwork[41];
u_ram.des_str.kn[44] = u_ram.des_str.kwork[49];
u_ram.des_str.kn[45] = u_ram.des_str.kwork[35];
u_ram.des_str.kn[46] = u_ram.des_str.kwork[28];
u_ram.des_str.kn[47] = u_ram.des_str.kwork[31];
/* KS Function End */
/* u_ram.des_str.worka XOR kn */
for (i = 0; i < 48; i++)
u_ram.des_str.worka[i] = u_ram.des_str.worka[i] ^ u_ram.des_str.kn[i];
/* 8 s-functions */
valindex = s1[2*u_ram.des_str.worka[ 0]+u_ram.des_str.worka[ 5]]
[2*(2*(2*u_ram.des_str.worka[ 1]+u_ram.des_str.worka[ 2])+
u_ram.des_str.worka[ 3])+u_ram.des_str.worka[ 4]];
//valindex = valindex * 4;
valindex = valindex <<2;
u_ram.des_str.kn[ 0] = binary[0+valindex];
u_ram.des_str.kn[ 1] = binary[1+valindex];
u_ram.des_str.kn[ 2] = binary[2+valindex];
u_ram.des_str.kn[ 3] = binary[3+valindex];
valindex = s2[2*u_ram.des_str.worka[ 6]+u_ram.des_str.worka[11]]
[2*(2*(2*u_ram.des_str.worka[ 7]+u_ram.des_str.worka[ 8])+
u_ram.des_str.worka[ 9])+u_ram.des_str.worka[10]];
//valindex = valindex * 4;
valindex = valindex <<2;
u_ram.des_str.kn[ 4] = binary[0+valindex];
u_ram.des_str.kn[ 5] = binary[1+valindex];
u_ram.des_str.kn[ 6] = binary[2+valindex];
u_ram.des_str.kn[ 7] = binary[3+valindex];
valindex = s3[2*u_ram.des_str.worka[12]+u_ram.des_str.worka[17]]
[2*(2*(2*u_ram.des_str.worka[13]+u_ram.des_str.worka[14])+
u_ram.des_str.worka[15])+u_ram.des_str.worka[16]];
//valindex = valindex * 4;
valindex = valindex <<2;
u_ram.des_str.kn[ 8] = binary[0+valindex];
u_ram.des_str.kn[ 9] = binary[1+valindex];
u_ram.des_str.kn[10] = binary[2+valindex];
u_ram.des_str.kn[11] = binary[3+valindex];
valindex = s4[2*u_ram.des_str.worka[18]+u_ram.des_str.worka[23]]
[2*(2*(2*u_ram.des_str.worka[19]+u_ram.des_str.worka[20])+
u_ram.des_str.worka[21])+u_ram.des_str.worka[22]];
//valindex = valindex * 4;
valindex = valindex <<2;
u_ram.des_str.kn[12] = binary[0+valindex];
u_ram.des_str.kn[13] = binary[1+valindex];
u_ram.des_str.kn[14] = binary[2+valindex];
u_ram.des_str.kn[15] = binary[3+valindex];
valindex = s5[2*u_ram.des_str.worka[24]+u_ram.des_str.worka[29]]
[2*(2*(2*u_ram.des_str.worka[25]+u_ram.des_str.worka[26])+
u_ram.des_str.worka[27])+u_ram.des_str.worka[28]];
//valindex = valindex * 4;
valindex = valindex <<2;
u_ram.des_str.kn[16] = binary[0+valindex];
u_ram.des_str.kn[17] = binary[1+valindex];
u_ram.des_str.kn[18] = binary[2+valindex];
u_ram.des_str.kn[19] = binary[3+valindex];
valindex = s6[2*u_ram.des_str.worka[30]+u_ram.des_str.worka[35]]
[2*(2*(2*u_ram.des_str.worka[31]+u_ram.des_str.worka[32])+
u_ram.des_str.worka[33])+u_ram.des_str.worka[34]];
//valindex = valindex * 4;
valindex = valindex <<2;
u_ram.des_str.kn[20] = binary[0+valindex];
u_ram.des_str.kn[21] = binary[1+valindex];
u_ram.des_str.kn[22] = binary[2+valindex];
u_ram.des_str.kn[23] = binary[3+valindex];
valindex = s7[2*u_ram.des_str.worka[36]+u_ram.des_str.worka[41]]
[2*(2*(2*u_ram.des_str.worka[37]+u_ram.des_str.worka[38])+
u_ram.des_str.worka[39])+u_ram.des_str.worka[40]];
//valindex = valindex * 4;
valindex = valindex <<2;
u_ram.des_str.kn[24] = binary[0+valindex];
u_ram.des_str.kn[25] = binary[1+valindex];
u_ram.des_str.kn[26] = binary[2+valindex];
u_ram.des_str.kn[27] = binary[3+valindex];
valindex = s8[2*u_ram.des_str.worka[42]+u_ram.des_str.worka[47]]
[2*(2*(2*u_ram.des_str.worka[43]+u_ram.des_str.worka[44])+
u_ram.des_str.worka[45])+u_ram.des_str.worka[46]];
//valindex = valindex * 4;
valindex = valindex <<2;
u_ram.des_str.kn[28] = binary[0+valindex];
u_ram.des_str.kn[29] = binary[1+valindex];
u_ram.des_str.kn[30] = binary[2+valindex];
u_ram.des_str.kn[31] = binary[3+valindex];
/* Permute - P */
u_ram.des_str.worka[ 0] = u_ram.des_str.kn[15];
u_ram.des_str.worka[ 1] = u_ram.des_str.kn[ 6];
u_ram.des_str.worka[ 2] = u_ram.des_str.kn[19];
u_ram.des_str.worka[ 3] = u_ram.des_str.kn[20];
u_ram.des_str.worka[ 4] = u_ram.des_str.kn[28];
u_ram.des_str.worka[ 5] = u_ram.des_str.kn[11];
u_ram.des_str.worka[ 6] = u_ram.des_str.kn[27];
u_ram.des_str.worka[ 7] = u_ram.des_str.kn[16];
u_ram.des_str.worka[ 8] = u_ram.des_str.kn[ 0];
u_ram.des_str.worka[ 9] = u_ram.des_str.kn[14];
u_ram.des_str.worka[10] = u_ram.des_str.kn[22];
u_ram.des_str.worka[11] = u_ram.des_str.kn[25];
u_ram.des_str.worka[12] = u_ram.des_str.kn[ 4];
u_ram.des_str.worka[13] = u_ram.des_str.kn[17];
u_ram.des_str.worka[14] = u_ram.des_str.kn[30];
u_ram.des_str.worka[15] = u_ram.des_str.kn[ 9];
u_ram.des_str.worka[16] = u_ram.des_str.kn[ 1];
u_ram.des_str.worka[17] = u_ram.des_str.kn[ 7];
u_ram.des_str.worka[18] = u_ram.des_str.kn[23];
u_ram.des_str.worka[19] = u_ram.des_str.kn[13];
u_ram.des_str.worka[20] = u_ram.des_str.kn[31];
u_ram.des_str.worka[21] = u_ram.des_str.kn[26];
u_ram.des_str.worka[22] = u_ram.des_str.kn[ 2];
u_ram.des_str.worka[23] = u_ram.des_str.kn[ 8];
u_ram.des_str.worka[24] = u_ram.des_str.kn[18];
u_ram.des_str.worka[25] = u_ram.des_str.kn[12];
u_ram.des_str.worka[26] = u_ram.des_str.kn[29];
u_ram.des_str.worka[27] = u_ram.des_str.kn[ 5];
u_ram.des_str.worka[28] = u_ram.des_str.kn[21];
u_ram.des_str.worka[29] = u_ram.des_str.kn[10];
u_ram.des_str.worka[30] = u_ram.des_str.kn[ 3];
u_ram.des_str.worka[31] = u_ram.des_str.kn[24];
/* u_ram.des_str.bufout XOR u_ram.des_str.worka */
for (i = 0; i < 32; i++) {
    u_ram.des_str.bufout[i+32] = u_ram.des_str.bufout[i] ^ u_ram.des_str.worka[i];
    u_ram.des_str.bufout[i] = u_ram.des_str.buffer[i];
}
} /* End of Iter */
/* Prepare Output */
for (i = 0; i < 32; i++) {
    j = u_ram.des_str.bufout[i];
    u_ram.des_str.bufout[i] = u_ram.des_str.bufout[32+i];
    u_ram.des_str.bufout[32+i] = j;
}
/* Inverse Initial Permutation */
u_ram.des_str.buffer[ 0] = u_ram.des_str.bufout[39];
u_ram.des_str.buffer[ 1] = u_ram.des_str.bufout[ 7];
u_ram.des_str.buffer[ 2] = u_ram.des_str.bufout[47];
u_ram.des_str.buffer[ 3] = u_ram.des_str.bufout[15];
u_ram.des_str.buffer[ 4] = u_ram.des_str.bufout[55];
u_ram.des_str.buffer[ 5] = u_ram.des_str.bufout[23];
u_ram.des_str.buffer[ 6] = u_ram.des_str.bufout[63];
u_ram.des_str.buffer[ 7] = u_ram.des_str.bufout[31];
u_ram.des_str.buffer[ 8] = u_ram.des_str.bufout[38];
u_ram.des_str.buffer[ 9] = u_ram.des_str.bufout[ 6];
u_ram.des_str.buffer[10] = u_ram.des_str.bufout[46];
u_ram.des_str.buffer[11] = u_ram.des_str.bufout[14];
u_ram.des_str.buffer[12] = u_ram.des_str.bufout[54];
u_ram.des_str.buffer[13] = u_ram.des_str.bufout[22];
u_ram.des_str.buffer[14] = u_ram.des_str.bufout[62];
u_ram.des_str.buffer[15] = u_ram.des_str.bufout[30];
u_ram.des_str.buffer[16] = u_ram.des_str.bufout[37];
u_ram.des_str.buffer[17] = u_ram.des_str.bufout[ 5];
u_ram.des_str.buffer[18] = u_ram.des_str.bufout[45];
u_ram.des_str.buffer[19] = u_ram.des_str.bufout[13];
u_ram.des_str.buffer[20] = u_ram.des_str.bufout[53];
u_ram.des_str.buffer[21] = u_ram.des_str.bufout[21];
u_ram.des_str.buffer[22] = u_ram.des_str.bufout[61];
u_ram.des_str.buffer[23] = u_ram.des_str.bufout[29];
u_ram.des_str.buffer[24] = u_ram.des_str.bufout[36];
u_ram.des_str.buffer[25] = u_ram.des_str.bufout[ 4];
u_ram.des_str.buffer[26] = u_ram.des_str.bufout[44];
u_ram.des_str.buffer[27] = u_ram.des_str.bufout[12];
u_ram.des_str.buffer[28] = u_ram.des_str.bufout[52];
u_ram.des_str.buffer[29] = u_ram.des_str.bufout[20];
u_ram.des_str.buffer[30] = u_ram.des_str.bufout[60];
u_ram.des_str.buffer[31] = u_ram.des_str.bufout[28];
u_ram.des_str.buffer[32] = u_ram.des_str.bufout[35];
u_ram.des_str.buffer[33] = u_ram.des_str.bufout[ 3];
u_ram.des_str.buffer[34] = u_ram.des_str.bufout[43];
u_ram.des_str.buffer[35] = u_ram.des_str.bufout[11];
u_ram.des_str.buffer[36] = u_ram.des_str.bufout[51];
u_ram.des_str.buffer[37] = u_ram.des_str.bufout[19];
u_ram.des_str.buffer[38] = u_ram.des_str.bufout[59];
u_ram.des_str.buffer[39] = u_ram.des_str.bufout[27];
u_ram.des_str.buffer[40] = u_ram.des_str.bufout[34];
u_ram.des_str.buffer[41] = u_ram.des_str.bufout[ 2];
u_ram.des_str.buffer[42] = u_ram.des_str.bufout[42];
u_ram.des_str.buffer[43] = u_ram.des_str.bufout[10];
u_ram.des_str.buffer[44] = u_ram.des_str.bufout[50];
u_ram.des_str.buffer[45] = u_ram.des_str.bufout[18];
u_ram.des_str.buffer[46] = u_ram.des_str.bufout[58];
u_ram.des_str.buffer[47] = u_ram.des_str.bufout[26];
u_ram.des_str.buffer[48] = u_ram.des_str.bufout[33];
u_ram.des_str.buffer[49] = u_ram.des_str.bufout[ 1];
u_ram.des_str.buffer[50] = u_ram.des_str.bufout[41];
u_ram.des_str.buffer[51] = u_ram.des_str.bufout[ 9];
u_ram.des_str.buffer[52] = u_ram.des_str.bufout[49];
u_ram.des_str.buffer[53] = u_ram.des_str.bufout[17];
u_ram.des_str.buffer[54] = u_ram.des_str.bufout[57];
u_ram.des_str.buffer[55] = u_ram.des_str.bufout[25];
u_ram.des_str.buffer[56] = u_ram.des_str.bufout[32];
u_ram.des_str.buffer[57] = u_ram.des_str.bufout[ 0];
u_ram.des_str.buffer[58] = u_ram.des_str.bufout[40];
u_ram.des_str.buffer[59] = u_ram.des_str.bufout[ 8];
u_ram.des_str.buffer[60] = u_ram.des_str.bufout[48];
u_ram.des_str.buffer[61] = u_ram.des_str.bufout[16];
u_ram.des_str.buffer[62] = u_ram.des_str.bufout[56];
u_ram.des_str.buffer[63] = u_ram.des_str.bufout[24];
j = 0;
for (i = 0; i < 8; i++) {
    *(dest + i) = 0x00;
    for (k = 0; k < 7; k++)
    *(dest + i) = ((*(dest + i)) + u_ram.des_str.buffer[j+k]) * 2;
    *(dest + i) = *(dest + i) + u_ram.des_str.buffer[j+7];
    j += 8;
}
return 0;
}

⌨️ 快捷键说明

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