Общие

CK_C_INITIALIZE_ARGS

Используется в:
CK_C_INITIALIZE_ARGS
typedef struct CK_C_INITIALIZE_ARGS {
  CK_CREATEMUTEX    CreateMutex;
  CK_DESTROYMUTEX   DestroyMutex;
  CK_LOCKMUTEX      LockMutex;
  CK_UNLOCKMUTEX    UnlockMutex;
  CK_FLAGS          flags;
  CK_VOID_PTR       pReserved;
} CK_C_INITIALIZE_ARGS;

Поддерживаются следующие флаги (flags):

  • CKF_LIBRARY_CANT_CREATE_OS_THREADS (0x00000001) – True, если потоки исполнения приложения, которые осуществляют вызовы к библиотеке, не могут использовать родные вызовы операционной системы для создания новых потоков. False – в обратном случае.

  • CKF_OS_LOCKING_OK (0x00000002) – True, если библиотека может использовать родную систему потоков операционной системы для захвата ресурса. False – в противном случае.

  • CKF_DEVELOPER_MODE (0x80000000) – установка этого флага ускоряет выполнение функций: C_Login() и C_Sign()/C_SignUpdate(). Ускорение обеспечивается засчет отключения проверки целостности и корректности функционирования. Рекомендуется использовать только для целей разработки и тестирования.

    Предупреждение

    Данный флаг поддерживается только апплетом Криптотокен.

CK_VERSION

CK_VERSION
typedef struct CK_VERSION {
  CK_BYTE   major;
  CK_BYTE   minor;
} CK_VERSION;
CK_BYTE major

Целая часть номера версии.

CK_BYTE minor

1/100 часть номера версии.

CK_INFO

Используется в:
CK_INFO_PTR

Указатель на структуру CK_INFO.

typedef CK_INFO CK_PTR CK_INFO_PTR;
CK_INFO
typedef struct CK_INFO {
  CK_VERSION    cryptokiVersion;
  CK_UTF8CHAR   manufacturerID[32];
  CK_FLAGS      flags;
  CK_UTF8CHAR   libraryDescription[32];
  CK_VERSION    libraryVersion;
} CK_INFO;
CK_VERSION cryptokiVersion

Версия стандарта PKCS #11, с которым совместима библиотека Cryptoki. В текущей версии библиотеки это поле принимает значение 2.30.

CK_UTF8CHAR manufacturerID(32)

Идентификатор, определяющий разработчика библиотеки Cryptoki. Всегда принимает значение: Aladdin R.D..

CK_FLAGS flags

Зарезервированное поле флагов. Должно принимать значение 0.

CK_UTF8CHAR libraryDescription(32)

Описание библиотеки. Всегда принимает значение: JaCarta PKCS#11 module.

CK_VERSION libraryVersion

Версия библиотеки jcPKCS11-2.

CK_ATTRIBUTE

Используется в:
CK_ATTRIBUTE_PTR

Указатель на структуру CK_ATTRIBUTE.

typedef CK_ATTRIBUTE CK_PTR CK_ATTRIBUTE_PTR;
CK_ATTRIBUTE
typedef struct CK_ATTRIBUTE {
  CK_ATTRIBUTE_TYPE   type;
  CK_VOID_PTR         pValue;
  CK_ULONG            ulValueLen;
} CK_ATTRIBUTE;
CK_ATTRIBUTE_TYPE type

Тип атрибута.

CK_VOID_PTR pValue

Значение атрибута.

CK_ULONG ulValueLen

Размер значения.

CK_DATE

CK_DATE

Структура, описывающая дату.

typedef struct CK_DATE {
  CK_CHAR   year[4];
  CK_CHAR   month[2];
  CK_CHAR   day[2];
} CK_DATE;
CK_CHAR year(4)

Год. Возможные значения: “1900” – “9999”.

CK_CHAR month(2)

Месяц. Возможные значения: “01” – “12”.

CK_CHAR day(2)

День. Возможные значения: “01” – “31”.

CK_MECHANISM

Используется в:
CK_MECHANISM_PTR

Указатель на структуру CK_MECHANISM.

typedef CK_MECHANISM CK_PTR CK_MECHANISM_PTR;
CK_MECHANISM
typedef struct CK_MECHANISM {
  CK_MECHANISM_TYPE   mechanism;
  CK_VOID_PTR         pParameter;
  CK_ULONG            ulParameterLen;
} CK_MECHANISM;
CK_MECHANISM_TYPE mechanism

Тип механизма.

