NFC: NDEF parser Mifare Classic support, protocol-agnostic refactor and more improvements (#265)

* Update ndef.c

included mifare classic support

* Update application.fam

* Update ndef.c

* Update ndef.c

* Update ndef.c

* Update ndef.c

* Update ndef.c for better parsing

Because mifare classic 1k has a sector trailer, the ndef parser might conflict with it if the payload is long enough or if there's too many payloads. This code removes all sector trailer in a new buffer and uses that for parsing without any problems.

* Rewrite NDEF as protocol agnostic

* Move type name buffer to stack when possible

* Parse URI without heap buffer

* Reduce binary sizes by using preprocessor defines

* Parse MFC without clone buffer and support MAD2

* Keep message count between different TLVs

* Simplify macro check

* Simplify length conversion

* Improve output of unparsed types

* Add some more logging

* Fix WiFi parsing

* Check MAD key before reading

* Rename ndef_read() to ndef_get()

* Update changelog

* Wording

---------

Co-authored-by: Willy-JL <49810075+Willy-JL@users.noreply.github.com>
This commit is contained in:
Luu
2024-10-24 07:55:47 +02:00
committed by GitHub
parent 1d65d3171e
commit 8174ffa5b3
4 changed files with 712 additions and 310 deletions

View File

@@ -115,9 +115,10 @@
- OFW: USB/BT Remote: Mouse clicker option to click as fast as possible (by @sumukhj1219)
- CLI: Print plugin name on load fail (by @Willy-JL)
- NFC:
- Added 6 new Mifare Classic keys from Bulgaria Hotel (#216 by @z3r0l1nk)
- NDEF parser supports Mifare Classic (#265 by @luu176), rewritten to be protocol-agnostic and more improvements (#265 by @Willy-JL)
- NDEF parser supports NTAG I2C Plus 1k and 2k chips too (by @RocketGod-git)
- NDEF parser decodes URL-encoded URI characters (#267 by @jaylikesbunda)
- Added 6 new Mifare Classic keys from Bulgaria Hotel (#216 by @z3r0l1nk)
- UL: Add iq aparts hotel key (by @xMasterX)
- OFW/UL: Rename 'Detect Reader' to 'Extract MFC Keys' (by @bettse & @xMasterX)
- OFW: Plantain parser improvements (by @assasinfil)