Changeset 2068
- Timestamp:
- 04/13/10 11:06:01 (14 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/reader-common.c
r2066 r2068 456 456 return cryptoworks_get_emm_filter(rdr, type); 457 457 case SC_VIACCESS: 458 break;458 return viaccess_get_emm_filter(rdr, type); 459 459 case SC_CONAX: 460 460 return conax_get_emm_filter(rdr, type); -
trunk/reader-common.h
r2054 r2068 25 25 int viaccess_get_emm_type(EMM_PACKET *, struct s_reader *); 26 26 int viaccess_card_info(struct s_reader * reader); 27 uchar *viaccess_get_emm_filter(struct s_reader * rdr, int type); 27 28 28 29 // reader-videoguard -
trunk/reader-viaccess.c
r1951 r2068 348 348 int viaccess_get_emm_type(EMM_PACKET *ep, struct s_reader * rdr) //returns TRUE if shared emm matches SA, unique emm matches serial, or global or unknown 349 349 { 350 rdr=rdr; 350 switch (ep->emm[0]) { 351 case 0x8E: 352 memcpy(ep->hexserial, ep->emm+3, 3); 353 if (!memcmp (rdr->hexserial+1, ep->hexserial, 3)) { 354 ep->type=UNIQUE; //? 355 return TRUE; 356 } 357 break; 358 case 0x8C: 359 case 0x8D: 360 ep->type=GLOBAL; 361 return TRUE; 362 } 363 351 364 ep->type=UNKNOWN; //FIXME not sure how this maps onto global, unique and shared! 352 365 return TRUE; //FIXME let it all pass without checking serial or SA, without filling ep->hexserial 366 } 367 368 uchar *viaccess_get_emm_filter(struct s_reader * rdr, int type) 369 { 370 static uint8_t filter[32]; 371 memset(filter, 0x00, 32); 372 373 switch (type) { 374 case GLOBAL: 375 filter[0] = 0x8D; 376 filter[0+16] = 0xFF; 377 break; 378 case SHARED: 379 filter[0] = 0x8C; 380 filter[0+16] = 0xFF; 381 break; 382 case UNIQUE: 383 filter[0] = 0x8E; 384 filter[0+16] = 0xFF; 385 memcpy(filter+1, rdr->hexserial+1, 3); 386 memset(filter+1+16, 0xFF, 3); 387 break; 388 } 389 390 return filter; 353 391 } 354 392
Note:
See TracChangeset
for help on using the changeset viewer.