CK_VOID_PTR pParameter

Указатель на параметр, если требуется.

CK_ULONG ulParameterLen

Размер параметра в байтах.

CK_MECHANISM_INFO

Используется в:
CK_MECHANISM_INFO_PTR

Указатель на структуру CK_MECHANISM_INFO.

typedef CK_MECHANISM_INFO CK_PTR CK_MECHANISM_INFO_PTR;
CK_MECHANISM_INFO
typedef struct CK_MECHANISM_INFO {
  CK_ULONG   ulMinKeySize;
  CK_ULONG   ulMaxKeySize;
  CK_FLAGS   flags;
} CK_MECHANISM_INFO;
CK_ULONG ulMinKeySize

Минимальный размер ключа для механизма.

CK_ULONG ulMaxKeySize

Максимальный размер ключа для механизма.

CK_FLAGS flags

Флаги, определяющие возможности механизма.

Поле flags может содержать следующие флаги:

  • CKF_HW (0x00000001) – аппаратно реализуемый механизм.
  • CKF_ENCRYPT (0x00000100) – механизм зашифрования данных.
  • CKF_DECRYPT (0x00000200) – механизм расшифрования данных.
  • CKF_DIGEST (0x00000400) – механизм хэширования.
  • CKF_SIGN (0x00000800) – механизм формирования ЭП и имитовставки.
  • CKF_SIGN_RECOVER (0x00001000) – для поддерживаемых библиотекой Cryptoki механизмов этот флаг не установлен.
  • CKF_VERIFY (0x00002000) – механизм проверки ЭП и имитовставки.
  • CKF_VERIFY_RECOVER (0x00004000) – для поддерживаемых библиотекой Cryptoki механизмов этот флаг не установлен.
  • CKF_GENERATE (0x00008000) – механизм выработки симметричных ключей.
  • CKF_GENERATE_KEY_PAIR (0x00010000) – механизм генерации ключевой пары.
  • CKF_WRAP (0x00020000) – механизм экспорта симметричных ключей.
  • CKF_UNWRAP (0x00040000) – механизм импорта зашифрованных криптографических ключей.
  • CKF_DERIVE (0x00080000) – механизм выработки общего ключа.
  • CKF_EXTENSION (0x80000000) – для поддерживаемых библиотекой Cryptoki механизмов этот флаг не установлен.

CK_SLOT_INFO

Используется в:
CK_SLOT_INFO_PTR

Указатель на структуру CK_SLOT_INFO.

typedef CK_SLOT_INFO CK_PTR CK_SLOT_INFO_PTR;
CK_SLOT_INFO
typedef struct CK_SLOT_INFO {
  CK_UTF8CHAR   slotDescription[64];
  CK_UTF8CHAR   manufacturerID[32];
  CK_FLAGS      flags;
  CK_VERSION    hardwareVersion;
  CK_VERSION    firmwareVersion;
} CK_SLOT_INFO;
CK_UTF8CHAR slotDescription(64)

Строка символов с описанием слота.

CK_UTF8CHAR manufacturerID(32)

Идентификатор, определяющий разработчика библиотеки Cryptoki. Поле идентификатора принимает значение Aladdin R.D..

CK_FLAGS flags

Битовые флаги, определяющие возможности и состояние устройства.

CK_VERSION hardwareVersion

Номер аппаратной версии слота.

CK_VERSION firmwareVersion

Номер версии прошивки слота.

Поле flags может содержать следующие флаги:

  • CKF_TOKEN_PRESENT (0x00000001) – True, если в слоте наличествует токен.
  • CKF_REMOVABLE_DEVICE (0x00000002) – True, если ридер поддерживает извлекаемые устройства.
  • CKF_HW_SLOT (0x00000004) – True, если слот аппаратный.

CK_TOKEN_INFO

Используется в:
CK_TOKEN_INFO_PTR

Указатель на структуру CK_TOKEN_INFO.

typedef CK_TOKEN_INFO CK_PTR CK_TOKEN_INFO_PTR;
CK_TOKEN_INFO
typedef struct CK_TOKEN_INFO {
  CK_UTF8CHAR   label[32];
  CK_UTF8CHAR   manufacturerID[32];
  CK_UTF8CHAR   model[16];
  CK_CHAR       serialNumber[16];
  CK_FLAGS      flags;
  CK_ULONG      ulMaxSessionCount;
  CK_ULONG      ulSessionCount;
  CK_ULONG      ulMaxRwSessionCount;
  CK_ULONG      ulRwSessionCount;
  CK_ULONG      ulMaxPinLen;
  CK_ULONG      ulMinPinLen;
  CK_ULONG      ulTotalPublicMemory;
  CK_ULONG      ulFreePublicMemory;
  CK_ULONG      ulTotalPrivateMemory;
  CK_ULONG      ulFreePrivateMemory;
  CK_VERSION    hardwareVersion;
  CK_VERSION    firmwareVersion;
  CK_CHAR       utcTime[16];
} CK_TOKEN_INFO;
CK_UTF8CHAR label(32)

