Почему длина байта этой ATS такая большая? - PullRequest
0 голосов
/ 13 февраля 2019

Тестируя с помощью DESFire, я взял следующие ATS: 0x75 0x77 0x81 0x02 0x80.

Из того, что я могу сказать, ISO / IEC 14443-4 говорит, что первый байт должен быть«длина байта» и должна указывать общее количество байтов, отправленных как часть ATS.Тогда почему первый байт 0x75?Если вы проигнорируете первый клочок, значение будет правильным, но есть ли какая-то причина, по которой мне действительно нужно это сделать, или нет никакой связи между этим байтом и значением длины?

Примечание: ATS был полученчерез libnfc через nfc_initiator_select_passive_target.

1 Ответ

0 голосов
/ 13 февраля 2019

САР отлично.libnfc не включает байт длины в значение, хранящееся в nt.nti.nai.abtAts.Вместо этого длина ATS сохраняется в nt.nti.nai.szAtsLen.Следовательно, первый байт - это не байт длины, а байт формата.Это указывает на то, что TA (1), TB (1) и TC (1) присутствуют (Y (1) = 7h), и что FSC составляет 64 байта (FSCI = 5h).Оставшиеся байты затем декодируются как:

  • TA (1) = 77h: все три делителя поддерживаются для обоих направлений
  • TB (1) = 81h: FWT = 256 * 16 / f_c* 2 ^ 8 = 77 мс, SFGT = 256 * 16 / f_c * 2 ^ 1 = 600 мкс
  • TC (1) = 02h: CID поддерживается, NAD не поддерживается
  • Исторические байты:80ч
...