Библиотеки rtPKCS11 и rtPKCS11ECP реализуют функции расширения стандарта PKCS#11 для поддержки специфической функциональности устройств Рутокен.
Функции расширения предоставляют разработчику дополнительные возможности по работе с Рутокен, такие как:
- получение расширенной информации о токене;
- выполнение расширенной инициализации памяти токена;
- разблокирование PIN-кода пользователя;
- задание и считывание имени токена произвольной длины;
- запись и чтение информации для лицензирования приложений;
- создание запроса на сертификат и чтение информации о сертификате;
- подпись и проверка подписи сообщения в формате PKCS#7;
- управление флеш-памятью;
- получение записи журнала операций.
Функции расширения стандарта, не поддерживающие работу с каким-либо типом устройств Рутокен, при вызове возвращают код ошибки CKR_FUNCTION_NOT_SUPPORTED.
В таблице ниже приведен список всех функций расширения стандарта PKCS #11. Функции, работу которых поддерживают различные типы устройства Рутокен, отмечены знаком «+». Подробную информацию по конкретным функциям можно найти здесь.
Функции расширения стандарта PKCS#11
Функции расширения стандарта PKCS#11 | rtPKCS11 |
| rtPKCS11ECP | ||||||||
Категория | Функция | Описание | Рутокен | Рутокен Lite | Рутокен ЭЦП, | Рутокен Lite | Рутокен ЭЦП, | Рутокен PINPad | Рутокен ЭЦП 2.0 Flash | Рутокен ЭЦП Bluetooth | |
Функции общего назначения | получает список функций расширения библиотеки | + | + | + | + | + | + | + | + | ||
Функции для работы со слотами и токенами | получает расширенную информацию о Рутокен | + | + | + | + | + | + | + | + | ||
выполняет расширенную инициализацию памяти Рутокен | + | + | + | + | + | + | + | + | |||
разблокирует PIN-код пользователя | + | + | + | + | + | + | + | + | |||
задает имя Рутокен произвольной длины | + | + | + | + | + | + | + | + | |||
считывает имя Рутокен произвольной длины | + | + | + | + | + | + | + | + | |||
записывает информацию о лицензировании приложения | – | – | + | – | + | + | + | + | |||
считывает информацию о лицензировании приложения | – | – | + | – | + | + | + | + | |||
C_EX_SetLocalPIN | устанавливает локальный PIN-код | – | – | – | – | + | + | + | + | ||
Функции для работы с сертификатами | C_EX_CreateCSR | создает запрос на выпуск сертификата и упаковывает его в PKCS#10 (поддерживаемые механизмы: CKM_GOSTR3410) | – | – | – | – | + | + | + | + | |
C_EX_GetCertificateInfoText | получает информацию о сертификате из токена в текстовом виде | – | – | – | – | + | + | + | + | ||
Функции подписи и проверки подписи CMS/PKCS#7 сообщений
| подписывает данные в формате PKCS#7 | – | – | – | – | + | + | + | + | ||
C_EX_PKCS7VerifyInit | инициализирует процесс проверки подписи в формате PKCS#7 | – | – | – | – | + | + | + | + | ||
C_EX_PKCS7Verify | проверяет подпись данных, подписанных целиком | – | – | – | – | + | + | + | + | ||
C_EX_PKCS7VerifyUpdate | продолжает проверку подписи данных, подписанных по частям | – | – | – | – | + | + | + | + | ||
C_EX_PKCS7VerifyFinal | завершает проверку подписи данных, подписанных по частям | – | – | – | – | + | + | + | + | ||
C_EX_FreeBuffer | высвобождает память, выделенную другими функциями расширения | – | – | – | – | + | + | + | + | ||
Функции подписи без отображения | C_EX_SignInvisibleInit | инициализирует процедуру подписи данных без отображения на экране | – | – | – | – | – | + | – | – | |
C_EX_SignInvisible | подписывает данные без отображения на экране | – | – | – | – | – | + | – | – | ||
Функции для работы с флеш-памятью | C_EX_GetVolumesInfo | получает информацию о существующих на флеш-памяти разделах | – | – | – | – | – | – | + | – | |
C_EX_GetDriveSize | получает весь объем внешней флеш-памяти | – | – | – | – | – | – | + | – | ||
C_EX_ChangeVolumeAttributes | изменяет атрибуты доступа к разделу | – | – | – | – | – | – | + | – | ||
C_EX_FormatDrive | разделяет флеш-память на разделы | – | – | – | – | – | – | + | – | ||
Функции для работы с журналом | C_EX_GetJournal | возвращает содержимое журнала операций | – | – | – | – | версия 2.0 | + | версия 2.0 | ||
Функции для работы с подписью без отображения | C_EX_SignInvisibleInit | инициализирует процедуру подписи данных без отображения на экране | – | – | – | – | – | + | – | – | |
C_EX_SignInvisible | подписывает данные без отображения на экране | – | – | – | – | – | + | – | – | ||
Функции для работы с защищенным каналом связи | C_EX_LoadActivationKey | устанавливает ключ для защищенного канала связи (для прошивки ниже 20) | – | – | – | – | – | – | – | + | |
C_EX_SetActivationPassword | устанавливает пароль для защищенного канала связи | – | – | – | – | – | – | – | + | ||
C_EX_GenerateActivationPassword | генерирует пароль для защищенного канала связи | – | – | – | – | – | – | – | + | ||
C_EX_TokenManage | управляет режимом работы токена и таймаутом беспроводного соединения | – | – | – | – | – | – | – | + | ||
Функции специального назначeния | C_EX_SlotManage | выполняет расширенную инициализацию токена, контроль целостности токена и возвращает расширенную информацию о токене | – | – | – | – | |||||
C_EX_WrapKey | записывает в оперативную память сеансовый ключ (CEK), шифрует его общим ключом (ключом выработки, KEK) и возвращает зашифрованный сеансовый ключ | – | – | – | – | ||||||
C_EX_UnwrapKey | расшифровывает зашифрованный сеансовый ключ (CEK) | – | – | – | – |