#ifndef _RFID_MIFARE_ACCESS_H #define _RFID_MIFARE_ACCESS_H struct mfcl_access_sect { u_int8_t block[4]; }; int mfcl_compile_access(u_int8_t *encoded, const struct mfcl_access_sect *ac); int mfcl_parse_access(struct mfcl_access_sect *ac, u_int8_t *encoded); enum mfcl_access_exp_data { MFCL_ACCESS_NEVER = 0, MFCL_ACCESS_KEY_A = 1, MFCL_ACCESS_KEY_B = 2, }; struct mfcl_access_exp_block { u_int8_t read:2, write:2, inc:2, dec:2; }; struct mfcl_access_exp_acc { u_int16_t key_a_rd:2, key_a_wr:2, acc_rd:2, acc_wr:2, key_b_rd:2, key_b_wr:2; }; struct mfcl_access_exp_sect { struct mfcl_access_exp_block block[3]; struct mfcl_access_exp_acc acc; }; void mfcl_access_to_exp(struct mfcl_access_exp_sect *exp, const struct mfcl_access_sect *sect); char *mfcl_access_exp_stringify(const struct mfcl_access_exp_block *exp); char *mfcl_access_exp_acc_stringify(const struct mfcl_access_exp_acc *acc); #endif