NFC magic cards support (#1966)

* nfc magic: introduce nfc app to work with magic cards
* nfc: add nfc device functions to API
* nfc magic: add bacis scenes
* nfc magic: add wrong card and write confirm scenes
* nfc magic: introduce magic lib
* nfc magic: write magic lib
* nfc magic: add write commands to magic lib
* nfc magic: work on worker
* furi_hal_nfc: add bits data exchage method to API
* nfc magic: rework with new API
* nfc magic: add check and wipe scenes
* nfc magic: add icons, gui fixes
* nfc: format python src

Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
gornekich
2022-11-04 11:01:44 +04:00
committed by GitHub
parent 3bd74b7f01
commit bf8fd71c00
35 changed files with 1693 additions and 0 deletions

View File

@@ -148,6 +148,7 @@ Header,+,lib/libusb_stm32/inc/usbd_core.h,,
Header,+,lib/mbedtls/include/mbedtls/des.h,,
Header,+,lib/mbedtls/include/mbedtls/sha1.h,,
Header,+,lib/micro-ecc/uECC.h,,
Header,+,lib/nfc/nfc_device.h,,
Header,+,lib/one_wire/ibutton/ibutton_worker.h,,
Header,+,lib/one_wire/maxim_crc.h,,
Header,+,lib/one_wire/one_wire_device.h,,
@@ -668,6 +669,14 @@ Function,-,coshl,long double,long double
Function,-,cosl,long double,long double
Function,+,crc32_calc_buffer,uint32_t,"uint32_t, const void*, size_t"
Function,+,crc32_calc_file,uint32_t,"File*, const FileCrcProgressCb, void*"
Function,-,crypto1_bit,uint8_t,"Crypto1*, uint8_t, int"
Function,-,crypto1_byte,uint8_t,"Crypto1*, uint8_t, int"
Function,-,crypto1_decrypt,void,"Crypto1*, uint8_t*, uint16_t, uint8_t*"
Function,-,crypto1_encrypt,void,"Crypto1*, uint8_t*, uint8_t*, uint16_t, uint8_t*, uint8_t*"
Function,-,crypto1_filter,uint32_t,uint32_t
Function,-,crypto1_init,void,"Crypto1*, uint64_t"
Function,-,crypto1_reset,void,Crypto1*
Function,-,crypto1_word,uint32_t,"Crypto1*, uint32_t, int"
Function,-,ctermid,char*,char*
Function,-,ctime,char*,const time_t*
Function,-,ctime_r,char*,"const time_t*, char*"
@@ -750,6 +759,8 @@ Function,+,elements_text_box,void,"Canvas*, uint8_t, uint8_t, uint8_t, uint8_t,
Function,+,empty_screen_alloc,EmptyScreen*,
Function,+,empty_screen_free,void,EmptyScreen*
Function,+,empty_screen_get_view,View*,EmptyScreen*
Function,-,emv_card_emulation,_Bool,FuriHalNfcTxRxContext*
Function,-,emv_read_bank_card,_Bool,"FuriHalNfcTxRxContext*, EmvApplication*"
Function,-,erand48,double,unsigned short[3]
Function,-,erf,double,double
Function,-,erfc,double,double
@@ -1161,6 +1172,7 @@ Function,+,furi_hal_nfc_ll_set_fdt_poll,void,uint32_t
Function,+,furi_hal_nfc_ll_set_guard_time,void,uint32_t
Function,+,furi_hal_nfc_ll_set_mode,FuriHalNfcReturn,"FuriHalNfcMode, FuriHalNfcBitrate, FuriHalNfcBitrate"
Function,+,furi_hal_nfc_ll_txrx,FuriHalNfcReturn,"uint8_t*, uint16_t, uint8_t*, uint16_t, uint16_t*, uint32_t, uint32_t"
Function,+,furi_hal_nfc_ll_txrx_bits,FuriHalNfcReturn,"uint8_t*, uint16_t, uint8_t*, uint16_t, uint16_t*, uint32_t, uint32_t"
Function,+,furi_hal_nfc_ll_txrx_off,void,
Function,+,furi_hal_nfc_ll_txrx_on,void,
Function,+,furi_hal_nfc_sleep,void,
@@ -1806,6 +1818,100 @@ Function,+,menu_free,void,Menu*
Function,+,menu_get_view,View*,Menu*
Function,+,menu_reset,void,Menu*
Function,+,menu_set_selected_item,void,"Menu*, uint32_t"
Function,-,mf_classic_auth_attempt,_Bool,"FuriHalNfcTxRxContext*, MfClassicAuthContext*, uint64_t"
Function,-,mf_classic_auth_init_context,void,"MfClassicAuthContext*, uint8_t"
Function,-,mf_classic_authenticate,_Bool,"FuriHalNfcTxRxContext*, uint8_t, uint64_t, MfClassicKey"
Function,-,mf_classic_check_card_type,_Bool,"uint8_t, uint8_t, uint8_t"
Function,-,mf_classic_dict_add_key,_Bool,"MfClassicDict*, uint8_t*"
Function,-,mf_classic_dict_add_key_str,_Bool,"MfClassicDict*, FuriString*"
Function,-,mf_classic_dict_alloc,MfClassicDict*,MfClassicDictType
Function,-,mf_classic_dict_check_presence,_Bool,MfClassicDictType
Function,-,mf_classic_dict_delete_index,_Bool,"MfClassicDict*, uint32_t"
Function,-,mf_classic_dict_find_index,_Bool,"MfClassicDict*, uint8_t*, uint32_t*"
Function,-,mf_classic_dict_find_index_str,_Bool,"MfClassicDict*, FuriString*, uint32_t*"
Function,-,mf_classic_dict_free,void,MfClassicDict*
Function,-,mf_classic_dict_get_key_at_index,_Bool,"MfClassicDict*, uint64_t*, uint32_t"
Function,-,mf_classic_dict_get_key_at_index_str,_Bool,"MfClassicDict*, FuriString*, uint32_t"
Function,-,mf_classic_dict_get_next_key,_Bool,"MfClassicDict*, uint64_t*"
Function,-,mf_classic_dict_get_next_key_str,_Bool,"MfClassicDict*, FuriString*"
Function,-,mf_classic_dict_get_total_keys,uint32_t,MfClassicDict*
Function,-,mf_classic_dict_is_key_present,_Bool,"MfClassicDict*, uint8_t*"
Function,-,mf_classic_dict_is_key_present_str,_Bool,"MfClassicDict*, FuriString*"
Function,-,mf_classic_dict_rewind,_Bool,MfClassicDict*
Function,-,mf_classic_emulator,_Bool,"MfClassicEmulator*, FuriHalNfcTxRxContext*"
Function,-,mf_classic_get_classic_type,MfClassicType,"int8_t, uint8_t, uint8_t"
Function,-,mf_classic_get_read_sectors_and_keys,void,"MfClassicData*, uint8_t*, uint8_t*"
Function,-,mf_classic_get_sector_by_block,uint8_t,uint8_t
Function,-,mf_classic_get_sector_trailer_block_num_by_sector,uint8_t,uint8_t
Function,-,mf_classic_get_sector_trailer_by_sector,MfClassicSectorTrailer*,"MfClassicData*, uint8_t"
Function,-,mf_classic_get_total_sectors_num,uint8_t,MfClassicType
Function,-,mf_classic_get_type_str,const char*,MfClassicType
Function,-,mf_classic_is_allowed_access_data_block,_Bool,"MfClassicData*, uint8_t, MfClassicKey, MfClassicAction"
Function,-,mf_classic_is_allowed_access_sector_trailer,_Bool,"MfClassicData*, uint8_t, MfClassicKey, MfClassicAction"
Function,-,mf_classic_is_block_read,_Bool,"MfClassicData*, uint8_t"
Function,-,mf_classic_is_card_read,_Bool,MfClassicData*
Function,-,mf_classic_is_key_found,_Bool,"MfClassicData*, uint8_t, MfClassicKey"
Function,-,mf_classic_is_sector_data_read,_Bool,"MfClassicData*, uint8_t"
Function,-,mf_classic_is_sector_read,_Bool,"MfClassicData*, uint8_t"
Function,-,mf_classic_is_sector_trailer,_Bool,uint8_t
Function,-,mf_classic_read_card,uint8_t,"FuriHalNfcTxRxContext*, MfClassicReader*, MfClassicData*"
Function,-,mf_classic_read_sector,void,"FuriHalNfcTxRxContext*, MfClassicData*, uint8_t"
Function,-,mf_classic_reader_add_sector,void,"MfClassicReader*, uint8_t, uint64_t, uint64_t"
Function,-,mf_classic_set_block_read,void,"MfClassicData*, uint8_t, MfClassicBlock*"
Function,-,mf_classic_set_key_found,void,"MfClassicData*, uint8_t, MfClassicKey, uint64_t"
Function,-,mf_classic_set_key_not_found,void,"MfClassicData*, uint8_t, MfClassicKey"
Function,-,mf_classic_set_sector_data_not_read,void,MfClassicData*
Function,-,mf_classic_update_card,uint8_t,"FuriHalNfcTxRxContext*, MfClassicData*"
Function,-,mf_classic_write_block,_Bool,"FuriHalNfcTxRxContext*, MfClassicBlock*, uint8_t, MfClassicKey, uint64_t"
Function,-,mf_classic_write_sector,_Bool,"FuriHalNfcTxRxContext*, MfClassicData*, MfClassicData*, uint8_t"
Function,-,mf_df_cat_application,void,"MifareDesfireApplication*, FuriString*"
Function,-,mf_df_cat_application_info,void,"MifareDesfireApplication*, FuriString*"
Function,-,mf_df_cat_card_info,void,"MifareDesfireData*, FuriString*"
Function,-,mf_df_cat_data,void,"MifareDesfireData*, FuriString*"
Function,-,mf_df_cat_file,void,"MifareDesfireFile*, FuriString*"
Function,-,mf_df_cat_free_mem,void,"MifareDesfireFreeMemory*, FuriString*"
Function,-,mf_df_cat_key_settings,void,"MifareDesfireKeySettings*, FuriString*"
Function,-,mf_df_cat_version,void,"MifareDesfireVersion*, FuriString*"
Function,-,mf_df_check_card_type,_Bool,"uint8_t, uint8_t, uint8_t"
Function,-,mf_df_clear,void,MifareDesfireData*
Function,-,mf_df_parse_get_application_ids_response,_Bool,"uint8_t*, uint16_t, MifareDesfireApplication**"
Function,-,mf_df_parse_get_file_ids_response,_Bool,"uint8_t*, uint16_t, MifareDesfireFile**"
Function,-,mf_df_parse_get_file_settings_response,_Bool,"uint8_t*, uint16_t, MifareDesfireFile*"
Function,-,mf_df_parse_get_free_memory_response,_Bool,"uint8_t*, uint16_t, MifareDesfireFreeMemory*"
Function,-,mf_df_parse_get_key_settings_response,_Bool,"uint8_t*, uint16_t, MifareDesfireKeySettings*"
Function,-,mf_df_parse_get_key_version_response,_Bool,"uint8_t*, uint16_t, MifareDesfireKeyVersion*"
Function,-,mf_df_parse_get_version_response,_Bool,"uint8_t*, uint16_t, MifareDesfireVersion*"
Function,-,mf_df_parse_read_data_response,_Bool,"uint8_t*, uint16_t, MifareDesfireFile*"
Function,-,mf_df_parse_select_application_response,_Bool,"uint8_t*, uint16_t"
Function,-,mf_df_prepare_get_application_ids,uint16_t,uint8_t*
Function,-,mf_df_prepare_get_file_ids,uint16_t,uint8_t*
Function,-,mf_df_prepare_get_file_settings,uint16_t,"uint8_t*, uint8_t"
Function,-,mf_df_prepare_get_free_memory,uint16_t,uint8_t*
Function,-,mf_df_prepare_get_key_settings,uint16_t,uint8_t*
Function,-,mf_df_prepare_get_key_version,uint16_t,"uint8_t*, uint8_t"
Function,-,mf_df_prepare_get_value,uint16_t,"uint8_t*, uint8_t"
Function,-,mf_df_prepare_get_version,uint16_t,uint8_t*
Function,-,mf_df_prepare_read_data,uint16_t,"uint8_t*, uint8_t, uint32_t, uint32_t"
Function,-,mf_df_prepare_read_records,uint16_t,"uint8_t*, uint8_t, uint32_t, uint32_t"
Function,-,mf_df_prepare_select_application,uint16_t,"uint8_t*, uint8_t[3]"
Function,-,mf_df_read_card,_Bool,"FuriHalNfcTxRxContext*, MifareDesfireData*"
Function,-,mf_ul_check_card_type,_Bool,"uint8_t, uint8_t, uint8_t"
Function,-,mf_ul_prepare_emulation,void,"MfUltralightEmulator*, MfUltralightData*"
Function,-,mf_ul_prepare_emulation_response,_Bool,"uint8_t*, uint16_t, uint8_t*, uint16_t*, uint32_t*, void*"
Function,-,mf_ul_pwdgen_amiibo,uint32_t,FuriHalNfcDevData*
Function,-,mf_ul_pwdgen_xiaomi,uint32_t,FuriHalNfcDevData*
Function,-,mf_ul_read_card,_Bool,"FuriHalNfcTxRxContext*, MfUltralightReader*, MfUltralightData*"
Function,-,mf_ul_reset,void,MfUltralightData*
Function,-,mf_ul_reset_emulation,void,"MfUltralightEmulator*, _Bool"
Function,-,mf_ultralight_authenticate,_Bool,"FuriHalNfcTxRxContext*, uint32_t, uint16_t*"
Function,-,mf_ultralight_fast_read_pages,_Bool,"FuriHalNfcTxRxContext*, MfUltralightReader*, MfUltralightData*"
Function,-,mf_ultralight_get_config_pages,MfUltralightConfigPages*,MfUltralightData*
Function,-,mf_ultralight_read_counters,_Bool,"FuriHalNfcTxRxContext*, MfUltralightData*"
Function,-,mf_ultralight_read_pages,_Bool,"FuriHalNfcTxRxContext*, MfUltralightReader*, MfUltralightData*"
Function,-,mf_ultralight_read_pages_direct,_Bool,"FuriHalNfcTxRxContext*, uint8_t, uint8_t*"
Function,-,mf_ultralight_read_signature,_Bool,"FuriHalNfcTxRxContext*, MfUltralightData*"
Function,-,mf_ultralight_read_tearing_flags,_Bool,"FuriHalNfcTxRxContext*, MfUltralightData*"
Function,-,mf_ultralight_read_version,_Bool,"FuriHalNfcTxRxContext*, MfUltralightReader*, MfUltralightData*"
Function,-,mkdtemp,char*,char*
Function,-,mkostemp,int,"char*, int"
Function,-,mkostemps,int,"char*, int, int"
@@ -1829,6 +1935,19 @@ Function,-,nextafterl,long double,"long double, long double"
Function,-,nexttoward,double,"double, long double"
Function,-,nexttowardf,float,"float, long double"
Function,-,nexttowardl,long double,"long double, long double"
Function,+,nfc_device_alloc,NfcDevice*,
Function,+,nfc_device_clear,void,NfcDevice*
Function,+,nfc_device_data_clear,void,NfcDeviceData*
Function,+,nfc_device_delete,_Bool,"NfcDevice*, _Bool"
Function,+,nfc_device_free,void,NfcDevice*
Function,+,nfc_device_load,_Bool,"NfcDevice*, const char*, _Bool"
Function,+,nfc_device_load_key_cache,_Bool,NfcDevice*
Function,+,nfc_device_restore,_Bool,"NfcDevice*, _Bool"
Function,+,nfc_device_save,_Bool,"NfcDevice*, const char*"
Function,+,nfc_device_save_shadow,_Bool,"NfcDevice*, const char*"
Function,+,nfc_device_set_loading_callback,void,"NfcDevice*, NfcLoadingCallback, void*"
Function,+,nfc_device_set_name,void,"NfcDevice*, const char*"
Function,+,nfc_file_select,_Bool,NfcDevice*
Function,-,nfca_append_crc16,void,"uint8_t*, uint16_t"
Function,-,nfca_emulation_handler,_Bool,"uint8_t*, uint16_t, uint8_t*, uint16_t*"
Function,-,nfca_get_crc16,uint16_t,"uint8_t*, uint16_t"
@@ -1913,6 +2032,7 @@ Function,+,power_reboot,void,PowerBootMode
Function,+,powf,float,"float, float"
Function,-,powl,long double,"long double, long double"
Function,-,printf,int,"const char*, ..."
Function,-,prng_successor,uint32_t,"uint32_t, uint32_t"
Function,+,protocol_dict_alloc,ProtocolDict*,"const ProtocolBase**, size_t"
Function,+,protocol_dict_decoders_feed,ProtocolId,"ProtocolDict*, _Bool, uint32_t"
Function,+,protocol_dict_decoders_feed_by_feature,ProtocolId,"ProtocolDict*, uint32_t, _Bool, uint32_t"
@@ -2129,6 +2249,7 @@ Function,-,rfalT1TPollerRall,ReturnCode,"const uint8_t*, uint8_t*, uint16_t, uin
Function,-,rfalT1TPollerRid,ReturnCode,rfalT1TRidRes*
Function,-,rfalT1TPollerWrite,ReturnCode,"const uint8_t*, uint8_t, uint8_t"
Function,-,rfalTransceiveBitsBlockingTx,ReturnCode,"uint8_t*, uint16_t, uint8_t*, uint16_t, uint16_t*, uint32_t, uint32_t"
Function,-,rfalTransceiveBitsBlockingTxRx,ReturnCode,"uint8_t*, uint16_t, uint8_t*, uint16_t, uint16_t*, uint32_t, uint32_t"
Function,-,rfalTransceiveBlockingRx,ReturnCode,
Function,-,rfalTransceiveBlockingTx,ReturnCode,"uint8_t*, uint16_t, uint8_t*, uint16_t, uint16_t*, uint32_t, uint32_t"
Function,-,rfalTransceiveBlockingTxRx,ReturnCode,"uint8_t*, uint16_t, uint8_t*, uint16_t, uint16_t*, uint32_t, uint32_t"
1 entry status name type params
148 Header + lib/mbedtls/include/mbedtls/des.h
149 Header + lib/mbedtls/include/mbedtls/sha1.h
150 Header + lib/micro-ecc/uECC.h
151 Header + lib/nfc/nfc_device.h
152 Header + lib/one_wire/ibutton/ibutton_worker.h
153 Header + lib/one_wire/maxim_crc.h
154 Header + lib/one_wire/one_wire_device.h
669 Function - cosl long double long double
670 Function + crc32_calc_buffer uint32_t uint32_t, const void*, size_t
671 Function + crc32_calc_file uint32_t File*, const FileCrcProgressCb, void*
672 Function - crypto1_bit uint8_t Crypto1*, uint8_t, int
673 Function - crypto1_byte uint8_t Crypto1*, uint8_t, int
674 Function - crypto1_decrypt void Crypto1*, uint8_t*, uint16_t, uint8_t*
675 Function - crypto1_encrypt void Crypto1*, uint8_t*, uint8_t*, uint16_t, uint8_t*, uint8_t*
676 Function - crypto1_filter uint32_t uint32_t
677 Function - crypto1_init void Crypto1*, uint64_t
678 Function - crypto1_reset void Crypto1*
679 Function - crypto1_word uint32_t Crypto1*, uint32_t, int
680 Function - ctermid char* char*
681 Function - ctime char* const time_t*
682 Function - ctime_r char* const time_t*, char*
759 Function + empty_screen_alloc EmptyScreen*
760 Function + empty_screen_free void EmptyScreen*
761 Function + empty_screen_get_view View* EmptyScreen*
762 Function - emv_card_emulation _Bool FuriHalNfcTxRxContext*
763 Function - emv_read_bank_card _Bool FuriHalNfcTxRxContext*, EmvApplication*
764 Function - erand48 double unsigned short[3]
765 Function - erf double double
766 Function - erfc double double
1172 Function + furi_hal_nfc_ll_set_guard_time void uint32_t
1173 Function + furi_hal_nfc_ll_set_mode FuriHalNfcReturn FuriHalNfcMode, FuriHalNfcBitrate, FuriHalNfcBitrate
1174 Function + furi_hal_nfc_ll_txrx FuriHalNfcReturn uint8_t*, uint16_t, uint8_t*, uint16_t, uint16_t*, uint32_t, uint32_t
1175 Function + furi_hal_nfc_ll_txrx_bits FuriHalNfcReturn uint8_t*, uint16_t, uint8_t*, uint16_t, uint16_t*, uint32_t, uint32_t
1176 Function + furi_hal_nfc_ll_txrx_off void
1177 Function + furi_hal_nfc_ll_txrx_on void
1178 Function + furi_hal_nfc_sleep void
1818 Function + menu_get_view View* Menu*
1819 Function + menu_reset void Menu*
1820 Function + menu_set_selected_item void Menu*, uint32_t
1821 Function - mf_classic_auth_attempt _Bool FuriHalNfcTxRxContext*, MfClassicAuthContext*, uint64_t
1822 Function - mf_classic_auth_init_context void MfClassicAuthContext*, uint8_t
1823 Function - mf_classic_authenticate _Bool FuriHalNfcTxRxContext*, uint8_t, uint64_t, MfClassicKey
1824 Function - mf_classic_check_card_type _Bool uint8_t, uint8_t, uint8_t
1825 Function - mf_classic_dict_add_key _Bool MfClassicDict*, uint8_t*
1826 Function - mf_classic_dict_add_key_str _Bool MfClassicDict*, FuriString*
1827 Function - mf_classic_dict_alloc MfClassicDict* MfClassicDictType
1828 Function - mf_classic_dict_check_presence _Bool MfClassicDictType
1829 Function - mf_classic_dict_delete_index _Bool MfClassicDict*, uint32_t
1830 Function - mf_classic_dict_find_index _Bool MfClassicDict*, uint8_t*, uint32_t*
1831 Function - mf_classic_dict_find_index_str _Bool MfClassicDict*, FuriString*, uint32_t*
1832 Function - mf_classic_dict_free void MfClassicDict*
1833 Function - mf_classic_dict_get_key_at_index _Bool MfClassicDict*, uint64_t*, uint32_t
1834 Function - mf_classic_dict_get_key_at_index_str _Bool MfClassicDict*, FuriString*, uint32_t
1835 Function - mf_classic_dict_get_next_key _Bool MfClassicDict*, uint64_t*
1836 Function - mf_classic_dict_get_next_key_str _Bool MfClassicDict*, FuriString*
1837 Function - mf_classic_dict_get_total_keys uint32_t MfClassicDict*
1838 Function - mf_classic_dict_is_key_present _Bool MfClassicDict*, uint8_t*
1839 Function - mf_classic_dict_is_key_present_str _Bool MfClassicDict*, FuriString*
1840 Function - mf_classic_dict_rewind _Bool MfClassicDict*
1841 Function - mf_classic_emulator _Bool MfClassicEmulator*, FuriHalNfcTxRxContext*
1842 Function - mf_classic_get_classic_type MfClassicType int8_t, uint8_t, uint8_t
1843 Function - mf_classic_get_read_sectors_and_keys void MfClassicData*, uint8_t*, uint8_t*
1844 Function - mf_classic_get_sector_by_block uint8_t uint8_t
1845 Function - mf_classic_get_sector_trailer_block_num_by_sector uint8_t uint8_t
1846 Function - mf_classic_get_sector_trailer_by_sector MfClassicSectorTrailer* MfClassicData*, uint8_t
1847 Function - mf_classic_get_total_sectors_num uint8_t MfClassicType
1848 Function - mf_classic_get_type_str const char* MfClassicType
1849 Function - mf_classic_is_allowed_access_data_block _Bool MfClassicData*, uint8_t, MfClassicKey, MfClassicAction
1850 Function - mf_classic_is_allowed_access_sector_trailer _Bool MfClassicData*, uint8_t, MfClassicKey, MfClassicAction
1851 Function - mf_classic_is_block_read _Bool MfClassicData*, uint8_t
1852 Function - mf_classic_is_card_read _Bool MfClassicData*
1853 Function - mf_classic_is_key_found _Bool MfClassicData*, uint8_t, MfClassicKey
1854 Function - mf_classic_is_sector_data_read _Bool MfClassicData*, uint8_t
1855 Function - mf_classic_is_sector_read _Bool MfClassicData*, uint8_t
1856 Function - mf_classic_is_sector_trailer _Bool uint8_t
1857 Function - mf_classic_read_card uint8_t FuriHalNfcTxRxContext*, MfClassicReader*, MfClassicData*
1858 Function - mf_classic_read_sector void FuriHalNfcTxRxContext*, MfClassicData*, uint8_t
1859 Function - mf_classic_reader_add_sector void MfClassicReader*, uint8_t, uint64_t, uint64_t
1860 Function - mf_classic_set_block_read void MfClassicData*, uint8_t, MfClassicBlock*
1861 Function - mf_classic_set_key_found void MfClassicData*, uint8_t, MfClassicKey, uint64_t
1862 Function - mf_classic_set_key_not_found void MfClassicData*, uint8_t, MfClassicKey
1863 Function - mf_classic_set_sector_data_not_read void MfClassicData*
1864 Function - mf_classic_update_card uint8_t FuriHalNfcTxRxContext*, MfClassicData*
1865 Function - mf_classic_write_block _Bool FuriHalNfcTxRxContext*, MfClassicBlock*, uint8_t, MfClassicKey, uint64_t
1866 Function - mf_classic_write_sector _Bool FuriHalNfcTxRxContext*, MfClassicData*, MfClassicData*, uint8_t
1867 Function - mf_df_cat_application void MifareDesfireApplication*, FuriString*
1868 Function - mf_df_cat_application_info void MifareDesfireApplication*, FuriString*
1869 Function - mf_df_cat_card_info void MifareDesfireData*, FuriString*
1870 Function - mf_df_cat_data void MifareDesfireData*, FuriString*
1871 Function - mf_df_cat_file void MifareDesfireFile*, FuriString*
1872 Function - mf_df_cat_free_mem void MifareDesfireFreeMemory*, FuriString*
1873 Function - mf_df_cat_key_settings void MifareDesfireKeySettings*, FuriString*
1874 Function - mf_df_cat_version void MifareDesfireVersion*, FuriString*
1875 Function - mf_df_check_card_type _Bool uint8_t, uint8_t, uint8_t
1876 Function - mf_df_clear void MifareDesfireData*
1877 Function - mf_df_parse_get_application_ids_response _Bool uint8_t*, uint16_t, MifareDesfireApplication**
1878 Function - mf_df_parse_get_file_ids_response _Bool uint8_t*, uint16_t, MifareDesfireFile**
1879 Function - mf_df_parse_get_file_settings_response _Bool uint8_t*, uint16_t, MifareDesfireFile*
1880 Function - mf_df_parse_get_free_memory_response _Bool uint8_t*, uint16_t, MifareDesfireFreeMemory*
1881 Function - mf_df_parse_get_key_settings_response _Bool uint8_t*, uint16_t, MifareDesfireKeySettings*
1882 Function - mf_df_parse_get_key_version_response _Bool uint8_t*, uint16_t, MifareDesfireKeyVersion*
1883 Function - mf_df_parse_get_version_response _Bool uint8_t*, uint16_t, MifareDesfireVersion*
1884 Function - mf_df_parse_read_data_response _Bool uint8_t*, uint16_t, MifareDesfireFile*
1885 Function - mf_df_parse_select_application_response _Bool uint8_t*, uint16_t
1886 Function - mf_df_prepare_get_application_ids uint16_t uint8_t*
1887 Function - mf_df_prepare_get_file_ids uint16_t uint8_t*
1888 Function - mf_df_prepare_get_file_settings uint16_t uint8_t*, uint8_t
1889 Function - mf_df_prepare_get_free_memory uint16_t uint8_t*
1890 Function - mf_df_prepare_get_key_settings uint16_t uint8_t*
1891 Function - mf_df_prepare_get_key_version uint16_t uint8_t*, uint8_t
1892 Function - mf_df_prepare_get_value uint16_t uint8_t*, uint8_t
1893 Function - mf_df_prepare_get_version uint16_t uint8_t*
1894 Function - mf_df_prepare_read_data uint16_t uint8_t*, uint8_t, uint32_t, uint32_t
1895 Function - mf_df_prepare_read_records uint16_t uint8_t*, uint8_t, uint32_t, uint32_t
1896 Function - mf_df_prepare_select_application uint16_t uint8_t*, uint8_t[3]
1897 Function - mf_df_read_card _Bool FuriHalNfcTxRxContext*, MifareDesfireData*
1898 Function - mf_ul_check_card_type _Bool uint8_t, uint8_t, uint8_t
1899 Function - mf_ul_prepare_emulation void MfUltralightEmulator*, MfUltralightData*
1900 Function - mf_ul_prepare_emulation_response _Bool uint8_t*, uint16_t, uint8_t*, uint16_t*, uint32_t*, void*
1901 Function - mf_ul_pwdgen_amiibo uint32_t FuriHalNfcDevData*
1902 Function - mf_ul_pwdgen_xiaomi uint32_t FuriHalNfcDevData*
1903 Function - mf_ul_read_card _Bool FuriHalNfcTxRxContext*, MfUltralightReader*, MfUltralightData*
1904 Function - mf_ul_reset void MfUltralightData*
1905 Function - mf_ul_reset_emulation void MfUltralightEmulator*, _Bool
1906 Function - mf_ultralight_authenticate _Bool FuriHalNfcTxRxContext*, uint32_t, uint16_t*
1907 Function - mf_ultralight_fast_read_pages _Bool FuriHalNfcTxRxContext*, MfUltralightReader*, MfUltralightData*
1908 Function - mf_ultralight_get_config_pages MfUltralightConfigPages* MfUltralightData*
1909 Function - mf_ultralight_read_counters _Bool FuriHalNfcTxRxContext*, MfUltralightData*
1910 Function - mf_ultralight_read_pages _Bool FuriHalNfcTxRxContext*, MfUltralightReader*, MfUltralightData*
1911 Function - mf_ultralight_read_pages_direct _Bool FuriHalNfcTxRxContext*, uint8_t, uint8_t*
1912 Function - mf_ultralight_read_signature _Bool FuriHalNfcTxRxContext*, MfUltralightData*
1913 Function - mf_ultralight_read_tearing_flags _Bool FuriHalNfcTxRxContext*, MfUltralightData*
1914 Function - mf_ultralight_read_version _Bool FuriHalNfcTxRxContext*, MfUltralightReader*, MfUltralightData*
1915 Function - mkdtemp char* char*
1916 Function - mkostemp int char*, int
1917 Function - mkostemps int char*, int, int
1935 Function - nexttoward double double, long double
1936 Function - nexttowardf float float, long double
1937 Function - nexttowardl long double long double, long double
1938 Function + nfc_device_alloc NfcDevice*
1939 Function + nfc_device_clear void NfcDevice*
1940 Function + nfc_device_data_clear void NfcDeviceData*
1941 Function + nfc_device_delete _Bool NfcDevice*, _Bool
1942 Function + nfc_device_free void NfcDevice*
1943 Function + nfc_device_load _Bool NfcDevice*, const char*, _Bool
1944 Function + nfc_device_load_key_cache _Bool NfcDevice*
1945 Function + nfc_device_restore _Bool NfcDevice*, _Bool
1946 Function + nfc_device_save _Bool NfcDevice*, const char*
1947 Function + nfc_device_save_shadow _Bool NfcDevice*, const char*
1948 Function + nfc_device_set_loading_callback void NfcDevice*, NfcLoadingCallback, void*
1949 Function + nfc_device_set_name void NfcDevice*, const char*
1950 Function + nfc_file_select _Bool NfcDevice*
1951 Function - nfca_append_crc16 void uint8_t*, uint16_t
1952 Function - nfca_emulation_handler _Bool uint8_t*, uint16_t, uint8_t*, uint16_t*
1953 Function - nfca_get_crc16 uint16_t uint8_t*, uint16_t
2032 Function + powf float float, float
2033 Function - powl long double long double, long double
2034 Function - printf int const char*, ...
2035 Function - prng_successor uint32_t uint32_t, uint32_t
2036 Function + protocol_dict_alloc ProtocolDict* const ProtocolBase**, size_t
2037 Function + protocol_dict_decoders_feed ProtocolId ProtocolDict*, _Bool, uint32_t
2038 Function + protocol_dict_decoders_feed_by_feature ProtocolId ProtocolDict*, uint32_t, _Bool, uint32_t
2249 Function - rfalT1TPollerRid ReturnCode rfalT1TRidRes*
2250 Function - rfalT1TPollerWrite ReturnCode const uint8_t*, uint8_t, uint8_t
2251 Function - rfalTransceiveBitsBlockingTx ReturnCode uint8_t*, uint16_t, uint8_t*, uint16_t, uint16_t*, uint32_t, uint32_t
2252 Function - rfalTransceiveBitsBlockingTxRx ReturnCode uint8_t*, uint16_t, uint8_t*, uint16_t, uint16_t*, uint32_t, uint32_t
2253 Function - rfalTransceiveBlockingRx ReturnCode
2254 Function - rfalTransceiveBlockingTx ReturnCode uint8_t*, uint16_t, uint8_t*, uint16_t, uint16_t*, uint32_t, uint32_t
2255 Function - rfalTransceiveBlockingTxRx ReturnCode uint8_t*, uint16_t, uint8_t*, uint16_t, uint16_t*, uint32_t, uint32_t

View File

@@ -786,6 +786,17 @@ FuriHalNfcReturn furi_hal_nfc_ll_txrx(
return rfalTransceiveBlockingTxRx(txBuf, txBufLen, rxBuf, rxBufLen, actLen, flags, fwt);
}
FuriHalNfcReturn furi_hal_nfc_ll_txrx_bits(
uint8_t* txBuf,
uint16_t txBufLen,
uint8_t* rxBuf,
uint16_t rxBufLen,
uint16_t* actLen,
uint32_t flags,
uint32_t fwt) {
return rfalTransceiveBitsBlockingTxRx(txBuf, txBufLen, rxBuf, rxBufLen, actLen, flags, fwt);
}
void furi_hal_nfc_ll_poll() {
rfalWorker();
}

View File

@@ -398,6 +398,7 @@ void furi_hal_nfc_ll_txrx_on();
void furi_hal_nfc_ll_txrx_off();
// TODO rework all pollers with furi_hal_nfc_ll_txrx_bits
FuriHalNfcReturn furi_hal_nfc_ll_txrx(
uint8_t* txBuf,
uint16_t txBufLen,
@@ -407,6 +408,15 @@ FuriHalNfcReturn furi_hal_nfc_ll_txrx(
uint32_t flags,
uint32_t fwt);
FuriHalNfcReturn furi_hal_nfc_ll_txrx_bits(
uint8_t* txBuf,
uint16_t txBufLen,
uint8_t* rxBuf,
uint16_t rxBufLen,
uint16_t* actLen,
uint32_t flags,
uint32_t fwt);
void furi_hal_nfc_ll_poll();
#ifdef __cplusplus