@interface JCManager : NSObject
Менеджер управления токенами.
@property (class, readonly, strong) JCManager *defaultManager;
@property (nonatomic, strong, readonly, nullable) NSString *pkcs11Version;
@property (nonatomic, strong, readonly, nullable) id<JCReaderWatcher> readerWatcher;
Примечание
Существует, только если при инициализации в параметре readers указывались JCReadersIR301AndBR301 и/или JCReadersBR301BLEAndBR500.
@property (nonatomic, strong, readonly, nullable) id<JCNFCWatcher> nfcWatcher;
Примечание
Существует, только если при инициализации в параметре readers указывались JCReadersNFC.
- (BOOL)initializeWithReaders:(JCReaders)readers tokens:(JCTokenType)tokens queue:(dispatch_queue_t _Nullable)queue handler:(JCErrorHandlerType)handler;
Инициализация менеджера. Метод запускает процесс инициализации библиотеки PKCS11.
Пример: Инициализация JCManager.
Аргументы:
nil
, то используется очередь по умолчанию;Результат:
YES
- процесс запуска инициализации библиотеки запущен;NO
- процесс запуска инициализации библиотеки не запущен.- (BOOL)finalize:(dispatch_queue_t _Nullable)queue handler:(JCErrorHandlerType)handler;
Деинициализация менеджера.
Метод запускает процесс деинициализации библиотеки PKCS11 и останавливает объекты контроля токенов (readerWatcher и nfcWatcher).
Пример: Деинициализация JCManager.
Аргументы:
nil
, то используется очередь по умолчанию;Результат:
YES
- процесс деинициализация менеджера запущен;NO
- процесс деинициализация менеджера не был запущен.- (JCBoolResult*)setLogMode:(JCLogMode)mode;
Установить режим логирования.
Примечание
Следует вызывать перед стартом initializeWithReaders.
Аргументы:
Результат:
YES
- режим логирования установлен;NO
- произошла ошибка при установке режима логирования.- (JCBoolResult*)pkcs7VerifySignature:(NSData * _Nonnull)signature data:(NSData * _Nullable)data;
Программно проверить подпись PKCS#7 формата.
Аргументы:
nil
.Результат:
YES
- подпись верна;NO
- произошла ошибка при проверке подписи. Если подпись не верна, то параметр error.userInfo[JCErrorPKCS11ResultCodeNameKey] должен быть равен CKR_SIGNATURE_INVALID
.