Назначаемая приложением метка токена. Присваивается в момент инициализации.

CK_UTF8CHAR manufacturerID(32)

Идентификатор, определяющий разработчика библиотеки Cryptoki. Поле идентификатора принимает значение Aladdin R.D..

CK_UTF8CHAR model(16)

Модель устройства. Для поддерживаемых Cryptoki-библиотекой апплетов/устройств это поле принимает следующие значения:

CK_CHAR serialNumber(16)

Серийный номер.

CK_FLAGS flags

Битовые флаги, определяющие возможности и состояние устройства.

CK_ULONG ulMaxSessionCount

Максимальное количество сеансов работы одного приложения с устройством. Для поддерживаемых Cryptoki-библиотекой устройств это поле принимает предусмотренное стандартом PKCS #11 значение CK_EFFECTIVELY_INFINITE.

CK_ULONG ulSessionCount

Количество открытых сеансов работы данного приложения с устройством. Для поддерживаемых Cryptoki-библиотекой устройств это поле принимает предусмотренное стандартом PKCS #11 значение CK_UNAVAILABLE_INFORMATION.

CK_ULONG ulMaxRwSessionCount

Максимальное количество сеансов одного приложения для чтения и записи в устройство. Для поддерживаемых Cryptoki-библиотекой устройств это поле принимает предусмотренное стандартом PKCS #11 значение CK_EFFECTIVELY_INFINITE.

CK_ULONG ulRwSessionCount

Количество открытых в данный момент данным приложением сеансов для чтения и записи. Для поддерживаемых Cryptoki-библиотекой устройств это поле принимает предусмотренное стандартом PKCS #11 значение CK_UNAVAILABLE_INFORMATION.

CK_ULONG ulMaxPinLen

Максимальная длина PIN-кода в байтах. Для поддерживаемых Cryptoki-библиотекой устройств это поле может принимать значение 16 или 32 в зависимости от апплета.

CK_ULONG ulMinPinLen

Минимальная длина PIN-кода в байтах. Для поддерживаемых Cryptoki-библиотеки устройств это поле может принимать значение 4 или 6 в зависимости от апплета.

CK_ULONG ulTotalPublicMemory

Согласно стандарту PKCS #11 в это поле должен записываться общий размер памяти, который может быть выделен для хранения публичных объектов. В поддерживаемых Cryptoki-библиотекой устройствах для хранения публичных и приватных объектов используется одна и та же память. Текущая версия модуля присваивает этому полю предусмотренное стандартом PKCS #11 значение CK_UNAVAILABLE_INFORMATION.

CK_ULONG ulFreePublicMemory

Согласно стандарту PKCS #11 в это поле должен записываться размер памяти, доступной для хранения публичных объектов. В поддерживаемых Cryptoki-библиотекой устройствах для хранения публичных и приватных объектов используется одна и та же память. Поэтому в данное поле записывается количество байтов памяти, доступной как для приватных, так и для публичных объектов. При этом, если размер доступной памяти больше 32 КБ, поле принимает значение 32767.

CK_ULONG ulTotalPrivateMemory

Согласно стандарту PKCS #11, в это поле должен записываться общий размер памяти, которая может быть выделена для хранения приватных объектов. В поддерживаемых Cryptoki-библиотекой устройствах для хранения открытых и приватных объектов используется одна и та же память. Текущая версия модуля присваивает этому полю предусмотренное стандартом PKCS #11 значение CK_UNAVAILABLE_INFORMATION.

CK_ULONG ulFreePrivateMemory

Согласно стандарту PKCS #11, в это поле должен записываться размер памяти, доступной для хранения приватных объектов. В поддерживаемых Cryptoki-библиотекой устройствах для хранения публичных и приватных объектов используется одна и та же память. Поэтому в данное поле записывается количество байтов памяти, доступной как для приватных, так и для публичных объектов. При этом, если размер доступной памяти больше 32 КБ, поле принимает значение 32767.

CK_VERSION hardwareVersion

