JCManager

@interface JCManager : NSObject

Менеджер управления токенами.

Поля

defaultManager

@property (class, readonly, strong) JCManager *defaultManager;
Тип - JCManager*
Возвращает общий объект менеджера управления токенами.

pkcs11Version

@property (nonatomic, strong, readonly, nullable) NSString *pkcs11Version;
Тип - NSString*
Версия библиотеки PKCS11.

readerWatcher

@property (nonatomic, strong, readonly, nullable) id<JCReaderWatcher> readerWatcher;
Тип - id<JCReaderWatcher>
Объект контроля подключения/отключения токенов на ридерах.

Примечание

Существует, только если при инициализации в параметре readers указывались JCReadersIR301AndBR301 и/или JCReadersBR301BLEAndBR500.

nfcWatcher

@property (nonatomic, strong, readonly, nullable) id<JCNFCWatcher> nfcWatcher;
Тип - id<JCNFCWatcher>
Объект поиска токенов на NFC смарт-картах.

Примечание

Существует, только если при инициализации в параметре readers указывались JCReadersNFC.

Методы

initializeWithReaders

- (BOOL)initializeWithReaders:(JCReaders)readers tokens:(JCTokenType)tokens queue:(dispatch_queue_t _Nullable)queue handler:(JCErrorHandlerType)handler;

Инициализация менеджера. Метод запускает процесс инициализации библиотеки PKCS11.

Пример: Инициализация JCManager.

Аргументы:

  • readers (JCReaders) - ожидаемые ридеры;
  • tokens (JCTokenType) - ожидаемые типы токенов;
  • queue (dispatch_queue_t) - очередь, в которой вызывается обработчик результата выполнения операции (handler). Если передан nil, то используется очередь по умолчанию;
  • handler (JCErrorHandlerType) - обработчик результата выполнения операции.

Результат:

Возвращает значение типа BOOL:
  • YES - процесс запуска инициализации библиотеки запущен;
  • NO - процесс запуска инициализации библиотеки не запущен.

finalize

- (BOOL)finalize:(dispatch_queue_t _Nullable)queue handler:(JCErrorHandlerType)handler;

Деинициализация менеджера.

Метод запускает процесс деинициализации библиотеки PKCS11 и останавливает объекты контроля токенов (readerWatcher и nfcWatcher).

Пример: Деинициализация JCManager.

Аргументы:

  • queue (dispatch_queue_t) - очередь, в которой вызывается обработчик результата выполнения операции (handler). Если передан nil, то используется очередь по умолчанию;
  • handler (JCErrorHandlerType) - обработчик результата выполнения операции.

Результат:

Возвращает значение типа BOOL:
  • YES - процесс деинициализация менеджера запущен;
  • NO - процесс деинициализация менеджера не был запущен.

setLogMode

- (JCBoolResult*)setLogMode:(JCLogMode)mode;

Установить режим логирования.

Примечание

Следует вызывать перед стартом initializeWithReaders.

Аргументы:

  • mode (JCLogMode) - режим логирования.

Результат:

Возвращает объект типа JCBoolResult, где value:
  • YES - режим логирования установлен;
  • NO - произошла ошибка при установке режима логирования.

pkcs7VerifySignature

- (JCBoolResult*)pkcs7VerifySignature:(NSData * _Nonnull)signature data:(NSData * _Nullable)data;

Программно проверить подпись PKCS#7 формата.

Аргументы:

  • signature (NSData*) - подпись в формате PKCS#7.
  • data (NSData*) - подписанные данные. Необходимо передавать, только если подпись не содержит их, в противном случае - nil.

Результат:

Возвращает объект типа JCBoolResult, где value:
  • YES - подпись верна;
  • NO - произошла ошибка при проверке подписи. Если подпись не верна, то параметр error.userInfo[JCErrorPKCS11ResultCodeNameKey] должен быть равен CKR_SIGNATURE_INVALID.