|
SASC
DVBSoftCAM
|
#include <nagra.h>
Inheritance diagram for cNagra:Public Member Functions | |
| cNagra (void) | |
| virtual | ~cNagra () |
| cNagra (void) | |
| virtual | ~cNagra () |
Protected Member Functions | |
| virtual void | CreatePQ (const unsigned char *pk, BIGNUM *p, BIGNUM *q)=0 |
| void | ExpandPQ (BIGNUM *p, BIGNUM *q, const unsigned char *data, BIGNUM *e, BIGNUM *m) |
| void | CreateRSAPair (const unsigned char *key, const unsigned char *data, BIGNUM *e, BIGNUM *m) |
| virtual void | CreatePQ (const unsigned char *pk, BIGNUM *p, BIGNUM *q)=0 |
| void | ExpandPQ (BIGNUM *p, BIGNUM *q, const unsigned char *data, BIGNUM *e, BIGNUM *m) |
| void | CreateRSAPair (const unsigned char *key, const unsigned char *data, BIGNUM *e, BIGNUM *m) |
Protected Attributes | |
| cRSA | rsa |
| cBN | pubExp |
| cNagra::cNagra | ( | void | ) |
| cNagra::cNagra | ( | void | ) |
| virtual void cNagra::CreatePQ | ( | const unsigned char * | pk, |
| BIGNUM * | p, | ||
| BIGNUM * | q | ||
| ) | [protected, pure virtual] |
Implemented in cNagra1, cNagra2, cNagra1, and cNagra2.
Referenced by CreateRSAPair().
| virtual void cNagra::CreatePQ | ( | const unsigned char * | pk, |
| BIGNUM * | p, | ||
| BIGNUM * | q | ||
| ) | [protected, pure virtual] |
| void cNagra::CreateRSAPair | ( | const unsigned char * | key, |
| const unsigned char * | data, | ||
| BIGNUM * | e, | ||
| BIGNUM * | m | ||
| ) | [protected] |
| void cNagra::CreateRSAPair | ( | const unsigned char * | key, |
| const unsigned char * | data, | ||
| BIGNUM * | e, | ||
| BIGNUM * | m | ||
| ) | [protected] |
Definition at line 207 of file nagra.c.
References CreatePQ(), and ExpandPQ().
Referenced by cNagra2::DecryptEMM(), cTestNagra::Process(), cSystemNagra::ProcessECM(), and cSystemNagra::ProcessEMM().
| void cNagra::ExpandPQ | ( | BIGNUM * | p, |
| BIGNUM * | q, | ||
| const unsigned char * | data, | ||
| BIGNUM * | e, | ||
| BIGNUM * | m | ||
| ) | [protected] |
Definition at line 215 of file nagra.c.
Referenced by CreateRSAPair().
{
// Calculate N=P*Q (modulus)
cBNctx ctx;
BN_mul(m,p,q,ctx);
if(data) BN_bin2bn(data,64,e); // set provided data as E1
else { // else calculate the 'official' one
// E = ( ( ( (P-1) * (Q-1) * 2) + 1) / 3)
BN_sub_word(p,1);
BN_sub_word(q,1);
BN_mul(e,p,q,ctx);
BN_mul_word(e,2);
BN_add_word(e,1);
BN_div_word(e,3);
}
}
| void cNagra::ExpandPQ | ( | BIGNUM * | p, |
| BIGNUM * | q, | ||
| const unsigned char * | data, | ||
| BIGNUM * | e, | ||
| BIGNUM * | m | ||
| ) | [protected] |
cBN cNagra::pubExp [protected] |
Definition at line 51 of file nagra.h.
Referenced by cNagra(), cNagra2::DecryptECM(), cNagra1::DecryptECM(), cNagra2::DecryptEMM(), cNagra1::DecryptEMM(), and cSystemNagra::ProcessECM().
cRSA cNagra::rsa [protected] |
Definition at line 50 of file nagra.h.
Referenced by cNagra2::DecryptECM(), cNagra1::DecryptECM(), cNagra2::DecryptEMM(), and cNagra1::DecryptEMM().