Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

В этом разделе приведен перевод стандарта PKCS #11 в части касающейся объектов, поддерживаемых устройствами Рутокен, а также информация об объектах и атрибутах, определенных производителем устройств Рутокен.

Page Tree
root@self

Стандарт PKCS #11 различает несколько классов объектов, определяемых типом данных CK_OBJECT_CLASS. Объекты содержат набор атрибутов, каждый из которых имеет определенное значение. Каждый атрибут, которым обладает объект, имеет только одно значение. Следующий рисунок отображает высокоуровневую иерархию объектов стандарта и некоторых поддерживаемых ими атрибутов (рисунок 1).

Image Removed Image Added

Рисунок 2.1 – Иерархия атрибутов объектов

...

Кроме атрибутов стандарта PKCS#11, объект также может обладать определяемыми производителем атрибутами, смысл и значения которых не описаны в PKCS#11.

Создание и изменение объектов

Все функции, которые создают, изменяют или копируют объекты, используют в качестве одного из своих аргументов шаблон, который специфицирует значения атрибутов. Криптографические функции, которые создают объекты, также могут сами вносить значения некоторых дополнительных атрибутов; какие именно атрибуты будут задаваться вызовом криптографической функции зависит от того, какой используется механизм. В любом случае все требуемые атрибуты, поддерживаемые классом объектов и не имеющие значений по умолчанию, должны быть указаны при создании объекта в шаблоне или самой функцией.

Создание объектов

Объекты могут быть созданы с помощью функций стандарта PKCS#11 C_CreateObject, C_GenerateKey, C_GenerateKeyPair, C_UnwrapKey и C_DeriveKey. Кроме того, копирование уже существующих объектов (с помощью функции C_CopyObject) также создает новый объект, но этот тип создания объектов на данный момент не поддерживается устройствами Рутокен.

...

Если при попытке создать объект возникает несколько перечисленных ситуаций одновременно, то возвращаемый код ошибки может быть любым из вышеперечисленных.

Изменение объектов

Объекты могут изменяться с помощью функции C_SetAttributeValue стандарта PKCS#11. Шаблон, предоставляемый для функции C_SetAttributeValue, может содержать новые значения для атрибутов, которыми объект уже обладает; значения для атрибутов, которыми объект еще не обладает; или и те и другие сразу.

...

Все сценарии, описанные в части «Создание объектов», включая коды возвращаемых ошибок, применимы для изменения объектов с помощью функции C_SetAttributeValue, кроме ситуации с неполным шаблоном.