Объекты данных

Объекты данных хранят информацию, заданную приложением.

Класс объекта (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

CK_TRUE – включить компрессию данных.

Атрибут является разработкой Аладдин Р.Д. и не входит в стандарт PKCS #11.

Применим к апплетам:
  • Криптотокен;
  • Криптотокен 2 ЭП;
  • Laser;
  • Datastore.

По умолчанию – CK_FALSE.

Атрибут 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)}
};