Это не класс объектов, поэтому не требуется определение CKO_.
В объектах ключей хранятся ключи шифрования и аутентификации, которые могут быть:
Таблица ниже описывает атрибуты объектов ключей, в дополнение к общим атрибутам.
| Атрибут | Тип данных | Значение | 
|---|---|---|
| CKA_KEY_TYPE1,5 | CK_KEY_TYPE | Тип ключа. | 
| CKA_ID8 | Byte Array (массив  CK_BYTE) | Идентификатор ключа. По умолчанию – пусто. | 
| CKA_START_DATE8 | CK_DATE | Дата начала действия ключа. По умолчанию – пусто. | 
| CKA_END_DATE8 | CK_DATE | Дата истечения действия ключа. По умолчанию – пусто. | 
| CKA_DERIVE8 | CK_BBOOL | 
 По умолчанию –  | 
| CKA_LOCAL2,4,6 | CK_BBOOL | 
 | 
| CKA_KEY_GEN_MECHANISM2,4,6 | CK_MECHANISM_TYPE | Идентификатор механизма, который используется для генерации материала ключа. | 
| CKA_ALLOWED_MECHANISMS | CK_MECHANISM_TYPE_PTR | Список механизмов, которые можно использовать с данным ключом.
Количество механизмов в массиве – параметр ulValueLenатрибута, разделенный на размерCK_MECHANISM_TYPE. | 
C_CreateObject().C_CreateObject().C_GenerateKey() или C_GenerateKeyPair().C_UnwrapKey().C_UnwrapKey().C_SetAttributeValue()
или в процессе копирования объекта с использованием C_CopyObject().
Однако в некоторых случаях определенный токен может и не разрешить
изменение атрибута в процессе выполнения C_CopyObject().Поле CKA_ID предназначено для различения нескольких ключей.
В случае с открытыми и секретными ключами данное поле предназначено для управления различными ключами,
которые принадлежат одному субъекту;
идентификатор для открытого ключа и для соответствующего ему секретного ключа должны быть одинаковыми.
Идентификатор ключа также должен быть одинаковым и для соответствующего сертификата, если таковой существует.
Однако Cryptoki не настаивает на таких привязках. В случае с секретными ключами значение атрибута CKA_ID зависит от приложения.
Атрибуты CKA_START_DATE и CKA_END_DATE используются только для ссылки на них;
Cryptoki не придает им никакого особого значения. В частности, он не ограничивает
использование ключа в соответствии с датами; этим занимается приложение.
Атрибут CKA_DERIVE имеет значение CK_TRUE тогда и только тогда,
когда из данного ключа можно вывести другие ключи.
Атрибут CKA_LOCAL имеет значение CK_TRUE тогда и только тогда,
когда значение ключа было изначально сгенерировано на носителе
с использованием вызова функции C_GenerateKey() или C_GenerateKeyPair().
Атрибут CKA_KEY_GEN_MECHANISM определяет механизм генерации ключа,
который используется для генерации материала ключа. Он содержит действительное значение
только в том случае, если атрибут CKA_LOCAL имеет значение CK_TRUE.
Если CKA_LOCAL имеет значение CK_FALSE, то атрибут CKA_KEY_GEN_MECHANISM
принимает значение CK_UNAVAILABLE_INFORMATION.