Управление версиями наборов комманд ISO 7816 для приложений NF C HCE - PullRequest
0 голосов
/ 27 марта 2020

По сути, это вопрос о версии двоичного формата , но в свете команд ISO 7816-4 (см. 5.4), используемых в Эмуляция хост-карты контекст.

По сути, у нас есть приложение, которое связывается с другими экземплярами через HCE. Поскольку обновления устройств / приложений не синхронизированы, существует несколько версий приложения одновременно; в котором функции были добавлены или удалены.

Каков наилучший способ создания совместимой в прямом и обратном направлении набора команд? В терминах Java каждая версия приложения будет иметь несколько реализаций одного и того же интерфейса, и цель состоит в том, чтобы оба приложения были подключены к одной и той же реализации. В двух словах, это также можно рассматривать как грубое согласование возможностей.

Формат APDU ISO 7816-4 уже охватывает большую часть низкоуровневого аспекта Тип Длина Значение (TLV) двоичного транспорта.

Я до сих пор придумал

  • инициатор отправляет Select Application (AID) команду
  • цель отвечает, отвечает ОК со списком поддерживаемых идентификаторов протокола
  • инициатор сравнивает со своим списком, затем
    • выдает команду select version или, альтернативно,
    • выдает команду no supported version, если списки не имеют общего значения
  • target сравнивает выбранную версию со списком поддерживаемых протоколов,
    • , если совпадение найдено, отвечает OK, возможно добавляя метаданные, если применимо.
    • , если не сопоставлено , отвечает с ошибкой

Тогда версионные команды могут быть безопасно обменены; оба клиента знают, какую реализацию использовать.

Вопросы

  • переизобретаю ли я колесо?
  • в свете формата ADPU ISO 7816, это слишком оборонительно, возможно ли сделать то же самое, используя меньше команд?
  • что может быть полезной no supported version полезной нагрузкой, например, поддерживаемых версий и / или инструкций по обновлению?
  • есть некоторые идентификаторы команд, от которых я должен держаться подальше ( например, Android документы, похоже, намекают на то, что для одного сеанса NF C может быть выбрано более одного приложения HCE? этот подход?
  • есть ли какие-либо устройства, которые «чувствительны» к возврату больше, чем OK в ответе на выбор приложения?
...