Библиотеки rtPKCS11 и rtPKCS11ECP реализуют функции расширения стандарта PKCS#11 для поддержки специфической функциональности устройств Рутокен.
Функции расширения предоставляют разработчику дополнительные возможности по работе с Рутокен, такие как:
- получение расширенной информации о токене;
- выполнение расширенной инициализации памяти токена;
- разблокирование PIN-кода пользователя;
- задание и считывание имени токена произвольной длины;
- запись и чтение информации для лицензирования приложений.
Функции расширения стандарта, не поддерживающие работу с каким-либо типом устройств Рутокен, при вызове возвращают код ошибки CKR_FUNCTION_NOT_SUPPORTED.
В таблице 2.25 приведен список всех функций расширения стандарта PKCS #11. Функции, работу которых поддерживают различные типы устройства Рутокен, отмечены знаком «+». Подробную информацию по конкретным функциям можно найти здесь (русский язык).
Таблица 2.25. Функции расширения стандарта PKCS#11
Функции расширения стандарта PKCS#11 | rtPKCS11 | rtPKCS11ECP | |||
Категория | Функция | Описание | Рутокен | Рутокен ЭЦП | Рутокен ЭЦП |
Функции общего назначения | C_EX_GetFunctionListExtended | получает список функций расширения библиотеки | + | + | + |
Функции для работы со слотами и токенами
| C_EX_GetTokenInfoExtended | получает расширенную информацию о Рутокен | + | + | + |
C_EX_InitToken | выполняет расширенную инициализацию памяти Рутокен | + | + | + | |
C_EX_UnblockUserPIN | разблокирует PIN-код пользователя | + | + | + | |
C_EX_SetTokenName | задает имя Рутокен произвольной длины | + | + | + | |
C_EX_GetTokenName | считывает имя Рутокен произвольной длины | + | + | + | |
C_EX_SetLicense | записывает информацию о лицензировании приложения | – | + | + | |
C_EX_GetLicense | считывает информацию о лицензировании приложения | – | + | + | |
C_EX_PKCS7Sign | подписывает данные в формате PKCS#7 | + | |||
C_EX_CreateCSR | создает запрос на выпуск сертификата и упаковывает его в PKCS#10 | + | |||
C_EX_FreeBuffer | высвобождает память, выделенную другими функциями расширения | + | |||
C_EX_SetLocalPIN | устанавливает локальный PIN-код | – | + |