Changeset 3882 for trunk/reader-viaccess.c
- Timestamp:
- 11/11/10 18:36:55 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/reader-viaccess.c
r3876 r3882 290 290 int nanoLen=0; 291 291 const uchar *nextEcm; 292 uchar keyToUse=0;293 292 uchar DE04[256]; 294 293 int D2KeyID=0; … … 339 338 { 340 339 uchar ident[3], keynr; 341 //uchar buff[256]; // MAX_LEN342 340 uchar *ecmf8Data=0; 343 341 int ecmf8Len=0; 344 342 345 343 nanoLen=ecm88Data[1] + 2; 346 curnumber_ecm =(ecm88Data[6]<<8) | (ecm88Data[7]);347 344 keynr=ecm88Data[4]&0x0F; 348 345 … … 350 347 // 09 -> use key #9 351 348 if(nanoLen>5) { 352 if( reader->last_geo.number_ecm > 0 && reader->last_geo.number_ecm ==curnumber_ecm ) { 353 354 keyToUse=ecm88Data[5]; 355 keynr=keyToUse; 356 cs_debug("keyToUse = %d",keyToUse); 349 curnumber_ecm =(ecm88Data[6]<<8) | (ecm88Data[7]); 350 cs_debug("checking if the ecm number (%x) match the card one (%x)",curnumber_ecm,reader->last_geo.number_ecm); 351 // if we have an ecm number we check it. 352 // we can't assume that if the nano len is 5 or more we have an ecm number 353 // as some card don't support this 354 if( reader->last_geo.number_ecm > 0 ) { 355 if(reader->last_geo.number_ecm ==curnumber_ecm ) { 356 keynr=ecm88Data[5]; 357 cs_debug("keyToUse = %02x",ecm88Data[5]); 358 } 359 else 360 { 361 ecm88Data=nextEcm; 362 ecm88Len-=curEcm88len; 363 continue; //loop to next ecm 364 } 357 365 } 358 else 359 { 360 ecm88Data=nextEcm; 361 ecm88Len-=curEcm88len; 362 continue; //loop to next ecm 366 else { // long ecm but we don't have an ecm number so we have to try them all. 367 keynr=ecm88Data[5]; 368 cs_debug("keyToUse = %02x",ecm88Data[5]); 363 369 } 364 365 370 } 366 371
Note:
See TracChangeset
for help on using the changeset viewer.