FreeCalypso > hg > freecalypso-sw
comparison gsm-fw/comlib/cl_des.c @ 665:39bacc7d5c49
gsm-fw: starting to compile comlib
author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> |
---|---|
date | Sun, 28 Sep 2014 05:42:46 +0000 |
parents | d36f647c2432 |
children |
comparison
equal
deleted
inserted
replaced
664:d36f647c2432 | 665:39bacc7d5c49 |
---|---|
31 /**********************************************************************************/ | 31 /**********************************************************************************/ |
32 | 32 |
33 #ifndef CL_DES_C | 33 #ifndef CL_DES_C |
34 #define CL_DES_C | 34 #define CL_DES_C |
35 | 35 |
36 /* | |
37 * DES routine is used only on Calypso platform | |
38 */ | |
39 #if defined(CL_IMEI_CALYPSO_PLATFORM) && defined(FF_PROTECTED_IMEI) | |
40 | |
41 #include <string.h> | 36 #include <string.h> |
42 #include "typedefs.h" | 37 #include "typedefs.h" |
43 #include "cl_des.h" | 38 #include "cl_des.h" |
44 | 39 |
45 | 40 |
48 static UBYTE l[17][32] , r[17][32]; | 43 static UBYTE l[17][32] , r[17][32]; |
49 /* 64+64+32+32+64+64+17*3+2 = 373 bytes */ | 44 /* 64+64+32+32+64+64+17*3+2 = 373 bytes */ |
50 static UBYTE rnew[64] , xorres[64] , scale[32] , perm[32] , rl[64] , encpt[64]; | 45 static UBYTE rnew[64] , xorres[64] , scale[32] , perm[32] , rl[64] , encpt[64]; |
51 | 46 |
52 /* 64+16+48+64+48+32+64+8*66 = 864 bytes */ | 47 /* 64+16+48+64+48+32+64+8*66 = 864 bytes */ |
48 static | |
53 const UBYTE shtamt[16] = {1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1}; | 49 const UBYTE shtamt[16] = {1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1}; |
50 static | |
54 const UBYTE iporder[64] = {58,50,42,34,26,18,10,2,60,52,44,36,28,20,12,4,62,54, | 51 const UBYTE iporder[64] = {58,50,42,34,26,18,10,2,60,52,44,36,28,20,12,4,62,54, |
55 46,38,30,22,14,6,64,56,48,40,32,24,16,8,57,49,41,33, | 52 46,38,30,22,14,6,64,56,48,40,32,24,16,8,57,49,41,33, |
56 25,17,9,1,59,51,43,35,27,19,11,3,61,53,45,37,29,21, | 53 25,17,9,1,59,51,43,35,27,19,11,3,61,53,45,37,29,21, |
57 13,5,63,55,47,39,31,23,15,7}; | 54 13,5,63,55,47,39,31,23,15,7}; |
55 static | |
58 const UBYTE pc1[64] = {57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43, | 56 const UBYTE pc1[64] = {57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43, |
59 35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54, | 57 35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54, |
60 46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4}; | 58 46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4}; |
59 static | |
61 const UBYTE pc2[48] = {14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8, | 60 const UBYTE pc2[48] = {14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8, |
62 16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33, | 61 16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33, |
63 48,44,49,39,56,34,53,46,42,50,36,29,32}; | 62 48,44,49,39,56,34,53,46,42,50,36,29,32}; |
63 static | |
64 const UBYTE e[48] = {32,1,2,3,4,5,4,5,6,7,8,9,8,9,10,11,12,13,12,13,14,15, | 64 const UBYTE e[48] = {32,1,2,3,4,5,4,5,6,7,8,9,8,9,10,11,12,13,12,13,14,15, |
65 16,17,16,17,18,19,20,21,20,21,22,23,24,25,24,25,26,27, | 65 16,17,16,17,18,19,20,21,20,21,22,23,24,25,24,25,26,27, |
66 28,29,28, 29,30,31,32,1}; | 66 28,29,28, 29,30,31,32,1}; |
67 static | |
67 const UBYTE sp[32] = {16,7,20,21,29,12,28,17,1,15,23,26,5,18,31,10, | 68 const UBYTE sp[32] = {16,7,20,21,29,12,28,17,1,15,23,26,5,18,31,10, |
68 2,8,24,14,32,27,3,9,19,13,30,6,22,11,4,25}; | 69 2,8,24,14,32,27,3,9,19,13,30,6,22,11,4,25}; |
70 static | |
69 const UBYTE ipinv[64] = {40,8,48,16,56,24,64,32,39,7,47,15,55,23,63,31,38,6,46, | 71 const UBYTE ipinv[64] = {40,8,48,16,56,24,64,32,39,7,47,15,55,23,63,31,38,6,46, |
70 14,54,22,62,30,37,5,45,13,53,21,61,29,36,4,44,12,52, | 72 14,54,22,62,30,37,5,45,13,53,21,61,29,36,4,44,12,52, |
71 20,60,28,35,3,43,11,51,19,59,27,34,2,42,10,50,18,58, | 73 20,60,28,35,3,43,11,51,19,59,27,34,2,42,10,50,18,58, |
72 26,33,1,41,9,49,17,57,25}; | 74 26,33,1,41,9,49,17,57,25}; |
75 static | |
73 const UBYTE s[8][66] = {{14,4,13,1,2,15,11,8,3,10,6,12,5,9,0,7,0,15,7,4,14,2,13, | 76 const UBYTE s[8][66] = {{14,4,13,1,2,15,11,8,3,10,6,12,5,9,0,7,0,15,7,4,14,2,13, |
74 1,10,6,12,11,9,5,3,8,4,1,14,8,13,6,2,11,15,12,9,7,3,10, | 77 1,10,6,12,11,9,5,3,8,4,1,14,8,13,6,2,11,15,12,9,7,3,10, |
75 5,0,15,12,8,2,4,9,1,7,5,11,3,14,10,0,6,13}, | 78 5,0,15,12,8,2,4,9,1,7,5,11,3,14,10,0,6,13}, |
76 {15,1,8,14,6,11,3,4,9,7,2,13,12,0,5,10,3,13,4,7,15,2,8, | 79 {15,1,8,14,6,11,3,4,9,7,2,13,12,0,5,10,3,13,4,7,15,2,8, |
77 14,12,0,1,10,6,9,11,5,0,14,7,11,10,4,13,1,5,8,12,6,9,3, | 80 14,12,0,1,10,6,9,11,5,0,14,7,11,10,4,13,1,5,8,12,6,9,3, |
362 */ | 365 */ |
363 for(z = 0; z < 8; z++){ | 366 for(z = 0; z < 8; z++){ |
364 outMsgPtr[z] = des_bin2hex(&encpt[8 * z]); | 367 outMsgPtr[z] = des_bin2hex(&encpt[8 * z]); |
365 } | 368 } |
366 } | 369 } |
367 #endif /* CL_IMEI_CALYPSO_PLATFORM */ | |
368 #endif /* CL_DES_C */ | 370 #endif /* CL_DES_C */ |