|
SASC-NG
DVBSoftCAM
|
Inheritance diagram for cShare:Public Member Functions | |
| cShare (int Shareid, int Caid, int Hops, const unsigned char *Ua) | |
| cShare (const cShare *s) | |
| ~cShare () | |
| bool | UsesProv (void) const |
| bool | HasProv (int provid) const |
| bool | CheckAddProv (const unsigned char *prov, const unsigned char *sa) |
| bool | Compare (const cShare *s) const |
| int | ShareID (void) const |
| int | CaID (void) const |
| int | Hops (void) const |
| int | Lag (void) const |
| int | Status (void) const |
| bool | EmmReady (void) const |
| cMsgCache * | Cache (void) const |
Friends | |
| class | cShares |
| cShare::cShare | ( | int | Shareid, |
| int | Caid, | ||
| int | Hops, | ||
| const unsigned char * | Ua | ||
| ) |
| cShare::cShare | ( | const cShare * | s | ) |
| cMsgCache* cShare::Cache | ( | void | ) | const [inline] |
Definition at line 365 of file cccam2.c.
Referenced by cCardClientCCcam2::ProcessEMM().
{ return cache; }
| int cShare::CaID | ( | void | ) | const [inline] |
Definition at line 360 of file cccam2.c.
References caid.
Referenced by cCardClientCCcam2::CanHandle(), and cCardClientCCcam2::ProcessEMM().
{ return caid;};
| bool cShare::CheckAddProv | ( | const unsigned char * | prov, |
| const unsigned char * | sa | ||
| ) |
Definition at line 451 of file cccam2.c.
References cProviders::AddProv(), caid, CheckNull(), HasProv(), L_CC_CCCAM2, PRINTF, prov, cShareProv::provid, provid, shareid, UINT32_BE, and UsesProv().
{
unsigned char s[8];
memset(&s[0],0,4); memcpy(&s[4],sa,4);
int provid=UINT32_BE(pr-1)&0xFFFFFF;
bool res=false;
if(!CheckNull(s,sizeof(s)))
switch(caid>>8) {
case 0x17:
case 0x06: AddProv(new cProviderIrdeto(s[4],&s[5])); res=true; break;
case 0x01: AddProv(new cProviderSeca(&pr[1],&s[4])); res=true; break;
case 0x0b: AddProv(new cProviderConax(&s[1])); res=true; break;
case 0x09: AddProv(new cProviderNDS(&s[4])); res=true; break;
case 0x05: AddProv(new cProviderViaccess(&pr[0],&s[4])); res=true; break;
case 0x0d: AddProv(new cProviderCryptoworks(&s[3])); res=true; break;
default: PRINTF(L_CC_CCCAM2,"share %08x: can't handle shared updates for CAID %04x",shareid,caid);
break;
}
if(res) emmready=true;
SetCache();
if(UsesProv() && !HasProv(provid)) {
cShareProv *sp=new cShareProv;
sp->provid=provid;
prov.Add(sp);
res=true;
}
return res;
}
| bool cShare::Compare | ( | const cShare * | s | ) | const |
| bool cShare::EmmReady | ( | void | ) | const [inline] |
Definition at line 364 of file cccam2.c.
Referenced by cCardClientCCcam2::ProcessEMM().
{ return emmready; }
| bool cShare::HasProv | ( | int | provid | ) | const |
Definition at line 444 of file cccam2.c.
References prov.
Referenced by CheckAddProv().
{
for(cShareProv *sp=prov.First(); sp; sp=prov.Next(sp))
if(sp->provid==provid) return true;
return false;
}
| int cShare::Hops | ( | void | ) | const [inline] |
Definition at line 361 of file cccam2.c.
Referenced by cShare(), and cCardClientCCcam2::ProcessECM().
{ return hops; };
| int cShare::Lag | ( | void | ) | const [inline] |
Definition at line 362 of file cccam2.c.
Referenced by cCardClientCCcam2::ProcessECM().
{ return lag; };
| int cShare::ShareID | ( | void | ) | const [inline] |
Definition at line 359 of file cccam2.c.
References shareid.
Referenced by cCardClientCCcam2::ProcessECM(), and cCardClientCCcam2::ProcessEMM().
{ return shareid; };
| int cShare::Status | ( | void | ) | const [inline] |
Definition at line 363 of file cccam2.c.
Referenced by cCardClientCCcam2::ProcessECM().
{ return status; }
| bool cShare::UsesProv | ( | void | ) | const |
Definition at line 433 of file cccam2.c.
References caid.
Referenced by CheckAddProv().
{
switch(caid>>8) {
case 0x01:
case 0x05:
return true;
default:
return false;
}
}