LibDriver MIFARE_ULTRALIGHT
Loading...
Searching...
No Matches
driver_mifare_ultralight.h
Go to the documentation of this file.
1
36
37#ifndef DRIVER_MIFARE_ULTRALIGHT_H
38#define DRIVER_MIFARE_ULTRALIGHT_H
39
40#include <stdio.h>
41#include <stdint.h>
42#include <string.h>
43
44#ifdef __cplusplus
45extern "C"{
46#endif
47
53
58
67
76
85
94
103
118
123{
124 uint8_t (*contactless_init)(void);
125 uint8_t (*contactless_deinit)(void);
126 uint8_t (*contactless_transceiver)(uint8_t *in_buf, uint8_t in_len,
127 uint8_t *out_buf, uint8_t *out_len);
128 void (*delay_ms)(uint32_t ms);
129 void (*debug_print)(const char *const fmt, ...);
130 uint8_t end_page;
131 uint8_t type;
132 uint8_t inited;
134
150
154
161
168#define DRIVER_MIFARE_ULTRALIGHT_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
169
176#define DRIVER_MIFARE_ULTRALIGHT_LINK_CONTACTLESS_INIT(HANDLE, FUC) (HANDLE)->contactless_init = FUC
177
184#define DRIVER_MIFARE_ULTRALIGHT_LINK_CONTACTLESS_DEINIT(HANDLE, FUC) (HANDLE)->contactless_deinit = FUC
185
192#define DRIVER_MIFARE_ULTRALIGHT_LINK_CONTACTLESS_TRANSCEIVER(HANDLE, FUC) (HANDLE)->contactless_transceiver = FUC
193
200#define DRIVER_MIFARE_ULTRALIGHT_LINK_DELAY_MS(HANDLE, FUC) (HANDLE)->delay_ms = FUC
201
208#define DRIVER_MIFARE_ULTRALIGHT_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
209
213
220
230
242
254
266
278
293
308
320
335
350
364uint8_t mifare_ultralight_select_cl1(mifare_ultralight_handle_t *handle, uint8_t id[4]);
365
379uint8_t mifare_ultralight_select_cl2(mifare_ultralight_handle_t *handle, uint8_t id[4]);
380
395
411uint8_t mifare_ultralight_read_counter(mifare_ultralight_handle_t *handle, uint8_t addr, uint32_t *cnt);
412
428uint8_t mifare_ultralight_increment_counter(mifare_ultralight_handle_t *handle, uint8_t addr, uint32_t cnt);
429
445uint8_t mifare_ultralight_check_tearing_event(mifare_ultralight_handle_t *handle, uint8_t addr, uint8_t *flag);
446
462uint8_t mifare_ultralight_vcsl(mifare_ultralight_handle_t *handle, uint8_t installation_identifier[16],
463 uint8_t pcd_capabilities[4], uint8_t *identifier);
464
478uint8_t mifare_ultralight_read_signature(mifare_ultralight_handle_t *handle, uint8_t signature[32]);
479
493uint8_t mifare_ultralight_get_serial_number(mifare_ultralight_handle_t *handle, uint8_t number[7]);
494
509uint8_t mifare_ultralight_read_four_pages(mifare_ultralight_handle_t *handle, uint8_t start_page, uint8_t data[16]);
510
525uint8_t mifare_ultralight_read_page(mifare_ultralight_handle_t *handle, uint8_t page, uint8_t data[4]);
526
547uint8_t mifare_ultralight_fast_read_page(mifare_ultralight_handle_t *handle, uint8_t start_page, uint8_t stop_page, uint8_t *data, uint16_t *len);
548
563uint8_t mifare_ultralight_compatibility_write_page(mifare_ultralight_handle_t *handle, uint8_t page, uint8_t data[4]);
564
579uint8_t mifare_ultralight_write_page(mifare_ultralight_handle_t *handle, uint8_t page, uint8_t data[4]);
580
596uint8_t mifare_ultralight_authenticate(mifare_ultralight_handle_t *handle, uint8_t pwd[4], uint8_t pack[2]);
597
611uint8_t mifare_ultralight_set_password(mifare_ultralight_handle_t *handle, uint8_t pwd[4]);
612
626uint8_t mifare_ultralight_set_pack(mifare_ultralight_handle_t *handle, uint8_t pack[2]);
627
640
653
666
679
693
707
721
734
747
760
788uint8_t mifare_ultralight_set_lock(mifare_ultralight_handle_t *handle, uint8_t lock[5]);
789
803uint8_t mifare_ultralight_get_lock(mifare_ultralight_handle_t *handle, uint8_t lock[5]);
804
818uint8_t mifare_ultralight_read_otp(mifare_ultralight_handle_t *handle, uint8_t data[4]);
819
833uint8_t mifare_ultralight_write_otp(mifare_ultralight_handle_t *handle, uint8_t data[4]);
834
838
845
858uint8_t mifare_ultralight_transceiver(mifare_ultralight_handle_t *handle, uint8_t *in_buf, uint8_t in_len, uint8_t *out_buf, uint8_t *out_len);
859
863
867
868#ifdef __cplusplus
869}
870#endif
871
872#endif
uint8_t mifare_ultralight_set_pack(mifare_ultralight_handle_t *handle, uint8_t pack[2])
mifare_ultralight set the pack
uint8_t mifare_ultralight_vcsl(mifare_ultralight_handle_t *handle, uint8_t installation_identifier[16], uint8_t pcd_capabilities[4], uint8_t *identifier)
mifare_ultralight vcsl command
uint8_t mifare_ultralight_get_lock(mifare_ultralight_handle_t *handle, uint8_t lock[5])
mifare_ultralight get the lock
uint8_t mifare_ultralight_set_storage(mifare_ultralight_handle_t *handle, mifare_ultralight_storage_t storage)
set the storage
struct mifare_ultralight_version_s mifare_ultralight_version_t
mifare ultralight version structure definition
mifare_ultralight_storage_t
mifare ultralight storage enumeration definition
uint8_t mifare_ultralight_get_virtual_card_type_identifier(mifare_ultralight_handle_t *handle, uint8_t *identifier)
mifare_ultralight get the virtual card type identifier
uint8_t mifare_ultralight_select_cl1(mifare_ultralight_handle_t *handle, uint8_t id[4])
mifare_ultralight select cl1
uint8_t mifare_ultralight_write_otp(mifare_ultralight_handle_t *handle, uint8_t data[4])
mifare_ultralight write otp page
uint8_t mifare_ultralight_halt(mifare_ultralight_handle_t *handle)
mifare_ultralight halt
struct mifare_ultralight_info_s mifare_ultralight_info_t
mifare ultralight information structure definition
uint8_t mifare_ultralight_get_serial_number(mifare_ultralight_handle_t *handle, uint8_t number[7])
mifare_ultralight get the serial number
uint8_t mifare_ultralight_set_access(mifare_ultralight_handle_t *handle, mifare_ultralight_access_t access, mifare_ultralight_bool_t enable)
mifare_ultralight enable or disable access
uint8_t mifare_ultralight_anticollision_cl1(mifare_ultralight_handle_t *handle, uint8_t id[4])
mifare_ultralight anti collision cl1
uint8_t mifare_ultralight_fast_read_page(mifare_ultralight_handle_t *handle, uint8_t start_page, uint8_t stop_page, uint8_t *data, uint16_t *len)
mifare_ultralight fast read page
mifare_ultralight_type_t
mifare ultralight type enumeration definition
uint8_t mifare_ultralight_set_modulation_mode(mifare_ultralight_handle_t *handle, mifare_ultralight_modulation_mode_t mode)
mifare_ultralight set the modulation mode
uint8_t mifare_ultralight_set_password(mifare_ultralight_handle_t *handle, uint8_t pwd[4])
mifare_ultralight set the password
uint8_t mifare_ultralight_init(mifare_ultralight_handle_t *handle)
initialize the chip
mifare_ultralight_access_t
mifare_ultralight access enumeration definition
uint8_t mifare_ultralight_get_storage(mifare_ultralight_handle_t *handle, mifare_ultralight_storage_t *storage)
get the storage
uint8_t mifare_ultralight_set_protect_start_page(mifare_ultralight_handle_t *handle, uint8_t page)
mifare_ultralight set the start page of protection
uint8_t mifare_ultralight_get_access(mifare_ultralight_handle_t *handle, mifare_ultralight_access_t access, mifare_ultralight_bool_t *enable)
mifare_ultralight get the access status
uint8_t mifare_ultralight_read_otp(mifare_ultralight_handle_t *handle, uint8_t data[4])
mifare_ultralight read otp page
uint8_t mifare_ultralight_read_signature(mifare_ultralight_handle_t *handle, uint8_t signature[32])
mifare_ultralight read the signature
mifare_ultralight_modulation_mode_t
mifare ultralight modulation mode enumeration definition
uint8_t mifare_ultralight_get_protect_start_page(mifare_ultralight_handle_t *handle, uint8_t *page)
mifare_ultralight get the start page of protection
uint8_t mifare_ultralight_request(mifare_ultralight_handle_t *handle, mifare_ultralight_type_t *type)
mifare_ultralight request
uint8_t mifare_ultralight_authenticate(mifare_ultralight_handle_t *handle, uint8_t pwd[4], uint8_t pack[2])
mifare_ultralight authenticate
uint8_t mifare_ultralight_set_authenticate_limitation(mifare_ultralight_handle_t *handle, uint8_t limit)
mifare_ultralight set the authenticate limitation
uint8_t mifare_ultralight_deinit(mifare_ultralight_handle_t *handle)
close the chip
uint8_t mifare_ultralight_increment_counter(mifare_ultralight_handle_t *handle, uint8_t addr, uint32_t cnt)
mifare_ultralight increment the counter
mifare_ultralight_bool_t
mifare ultralight bool enumeration definition
uint8_t mifare_ultralight_wake_up(mifare_ultralight_handle_t *handle, mifare_ultralight_type_t *type)
mifare_ultralight wake up
uint8_t mifare_ultralight_set_virtual_card_type_identifier(mifare_ultralight_handle_t *handle, uint8_t identifier)
mifare_ultralight set the virtual card type identifier
uint8_t mifare_ultralight_get_modulation_mode(mifare_ultralight_handle_t *handle, mifare_ultralight_modulation_mode_t *mode)
mifare_ultralight get the modulation mode
uint8_t mifare_ultralight_set_lock(mifare_ultralight_handle_t *handle, uint8_t lock[5])
mifare_ultralight set the lock
uint8_t mifare_ultralight_info(mifare_ultralight_info_t *info)
get chip information
uint8_t mifare_ultralight_read_page(mifare_ultralight_handle_t *handle, uint8_t page, uint8_t data[4])
mifare_ultralight read page
uint8_t mifare_ultralight_check_tearing_event(mifare_ultralight_handle_t *handle, uint8_t addr, uint8_t *flag)
mifare_ultralight check the tearing event
uint8_t mifare_ultralight_get_authenticate_limitation(mifare_ultralight_handle_t *handle, uint8_t *limit)
mifare_ultralight get the authenticate limitation
uint8_t mifare_ultralight_anticollision_cl2(mifare_ultralight_handle_t *handle, uint8_t id[4])
mifare_ultralight anti collision cl2
struct mifare_ultralight_handle_s mifare_ultralight_handle_t
mifare ultralight handle structure definition
uint8_t mifare_ultralight_select_cl2(mifare_ultralight_handle_t *handle, uint8_t id[4])
mifare_ultralight select cl2
uint8_t mifare_ultralight_read_counter(mifare_ultralight_handle_t *handle, uint8_t addr, uint32_t *cnt)
mifare_ultralight read the counter
uint8_t mifare_ultralight_read_four_pages(mifare_ultralight_handle_t *handle, uint8_t start_page, uint8_t data[16])
mifare_ultralight read four pages
uint8_t mifare_ultralight_compatibility_write_page(mifare_ultralight_handle_t *handle, uint8_t page, uint8_t data[4])
mifare_ultralight compatibility write page
uint8_t mifare_ultralight_write_page(mifare_ultralight_handle_t *handle, uint8_t page, uint8_t data[4])
mifare_ultralight write page
uint8_t mifare_ultralight_get_version(mifare_ultralight_handle_t *handle, mifare_ultralight_version_t *version)
mifare_ultralight get the version
@ MIFARE_ULTRALIGHT_STORAGE_MF0UL21
@ MIFARE_ULTRALIGHT_STORAGE_MF0UL11
@ MIFARE_ULTRALIGHT_TYPE_INVALID
@ MIFARE_ULTRALIGHT_TYPE_ULTRALIGHT
@ MIFARE_ULTRALIGHT_ACCESS_READ_PROTECTION
@ MIFARE_ULTRALIGHT_ACCESS_USER_CONF_PROTECTION
@ MIFARE_ULTRALIGHT_MODULATION_MODE_NORMAL
@ MIFARE_ULTRALIGHT_MODULATION_MODE_STRONG
@ MIFARE_ULTRALIGHT_BOOL_FALSE
@ MIFARE_ULTRALIGHT_BOOL_TRUE
uint8_t mifare_ultralight_transceiver(mifare_ultralight_handle_t *handle, uint8_t *in_buf, uint8_t in_len, uint8_t *out_buf, uint8_t *out_len)
transceiver data
mifare ultralight handle structure definition
void(* debug_print)(const char *const fmt,...)
uint8_t(* contactless_transceiver)(uint8_t *in_buf, uint8_t in_len, uint8_t *out_buf, uint8_t *out_len)
mifare ultralight information structure definition
mifare ultralight version structure definition