Номер версии устройства.

CK_VERSION firmwareVersion

Номер версии прошивки.

CK_CHAR utcTime(16)

Поддерживаемые Cryptoki-библиотекой устройства не содержат встроенных часов. Поле заполняется нулями.

Поле flags может содержать следующие флаги:

  • CKF_RNG (0x00000001) – флаг установлен, если в токене присутствует встроенный генератор случайных чисел. Всегда установлен.
  • CKF_WRITE_PROTECTED (0x00000002) – флаг установлен, когда устройство работает в гостевом режиме, и не установлен, когда устройство работает в режимах, требующих ввода PIN-кода.
  • CKF_LOGIN_REQIURED (0x00000004) – флаг установлен, если выполнение некоторых криптографических функций требует, чтобы пользователь был залогинен. Всегда установлен.
  • CKF_USER_PIN_INITIALIZED (0x00000008) – флаг установлен, если инициализирован PIN-код пользователя, и не установлен в противном случае.
  • CKF_RESTORE_KEY_NOT_NEEDED (0x00000020) – установлен, если успешное сохранение состояния криптографических операций сеанса всегда содержит все ключи, необходимые для восстановления сессии. Всегда не установлен.
  • CKF_CLOCK_ON_TOKEN (0x00000040) – флаг установлен, если в токене присутствуют встроенные аппаратные часы. Всегда не установлен.
  • CKF_PROTECTED_AUTHENTICATION_PATH (0x00000100) – установлен, если токен поддерживает возможность аутентификации без ввода PIN-кода. Всегда не установлен.
  • CKF_DUAL_CRYPTO_OPERATIONS (0x00000200) – флаг установлен, если токен поддерживает выполнение двух криптографических функций одновременно. Всегда не установлен.
  • CKF_TOKEN_INITIALIZED (0x00000400) – установлен, если токен был инициализирован функцией C_InitToken(). Всегда установлен.
  • CKF_SECONDARY_AUTHENTICATION (0x00000800) – флаг установлен, если токен поддерживает вторичную аутентификацию для приватных объектов ключей. Всегда не установлен.
  • CKF_USER_PIN_COUNT_LOW (0x00010000) – флаг установлен, если со времени последней успешной попытки ввода PIN-кода пользователя была предпринята, по меньшей мере, одна неудачная попытка ввода этого PIN-кода, и не установлен в противном случае.
  • CKF_USER_PIN_FINAL_TRY (0x00020000) – флаг установлен, если у пользователя осталась последняя попытка ввода PIN-кода, и не установлен в других случаях.
  • CKF_USER_PIN_LOCKED (0x00040000) – флаг установлен, если PIN-код пользователя заблокирован, и не установлен, если PIN-код пользователя не заблокирован.
  • CKF_USER_PIN_TO_BE_CHANGED (0x00080000) – установлен, если PIN-код пользователя установлен по умолчанию при инициализации или срок его действия истек, т.е. PIN-код необходимо изменить. Всегда не установлен.
  • CKF_SO_PIN_COUNT_LOW (0x00100000) – флаг установлен, если со времени последней успешной попытки ввода PIN-кода администратора была предпринята, по меньшей мере, одна неудачная попытка ввода этого PIN-кода, и не установлен в противном случае.
  • CKF_SO_PIN_FINAL_TRY (0x00200000) – флаг установлен, если у администратора осталась последняя попытка ввода PIN-кода, и не установлен в других случаях.
  • CKF_SO_PIN_LOCKED (0x00400000) – флаг установлен, если PIN-код администратора заблокирован, и не установлен в противном случае.
  • CKF_SO_PIN_TO_BE_CHANGED (0x00800000) – установлен, если PIN-код администратора установлен по умолчанию при инициализации или срок его действия истек, т.е. PIN-код необходимо изменить. Всегда не установлен.
  • CKF_ERROR_STATE (0x01000000) – установлен, если токен не прошел самопроверку FIPS 140-2 и находится в состоянии ошибки. Всегда не установлен.

CK_SESSION_INFO

Используется в:
CK_SESSION_INFO_PTR

Указатель на структуру CK_SESSION_INFO.

typedef CK_SESSION_INFO CK_PTR CK_SESSION_INFO_PTR;
CK_SESSION_INFO
typedef struct CK_SESSION_INFO {
  CK_SLOT_ID   slotID;
  CK_STATE     state;
  CK_FLAGS     flags;
  CK_ULONG     ulDeviceError;
} CK_SESSION_INFO;
CK_SLOT_ID slotID

