diff options
Diffstat (limited to 'include/librfid/rfid_access_mifare_classic.h')
-rw-r--r-- | include/librfid/rfid_access_mifare_classic.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/include/librfid/rfid_access_mifare_classic.h b/include/librfid/rfid_access_mifare_classic.h new file mode 100644 index 0000000..3c23724 --- /dev/null +++ b/include/librfid/rfid_access_mifare_classic.h @@ -0,0 +1,46 @@ +#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 |