#include <parse.h>
List of all members.
Detailed Description
Definition at line 266 of file parse.h.
Constructor & Destructor Documentation
| cCardCryptoworks::cCardCryptoworks |
( |
const unsigned char * |
a | ) |
|
Definition at line 588 of file parse.c.
References addr.
{
memcpy(addr,a,sizeof(addr));
sharedEmm=0; sharedLen=globalToggle=0; globalCrc=0;
}
| cCardCryptoworks::~cCardCryptoworks |
( |
| ) |
[virtual] |
| cCardCryptoworks::cCardCryptoworks |
( |
const unsigned char * |
a | ) |
|
| virtual cCardCryptoworks::~cCardCryptoworks |
( |
| ) |
[virtual] |
Member Function Documentation
Reimplemented from cCard.
Definition at line 623 of file parse.c.
References AUTOMEM, crc32_le(), cAssembleData::Data(), data, free, SCT_LEN, cAssembleData::SetAssembled(), SetSctLen(), and SortNanos().
{
const unsigned char *data=ad->Data();
int len=SCT_LEN(data);
switch(data[0]) {
case 0x82:
return 0;
case 0x84:
free(sharedEmm);
sharedEmm=(unsigned char *)malloc(len);
if(sharedEmm) {
memcpy(sharedEmm,data,len);
sharedLen=len;
}
break;
case 0x86:
if(sharedEmm) {
int alen=len-5 + sharedLen-12;
unsigned char *tmp=AUTOMEM(alen);
memcpy(tmp,&data[5],len-5);
memcpy(tmp+len-5,&sharedEmm[12],sharedLen-12);
unsigned char *ass=(unsigned char *)malloc(alen+12);
if(!ass) return -1;
memcpy(ass,sharedEmm,12);
SortNanos(ass+12,tmp,alen);
SetSctLen(ass,alen+9);
free(sharedEmm); sharedEmm=0;
if(ass[11]==alen) {
ad->SetAssembled(ass);
return 1;
}
}
break;
case 0x88:
case 0x89:
if(data[0]!=globalToggle) {
globalToggle=data[0];
unsigned int crc=crc32_le(0,data+1,len-1);
if(crc!=globalCrc) {
globalCrc=crc;
return 0;
}
}
break;
}
return -1;
}
| virtual int cCardCryptoworks::Assemble |
( |
cAssembleData * |
ad | ) |
[virtual] |
Reimplemented from cCard.
| virtual bool cCardCryptoworks::MatchEMM |
( |
const unsigned char * |
data | ) |
[virtual] |
| bool cCardCryptoworks::MatchEMM |
( |
const unsigned char * |
data | ) |
[virtual] |
Implements cCard.
Definition at line 599 of file parse.c.
References addr.
{
if((data[1]&0xF0)==0x70 && data[3]==0xA9 && data[4]==0xff) {
switch(data[0]) {
case 0x82: return !memcmp(&data[5],addr,sizeof(addr));
case 0x84: return !memcmp(&data[5],addr,sizeof(addr)-1);
case 0x86:
case 0x88:
case 0x89: return true;
}
}
return false;
}
| int cCardCryptoworks::UpdateType |
( |
const unsigned char * |
data | ) |
[virtual] |
Reimplemented from cCard.
Definition at line 613 of file parse.c.
{
switch(data[0]) {
case 0x82: return 3;
case 0x84:
case 0x86: return 2;
default: return 0;
}
}
| virtual int cCardCryptoworks::UpdateType |
( |
const unsigned char * |
data | ) |
[virtual] |
Reimplemented from cCard.
Member Data Documentation
The documentation for this class was generated from the following files: