SASC-NG
DVBSoftCAM

cParseViaccess Class Reference

#include <parse.h>

List of all members.

Static Public Member Functions

static const unsigned char * PayloadStart (const unsigned char *data)
static const unsigned char * NanoStart (const unsigned char *data)
static const unsigned char * CheckNano90 (const unsigned char *data)
static const unsigned char * CheckNano90FromNano (const unsigned char *data)
static int KeyNr (const unsigned char *data)
static int KeyNrFromNano (const unsigned char *data)
static const unsigned char * ProvIdPtr (const unsigned char *data)
static int ProvId (const unsigned char *data)

Detailed Description

Definition at line 211 of file parse.h.


Member Function Documentation

const unsigned char * cParseViaccess::CheckNano90 ( const unsigned char *  data) [static]

Definition at line 474 of file parse.c.

References CheckNano90FromNano(), and NanoStart().

Referenced by KeyNr(), and ProvIdPtr().

const unsigned char * cParseViaccess::CheckNano90FromNano ( const unsigned char *  data) [static]

Definition at line 479 of file parse.c.

References data.

Referenced by CheckNano90(), and cSystemViaccess::ProcessECM().

{
  if(data && (data[0]==0x90 || data[0]==0x40) && data[1]==0x03) return data;
  return 0;
}
int cParseViaccess::KeyNr ( const unsigned char *  data) [static]

Definition at line 485 of file parse.c.

References CheckNano90(), and KeyNrFromNano().

Referenced by cSmartCardViaccess::Decode(), and cCardClientRadegast::ProcessECM().

int cParseViaccess::KeyNrFromNano ( const unsigned char *  data) [static]

Definition at line 490 of file parse.c.

Referenced by KeyNr(), cSystemViaccess::ProcessECM(), cSystemViaccess::ProcessEMM(), and cSmartCardViaccess::Update().

{
  return data ? data[4]&0x0f : -1;
}
const unsigned char * cParseViaccess::NanoStart ( const unsigned char *  data) [static]

Definition at line 464 of file parse.c.

References PayloadStart().

Referenced by cProviderViaccess::Assemble(), CheckNano90(), cSystemViaccess::ProcessEMM(), and cSmartCardViaccess::Update().

{
  const unsigned char *p=PayloadStart(data);
  switch(data[0]) {
    case 0x80:
    case 0x81: if(p && p[0]==0xD2) return p+p[1]+2; // skip TPS
    }
  return p;
}
const unsigned char * cParseViaccess::PayloadStart ( const unsigned char *  data) [static]

Definition at line 451 of file parse.c.

Referenced by cSmartCardViaccess::Decode(), NanoStart(), and cSystemViaccess::ProcessECM().

{
  switch(data[0]) {
    case 0x88: return &data[8];
    case 0x8e: return &data[7];
    case 0x8c:
    case 0x8d: return &data[3];
    case 0x80:
    case 0x81: return &data[4];
    }
  return 0;
}
int cParseViaccess::ProvId ( const unsigned char *  data) [static]

Definition at line 501 of file parse.c.

References ProvIdPtr().

{
  const unsigned char *id=cParseViaccess::ProvIdPtr(data);
  return id ? (id[0]<<16)+(id[1]<<8)+(id[2]&0xf0) : -1;
}
const unsigned char * cParseViaccess::ProvIdPtr ( const unsigned char *  data) [static]

Definition at line 495 of file parse.c.

References CheckNano90().

Referenced by cSmartCardViaccess::Decode(), cProviderViaccess::MatchID(), and ProvId().

{
  data=CheckNano90(data);
  return data ? &data[2] : 0;
}

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines