Changeset 2814
- Timestamp:
- 07/22/10 19:27:47 (14 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/csctapi/ifd_smartreader.c
r2754 r2814 385 385 } 386 386 else { 387 cs_ log("Not setting F and D as we're in Irdeto mode");387 cs_debug("Not setting F and D as we're in Irdeto mode"); 388 388 } 389 389 -
trunk/globals.h
r2813 r2814 531 531 uchar nagra_boxkey[16]; //n3 boxkey 8byte or tiger idea key 16byte 532 532 int has_rsa; 533 char country_code[3]; // irdeto country code. 533 534 int force_irdeto; 534 535 uchar aes_key[16]; -
trunk/reader-irdeto.c
r2469 r2814 122 122 } 123 123 124 static time_t chid_date(ulong date, char *buf, int l) 125 { 126 // Irdeto date starts 01.08.1997 which is 127 // 870393600 seconds in unix calendar time 128 time_t ut=870393600L+date*(24*3600); 129 if (buf) 130 { 131 struct tm *t; 132 t=gmtime(&ut); 133 snprintf(buf, l, "%04d/%02d/%02d", t->tm_year+1900, t->tm_mon+1, t->tm_mday); 134 } 135 return(ut); 124 static time_t chid_date(struct s_reader * reader, ulong date, char *buf, int l) 125 { 126 // Irdeto date starts 01.08.1997 which is 127 // 870393600 seconds in unix calendar time 128 // 129 // The above might not be true for all Irdeto card 130 // we need to find a way to identify cards to set the base date 131 // like we did for NDS 132 // 133 // this is the known default value. 134 long date_base=870393600L; 135 136 // now check for specific providers base date 137 if(!memcmp(reader->country_code,"GRC",3)) { 138 // check caid 139 if(reader->caid[0]==0x0604) { 140 // check ACS to deduce base date 141 switch(reader->acs) { 142 case 0x1541: 143 case 0x1542: 144 case 0x1543: 145 case 0x1544: 146 date_base=977817600L; 147 break; 148 } 149 } 150 } 151 // else if(!memcmp(reader->country_code,"XXX",3)) { 152 // check ACS to deduce base date 153 154 // date_base=0L 155 //} 156 157 time_t ut=date_base+date*(24*3600); 158 if (buf) { 159 struct tm *t; 160 t=gmtime(&ut); 161 snprintf(buf, l, "%04d/%02d/%02d", t->tm_year+1900, t->tm_mon+1, t->tm_mday); 162 } 163 return(ut); 136 164 } 137 165 … … 215 243 reader->acs=(cta_res[0]<<8)|cta_res[1]; 216 244 reader->caid[0]=(cta_res[5]<<8)|cta_res[6]; 217 cs_ri_log(reader, "caid: %04X, acs: %x.%02x%s", 218 reader->caid[0], cta_res[0], cta_res[1], buf); 245 memcpy(reader->country_code,cta_res+13,3); 246 cs_ri_log(reader, "caid: %04X, acs: %x.%02x, Country code : %c%c%c", 247 reader->caid[0], cta_res[0], cta_res[1], cta_res[13], cta_res[14], cta_res[15]); 219 248 220 249 /* … … 476 505 { 477 506 time_t date; 478 chid_date( date=b2i(2, cta_res+k+2), t, 16);479 chid_date( date+cta_res[k+4], t+16, 16);507 chid_date(reader,date=b2i(2, cta_res+k+2), t, 16); 508 chid_date(reader,date+cta_res[k+4], t+16, 16); 480 509 if (first) 481 510 { -
trunk/reader-pcsc.c
r2804 r2814 238 238 void pcsc_close(struct s_reader *pcsc_reader) 239 239 { 240 cs_debug_mask (D_IFD, "P SCS: Closing device %s", pcsc_reader->device);240 cs_debug_mask (D_IFD, "PCSC : Closing device %s", pcsc_reader->device); 241 241 SCardDisconnect(pcsc_reader->hCard,SCARD_RESET_CARD); 242 242 SCardReleaseContext(pcsc_reader->hContext);
Note:
See TracChangeset
for help on using the changeset viewer.