Объекты данных хранят информацию, заданную приложением.
Класс объекта (CKA_CLASS) равен CKO_DATA
.
Таблица ниже описывает атрибуты объектов данных, в дополнение к общим атрибутам хранения.
Атрибут | Тип данных | Значение |
---|---|---|
CKA_APPLICATION |
RFC2279 string
(массив
CK_UTF8CHAR ) |
Описание приложения, которое управляет объектом. По умолчанию – пусто. |
CKA_OBJECT_ID |
Byte Array
(массив
CK_BYTE ) |
Идентификатор типа данных объекта в DER-формате. По умолчанию – пусто. |
CKA_VALUE |
Byte Array
(массив
CK_BYTE ) |
Значение объекта. По умолчанию – пусто. |
CKA_COMPRESSED |
CK_BBOOL |
Атрибут является разработкой Аладдин Р.Д. и не входит в стандарт PKCS #11.
По умолчанию – |
Атрибут CKA_APPLICATION
позволяет приложениям определять владельца объекта.
Однако стандарт PKCS #11 не гарантирует, что только конкретное приложение имеет доступ к объекту данных.
Атрибут CKA_OBJECT_ID
позволяет приложениям определять типы значений объектов данных.
Однако стандарт PKCS #11 не гарантирует, что идентификатор типа данных соответствует значению данных.
Атрибут CKA_COMPRESSED
позволяет управлять компрессией.
Компрессии подвергается атрибут CKA_VALUE
у объектов CKO_CERTIFICATE
и CKO_DATA
.
Значение атрибута присваивается при создании объекта и не изменяется впоследствии.
Шаблон создания объекта данных
CK_OBJECT_CLASS class = CKO_DATA;
CK_UTF8CHAR label[] = "A data object";
CK_UTF8CHAR application[] = "An application";
CK_BYTE data[] = "Sample data";
CK_BBOOL bTrue = CK_TRUE;
CK_ATTRIBUTE template[] = {
{CKA_CLASS, &class, sizeof(class)},
{CKA_TOKEN, &bTrue, sizeof(bTrue)},
{CKA_LABEL, label, sizeof(label) - 1},
{CKA_APPLICATION, application, sizeof(application) - 1},
{CKA_VALUE, data, sizeof(data)}
};