|
SASC
DVBSoftCAM
|
Inheritance diagram for cCwDes:Public Member Functions | |
| cCwDes (void) | |
| void | CwDes (unsigned char *data, const unsigned char *key22, int mode) const |
| void | CwL2Des (unsigned char *data, const unsigned char *key22, unsigned char algo) const |
| void | CwR2Des (unsigned char *data, const unsigned char *key22, unsigned char algo) const |
| cCwDes (void) | |
| void | CwDes (unsigned char *data, const unsigned char *key22, int mode) const |
| void | CwL2Des (unsigned char *data, const unsigned char *key22, unsigned char algo) const |
| void | CwR2Des (unsigned char *data, const unsigned char *key22, unsigned char algo) const |
Definition at line 105 of file cryptoworks.c.
| cCwDes::cCwDes | ( | void | ) |
Definition at line 116 of file cryptoworks.c.
| cCwDes::cCwDes | ( | void | ) |
| void cCwDes::CwDes | ( | unsigned char * | data, |
| const unsigned char * | key22, | ||
| int | mode | ||
| ) | const |
Definition at line 134 of file cryptoworks.c.
References BYTE4_BE, DES_RIGHT, DESROUND, i, L_SYS_VERBOSE, LDUMP, cDes::LS, rol28, ror28, and UINT32_BE.
Referenced by cCryptoworks::Signature().
{
unsigned char mkey[8];
PrepKey(mkey,key22+9);
LDUMP(L_SYS_VERBOSE,mkey,8,"prepped key DES:");
unsigned int C=UINT32_BE(mkey );
unsigned int D=UINT32_BE(mkey+4);
unsigned int L=UINT32_BE(data );
unsigned int R=UINT32_BE(data+4);
if(!(mode&DES_RIGHT)) {
for(int i=15; i>=0; i--) {
C=rol28(C,LS[15-i]); D=rol28(D,LS[15-i]);
unsigned int T=R;
DESROUND(C,D,T);
T^=L; L=R; R=T;
}
}
else {
for(int i=15; i>=0; i--) {
unsigned int T=R;
DESROUND(C,D,T);
T^=L; L=R; R=T;
C=ror28(C,LS[i]); D=ror28(D,LS[i]);
}
}
BYTE4_BE(data ,L);
BYTE4_BE(data+4,R);
}
| void cCwDes::CwDes | ( | unsigned char * | data, |
| const unsigned char * | key22, | ||
| int | mode | ||
| ) | const |
| void cCwDes::CwL2Des | ( | unsigned char * | data, |
| const unsigned char * | key22, | ||
| unsigned char | algo | ||
| ) | const |
| void cCwDes::CwL2Des | ( | unsigned char * | data, |
| const unsigned char * | key22, | ||
| unsigned char | algo | ||
| ) | const |
Definition at line 163 of file cryptoworks.c.
References BYTE4_BE, DESROUND, i, L_SYS_VERBOSE, LDUMP, PRINTF, rol28, and UINT32_BE.
Referenced by cCryptoworks::Signature().
{
unsigned char mkey[8];
PrepKey48(mkey,key22,algo);
PrepKey(mkey,mkey);
LDUMP(L_SYS_VERBOSE,mkey,8,"prepped key L2:");
unsigned int C=UINT32_BE(mkey );
unsigned int D=UINT32_BE(mkey+4);
unsigned int L=UINT32_BE(data );
unsigned int R=UINT32_BE(data+4);
for(int i=1; i>=0; i--) {
C=rol28(C,1); D=rol28(D,1);
unsigned int T=R;
DESROUND(C,D,T);
T^=L; L=R; R=T;
PRINTF(L_SYS_VERBOSE,"round %d key L2: %08x %08x",i,C,D);
}
BYTE4_BE(data ,L);
BYTE4_BE(data+4,R);
}
| void cCwDes::CwR2Des | ( | unsigned char * | data, |
| const unsigned char * | key22, | ||
| unsigned char | algo | ||
| ) | const |
Definition at line 184 of file cryptoworks.c.
References BYTE4_BE, DESROUND, i, L_SYS_VERBOSE, LDUMP, rol28, ror28, and UINT32_BE.
Referenced by cCryptoworks::Signature().
{
unsigned char mkey[8];
PrepKey48(mkey,key22,algo);
PrepKey(mkey,mkey);
LDUMP(L_SYS_VERBOSE,mkey,8,"prepped key R2:");
unsigned int C=UINT32_BE(mkey );
unsigned int D=UINT32_BE(mkey+4);
unsigned int L=UINT32_BE(data );
unsigned int R=UINT32_BE(data+4);
for(int i=1; i>=0; i--) {
C=rol28(C,15); D=rol28(D,15);
}
for(int i=1; i>=0; i--) {
unsigned int T=R;
DESROUND(C,D,T);
T^=L; L=R; R=T;
C=ror28(C,1); D=ror28(D,1);
}
BYTE4_BE(data ,R);
BYTE4_BE(data+4,L);
}
| void cCwDes::CwR2Des | ( | unsigned char * | data, |
| const unsigned char * | key22, | ||
| unsigned char | algo | ||
| ) | const |