Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • RUTOKEN_CONTROL_CODE_START_NFC - запуск обнаружения по NFC;
  • RUTOKEN_CONTROL_CODE_STOP_NFC - остановка обнаружения по NFC;
  • RUTOKEN_CONTROL_CODE_LAST_NFC_STOP_REASON - возврат причины прекращения обнаружения по NFCRUTOKEN_CONTROL_CODE_STOP_NFC_WITH_ERROR - остановка обнаружения по NFC с показом иконки ошибки. Параметр pbSendBuffer содержит сообщение о завершении работы с картой с уведомлением об ошибке;
  • RUTOKEN_CONTROL_CODE_LAST_NFC_STOP_REASON - возврат причины прекращения обнаружения по NFC.


Параметр pbSendBuffer используется для передачи дополнительной информации:

  • при RUTOKEN_CONTROL_CODE_START_NFC: параметр задан в формате "\(waitMessage)\0\(workMessage)\0\0" и содержит два сообщения:
    • waitMessage отображается во время ожидания карты,
    • workMessage отображается во время работы с картой.;
  • при RUTOKEN_CONTROL_CODE_STOP_NFC: параметр содержит сообщение о завершении работы с картой.;
  • при RUTOKEN_CONTROL_CODE_LAST_NFC_STOP_REASON: параметр не используется.

...

  • получить список доступных ридеров с помощью функции SCardListReaders;
  • вызов функции SCardConnect для нужного ридера с параметром dwShareMode == SCARD_SHARE_DIRECT;
  • вызов функции SCardControl с параметром RUTOKEN_CONTROL_CODE_START_NFC;
  • работа с Рутокеном;
  • вызов функции SCardControl с параметром RUTOKEN_CONTROL_CODE_STOP_NFC;
  • вызов функции SCardDisconnect.

Причину завершения обнаружения NFC устройств можно получить с помощью вызова функции SCardControl с параметром RUTOKEN_CONTROL_CODE_LAST_NFC_STOP_REASON.

...

  • RUTOKEN_NFC_STOP_REASON_FINISHED - вызов SCardControl с параметром RUTOKEN_CONTROL_CODE_STOP_NFC;
  • RUTOKEN_NFC_STOP_REASON_UNKNOWN - причина завершения неизвестна;
  • RUTOKEN_NFC_STOP_REASON_TIMEOUT - системный таймаут (на устройствах под управлением iOS предоставляется 20 секунд на одну NFC сессию);
  • RUTOKEN_NFC_STOP_REASON_CANCELLED_BY_USER - нажатие кнопки "Отмена" на системном окне обнаружения NFC;
  • RUTOKEN_NFC_STOP_REASON_NO_ERROR - системное окно работы с NFC еще не опускалось, ошибок нет.

Получение типа устройства Рутокен

...

  • Вызвать функцию SCardEstablishContext;
  • Сгенерировать QR-код для создания пары с помощью функции generatePairingQR;
  • Запустить процесс ожидания подключения ридеров, вызвав функцию SCardGetStatusChange;
  • Осуществить сопряжение с VCR и дождаться подключения ридера на уровне RtPcsc (для iPad будут отображаться доступные виртуальные считыватели);
  • Вызов функции SCardConnect для нужного считывателя с параметром dwShareMode == SCARD_SHARE_DIRECT;
  • Вызов функции SCardControl с параметром RUTOKEN_CONTROL_CODE_START_NFC;
  • Работа с Рутокеном;
  • Вызов функции SCardControl с параметром RUTOKEN_CONTROL_CODE_STOP_NFC;
  • Вызов функции SCardDisconnect.

Пример работы с API

Примеры работы с API есть в репозитории на GitHub rutoken-demoshift-ios в файле https://github.com/AktivCo/rutoken-demoshift-ios/blob/master/demoshift/PcscWrapper/PcscWrapper.swift