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 */