diff --git a/libdvbci/dvbci_ccmgr.cpp b/libdvbci/dvbci_ccmgr.cpp index 464aa51..418a1eb 100644 --- a/libdvbci/dvbci_ccmgr.cpp +++ b/libdvbci/dvbci_ccmgr.cpp @@ -713,7 +713,7 @@ static int generate_akh(struct cc_ctrl_data *cc_data) uint8_t akh[32]; SHA256_CTX sha; - printf("%s>%s\n", FILENAME, __FUNCTION__); + printf("%s -> %s\n", FILENAME, __FUNCTION__); SHA256_Init(&sha); SHA256_Update(&sha, element_get_ptr(cc_data, 6), element_get_buf(cc_data, NULL, 6)); @@ -926,9 +926,11 @@ static int data_get_handle_new(struct cc_ctrl_data *cc_data, unsigned int id) /* SAC data messages */ + case 6: //CICAM_id case 12: //keyprecursor check_new_key(cc_data); break; + case 26: //programm number case 25: //uri_message generate_uri_confirm(cc_data, cc_data->sak); break; @@ -937,6 +939,7 @@ static int data_get_handle_new(struct cc_ctrl_data *cc_data, unsigned int id) break; default: + printf("%s -> %s unhandled ID (%d)\n", FILENAME, __FUNCTION__, id); break; } diff --git a/libdvbci/dvbci_resmgr.cpp b/libdvbci/dvbci_resmgr.cpp index 0f6924c..65ce0ea 100644 --- a/libdvbci/dvbci_resmgr.cpp +++ b/libdvbci/dvbci_resmgr.cpp @@ -80,10 +80,11 @@ int eDVBCIResourceManagerSession::doAction() {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, 0x20, 0x00, 0x41}, // host control (dummy) {0x00, 0x40, 0x00, 0x41}, // mmi {0x00, 0x24, 0x00, 0x41}, // date-time - {0x00, 0x8c, 0x10, 0x01} // content control + {0x00, 0x8c, 0x10, 0x01}, // content control + {0x00, 0x8e, 0x10, 0x01} // cam upgrade (dummy) // {0x00, 0x10, 0x00, 0x41} // auth. }; sendAPDU(tag, data, sizeof(data)); diff --git a/libdvbci/dvbci_session.cpp b/libdvbci/dvbci_session.cpp index d4fe5c3..f60020d 100644 --- a/libdvbci/dvbci_session.cpp +++ b/libdvbci/dvbci_session.cpp @@ -14,6 +14,40 @@ eDVBCISession* eDVBCISession::sessions[SLMS]; +eDVBCIHostControlSession::eDVBCIHostControlSession(eDVBCISlot *tslot) +{ + slot = tslot; +} + +eDVBCIHostControlSession::~eDVBCIHostControlSession() +{ +} + +int eDVBCIHostControlSession::receivedAPDU(const unsigned char *tag,const void *data, int len) +{ + printf("CI HC SESSION(%d)/TAG %02x %02x %02x: ", session_nb, tag[0], tag[1], tag[2]); + for (int i=0; i