SASC
DVBSoftCAM

cNagraDES Class Reference

Inheritance diagram for cNagraDES:

List of all members.

Protected Member Functions

void Decrypt (const unsigned char *data, const unsigned char *key, unsigned char *out, bool desmod=false)
void Crypt (const unsigned char *data, const unsigned char *key, unsigned char *out)
bool SigCheck (const unsigned char *block, const unsigned char *sig, const unsigned char *vkey, const int rounds)
void Decrypt (const unsigned char *data, const unsigned char *key, unsigned char *out, bool desmod=false)
void Crypt (const unsigned char *data, const unsigned char *key, unsigned char *out)
bool SigCheck (const unsigned char *block, const unsigned char *sig, const unsigned char *vkey, const int rounds)

Detailed Description

Definition at line 525 of file nagra1.c.


Member Function Documentation

void cNagraDES::Crypt ( const unsigned char *  data,
const unsigned char *  key,
unsigned char *  out 
) [protected]

Definition at line 545 of file nagra1.c.

References cDes::Des(), NAGRA_DES_ENCR, and RotateBytes().

Referenced by SigCheck().

{
  unsigned char cardkey[8];
  memcpy(cardkey,key,8);
  RotateBytes(cardkey,8);
  memcpy(out,data,8);
  RotateBytes(out,8);
  des.Des(out,cardkey,NAGRA_DES_ENCR);
  RotateBytes(out,8);
}
void cNagraDES::Crypt ( const unsigned char *  data,
const unsigned char *  key,
unsigned char *  out 
) [protected]
void cNagraDES::Decrypt ( const unsigned char *  data,
const unsigned char *  key,
unsigned char *  out,
bool  desmod = false 
) [protected]

Definition at line 534 of file nagra1.c.

References cDes::Des(), NAGRA_DES_DECR, and RotateBytes().

Referenced by cNagra1::CreatePQ(), and cSystemNagra::ProcessECM().

{
  unsigned char cardkey[8];
  memcpy(cardkey,key,8);
  RotateBytes(cardkey,8);
  memcpy(out,data,8);
  if(!desmod) RotateBytes(out,8);
  des.Des(out,cardkey,NAGRA_DES_DECR);
  if(!desmod) RotateBytes(out,8);
}
void cNagraDES::Decrypt ( const unsigned char *  data,
const unsigned char *  key,
unsigned char *  out,
bool  desmod = false 
) [protected]
bool cNagraDES::SigCheck ( const unsigned char *  block,
const unsigned char *  sig,
const unsigned char *  vkey,
const int  rounds 
) [protected]

Definition at line 556 of file nagra1.c.

References Crypt(), hash, j, and xxor.

Referenced by cNagra1::DecryptECM(), cNagra1::DecryptEMM(), and cSystemNagra::ProcessECM().

{
  unsigned char hash[8];
  memcpy(hash,vkey,8);
  for(int j=0; j<rounds; j++) {
    unsigned char cr[8];
    Crypt(block+j*8,hash,cr);
    xxor(hash,8,cr,&block[j*8]);
    }
  return (0==memcmp(hash,sig,8));
}
bool cNagraDES::SigCheck ( const unsigned char *  block,
const unsigned char *  sig,
const unsigned char *  vkey,
const int  rounds 
) [protected]

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