revert breaks some stupid old compilers
[oscam.git] / reader-videoguard-common.h
blobf996da993153fce48c11d47cdd23dac3a7973bcb
1 #ifndef __NDS_COMMON__
2 #define __NDS_COMMON__
4 #define write_cmd_vg(cmd, data) (card_write(reader, cmd, data, cta_res, &cta_lr) == 0)
6 #define NDSUNKNOWN 0
7 #define NDSAUTO 0
8 #define NDS1 1
9 #define NDS12 12
10 #define NDS2 2
12 struct s_CmdTabEntry
14 uint8_t cla;
15 uint8_t cmd;
16 uint8_t len;
17 uint8_t mode;
20 struct s_CmdTab
22 uint8_t index;
23 uint8_t size;
24 uint8_t Nentries;
25 uint8_t dummy;
26 struct s_CmdTabEntry e[1];
29 struct videoguard_data
31 const char *card_desc;
32 int32_t card_baseyear;
33 int32_t card_tierstart;
34 int32_t card_system_version;
35 time_t card_valid_to;
36 struct s_CmdTab *cmd_table;
37 uint16_t cardkeys[3][32];
38 unsigned char stateD3A[16];
39 AES_KEY ekey;
40 AES_KEY astrokey;
43 typedef struct nds_atr
45 uchar atr[MAX_ATR_LEN];
46 uint16_t atr_len;
47 int32_t base_year;
48 int32_t tier_start;
49 int32_t nds_version;
50 const char *desc;
51 } NDS_ATR_ENTRY;
53 extern int32_t cw_is_valid(unsigned char *cw);
54 extern void cAES_SetKey(struct s_reader *reader, const unsigned char *key);
56 extern void __xxor(unsigned char *data, int32_t len, const unsigned char *v1, const unsigned char *v2);
57 #define xor16(v1,v2,d) __xxor((d),16,(v1),(v2))
58 #define val_by2on3(x) ((0xaaab*(x))>>16) //fixed point *2/3
60 extern void cCamCryptVG_SetSeed(struct s_reader *reader);
61 extern void cCamCryptVG_GetCamKey(struct s_reader *reader, uint16_t *tb2);
62 extern int32_t status_ok(const unsigned char *status);
63 extern int32_t checksum_ok(const unsigned char *ird_payload);
64 extern void memorize_cmd_table(struct s_reader *reader, const unsigned char *mem, int32_t size);
65 extern int32_t cmd_table_get_info(struct s_reader *reader, const unsigned char *cmd, unsigned char *rlen, unsigned char *rmode);
66 extern int32_t cmd_exists(struct s_reader *reader, const unsigned char *cmd);
67 extern int32_t read_cmd_len(struct s_reader *reader, const unsigned char *cmd);
68 extern int32_t do_cmd(struct s_reader *reader, const unsigned char *ins, const unsigned char *txbuff, unsigned char *rxbuff,
69 unsigned char *cta_res);
70 extern void rev_date_calc_tm(const unsigned char *Date, struct tm *timeinfo , int32_t base_year);
71 extern void set_known_card_info(struct s_reader *reader, const unsigned char *atr, const uint32_t *atr_size);
73 int32_t videoguard_get_emm_type(EMM_PACKET *ep, struct s_reader *rdr);
74 int32_t videoguard_get_emm_filter(struct s_reader *rdr, struct s_csystem_emm_filter **, unsigned int *);
75 int32_t videoguard_do_emm(struct s_reader *reader, EMM_PACKET *ep, unsigned char CLA,
76 void (*read_tiers)(struct s_reader *),
77 int32_t (*docmd)(struct s_reader *, const unsigned char *ins, const unsigned char *txbuff, unsigned char *rxbuff, unsigned char *cta_res)
79 void videoguard_mail_msg(struct s_reader *rdr, uint8_t *data);
81 #endif // __NDS_COMMON__