Для получения комплекта разработчика JC-Mobile SDK iOS оформите заявку.
jcPKCS11-2.a
;libssl.a
, libcrypto.a
;libgost_engine.a
;Каталог содержит примеры по работе с Единой библиотекой PKCS #11.
Полный список примеров представлен в разделе Список примеров.
Для работы с устройствами JaCarta используется Единая библиотека PKCS #11, предоставляющая высокоуровневый интерфейс (см. API Единой библиотеки PKCS #11) для взаимодействия по стандарту PKCS #11 v2.30.
Принципы работы с Единой библиотекой PKCS #11 описаны в разделе Руководство по работе с библиотекой.
Предположим, что проект имеет следующую файловую структуру:
Шаги по интеграции в проект:
В Linked Frameworks and Libraries добавить:
ExternalAccessory.framework
;CoreBluetooth.framework
;libjcPKCS11-2.a
;libssl.a
;libcrypto.a
;libgost_engine.a
.Примечание
Если API JC-Mobile SDK вызывается в файлах с расширением *.m
, то дополнительно требуется добавить libc++.tdb
.
В Build Settings отключить Bitcode установив в параметр Enable Bitcode
значение No
.
В Build Settings в параметр Header Search Paths
добавить путь к директории заголовочных файлов jcPKCS11/include
, входящей в состав дистрибутива.
Примечание
Если используете openssl, то дополнительно требуется добавить openssl/include
.
В Build Settings в параметр Library Search Paths
добавить пути к директории с библиотеками jcPKCS11/lib
, openssl/lib
и openssl_gost_engine/lib
, входящих в состав дистрибутива.
В Info.plist добавить ключ Supported external accessory protocols со следующими значениями:
com.ftsafe.iR301
- для ридеров iR301-UL c разъемом Lightning;com.ftsafe.bR301
- для Bluetooth ридеров bR301.В Info.plist добавить ключ NSBluetoothPeripheralUsageDescription и предупредить пользователя, что приложение может работать с Bluetooth-устройствами.
Важно
Без этого ключа приложение не пройдет проверку в App Store Connect.
Для использования API в исходном коде необходимо импортировать файл jcPKCS11/jcPKCS11.h
.
#import "jcPKCS11/jcPKCS11.h"
Для выполнение некоторых административных функций со смарт–картами JaCarta ГОСТ, JaCarta PKI и JaCarta PKI/ГОСТ можно использовать мобильное приложение JaCarta, опубликованное в Apple App Store.
Для расширенного администрирования смарт–карт следует использовать ПК Единый Клиент JaCarta, установленный на ПК.
Выбрать интересующий пример. Наименования всех примеров можно получить выполнив команду:
$ xcodebuild -list -workspace samples/iOSSamples.xcworkspace | grep -v common
Собрать приложение, например GOST2_info
, выполнив команду:
$ xcodebuild -workspace samples/iOSSamples.xcworkspace -scheme GOST2_info -configuration Release DSTROOT=../../_out clean install
Результат сборки будет лежать в директории ./_out
.
iOSSamples.workspace
.CMD+B
или выбрав пункт меню Product -> Build
.GOST2_info
– получение информации о библиотеке, ридере, слоте и апплете;GOST2_initUser
– подготовка JaCarta-2 ГОСТ к работе с jcPKCS11 после инициализации устройства в ПО “АРМ разработчика”;GOST2_clear
– очистка всех пользовательских данных с JaCarta-2 ГОСТ;GOST2_keyPairAndCertificate2012
– создание/удаление ключевой пары ГОСТ Р 34.10–2012 (длина ключа 256 бит) и соответствующего ей сертификата;GOST2_certificateInfo
– получение информации о сертификатах;GOST2_certificateRenewal
– создания запроса на перевыпуск сертификата;GOST2_signAndVerify2012
– создания и проверки подписи данных по ГОСТ Р 34.10–2012 (длина ключа 256 бит);GOST2_signAndVerifyExternalHash2012
– создания и проверки подписи хэша по ГОСТ Р 34.11–2012 (длина хэш–кода 256 бит);GOST2_cmsSignAndVerify2012
– создания и проверки подписи сообщения
в формате CMS типа signed data с ГОСТ Р 34.10–2012 (длина ключа 256 бит);GOST2_changePinUser
– смена PIN-кода пользователя;GOST2_unlockPinUser
– разблокировка PIN-кода пользователя с помощью предъявления PUK-кода;GOST2_data
– создание, поиск и удаление бинарных объектов.PKI_appletStatus
– получение информации о готовности апплета к использованию;PKI_init
– инициализация апплета и выпуск сертификата;PKI_info
– получение полной информации о библиотеке, слоте и электронном ключе;PKI_pinUser
– изменение PIN-кода пользователя;PKI_certInfo
– получение информации о сертификатах, размещённых в памяти электронного ключа;PKI_certReissue
— перевыпуск сертификата;PKI_certDelete
– удаление сертификата с ключевой парой;PKI_signAndVerify
– создание и проверка электронной подписи;PKI_CMSSignAndVerify
– создание и проверка электронной подписи в формате CMS;PKI_data
– запись и чтение файлов в памяти электронного ключа;PKI_pinAdmin
– изменение PIN-кода администратора;PKI_pinUserUnblock
– сброс попыток предъявления PIN-кода пользователя.GOST_appletStatus
– получение информации о готовности апплета к использованию;GOST_init
– установка PIN-кода пользователя и выпуск сертификата;GOST_info
– получение полной информации о библиотеке, слоте и электронном ключе;GOST_pinUser
– изменение PIN-кода пользователя;GOST_certInfo
– получение информации о сертификатах, размещённых в памяти электронного ключа;GOST_reissue
– перевыпуск сертификата;GOST_delete
– удаление сертификата с ключевой парой;GOST_signAndVerify
– создание и проверка электронной подписи;GOST_pkcs7SignAndVerify
– создание и проверка электронной подписи в формате PKCS #7;GOST_data
– запись и чтение файлов в памяти электронного ключа;GOST_encryption
– зашифрование и расшифрование данных;GOST_pinAdmin
– изменение PIN-кода администратора;GOST_pinUserUnblock
– сброс попыток предъявления PIN-кода пользователя.LICENSE_vendorsList
– получение списка вендоров, установленных в апплете;LICENSE_changeKey
– смена ключа доступа вендора;LICENSE_createLicenses
– создание лицензий на апплете;LICENSE_readLicenses
– чтение всех лицензий;LICENSE_deleteLicenses
– удаление лицензий с апплета.