Changeset 1987
- Timestamp:
- 04/07/10 00:51:50 (14 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/reader-common.c
r1986 r1987 453 453 break; 454 454 case SC_CRYPTOWORKS: 455 455 return cryptoworks_get_emm_filter(rdr, type); 456 456 break; 457 457 case SC_VIACCESS: -
trunk/reader-common.h
r1986 r1987 40 40 int cryptoworks_card_info(struct s_reader * reader); 41 41 int CheckSctLen(const uchar *, int); 42 uchar *cryptoworks_get_emm_filter(struct s_reader * rdr, int type); 42 43 43 44 // reader-seca -
trunk/reader-cryptoworks.c
r1974 r1987 495 495 } 496 496 } 497 497 498 uchar *cryptoworks_get_emm_filter(struct s_reader * rdr, int type) 499 { 500 static uint8_t filter[32]; 501 memset(filter, 0x00, 32); 502 503 switch (type) { 504 case GLOBAL: 505 filter[0] = 0x88; 506 filter[0+16] = 0xFE; // 0x88 to 0x89 507 filter[1] = 0xA9; 508 filter[1+16] = 0xFF; 509 filter[2] = 0xFF; 510 filter[2+16] = 0xFF; 511 filter[6] = 0x83; 512 filter[6+16] = 0xFF; 513 filter[7] = 0x01; 514 filter[7+16] = 0xFF; 515 break; 516 case SHARED: 517 filter[0] = 0x84; 518 filter[0+16] = 0xFF; 519 filter[1] = 0xA9; 520 filter[1+16] = 0xFF; 521 filter[2] = 0xFF; 522 filter[2+16] = 0xFF; 523 memcpy(filter+3, rdr->hexserial, 4); 524 memset(filter+3+16, 0xFF, 4); 525 filter[10] = 0x80; 526 filter[10+16] = 0xFF; 527 filter[11] = 0x04; 528 filter[11+16] = 0xFF; 529 break; 530 case UNIQUE: 531 filter[0] = 0x82; 532 filter[0+16] = 0xFF; 533 filter[1] = 0xA9; 534 filter[1+16] = 0xFF; 535 filter[2] = 0xFF; 536 filter[2+16] = 0xFF; 537 memcpy(filter+3, rdr->hexserial, 6); 538 memset(filter+3+16, 0xFF, 6); 539 filter[11] = 0x80; 540 filter[11+16] = 0xFF; 541 filter[12] = 0x05; 542 filter[12+16] = 0xFF; 543 break; 544 } 545 546 return filter; 547 } 498 548 499 549 int cryptoworks_do_emm(struct s_reader * reader, EMM_PACKET *ep)
Note:
See TracChangeset
for help on using the changeset viewer.