4 #define write_cmd_vg(cmd, data) (card_write(reader, cmd, data, cta_res, &cta_lr) == 0)
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
;
36 struct s_CmdTab
*cmd_table
;
37 uint16_t cardkeys
[3][32];
43 typedef struct nds_atr
45 uint8_t atr
[MAX_ATR_LEN
];
53 extern int32_t cw_is_valid(uint8_t *cw
);
54 extern void cAES_SetKey(struct s_reader
*reader
, const uint8_t *key
);
56 extern void __xxor(uint8_t *data
, int32_t len
, const uint8_t *v1
, const uint8_t *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 uint8_t *status
);
63 extern int32_t checksum_ok(const uint8_t *ird_payload
);
64 extern void memorize_cmd_table(struct s_reader
*reader
, const uint8_t *mem
, int32_t size
);
65 extern int32_t cmd_table_get_info(struct s_reader
*reader
, const uint8_t *cmd
, uint8_t *rlen
, uint8_t *rmode
);
66 extern int32_t cmd_exists(struct s_reader
*reader
, const uint8_t *cmd
);
67 extern int32_t read_cmd_len(struct s_reader
*reader
, const uint8_t *cmd
);
68 extern int32_t do_cmd(struct s_reader
*reader
, const uint8_t *ins
, const uint8_t *txbuff
, uint8_t *rxbuff
, uint8_t *cta_res
);
69 int32_t videoguard_do_rawcmd(struct s_reader
*reader
, CMD_PACKET
*cp
);
70 extern void rev_date_calc_tm(const uint8_t *Date
, struct tm
*timeinfo
, int32_t base_year
);
71 extern void set_known_card_info(struct s_reader
*reader
, const uint8_t *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
, uint8_t CLA
, void (*read_tiers
)(struct s_reader
*),
76 int32_t (*docmd
)(struct s_reader
*, const uint8_t *ins
, const uint8_t *txbuff
, uint8_t *rxbuff
, uint8_t *cta_res
)
78 void videoguard_mail_msg(struct s_reader
*rdr
, uint8_t *data
);
80 #endif // __NDS_COMMON__