📄 cas_key.h
字号:
/****************************************************************************
*
* ALi
*
* File: cas_key.h
*
* Description: Define CA_STS Nagra ID Len IRD Caid and KeyBin
*
* History:
* Date Author Version Comment
* ==== ====== ======= =======
*
*
****************************************************************************/
#ifndef CAS_KEY_H
#define CAS_KEY_H
#include <types.h> // UINT16 UINT32 NULL INT8 INT16 INT32
#define S_ID 0x00
#define S_PPUA_OFFSET 0x10
#define VIA_ID_OFFSET 0x30
#define VIA_PPUA_OFFSET 0x6C
#define VIA_UA_OFFSET 0xBC
#define NGR_ID_OFFSET 0x120
#define IRD_PG_OFFSET 0x12A
#define IRD_HSN_OFFSET 0x145
#define IRD_HMK_OFFSET 0x160
#define IRD_PMK_OFFSET 0x1BA
#define UPD_FLAG_OFFSET 0x202
#define SIG_UPD_OFFSET 0x203
#define KEY_IDX_OFFSET 0x204
#define Send_to_card 0x20A
#define RESULT 0x20B
#define CA_SYS 0x20C
#define IDENT 0x20D
#define KEYIDX 0x20F
#define OPKEY_OFFSET 0x210
#define keyIdxConax1 0xEF4
#define keyIdxConax2 0xEF5
#define Conax1_E 0xEF6
#define Conax2_E 0xF36
#define Conax1_N 0xF76
#define Conax2_N 0xFB6
#define KEY_IDX2_OFFSET 0xFFC
#define KEY_IDX3_OFFSET 0xFFD
#define OPKEY_LEN 0xB
#define OPKEY_END 0xFFE
#define OPKEY_NUM 0x12C
#define S_ID_LEN 0x2
#define S_PPUA_LEN 0x4
#define S_PROV_NUM 0x8
#define VIA_ID_LEN 0x3
#define VIA_PPUA_LEN 0x4
#define VIA_UA_LEN 0x5
#define VIA_PROV_NUM 0x14
#define NGR_ID_LEN 0x2
#define NGR_ID_NUM 0x5
#define IRD_HMK_LEN 0xA
#define IRD_PMK_LEN 0x8
#define IRD_PG_LEN 0x3
#define IRD_HSN_LEN 0x3
#define IRD_PROV_NUM 0x9
#define SECA 0x10
#define VIAC 0x20
#define NAGRA 0x30
#define IRDETO 0x40
#define CONAX 0x50
#define CRYPTO 0x60
#define SKYCRYPT 0x70
struct KEY_SECSECTION
{
UINT8 sec_ID[S_PROV_NUM][S_ID_LEN];
UINT8 sec_PPUA[S_PROV_NUM][S_PPUA_LEN];
};
struct KEY_VIASECTION
{
UINT8 via_ID[VIA_PROV_NUM][VIA_ID_LEN];
UINT8 via_PPUA[VIA_PROV_NUM][VIA_PPUA_LEN];
UINT8 via_UA[VIA_PROV_NUM][VIA_UA_LEN];
};
struct KEY_NAGSECTION
{
UINT8 nag_ID[NGR_ID_NUM][NGR_ID_LEN];
};
struct KEY_IRDSECTION
{
UINT8 ird_PGID[IRD_PROV_NUM][IRD_PG_LEN];
UINT8 ird_HSNS[IRD_PROV_NUM][IRD_HSN_LEN];
UINT8 ird_HMKS[IRD_PROV_NUM][IRD_HMK_LEN];
UINT8 ird_PMKS[IRD_PROV_NUM][IRD_PMK_LEN];
};
struct KEY_OPKEYS
{
UINT8 key_CASYS;
UINT8 key_PROVID;
UINT8 key_KEYID;
UINT8 opkey [8];
};
struct KEY_BIN
{
struct KEY_SECSECTION seca;
struct KEY_VIASECTION viacces;
struct KEY_NAGSECTION nagra;
struct KEY_IRDSECTION irdeto;
UINT8 update_flag;
UINT8 sig_update;
UINT8 key_idx[6];
UINT8 send_to_card;
UINT8 result;
UINT8 ca_sys;
UINT8 ident[2];
UINT8 keyidx;
struct KEY_OPKEYS opkeys[OPKEY_NUM];
UINT8 keyidxConax1;
UINT8 keyidxConax2;
UINT8 conax_expo[2][0x40];
UINT8 conax_modu[2][0x40];
UINT8 rfu[6];
UINT8 keyidx2;
UINT8 keyidx3;
UINT8 rfu1[2];
};
INT32 api_cas_mem_write(UINT8 *write_buffer, UINT32 write_size);
INT32 api_cas_mem_read(UINT8* read_buffer, UINT32 read_size);
INT32 default_data_write(UINT8 *write_buffer, UINT32 write_size);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -