WTX (увеличение времени ожидания) необходимо для информирования читателя о том, что ему придется ждать, так как ответа пока нет, в противном случае он действительно отключится.WTX не виден на уровне APDU, так как он работает на нижних уровнях T = 0, T = 1 и T = CL.Видно, что он играет роль, аналогичную сердцебиению TLS или другому сообщению, чтобы поддерживать живые транспортные уровни.Стандартное время ожидания может быть настроено через ATR, между прочим.
Более новые карты обычно могут автоматически обрабатывать WTX, даже если эта функциональность не требуется для реализации .На старых картах, как правило, расширения WTX включены только для определенных вызовов API, что может занять больше времени, чем завершено.Очевидно, что генерация пары ключей RSA здесь является основным нарушителем, но другие операции, такие как сборка мусора при запуске и установка апплетов, также могут использовать WTX.
Если у вас более длительный метод, вам, возможно, придется выполнитьWTX себя на регулярной основе.Вы хотите выпускать WTX в течение относительно небольших периодов, чтобы обеспечить более точный контроль - если вы можете правильно оценить время, которое требуется.Предпочтительно ваш протокол также состоит из мелкозернистых APDU, так что WTX используется как можно меньше.Как выяснил М. Махдипур, выпуск WTX может привести к тому, что считыватель карт будет ждать вечно, так что это не совсем без риска (см. Комментарии ниже вопроса).
В любом случае, метод создания JavaКарта отправляет низкоуровневое сообщение WTX статическим методом APDU.waitExtension () .