...
Info |
---|
Внимание! Убедитесь, что ваш сертификат разработчика для iOS позволяет разрабатывать приложения для работы с NFC устройствами. |
Для работы с виртуальными считывателями (Рутокен VCR) необходимо
в Info.plist добавить ключ Bonjour services со значениями:
Code Block language xml title Entitlements.plist <key>NSBonjourServices</key> <array> <string>_ru-rutoken-vcr._udp</string> <string>_ru-rutoken-vcr._tcp</string> </array>
в Info.plist добавить ключ Privacy - Local Network Usage Description с описанием причины необходимости доступа, например: Доступ необходим для работы с VCR
Code Block language xml title Entitlements.plist <key>NSLocalNetworkUsageDescription</key> <string>Доступ необходим для работы с виртуальным считывателем Рутокен</string>
...
Работа с виртуальным считывателем
Для спаривания создания пары с новым виртуальным считывателем необходимо вызвать функцию NSString* generatePairingQR(void), она возвращает изображение QR-кода в виде base64 строки. Для спаривания этого необходимо отобразить QR-код на экране и считать его с помощью приложения Рутокен VCR.
Для получения списка спаренных сопряженных считывателей необходимо вызвать функцию NSArray* listPairedVCR(void).
Функция возвращает массив словарей, содержащих информацию о считывателях. Для каждого считывателя Рутокен VCR существует один сертификат, который хранится в keychain. Он необходим, чтобы удостовериться, что данные устройства (iPad и iPhone) спаренысопряжены.
Ключи словаря:
- name - имя считывателя
- cert - сертификат считывателя в виде BASE64-строки
- fingerprint - SHA1-хеш от сертификата считывателя
Для отмены спаривания разрыва пары со считывателем необходимо вызвать функцию BOOL unpairVCR(NSData* vcrId).
Функция возвращает true, если спаривание отмененоразрыв произошёл успешно, и false в противном случае. В качестве параметра она принимает SHA1-хеш от сертификата считывателя, спаривание пару с которым котором необходимо отменитьразорвать.
Рекомендуемый порядок работы с VCR:
- сгенерировать QR-код для спаривания создания пары с помощью функции generatePairingQR
- осуществить спаривание сопряжение с VCR
- получить список доступных считывателей с помощью функции SCardListReaders (для 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