Changeset 3204
- Timestamp:
- 09/24/10 00:57:52 (14 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/reader-videoguard-common.c
r3196 r3204 403 403 static void cCamCryptVG_RotateRightAndHash(unsigned char *p) 404 404 { 405 const unsigned char table1[256] = {405 static const unsigned char table1[256] = { 406 406 0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5, 0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76, 407 407 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0, 0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0, … … 570 570 unsigned char buffer[0x80]; 571 571 unsigned char md5_digest[0x10]; 572 const unsigned short Hash3[] = {0x0123,0x4567,0x89AB,0xCDEF,0xF861,0xCB52};573 const unsigned char Hash4[] = {0x0B,0x04,0x07,0x08,0x05,0x09,0x0B,0x0A,0x07,0x02,0x0A,0x05,0x04,0x08,0x0D,0x0F};574 const unsigned short NdTabB001[0x15][0x20] = {572 static const unsigned short Hash3[] = {0x0123,0x4567,0x89AB,0xCDEF,0xF861,0xCB52}; 573 static const unsigned char Hash4[] = {0x0B,0x04,0x07,0x08,0x05,0x09,0x0B,0x0A,0x07,0x02,0x0A,0x05,0x04,0x08,0x0D,0x0F}; 574 static const unsigned short NdTabB001[0x15][0x20] = { 575 575 {0xEAF1, 0x0237, 0x29D0, 0xBAD2, 0xE9D3, 0x8BAE, 0x2D6D, 0xCD1B, 576 576 0x538D, 0xDE6B, 0xA634, 0xF81A, 0x18B5, 0x5087, 0x14EA, 0x672E, -
trunk/reader-videoguard1.c
r3196 r3204 125 125 not be encrypted if it is an NDS1 card */ 126 126 127 unsigned char ins36[5] = { 0x48, 0x36, 0x00, 0x00, 0x90 };127 static const unsigned char ins36[5] = { 0x48, 0x36, 0x00, 0x00, 0x90 }; 128 128 unsigned char boxID[4]; 129 129 int boxidOK = 0; … … 227 227 228 228 // Send BoxID 229 unsigned char ins4C[5] = { 0x48, 0x4C, 0x00, 0x00, 0x09 };229 static const unsigned char ins4C[5] = { 0x48, 0x4C, 0x00, 0x00, 0x09 }; 230 230 unsigned char payload4C[9] = { 0, 0, 0, 0, 3, 0, 0, 0, 4 }; 231 231 memcpy(payload4C, boxID, 4); … … 235 235 } 236 236 237 unsigned char ins58[5] = { 0x48, 0x58, 0x00, 0x00, 0x17 };237 static const unsigned char ins58[5] = { 0x48, 0x58, 0x00, 0x00, 0x17 }; 238 238 l = vg1_do_cmd(reader, ins58, NULL, buff, cta_res); 239 239 if (l < 0) { … … 265 265 unsigned char cta_res[CTA_RES_LEN]; 266 266 unsigned char ins40[5] = { 0x48, 0x40, 0x00, 0x80, 0xFF }; 267 const unsigned char ins54[5] = { 0x48, 0x54, 0x00, 0x00, 0x0D };267 static const unsigned char ins54[5] = { 0x48, 0x54, 0x00, 0x00, 0x0D }; 268 268 int posECMpart2 = er->ecm[6] + 7; 269 269 int lenECMpart2 = er->ecm[posECMpart2]; … … 498 498 { 499 499 unsigned char cta_res[CTA_RES_LEN]; 500 unsigned char ins42[5] = { 501 0x48, 0x42, 0x00, 0x00, 0xFF 502 }; 500 unsigned char ins42[5] = { 0x48, 0x42, 0x00, 0x00, 0xFF }; 503 501 int rc = ERROR; 504 502 const unsigned char *payload = payload_addr(ep->type, ep->emm, reader->hexserial); -
trunk/reader-videoguard12.c
r3196 r3204 6 6 { 7 7 def_resp; 8 const unsigned char ins2a[5] = { 0x48,0x2a,0x00,0x00,0x00 };8 static const unsigned char ins2a[5] = { 0x48,0x2a,0x00,0x00,0x00 }; 9 9 int l; 10 10 l=do_cmd(reader,ins2a,NULL,NULL,NULL,cta_res); … … 67 67 68 68 /* NDS1 and NDS1+ cards return XX 90 00 to this command NDS2 cards fail to respond to this*/ 69 unsigned char ins3601[5] = { 0x48,0x36,0x01,0x00,0x01 };69 static const unsigned char ins3601[5] = { 0x48,0x36,0x01,0x00,0x01 }; 70 70 if(!write_cmd_vg(ins3601,NULL) || !status_ok(cta_res+l)) { 71 71 return ERROR; // not a possible NDS1+ card 72 72 } 73 73 74 unsigned char dummy_cmd_table[132] = {74 static const unsigned char dummy_cmd_table[132] = { 75 75 0x01, 0x82, 0x20, 0x01, 76 76 0x48, 0x0E, 0xFF, 0x02, … … 120 120 */ 121 121 122 unsigned char ins36[5] = { 0x48,0x36,0x00,0x00,0x00 };122 static const unsigned char ins36[5] = { 0x48,0x36,0x00,0x00,0x00 }; 123 123 unsigned char boxID [4]; 124 124 … … 194 194 } 195 195 196 unsigned char ins4C[5] = { 0x48,0x4C,0x00,0x00,0x09 };196 static const unsigned char ins4C[5] = { 0x48,0x4C,0x00,0x00,0x09 }; 197 197 unsigned char payload4C[9] = { 0,0,0,0, 3,0,0,0,4 }; 198 198 memcpy(payload4C,boxID,4); … … 203 203 204 204 //short int SWIRDstatus = cta_res[1]; 205 unsigned char ins58[5] = { 0x48,0x58,0x00,0x00,0x00 };205 static const unsigned char ins58[5] = { 0x48,0x58,0x00,0x00,0x00 }; 206 206 l=do_cmd(reader,ins58,NULL,buff,NULL,cta_res); 207 207 if(l<0) { … … 225 225 */ 226 226 227 const unsigned char seed1[] = {227 static const unsigned char seed1[] = { 228 228 0xb9, 0xd5, 0xef, 0xd5, 0xf5, 0xd5, 0xfb, 0xd5, 0x31, 0xd6, 0x43, 0xd6, 0x55, 0xd6, 0x61, 0xd6, 229 229 0x85, 0xd6, 0x9d, 0xd6, 0xaf, 0xd6, 0xc7, 0xd6, 0xd9, 0xd6, 0x09, 0xd7, 0x15, 0xd7, 0x21, 0xd7, … … 231 231 0x29, 0xd8, 0x2f, 0xd8, 0x4d, 0xd8, 0x8f, 0xd8, 0xa1, 0xd8, 0xad, 0xd8, 0xbf, 0xd8, 0xd7, 0xd8 232 232 }; 233 const unsigned char seed2[] = {233 static const unsigned char seed2[] = { 234 234 0x01, 0x00, 0xcf, 0x13, 0xe0, 0x60, 0x54, 0xac, 0xab, 0x99, 0xe6, 0x0c, 0x9f, 0x5b, 0x91, 0xb9, 235 235 0x72, 0x72, 0x4d, 0x5b, 0x5f, 0xd3, 0xb7, 0x5b, 0x01, 0x4d, 0xef, 0x9e, 0x6b, 0x8a, 0xb9, 0xd1, … … 239 239 cCamCryptVG_SetSeed(reader,seed1,seed2); 240 240 241 unsigned char insB4[5] = { 0x48,0xB4,0x00,0x00,0x40 };241 static const unsigned char insB4[5] = { 0x48,0xB4,0x00,0x00,0x40 }; 242 242 unsigned char tbuff[64]; 243 243 cCamCryptVG_GetCamKey(reader,tbuff); … … 248 248 } 249 249 250 unsigned char insBC[5] = { 0x48,0xBC,0x00,0x00,0x00 };250 static const unsigned char insBC[5] = { 0x48,0xBC,0x00,0x00,0x00 }; 251 251 l=do_cmd(reader,insBC,NULL,NULL,NULL,cta_res); 252 252 if(l<0) { … … 255 255 } 256 256 257 unsigned char insBE[5] = { 0x48,0xBE,0x00,0x00,0x00 };257 static const unsigned char insBE[5] = { 0x48,0xBE,0x00,0x00,0x00 }; 258 258 l=do_cmd(reader,insBE,NULL,NULL,NULL,cta_res); 259 259 if(l<0) { … … 262 262 } 263 263 264 unsigned char ins58a[5] = { 0x49,0x58,0x00,0x00,0x00 };264 static const unsigned char ins58a[5] = { 0x49,0x58,0x00,0x00,0x00 }; 265 265 l=do_cmd(reader,ins58a,NULL,NULL,NULL,cta_res); 266 266 if(l<0) { … … 269 269 } 270 270 271 unsigned char ins4Ca[5] = { 0x49,0x4C,0x00,0x00,0x00 };271 static const unsigned char ins4Ca[5] = { 0x49,0x4C,0x00,0x00,0x00 }; 272 272 l=do_cmd(reader,ins4Ca,payload4C,NULL,NULL,cta_res); 273 273 if(l<0 || !status_ok(cta_res)) { … … 297 297 unsigned char cta_res[CTA_RES_LEN]; 298 298 unsigned char ins40[5] = { 0x49,0x40,0x00,0x80,0xFF }; 299 const unsigned char ins54[5] = { 0x4B,0x54,0x00,0x00,0x00};299 static const unsigned char ins54[5] = { 0x4B,0x54,0x00,0x00,0x00}; 300 300 int posECMpart2=er->ecm[6]+7; 301 301 int lenECMpart2=er->ecm[posECMpart2]+1; -
trunk/reader-videoguard2.c
r3196 r3204 12 12 check if ins2a is in command table before running it 13 13 */ 14 const unsigned char ins2a[5] = { 0xD0,0x2a,0x00,0x00,0x00 };14 static const unsigned char ins2a[5] = { 0xD0,0x2a,0x00,0x00,0x00 }; 15 15 if(cmd_exists(reader,ins2a)) { 16 16 l=do_cmd(reader,ins2a,NULL,NULL,NULL,cta_res); … … 21 21 } 22 22 23 const unsigned char ins76007f[5] = { 0xD0,0x76,0x00,0x7f,0x02 };23 static const unsigned char ins76007f[5] = { 0xD0,0x76,0x00,0x7f,0x02 }; 24 24 if(!write_cmd_vg(ins76007f,NULL) || !status_ok(cta_res+2)){ 25 25 cs_log ("[videoguard2-reader] classD0 ins76007f: failed"); … … 104 104 unsigned char buff[256]; 105 105 106 unsigned char ins7416[5] = { 0xD0,0x74,0x16,0x00,0x00 };106 static const unsigned char ins7416[5] = { 0xD0,0x74,0x16,0x00,0x00 }; 107 107 if(do_cmd(reader,ins7416,NULL,NULL,NULL,cta_res)<0) { 108 108 cs_log ("[videoguard2-reader] classD0 ins7416: failed"); … … 111 111 112 112 unsigned char ins36[5] = { 0xD0,0x36,0x00,0x00,0x00 }; 113 const unsigned char ins5e[5] = { 0xD0,0x5E,0x00,0x0C,0x02 };113 static const unsigned char ins5e[5] = { 0xD0,0x5E,0x00,0x0C,0x02 }; 114 114 unsigned char boxID [4]; 115 115 … … 200 200 } 201 201 202 unsigned char ins4C[5] = { 0xD0,0x4C,0x00,0x00,0x09 };202 static const unsigned char ins4C[5] = { 0xD0,0x4C,0x00,0x00,0x09 }; 203 203 unsigned char payload4C[9] = { 0,0,0,0, 3,0,0,0,4 }; 204 204 memcpy(payload4C,boxID,4); … … 209 209 210 210 //short int SWIRDstatus = cta_res[1]; 211 unsigned char ins58[5] = { 0xD0,0x58,0x00,0x00,0x00 };211 static const unsigned char ins58[5] = { 0xD0,0x58,0x00,0x00,0x00 }; 212 212 l=do_cmd(reader,ins58,NULL,buff,NULL,cta_res); 213 213 if(l<0) { … … 231 231 */ 232 232 233 unsigned char seed1[] = {233 static const unsigned char seed1[] = { 234 234 0xb9, 0xd5, 0xef, 0xd5, 0xf5, 0xd5, 0xfb, 0xd5, 0x31, 0xd6, 0x43, 0xd6, 0x55, 0xd6, 0x61, 0xd6, 235 235 0x85, 0xd6, 0x9d, 0xd6, 0xaf, 0xd6, 0xc7, 0xd6, 0xd9, 0xd6, 0x09, 0xd7, 0x15, 0xd7, 0x21, 0xd7, … … 237 237 0x29, 0xd8, 0x2f, 0xd8, 0x4d, 0xd8, 0x8f, 0xd8, 0xa1, 0xd8, 0xad, 0xd8, 0xbf, 0xd8, 0xd7, 0xd8 238 238 }; 239 unsigned char seed2[] = {239 static const unsigned char seed2[] = { 240 240 0x01, 0x00, 0xcf, 0x13, 0xe0, 0x60, 0x54, 0xac, 0xab, 0x99, 0xe6, 0x0c, 0x9f, 0x5b, 0x91, 0xb9, 241 241 0x72, 0x72, 0x4d, 0x5b, 0x5f, 0xd3, 0xb7, 0x5b, 0x01, 0x4d, 0xef, 0x9e, 0x6b, 0x8a, 0xb9, 0xd1, … … 246 246 cCamCryptVG_SetSeed(reader,seed1,seed2); 247 247 248 unsigned char insB4[5] = { 0xD0,0xB4,0x00,0x00,0x40 };248 static const unsigned char insB4[5] = { 0xD0,0xB4,0x00,0x00,0x40 }; 249 249 unsigned char tbuff[64]; 250 250 cCamCryptVG_GetCamKey(reader,tbuff); … … 255 255 } 256 256 257 unsigned char insBC[5] = { 0xD0,0xBC,0x00,0x00,0x00 };257 static const unsigned char insBC[5] = { 0xD0,0xBC,0x00,0x00,0x00 }; 258 258 l=do_cmd(reader,insBC,NULL,NULL,NULL,cta_res); 259 259 if(l<0) { … … 264 264 // Class D1/D3 instructions only work after this point 265 265 266 unsigned char insBE[5] = { 0xD3,0xBE,0x00,0x00,0x00 };266 static const unsigned char insBE[5] = { 0xD3,0xBE,0x00,0x00,0x00 }; 267 267 l=do_cmd(reader,insBE,NULL,NULL,NULL,cta_res); 268 268 if(l<0) { … … 271 271 } 272 272 273 unsigned char ins58a[5] = { 0xD1,0x58,0x00,0x00,0x00 };273 static const unsigned char ins58a[5] = { 0xD1,0x58,0x00,0x00,0x00 }; 274 274 l=do_cmd(reader,ins58a,NULL,NULL,NULL,cta_res); 275 275 if(l<0) { … … 278 278 } 279 279 280 unsigned char ins4Ca[5] = { 0xD1,0x4C,0x00,0x00,0x00 };280 static const unsigned char ins4Ca[5] = { 0xD1,0x4C,0x00,0x00,0x00 }; 281 281 l=do_cmd(reader,ins4Ca,payload4C,NULL,NULL,cta_res); 282 282 if(l<0 || !status_ok(cta_res)) { … … 307 307 unsigned char cta_res[CTA_RES_LEN]; 308 308 unsigned char ins40[5] = { 0xD1,0x40,0x00,0x80,0xFF }; 309 const unsigned char ins54[5] = { 0xD3,0x54,0x00,0x00,0x00};309 static const unsigned char ins54[5] = { 0xD3,0x54,0x00,0x00,0x00}; 310 310 int posECMpart2=er->ecm[6]+7; 311 311 int lenECMpart2=er->ecm[posECMpart2]+1;
Note:
See TracChangeset
for help on using the changeset viewer.