C_CreateObject
¶C_CreateObject
(CK_SESSION_HANDLE hSession, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount, CK_OBJECT_HANDLE_PTR phObject)¶Параметры: |
|
---|
Функция C_CreateObject
используется для создания объекта с заданными атрибутами. Объекты создаются на токене, либо в памяти Единой библиотеки (например, временные объекты).
Подробную информацию по работе с объектами для каждого апплета смотрите в приложении.
Примечание
В данной функции предусмотрена компрессия
данных. Для осуществления компрессии значение атрибута CKA_COMPRESSED
для объекта
должно быть CK_TRUE`. Подробнее смотрите в приложении.
Запускается в режимах
Результат: |
Совет Полный список ошибок см. в приложении. |
---|
C_DestroyObject
¶C_DestroyObject
(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject)¶Параметры: |
|
---|
Функция C_DestroyObject
используется для удаления объекта с токена или из памяти ЕБ.
Запускается в режимах
Результат: |
Совет Полный список ошибок см. в приложении. |
---|
C_GetAttributeValue
¶C_GetAttributeValue
(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount)¶Параметры: |
|
---|
Получает значение одного или нескольких аттрибутов для указанного объекта.
Примечание
В данной функции предусмотрена компрессия
данных. Для осуществления компрессии значение атрибута CKA_COMPRESSED
для объекта
должно быть CK_TRUE`. Подробнее смотрите в приложении.
Запускается в режимах
Результат: |
Совет Полный список ошибок см. в приложении. |
---|
C_SetAttributeValue
¶C_SetAttributeValue
(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount)¶Параметры: |
|
---|
Устанавливает значение одного или нескольких аттрибутов для указанного объекта.
Примечание
В данной функции предусмотрена компрессия
данных. Для осуществления компрессии значение атрибута CKA_COMPRESSED
для объекта
должно быть CK_TRUE`. Подробнее смотрите в приложении.
Примечание
Значение атрибута CKA_VALUE
должно быть представлено в формате от младшего к старшему (little
endian).
Запускается в режимах
Результат: |
Совет Полный список ошибок см. в приложении. |
---|
C_FindObjectsInit
, C_FindObjects
и C_FindObjectsFinal
¶C_FindObjectsInit
(CK_SESSION_HANDLE hSession, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount)¶Параметры: |
|
---|
Инициализирует поиск объектов, которые совпадают с заданным шаблоном.
Запускается в режимах
См.также
Результат: |
Совет Полный список ошибок см. в приложении. |
---|
C_FindObjects
(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE_PTR phObject, CK_ULONG ulMaxObjectCount, CK_ULONG_PTR pulObjectCount)¶Параметры: |
|
---|
C_FindObjects
осуществляет поиск объектов, которые совпадают с заданным шаблоном.
Запускается в режимах
См.также
Результат: |
Совет Полный список ошибок см. в приложении. |
---|
C_FindObjectsFinal
(CK_SESSION_HANDLE hSession)¶Параметры: |
|
---|
Завершает поиск объектов.
Запускается в режимах
См.также
Результат: |
Совет Полный список ошибок см. в приложении. |
---|
Для собеспечения успешного поиска объектов, необходимо, чтобы в алгоритме были последовательно использованы все три функции.
Пример поиска объектов на языке С:
// задаем шаблон поиска сертификата
CK_ATTRIBUTE certSearchAttribs[] =
{
{ CKA_CLASS, &certClass, sizeof(certClass) }, // тип объекта
{ CKA_TOKEN, &bTrue, sizeof(bTrue) }, // объект на токене
{ CKA_LABEL, (CK_VOID_PTR)labelCert.c_str(), labelCert.size() }, // метка объекта
};
CK_OBJECT_HANDLE certHandle = 0;;
CK_ULONG certObjCount = 0;
// начинаем поиск объект с заданными атрибутами
rv = C_FindObjectsInit(session,
certSearchAttribs,
sizeof(certSearchAttribs) / sizeof(CK_ATTRIBUTE));
assert(rv == CKR_OK);
// нам нужен один объект
rv = C_FindObjects(session, &certHandle, 1, &certObjCount);
if (rv != CKR_OK || ulObjectCount == 0)
break;
// завершаем поиск
rv = C_FindObjectsFinal(session);
assert(rv == CKR_OK);