Origin commit data
------------------
Branch: master
Commit: f7b22b485d
Author: max_10 <max_10@gmx.de>
Date: 2015-11-13 (Fri, 13 Nov 2015)


------------------
No further description and justification available within origin commit message!

------------------
This commit was generated by Migit
This commit is contained in:
max_10
2015-11-13 21:13:47 +01:00
parent 409a8d1a58
commit 941520dbcd
5 changed files with 29 additions and 5 deletions

View File

@@ -21,6 +21,7 @@ int descrambler_set_key(int index, int parity, unsigned char *data)
printf("%s -> %s\n", FILENAME, __FUNCTION__);
index |= 0x100;
d.index = index;
d.parity = (ca_descr_parity)parity;
@@ -56,7 +57,7 @@ int descrambler_set_pid(int index, int enable, int pid)
int descrambler_init(void)
{
const char *filename = "/dev/dvb/adapter0/ca1";
const char *filename = "/dev/dvb/adapter0/ca3";
printf("%s -> %s\n", FILENAME, __FUNCTION__);

View File

@@ -869,9 +869,14 @@ static void check_new_key(struct cc_ctrl_data *cc_data)
AES_ecb_encrypt(&kp[i], &dec[i], &aes_ctx, 1);
for (i = 0; i < 32; i++)
{
dec[i] ^= kp[i];
cc_data->slot->lastKey[i] = dec[i];
}
cc_data->slot->lastParity = slot;
descrambler_set_key((int)cc_data->slot->source, slot, dec);
if (cc_data->slot->scrambled)
cc_data->slot->ccmgrSession->resendKey(cc_data->slot);
/* reset */
element_invalidate(cc_data, 12);
@@ -1268,8 +1273,8 @@ void eDVBCIContentControlManagerSession::ci_ccmgr_doClose(tSlot *tslot)
printf("close content_control\n");
for (int i = 0; i < 32; i++)
clearData[i] = 0;
descrambler_set_key(data->slot->slot, 0, clearData);
descrambler_set_key(data->slot->slot, 1, clearData);
descrambler_set_key((int)data->slot->source, 0, clearData);
descrambler_set_key((int)data->slot->source, 1, clearData);
descrambler_deinit();
@@ -1319,3 +1324,9 @@ int eDVBCIContentControlManagerSession::doAction()
return 0;
}
}
void eDVBCIContentControlManagerSession::resendKey(tSlot *tslot)
{
descrambler_set_key((int)tslot->source, tslot->lastParity, tslot->lastKey);
}

View File

@@ -22,5 +22,6 @@ public:
eDVBCIContentControlManagerSession(tSlot *tslot);
~eDVBCIContentControlManagerSession();
void ci_ccmgr_doClose(tSlot *tslot);
void resendKey(tSlot *tslot);
};
#endif