Идентификатор слота.

CK_STATE state

Состояние сеанса.

CK_FLAGS flags

Флаги, определяющие тип сессии.

CK_ULONG ulDeviceError

Код ошибки, определяемый криптографическим устройством. Не поддерживается.

Поле flags может содержать следующие флаги:

  • CKF_RW_SESSION (0x00000002) – установлен, если сеанс поддерживает и чтение, и запись. Не установлен, если сеанс поддерживает только чтение.
  • CKF_SERIAL_SESSION (0x00000004) – этот флаг добавлен для обратной совместимости и должен быть всегда установлен.

JC_ISD_DATA

Используется в:
JC_ISD_DATA_PTR

Указатель на структуру JC_ISD_DATA.

typedef JC_ISD_DATA CK_PTR JC_ISD_DATA_PTR;
JC_ISD_DATA
typedef struct JC_ISD_DATA {
  CK_UTF8CHAR   model[32];
  CK_BYTE       manufacturingDate[8];
} JC_ISD_DATA;
CK_UTF8CHAR model(32)

Название модели

CK_BYTE manufacturingDate(8)

Дата производства в формате ГГГГММДД

JC_TOKEN_PROPERTIES

Используется в:
JC_TOKEN_PROPERTIES_PTR

Указатель на структуру JC_TOKEN_PROPERTIES.

typedef JC_TOKEN_PROPERTIES CK_PTR JC_TOKEN_PROPERTIES_PTR;
JC_TOKEN_PROPERTIES
typedef struct JC_TOKEN_PROPERTIES {
  CK_BYTE_PTR          pAttr;
  CK_ULONG             ulAttrSize;
  CK_BYTE_PTR          pJaCartaTag;
  CK_ULONG             ulJaCartaTagSize;
  CK_BYTE_PTR          pSerialNumber;
  CK_ULONG             ulSerialNumberSize;
  CK_ULONG             ulManufactureDate;
  CK_ULONG             ulAppletCount;
  JC_APPLET_TYPE_PTR   pApplets;
} JC_TOKEN_PROPERTIES;
CK_BYTE_PTR pAttr

Массив атрибутов.

CK_ULONG ulAttrSize

Размер массива атрибутов в байтах.

CK_BYTE_PTR pJaCartaTag

Тег считывателя.

CK_ULONG ulJaCartaTagSize

Размер тега в байтах.

CK_BYTE_PTR pSerialNumber

Серийный номер считывателя.

CK_ULONG ulSerialNumberSize

Размер серийного номера считывателя в байтах.

CK_ULONG ulManufactureDate

Дата производства в секундах начиная с 01.01.1970.

CK_ULONG ulAppletCount

Количество апплетов, установленных на токене.

JC_APPLET_TYPE_PTR pApplets

Типы апплетов. Возможные значения:

  • JC_APPLET_TYPE_CRYPTO_TOKEN (1) – апплет Криптотокен;
  • JC_APPLET_TYPE_CRYPTO_TOKEN_2 (2) – апплет Криптотокен 2 ЭП;
  • JC_APPLET_TYPE_LASER (3) – апплет Laser;
  • JC_APPLET_TYPE_DATA_STORE (4) – апплет Datastore;
  • JC_APPLET_TYPE_FKH (5) – FKH;
  • JC_APPLET_TYPE_PRO_JAVA (6) – апплет PRO Java;
  • JC_APPLET_TYPE_PRO (7) – апплет PRO;
  • JC_APPLET_TYPE_VASCO_CARDLESS (8) – Антифрод-терминал в бескарточном режиме;
  • JC_APPLET_TYPE_WEBPASS (9) – апплет Webpass.

JC_VERSION_INFO

Используется в:
JC_VERSION_INFO_PTR

Указатель на структуру JC_VERSION_INFO.

typedef JC_VERSION_INFO CK_PTR JC_VERSION_INFO_PTR;
JC_VERSION_INFO

Версия библиотеки.

typedef struct JC_VERSION_INFO {
  CK_ULONG   ulMajor;
  CK_ULONG   ulMinor;
  CK_ULONG   ulRelease;
  CK_ULONG   ulBuild;
} JC_VERSION_INFO;
CK_ULONG ulMajor

Главная версия библиотеки.

CK_ULONG ulMinor

Дополнительная версия библиотеки.

CK_ULONG ulRelease

Номер релиза.

CK_ULONG ulBuild

Номер сборки.

SWYX_PROPERTIES_RESPONSE

