Changeset 1987


Ignore:
Timestamp:
04/07/10 00:51:50 (12 years ago)
Author:
alno
Message:

implement cryptoworks_get_emm_filter

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/reader-common.c

    r1986 r1987  
    453453            break;
    454454        case SC_CRYPTOWORKS:
    455 
     455            return cryptoworks_get_emm_filter(rdr, type);
    456456            break;
    457457        case SC_VIACCESS:
  • trunk/reader-common.h

    r1986 r1987  
    4040int cryptoworks_card_info(struct s_reader * reader);
    4141int CheckSctLen(const uchar *, int);
     42uchar *cryptoworks_get_emm_filter(struct s_reader * rdr, int type);
    4243
    4344// reader-seca
  • trunk/reader-cryptoworks.c

    r1974 r1987  
    495495    }
    496496}
    497    
     497
     498uchar *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}
    498548
    499549int cryptoworks_do_emm(struct s_reader * reader, EMM_PACKET *ep)
Note: See TracChangeset for help on using the changeset viewer.