...
Для работы с USB-токенами необходимо
Начиная с iOS/iPadOS 16.2 стала возможна работа USB-токенов.
Для включения поддержки USB-токенов достаточно только обновления RtPcsc.framework до версии 4.0.0 или новее.
Описание интерфейса RtPcsc для работы с NFC/VCR
Warning | ||
---|---|---|
| ||
На iOS 16.0.x, 16.1.x (до 16.2) могут не работать длительные операции, такие как: генерация ключей, подпись и проверка подписи, аппаратное хеширование. Конкретный список недоступных операций зависит от производительности устройства. |
Для работы с Рутокен ЭЦП Bluetooth необходимо
Добавить в Info.plist ключ UISupportedExternalAccessoryProtocols со значением com.aktivco.rutokenecp.
Code Block | ||||
---|---|---|---|---|
| ||||
<key>UISupportedExternalAccessoryProtocols</key>
<array>
<string>com.aktivco.rutokenecp</string>
</array> |
Описание интерфейса RtPcsc для работы с NFC/VCR
| |
Начиная с версии RtPcsc 5.0.0 для обнаружения нового считывателя с помощью "\\?PnP?\Notification", необходимо указывать количество уже известных приложению считывателей в верхнем слове dwCurrentState. Например, так:
Если ожидаемое приложением количество считывателей не совпадет с реальным, управление будет сразу же возвращено, а в верхнем слове dwEventState будет содержаться текущее количество считывателей. Пример работы с функцией SCardGetStatusChange, учитывающий поведение описанное на GitHub. |
Expand | ||
---|---|---|
| ||
|
...
- при RUTOKEN_CONTROL_CODE_START_NFC: параметр задан в формате
"\(waitMessage)\0\(workMessage)\0\0"
и содержит два сообщения:- waitMessage отображается во время ожидания карты,
- workMessage отображается во время работы с картой;
- при RUTOKEN_CONTROL_CODE_STOP_NFC: параметр содержит сообщение о завершении работы с картой;
- при RUTOKEN_CONTROL_CODE_STOP_NFC_WITH_ERROR: параметр содержит сообщение о завершении работы с картой с уведомлением об ошибке;
- при RUTOKEN_CONTROL_CODE_LAST_NFC_STOP_REASON: параметр не используется.
Рекомендуемый порядок работы с Рутокеном с NFC
...
- получить список доступных ридеров с помощью функции SCardListReaders;
- если ридер еще не появился – дождаться его появления с помощью функции SCardGetStatusChange;
- вызов функции SCardConnect для нужного ридера с параметром dwShareMode == SCARD_SHARE_DIRECT;
- вызов функции SCardControl с параметром RUTOKEN_CONTROL_CODE_START_NFC;
- работа с Рутокеном;
- вызов функции SCardControl с параметром RUTOKEN_CONTROL_CODE_STOP_NFC;
- вызов функции SCardDisconnect.
...