⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cas_api.h

📁 EMU_FTAbox_ref441328_code_source ali m3327
💻 H
字号:
/****************************************************************************
*
*  ALi 
*
*  File: cas_api.h
*
*  Description: Cas_ECM and Cas_SC and Key Data
*             
*  History:
*      Date        		Author         	Version   	Comment
*      ====        	      ======         	=======   	=======
*  		
*
****************************************************************************/

#ifndef __CAS_API_H__
#define __CAS_API_H__

enum {
	CAS_ECM_FAIL = 0x00,
	CAS_ECM_OK = 0x01,
	CAS_ECM_SC0_OK = 0x02,
	CAS_ECM_SC1_OK = 0x04,

	CAS_ECM_MAX
};

enum
{
	CAS_SC_INSERTED,
	CAS_SC_EXTRACTED,
	CAS_SC_INIT_OK,
	CAS_SC_NO_ACCESS,
	CAS_SC_RESTART,
	CAS_TPS_UPDATE_START,
	CAS_TPS_UPDATE_END,
	
	CAS_MSG_MAX
};


enum {
	SECA_KEY8,
	VIA_KEY8,
	N1_KEY8,
	BISS_KEY8,
	IRD_KEY8,

	SECA_KEY16,
	VIA_KEY16,
	N2_IDEA16,
	N1_RSA16,
	CW_KEY16,
	CW_KEY64,

	MAX_KEY_TYPE
};

typedef struct
{
	unsigned short     ca_id;
	unsigned char      key_type;
	unsigned char      index;
	unsigned long      provider;
	unsigned char      key[16];
} cas_key_db;


/* cas api */
void cas_initialize(int debug_level);
void cas_reset_ecm_channel(unsigned char channel);
void cas_handle_cat(unsigned char* cat, unsigned char len);
int cas_handle_ecm(unsigned char channel, unsigned char* data, unsigned short pid, unsigned short ca_id, unsigned char* dcw);
void cas_handle_emm(unsigned char* data, unsigned short ca_id);
int cas_handle_biss(unsigned short program_number, unsigned char *dcw);

int cas_handle_pmt_ca_desc(unsigned short caid, unsigned short pid, unsigned char *Desc, unsigned char len);
int cas_handle_cat_ca_desc(unsigned short caid, unsigned short pid, unsigned char *Desc, unsigned char len);

/* sc api */
void cas_sc_inserted(unsigned char sc, unsigned char* atr, unsigned char len);
void cas_sc_extracted(unsigned char sc);

/* key db api */
int cas_get_max_key_count(void);
int cas_get_key_db(int index, cas_key_db *key_db);
int cas_add_key_db(int index, cas_key_db *key_db);
int cas_update_key_db(int index, cas_key_db *key_db);
int cas_del_key_db(int index);
int cas_reset_key_db(void);
int cas_read_key_db(void);

/* misc api */
unsigned short cas_get_working_caid(unsigned char channel);
unsigned short cas_get_caid_from_sc(unsigned char sc);
int cas_get_sc_ready(unsigned char sc);
int cas_get_debug_level(void);


/* porting layer api */
/* you should fix these funtions */
/* find "fix me" in the code, and fix it */
void *cas_malloc(unsigned long size);
void cas_free(void *ptr);

void cas_sleep(unsigned long msec);

void cas_print(char* str);
void cas_print_buf(unsigned char* buf, int len);

void cas_set_dcw(unsigned char *dcw);

int cas_get_init_key_size(void);
char *cas_get_provider_name(unsigned long provider, unsigned short ca_id);

void cas_write_flash(unsigned char *key_db, unsigned long key_db_size);
void cas_read_flash(unsigned char *key_db, unsigned long key_db_size);

int cas_sc_t0 (int sc_id, unsigned char *Data, int Length, unsigned char *SW1, unsigned char *SW2);
int cas_sc_t1 (int sc_id, unsigned char *Data, int Length, unsigned char *SW1, unsigned char *SW2);
int cas_sc_t14(int sc_id, unsigned char *Data, int Length, unsigned char *SW1, unsigned char *SW2);

void cas_send_msg(unsigned long msg, unsigned long param1, unsigned long param2, unsigned long param3);

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -