Максимальный размер APDU при эмуляции хост-карты. Можно дольше?

Я пытаюсь отправить данные с телефона Android в режиме эмуляции хост-карты в приложение для чтения. Я понимаю, что максимальный размер apdu должен быть около 260 байт. Однако мне нужно отправить намного больше (несколько тысяч байт). Я знаю, что могу разделить данные и отправить их «фрагментами», но я действительно беспокоюсь о стоимости этого в общей производительности. Могу ли я в любом случае отправить apdu больше, чем 260 байтов. Я тоже не против небольшого взлома, если придется. Ваше здоровье


person user3312054    schedule 08.02.2016    source источник


Ответы (1)


Чтобы ответить на мой собственный вопрос. Существует 2 типа APDU в зависимости от максимального размера данных, которые они вмещают. APDU нормального размера (256 байт) и расширенные APDU с полезной нагрузкой до 65536 байт. Однако не все смарт-карты и считыватели поддерживают увеличенную длину APDU.

Теперь, что касается Android, APDU увеличенной длины не поддерживаются ОС Android. Хотя большинство контроллеров NFC его поддерживают. Поэтому это программное ограничение, а не аппаратное. См. метод getMaxTransceiveLength в https://android.googlesource.com/platform/packages/apps/Nfc/+/master/nci/src/com/android/nfc/dhimpl/NativeNfcManager

person user3312054    schedule 15.08.2017