Origin commit data
------------------
Branch: master
Commit: 8a10609125
Author: max_10 <max_10@gmx.de>
Date: 2015-11-20 (Fri, 20 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-20 15:40:19 +01:00
parent 2ddb9ae15d
commit b984a6cb9e
6 changed files with 60 additions and 20 deletions

View File

@@ -773,9 +773,9 @@ static int restart_dh_challenge(struct cc_ctrl_data *cc_data)
}
/* load certificates and device key */
certificate_load_and_check(ctx, "/etc/pem/root.pem");
ctx->cust_cert = certificate_load_and_check(ctx, "/etc/pem/customer.pem");
ctx->device_cert = certificate_load_and_check(ctx, "/etc/pem/device.pem");
certificate_load_and_check(ctx, ROOT_CERT);
ctx->cust_cert = certificate_load_and_check(ctx, CUSTOMER_CERT);
ctx->device_cert = certificate_load_and_check(ctx, DEVICE_CERT);
if (!ctx->cust_cert || !ctx->device_cert) {
fprintf(stderr, "cannot loader certificates\n");
@@ -792,7 +792,7 @@ static int restart_dh_challenge(struct cc_ctrl_data *cc_data)
if (!element_set_hostid_from_certificate(cc_data, 5, ctx->device_cert))
fprintf(stderr, "cannot set hostid in elements\n");
cc_data->rsa_device_key = rsa_privatekey_open("/etc/pem/device.pem");
cc_data->rsa_device_key = rsa_privatekey_open(DEVICE_CERT);
if (!cc_data->rsa_device_key) {
fprintf(stderr, "cannot read private key\n");
return -1;

View File

@@ -49,6 +49,7 @@ int eDVBCIResourceManagerSession::doAction()
case stateStarted:
{
const unsigned char tag[3] = {0x9F, 0x80, 0x10}; // profile enquiry
cCA::GetInstance()->CheckCerts();
sendAPDU(tag);
state = stateFirstProfileEnquiry;
return 0;
@@ -68,19 +69,38 @@ int eDVBCIResourceManagerSession::doAction()
case stateProfileEnquiry:
{
const unsigned char tag[3] = {0x9F, 0x80, 0x11};
const unsigned char data[][4] =
if (cCA::GetInstance()->CheckCerts())
{
{0x00, 0x01, 0x00, 0x41},
{0x00, 0x02, 0x00, 0x41},
{0x00, 0x02, 0x00, 0x43},
{0x00, 0x03, 0x00, 0x41},
// {0x00, 0x20, 0x00, 0x41}, // host control
{0x00, 0x40, 0x00, 0x41},
{0x00, 0x24, 0x00, 0x41},
{0x00, 0x8c, 0x10, 0x01} // content control
// {0x00, 0x10, 0x00, 0x41} // auth.
};
sendAPDU(tag, data, sizeof(data));
const unsigned char data[][4] =
{
{0x00, 0x01, 0x00, 0x41}, // resource
{0x00, 0x02, 0x00, 0x41}, // application V1
{0x00, 0x02, 0x00, 0x43}, // application V3
{0x00, 0x03, 0x00, 0x41}, // conditional access
// {0x00, 0x20, 0x00, 0x41}, // host control
{0x00, 0x40, 0x00, 0x41}, // mmi
{0x00, 0x24, 0x00, 0x41}, // date-time
{0x00, 0x8c, 0x10, 0x01} // content control
// {0x00, 0x10, 0x00, 0x41} // auth.
};
sendAPDU(tag, data, sizeof(data));
}
else
{
const unsigned char data[][4] =
{
{0x00, 0x01, 0x00, 0x41}, // resource
{0x00, 0x02, 0x00, 0x41}, // application V1
{0x00, 0x02, 0x00, 0x43}, // application V3
{0x00, 0x03, 0x00, 0x41}, // conditional access
// {0x00, 0x20, 0x00, 0x41}, // host control
{0x00, 0x40, 0x00, 0x41}, // mmi
{0x00, 0x24, 0x00, 0x41} // date-time
// {0x00, 0x10, 0x00, 0x41} // auth.
};
sendAPDU(tag, data, sizeof(data));
}
//sendAPDU(tag, data, sizeof(data));
state = stateFinal;
return 0;
}

View File

@@ -173,10 +173,13 @@ eDVBCISession* eDVBCISession::createSession(tSlot *slot, const unsigned char *re
sessions[session_nb - 1] = new eDVBCIMMISession(slot);
printf("MMI - create session\n");
break;
case 0x008c1001:
sessions[session_nb - 1] = new eDVBCIContentControlManagerSession(slot);
printf("CC MANAGER\n");
break;
if (cCA::GetInstance()->CheckCerts())
{
case 0x008c1001:
sessions[session_nb - 1] = new eDVBCIContentControlManagerSession(slot);
printf("CC MANAGER\n");
break;
}
case 0x00100041:
// session=new eDVBCIAuthSession;
printf("AuthSession\n");

View File

@@ -5,6 +5,10 @@
#define SLMS 256
#define ROOT_CERT "/etc/pem/root.pem"
#define CUSTOMER_CERT "/etc/pem/customer.pem"
#define DEVICE_CERT "/etc/pem/device.pem"
class eDVBCISession
{
static eDVBCISession* sessions[SLMS];