Используется в:
SWYX_PROPERTIES_RESPONSE_PTR

Указатель на структуру SWYX_PROPERTIES_RESPONSE.

typedef SWYX_PROPERTIES_RESPONSE CK_PTR SWYX_PROPERTIES_RESPONSE_PTR;
SWYX_PROPERTIES_RESPONSE

Свойства SWYX-считывателя.

typedef struct SWYX_PROPERTIES_RESPONSE {
  CK_BYTE    DisplayType;
  CK_ULONG   ulLcdMaxCharacters;
  CK_ULONG   ulLcdMaxLines;
  CK_ULONG   ulGraphicMaxWidth;
  CK_ULONG   ulGraphicMaxHeight;
  CK_BYTE    GraphicColorDepth;
  CK_ULONG   ulMaxVirtualSize;
} SWYX_PROPERTIES_RESPONSE;
CK_BYTE DisplayType

Тип экрана Антифрод-терминала: 0 - поддерживает только текст, 1 - поддерживает графику.

CK_ULONG ulLcdMaxCharacters

Максимальное количество символов в строке.

CK_ULONG ulLcdMaxLines

Максимальное количество срок, выводимых на экран.

CK_ULONG ulGraphicMaxWidth

Ширина экрана в пикселях.

CK_ULONG ulGraphicMaxHeight

Высота экрана в пикселях.

CK_BYTE GraphicColorDepth

Цветовой режим экрана: 1 - монохромный, 2 - градации серого (4 бита), 4 - цветной (4 бита).

CK_ULONG ulMaxVirtualSize

Максимальное количество буквенных символов, одновременно помещающихся на экране.

CK_GOSTR3410_DERIVE_PARAMS

Параметры для выработки ключа согласования.

CK_GOSTR3410_DERIVE_PARAMS
typedef struct CK_GOSTR3410_DERIVE_PARAMS {
  CK_EC_KDF_TYPE   kdf;
  CK_BYTE_PTR      pPublicData;
  CK_ULONG         ulPublicDataLen;
  CK_BYTE_PTR      pUKM;
  CK_ULONG         ulUKMLen;
} CK_GOSTR3410_DERIVE_PARAMS;
CK_EC_KDF_TYPE kdf

Идентификатор используемой диверсификации ключа. Может принимать следующие значения:

  • CKD_NULL – общий ключ выводится по алгоритму, описанному в подразделе 5.2 RFC 4357.
  • CKD_CPDIVERSIFY_KDF – при выводе общего ключа сначала применяется алгоритм, описанный в подразделе 5.2 RFC 4357, а затем результат выполнения этого алгоритма подвергается диверсификации по алгоритму, описанному в подразделе 6.5 того же документа.
CK_BYTE_PTR pPublicData

указатель на буфер, содержащий ключ проверки ЭП получателя. Ключ представлен в виде последовательной записи координат точки X и Y. Каждая координата представляет собой вектор длиной 32 байта в порядке от младшего к старшему (little-endian).

CK_ULONG ulPublicDataLen

Длина буфера, содержащего открытый ключ получателя. Указывается в байтах, должна равняться 64.

CK_BYTE_PTR pUKM

Указатель на буфер, содержащий параметр UKM (RFC 4357) в представлении от младшего к старшему (little-endian).

CK_ULONG ulUKMLen

Длина буфера, содержащего UKM. Указывается в байтах, должна равняться 8.

CK_GOSTR3410_KEY_WRAP_PARAMS

Параметры экспорта ключа.

CK_GOSTR3410_KEY_WRAP_PARAMS
typedef struct CK_GOSTR3410_KEY_WRAP_PARAMS {
  CK_BYTE_PTR        pWrapOID;
  CK_ULONG           ulWrapOIDLen;
  CK_BYTE_PTR        pUKM;
  CK_ULONG           ulUKMLen;
  CK_OBJECT_HANDLE   hKey;
} CK_GOSTR3410_KEY_WRAP_PARAMS;
CK_BYTE_PTR pWrapOID

Объектный идентификатор (OID) для обозначения параметров создания общего ключа.

CK_ULONG ulWrapOIDLen

Длина объектного идентификатора.

CK_BYTE_PTR pUKM

Указатель на буфер, содержащий параметр UKM (RFC 4357) в представлении от младшего к старшему (little-endian).

CK_ULONG ulUKMLen

Длина буфера, содержащего UKM. Указывается в байтах, должна равняться 8.

CK_OBJECT_HANDLE hKey

Указатель на исходный ключ.