Skip to content
Snippets Groups Projects
This project is mirrored from https://github.com/nfc-tools/libnfc. Pull mirroring updated .
  1. Jan 05, 2025
  2. Oct 30, 2024
  3. Oct 24, 2024
  4. Jul 29, 2024
  5. Jul 28, 2024
    • Benjamin Delpy's avatar
      Fix `nfc_initiator_select_passive_target` target count on PN53x when not using... · 3f0101bd
      Benjamin Delpy authored
      Fix `nfc_initiator_select_passive_target` target count on PN53x when not using `InListPassiveTarget`
      
      When using `pn53x` chip with target not compatible with `InListPassiveTarget` (like `NMT_ISO14443BICLASS`, `NMT_ISO14443B2CT` & `NMT_ISO14443B2SR` by eg.), the logic behind `nfc_initiator_select_passive_target` to return target count seems to be buggy
      
      `nfc_initiator_select_passive_target`:
      > Returns:
      > Returns selected passive target count on success, otherwise returns libnfc's error code (negative value)
      
      In `pn53x_initiator_select_passive_target_ext`, the return value in success is always `abtTargetsData[0]`. This is correct when using `InListPassiveTarget` as the first byte is `NbTg`, but it can be problematic for other cases.
      
      - Example with a Mifare:
      ```
      gentilkiwi@pi5:~/libnfc-dev $ ./utils/nfc-list -t 1
      NFC device: Elechouse NFC Module V3 (SPI) opened
      
      ## End of function 'pn53x_initiator_select_passive_target_ext'...
      ##  abtTargetsData content is : 01 01 00 04 08 04 1a da 74 44
      ##  return will be:           0x01 (?)
      
      1 ISO14443A passive target(s) found:
      ISO/IEC 14443A (106 kbps) target:
          ATQA (SENS_RES): 00  04
             UID (NFCID1): 1a  da  74  44
            SAK (SEL_RES): 08
      ```
      
      - Example with 2x ST25TB:
      ```
      gentilkiwi@pi5:~/libnfc-dev $ ./utils/nfc-list -t 32
      NFC device: Elechouse NFC Module V3 (SPI) opened
      
      ## End of function 'pn53x_initiator_select_passive_target_ext'...
      ##  abtTargetsData content is : 35 a5 f2 a4 68 1f 02 d0
      ##  return will be:           0x35 (?)
      
      1 ISO14443B-2 ST SRx passive target(s) found:
      ISO/IEC 14443-2B ST SRx (106 kbps) target:
                      UID: 35  a5  f2  a4  68  1f  02  d0
      ```
      ```
      gentilkiwi@pi5:~/libnfc-dev $ ./utils/nfc-list -t 32
      NFC device: Elechouse NFC Module V3 (SPI) opened
      
      ## End of function 'pn53x_initiator_select_passive_target_ext'...
      ##  abtTargetsData content is : 00 92 f0 a4 68 1f 02 d0
      ##  return will be:           0x00 (?)
      
      0 ISO14443B-2 ST SRx passive target(s) found.
      ```
      
      The proposed PR will fix the target count to 1 when not using `InListPassiveTarget`, since current versions of target initialisation do not support for more.
      
      - Results:
      
      ```
      gentilkiwi@pi5:~/libnfc-dev $ ./utils/nfc-list -t 32
      NFC device: Elechouse NFC Module V3 (SPI) opened
      1 ISO14443B-2 ST SRx passive target(s) found:
      ISO/IEC 14443-2B ST SRx (106 kbps) target:
                      UID: 00  92  f0  a4  68  1f  02  d0
      
      gentilkiwi@pi5:~/libnfc-dev $ ./examples/nfc-st25tb
      |mode   : info
      Reader  : Elechouse NFC Module V3 (SPI) - via pn532_spi:/dev/spidev0.0:500000
        ...wait for card...
      Target  : ISO/IEC 14443-2B ST SRx (106 kbps)
      UID     : 00 92 f0 a4 68 1f 02 d0
      Manuf   : 0x02 - STMicroelectronics
      ChipId  : 0x1f - ST25TB04K
      Serial  : 0x68a4f09200
      |blk sz : 32 bits
      |nb blks: 128
      |sys idx: 255
      ```
      
      (also checked for non-regression with `InListPassiveTarget`, including multiples `A` targets)
      3f0101bd
  6. Feb 16, 2024
  7. Oct 21, 2023
  8. Feb 13, 2023
  9. Feb 12, 2023
  10. Sep 20, 2021
  11. Aug 14, 2021
  12. Aug 05, 2021
  13. Aug 04, 2021
  14. Jul 10, 2021
  15. Jun 13, 2021
  16. Jun 09, 2021
  17. May 12, 2021
  18. Jan 22, 2021
  19. Nov 02, 2020
  20. Oct 24, 2020
  21. Oct 20, 2020
  22. Oct 11, 2020
  23. Oct 10, 2020
    • Tim Gates's avatar
      docs: fix simple typo, mecanism -> mechanism · 126cf9c1
      Tim Gates authored
      There is a small typo in contrib/win32/libnfc/buses/uart.c, libnfc/drivers/acr122_usb.c, libnfc/drivers/acr122s.c, libnfc/drivers/arygon.c, libnfc/drivers/pn532_uart.c, libnfc/drivers/pn53x_usb.c.
      
      Should read `mechanism` rather than `mecanism`.
      126cf9c1
  24. Jul 11, 2020
  25. Jul 08, 2020
Loading