Skip navigation

test-cas.c/mk.sh/MAG-CAS-plugin.h

  Example test-cas.c:Example custom cas(ECM):

Example test-cas.c:

#include "MAG-CAS-plugin.h"
#include "stdio.h"
-#define DEBUG(x...) {}//printf(x)
+#define DEBUG(x...) printf(x)
#define DEBUG_CALL() DEBUG("Called function %s\n",__FUNCTION__)

 STB_MAG_Cas_t PluginInterface;
@@ -123,7 +123,7 @@
CAS_Flags_e CAS_GetCasFlags(void)
{
   DEBUG_CALL();
-  return CAS_Flags_DecodeAll;
+  return CAS_Flags_PMT_ECM;
};
/**
  * Get the format of ECM data expected by the plugin in
@@ -155,7 +155,7 @@
     DescramblerInterface.SetScramblingKey = mag_interface->SetScramblingKey;
     DescramblerInterface.SetScramblingType = mag_interface->SetScramblingType;
   }
-  PluginInterface.Decrypt = CAS_Decrypt;
+  PluginInterface.Decrypt = NULL;
   PluginInterface.Deinit = CAS_Deinit;
   PluginInterface.GetCasFlags = CAS_GetCasFlags;
   PluginInterface.GetEcmFormat = NULL;
@@ -165,6 +165,13 @@
   PluginInterface.OnPmtChange = NULL;
   PluginInterface.ResetStream = CAS_ResetStream;
   PluginInterface.SetAdditionalParam = CAS_SetAdditionalParam;
+
+  DescramblerInterface.SetScramblingType(CAS_SCRAMBLING_TYPE_CSA);
+  char evenKey[8]={0x11,0x11,0x11,0x33,0x11,0x11,0x11,0x33};
+  char oddKey[8]={0x11,0x11,0x11,0x33,0x11,0x11,0x11,0x33};
+  DescramblerInterface.SetScramblingKey(evenKey,0);
+  DescramblerInterface.SetScramblingKey(oddKey,1);
+
   return &PluginInterface;
};

Примечания:

*When compiling, set option -fPIC

2)Set GetSysID

GetSysID

* Get CAS vendor SysID as defined in DVB. Useful only in

  • CAS_Flags_PMT_ECM mode
  • /

int (*GetSysID)(void);

According this SysID - from stream PID is determined where ECM packets are. Example was designed to decrypt totally with resources of plugin.

Need Help

Дима – эксперт по работе с приставками серии MAG и автор этой статьи.

Была ли полезна эта статья?

Да Нет

Сожалеем.
Как можно улучшить эту статью?

Мы используем cookie-файлы, чтобы оптимизировать работу сайта и предоставить вам лучший интерфейс; а также для продвижения нашей продукции. Ознакомьтесь с нашей политикой Cookie, чтобы узнать, как именно мы используем cookie-файлы, и как вы можете это контролировать.
Если вы продолжите пользоваться сайтом или закроете это сообщение — это значит, что вы согласны с нашей Политикой конфиденциальности и разрешаете использование cookie-файлов, как описано в политике Cookie.