КриптоПро CSP 4.0

127018, Москва, ул. Сущёвский вал, д. 18
Телефон: +7 (495) 995 4820
Факс: +7 (495) 984 0790
http://www.CryptoPro.ru
E-mail: info@CryptoPro.ru

Средство Криптографической Защиты Информации

КриптоПро CSP

Версия 4.0

Руководство программиста
Часть 4

PKCS#11

© OOO "Крипто-Про", 2000-2011. Все права защищены.
Авторские права на средство криптографической защиты информации КриптоПро CSP и эксплуатационную документацию зарегистрированы в Российском агентстве по патентам и товарным знакам (Роспатент). Свидетельство об официальной регистрации программ для ЭВМ № 2008612300 от 12 мая 2008 года.
Документ входит в комплект поставки программного обеспечения КриптоПРО CSP, и на него распространяются все условия лицензионного соглашения. Без специального письменного разрешения OOO "Крипто-Про" документ или его часть в электронном или печатном виде не могут быть скопированы и переданы третьим лицам с коммерческой целью.


Руководство программиста

Стандарт Криптографического Интерфейса Токена PKCS#11

Разработан в соответствии с криптографическим интерфейсом PKCS#11 фирмы RSA v2.30, доработанному в соответствии с требованиями поддержки российских стандартов на реализацию криптографических функций и требованиями УЭК.

КриптоПро PKCS#11

СКЗИ PKCS#11 предназначен для выполнения в составе КриптоПро CSP.

Данный документ описывает программный интерфейс PKCS#11, предназначенный для использования в составе КриптоПро CSP. Реализация программного обеcпечения (далее по тексту PKCS-модуль, либо просто - модуль) для HSM УЭК базируется на стандарте PKCS#11 v2.30.

Канал взаимодействия с HSM открывается (определяется) независимо от PKCS-модуля. Модулю предоставляется список доступных провайдеров, c которыми он взаимодействует.

Настройка списка доступных для модуля провайдеров осуществляется до запуска PKCS модуля средствами клиента HSM. Пользователи OS (приложения с правами разных пользователей) там, где PKCS модуль используется, могут иметь отличающиеся списки провайдеров доступных модулю.

PKCS#11 представление реализуется в виде только одного токена для каждого раздела HSM, то есть модуль работает по принципу: «один раздел - один токен».

См. в этой главе | Важные внешние ссылки
Основные функции, среда функционирования, инсталляция, конфигурирование |
Типы объектов данных | Конференция Крипто-Про World Wide Web link
Атрибуты | Конференция Крипто-Про World Wide Web link
Типы поддерживаемых ключей | Конференция Крипто-Про World Wide Web link
Функции | Конференция Крипто-Про World Wide Web link
Механизмы. | Конференция Крипто-Про World Wide Web link

Руководство программиста PKCS#11 Версия: 4.0

Обратная связь для этой статьи

(c) ООО Крипто-Про. Все права защищены.


Основные функции, среда функционирования, инсталляция, конфигурирование

Основные функции

Критографический интерфейс PKCS#11 обеспечивает:

  • взаимодействие в соответствии с базовым описанием RSA Labs v2.30;
  • взаимодействие с доработками в соответствии с требованиями поддержки российских стандартов на реализацию криптографических функций;
  • взаимодействие с доработками в соответствии с требованиями поддержки УЭК;
  • удовлетворяет классам безопасности базовых СКЗИ "КриптоПро CSP 4.0" и "КриптоПро HSM".

Ограничения и особенности реализации описаны в разделе "Ограничения и особенности реализации".

Операционные системы

Токен PKCS#11 реализован для всех операционных систем согласно сертификату соответствия на "КриптоПро CSP 4.0" и "КриптоПро HSM".

Состав дистрибутива, инсталлирование модуля

Для операционных систем LINUX и AIX дистрибутив поставляется в файлах формата RPM:

  • Для LINUX - (amd64) : lsb-cprocsp-pkcs11-64-4.0.0-4.x86-64.rpm
  • Для LINUX - (ia32) : lsb-cprocsp-pkcs11-4.0.0-4.i486.rpm
  • Для AIX-32 - : cprocsp-pkcs11-4.0.0-aix.5.3.ppc.rpm
  • Для AIX-64 - : cprocsp-pkcs11-64-4.0.0-aix.5.3.ppc64.rpm

Для Windows дистрибутив поставляется в файлах формата MSI.

Конфигурирование модуля

Для конфигурирования PKCS11 необходимо создать раздел [PKCS11] в описании конфигурации CSP:

  • на Linux создаётся в процессе инсталляции ПО
  • на Windows должен находиться в

 HKLM\SOFTWARE\Crypto Pro\Cryptography\CurrentVersion

    Типы провайдеров фиксированы: ГОСТ = 75, RSA = 1

    [PKCS11]
    [slot0]
    provGOST=имя_провайдера_ГОСТ
    provRSA=имя_провайдера_RSA

    reader=название_считывателя | cert|certReq|пусто
    Cert - слот для сертификатов (Mozilla)
    Request - слот для запросов на сертификаты (Mozilla)
    “пусто” - имеет смысл только для RSA провайдера

    ...
    [slotN]

Примечания:

  • если нет ключа reader, то слот создаётся для VERIFY_CONTEXT
  • если строка с именем провайдера отсутствует, то соответствующий провайдер не грузится
  • если нет ни одного провайдера, то происходит выход по ошибке
  • на количество и номера слотов ограничений нет
  • пустое имя провайдера означает default-провайдер
  • пустое имя reader используется в Windows в эмуляторе HSM

    •
        [HKEY_LOCAL_MACHINE\SOFTWARE\Crypto Pro\Cryptography\CurrentVersion\PKCS11]

        [HKEY_LOCAL_MACHINE\SOFTWARE\Crypto Pro\Cryptography\CurrentVersion\PKCS11\slot0]
        "ProvRSA"="Crypto-Pro HSM RSA CSP"
        "provGOST"="Crypto-Pro HSM CSP"
        "reader"="REGISTRY"

        [HKEY_LOCAL_MACHINE\SOFTWARE\Crypto Pro\Cryptography\CurrentVersion\PKCS11\slot7]
        "ProvRSA"="Crypto-Pro HSM RSA CSP"
        "provGOST"="Crypto-Pro HSM CSP"

    Комментарий:

            В приведённом примере модулю PKCS#11 доступны два slot-а: slot0 (ГОСТ+RSA на HSM, RW) и slot7 (ГОСТ+RSA на HSM, readonly).

            Ключи DES/RSA будут создаваться в HKEY_CURRENT_USER\Software\Wine\Crypto\RSA


Интерфейс криптографического стандарта PKCS11

Функции, структуры, параметры стандарта PKCS11.

  • Типы объектов данных
  • Атрибуты
  • Типы поддерживаемых ключей
  • Функции
  • Механизмы.


Типы объектов данных

  • Vendor defined типы
  • Описание объектов PKCS11


Vendor defined типы

В дополнении к базовым типам введены два дополнительных типа: CK_UEC_EXTRACT_PARAMS и CK_UEC_WRAP_PARAMS.

  • Тип CK_UEC_EXTRACT_PARAMS используется для передачи данных диверсификации.

typedef CK_ATTRIBUTE_TYPE CK_UEC_EXTRACT_PARAMS;

  • Тип CK_UEC_WRAP_PARAMS используется для передачи данных диверсификации.

typedef struct CK_UEC_WRAP_COMPONENT_PARAMS {
    CK_BYTE_PTR szPwd;
    CK_ULONG ulComponentLength;
} CK_UEC_WRAP_COMPONENT_PARAMS;

typedef struct CK_UEC_WRAP_PARAMS {
    CK_ULONG ulComponentCount;
    CK_UEC_WRAP_COMPONENT_PARAMS ComponentParams[5];
} CK_UEC_WRAP_PARAMS;


Описание объектов PKCS11

В данной версии PKCS-модуля поддерживаются следующие типы объектов: CKO_PRIVATE_KEY, CKO_PUBLIC_KEY, CKO_SECRET_KEY, CKO_CERTIFICATE, CKO_NSS_TRUST и CKO_HW_FEATURE (CKH_CLOCK).

Реализация в модуле поддержки объектов типа CKO_PUBLIC_KEY имеет особенности:

  • запрещено их использования в качестве хранимых объектов
  • они могут быть только временными объектами
  • при необходимости они могут получаться/вычисляться из соответствующего CKO_PRIVATE_KEY или создаваться вызовом C_CreateObject.
Пример шаблона для создания объекта DES ключа с использованием атрибута CKA_UEC_DERIVE_COUNTER:

CK_OBJECT_CLASS class = CKO_PRIVATE_KEY;
   CK_ULONG keyUDC = 42;
   CK_KEY_TYPE keyType = CKK_DES;
   CK_UTF8CHAR label[] = "CKA_UEC_DERIVE_COUNTER";
   CK_BBOOL true = TRUE;
   CK_ATTRIBUTE template[] = {
     {CKA_CLASS, &class, sizeof(class)},
     {CKA_UEC_DERIVE_COUNTER, &keyUDC, sizeof(keyUDC)},
     {CKA_KEY_TYPE, &keyType, sizeof(keyType)},
     {CKA_TOKEN, &true, sizeof(true)},
     {CKA_LABEL, label, sizeof(label)-1}
   };


Атрибуты

Подробное описание атрибутов смотрите в документах RSA (PKCS#11 v 2.30)

http://www.rsa.com/rsalabs/node.asp?id=2124

C особенностями их реализации в программном модуле можно ознакомиться в сводной таблице по ссылке:

  • Сводный перечень атрибутов


Сводный перечень атрибутов

Общие атрибуты объектов PKCS11

Атрибут | Особенности реализации
CKA_CLASS | Поддерживаются значения CKO_CERTIFICATE, CKO_PUBLIC_KEY, CKO_PRIVATE_KEY, CKO_SECRET_KEY, CKO_HW_FEATURE, CKO_NSS_TRUST
CKA_TOKEN | -
CKA_LABEL | Поддерживаются только цифры и буквы набора ASCII-7
CKA_PRIVATE | -

Общие атрибуты ключевых объектов PKCS11
Атрибут | Особенности реализации
CKA_KEY_TYPE | -
CKA_ID | -
CKA_START_DATE | -
CKA_END_DATE | -
CKA_DERIVE | -
CKA_LOCAL | -

Атрибуты ключей подписи PKCS11 (CKO_PRIVATE_KEY)
Атрибут | Особенности реализации
CKA_SUBJECT | -
CKA_SENSITIVE | -
CKA_EXTRACTABLE | -
CKA_ALWAYS_SENSITIVE | -
CKA_NEVER_EXTRACTABLE | -
CKA_DECRYPT | -
CKA_SIGN | -
CKA_UNWRAP | -
CKA_VALUE | Определен только для ключей типа CKK_GOSTR3410
CKA_MODULUS | Определен только для ключей типа CKK_RSA
CKA_PUBLIC_EXPONENT | Определен только для ключей типа CKK_RSA
CKA_PRIVATE_EXPONENT | Определен только для ключей типа CKK_RSA
CKA_PRIME_1 | Определен только для ключей типа CKK_RSA
CKA_PRIME_2 | Определен только для ключей типа CKK_RSA
CKA_EXPONENT_1 | Определен только для ключей типа CKK_RSA
CKA_EXPONENT_2 | Определен только для ключей типа CKK_RSA
CKA_COEFFICIENT | Определен только для ключей типа CKK_RSA

Атрибуты ключей проверки подписи PKCS11 (CKO_PUBLIC_KEY)
Атрибут | Особенности реализации
CKA_SUBJECT | -
CKA_TRUSTED | -
CKA_ENCRYPT | -
CKA_VERIFY | -
CKA_WRAP | -
CKA_VALUE | Определен только для ключей типа CKK_GOSTR3410
CKA_MODULUS | Определен только для ключей типа CKK_RSA
CKA_MODULUS_BITS | Определен только для ключей типа CKK_RSA
CKA_PUBLIC_EXPONENT | Определен только для ключей типа CKK_RSA

Атрибуты симметричных ключей PKCS11 (CKO_SECRET_KEY)

Атрибут | Особенности реализации
CKA_SENSITIVE | -
CKA_ALWAYS_SENSITIVE | -
CKA_EXTRACTABLE | -
CKA_NEVER_EXTRACTABLE | -
CKA_TRUSTED | -
CKA_ENCRYPT | -
CKA_DECRYPT | -
CKA_WRAP | -
CKA_UNWRAP | -
CKA_SIGN | -
CKA_VERIFY | -
CKA_CHECK_VALUE | -
CKA_VALUE | -
CKA_VALUE_LEN | Определен только для ключей типа CKK_GENERIC_SECRET

Атрибуты сертификатов PKCS11 (CKO_CERTIFICATE)
Атрибут | Особенности реализации
CKA_CERTIFICATE_TYPE | Поддерживается только значение CKC_X_509
CKA_TRUSTED | -
CKA_START_DATE | -
CKA_END_DATE | -
CKA_SUBJECT | -
CKA_ID | -
CKA_ISSUER | -
CKA_SERIAL_NUMBER | -
CKA_VALUE | -
CKA_CERT_SHA1_HASH | -

Атрибуты объектов типа CKO_HW_FEATURE
Атрибут | Особенности реализации
CKA_HW_FEATURE_TYPE | Поддерживается только значение CKH_CLOCK
CKA_VALUE | -

Атрибуты объектов типа CKO_NSS_TRUST
Атрибут | Особенности реализации
CKA_TRUST_SERVER_AUTH | -
CKA_TRUST_CLIENT_AUTH | -
CKA_TRUST_EMAIL_PROTECTION | -
CKA_TRUST_CODE_SIGNING | -
CKA_TRUST_STEP_UP_APPROVED | -
CKA_CERT_SHA1_HASH | -

Дополнительые атрибуты

Атрибут Особенности реализации
CKA_UEC_DERIVE_COUNTER

Дополнительный атрибут CKA_UEC_DERIVE_COUNTER предназначен для операций с секретными ключами CKK_DES, CKK_DES2, CKK_DES3, CKK_GOSTR28147, используемыми в ПО УЭК.

Он может использоваться в функциях C_GenerateKey() и C_DeriveKey(), а также в ряде других для задания максимального допустимого количества производных ключей, получаемых из мастер-ключа.

Атрибут CKA_UEC_DERIVE_COUNTER - это уменьшающийся счетчик (decrement counter), ассоциируемый с симметричным мастер-ключем, при обнулении которого выведение нового экспортируемого ключа из мастер-ключа становится невозможным.

Начальное значение CKA_UEC_DERIVE_COUNTER задаётся вызовом функции C_SetAttributeValue().

Функция C_DeriveKey() при выведении экспортируемого ключа (CKA_EXTRACTABLE = TRUE) уменьшает на единицу значение CKA_UEC_DERIVE_COUNTER производящего ключа если его значение больше нуля и возвращает ошибку когда его значение меньше или равно нулю. Если CKA_EXTRACTABLE производимого ключа равно FALSE, то функционирование C_DeriveKey() не зависит от значения CKA_UEC_DERIVE_COUNTER и оно не изменяет значения этого параметра.


Типы поддерживаемых ключей

Подробное описание ключей смотрите в документах RSA (PKCS#11 v 2.30)

http://www.rsa.com/rsalabs/node.asp?id=2124

C особенностями их реализации в программном модуле можно ознакомиться в сводной таблице по ссылке:

  • Список ключей, поддерживаемых программным модулем


Список ключей, поддерживаемых программным модулем

Таблица ключей с характеристиками

Наименование | Особенности реализации
CKK_DES | -
CKK_DES2 | -
CKK_DES3 | -
CKK_GENERIC_SECRET | Длина - 256 байт максимум
CKK_RSA | -
CKK_GOST28147 | -
CKK_GOSTR3410 | -


Функции

Функция | Указание на источник полной информации (RSA, PKCS-11v2-30b-d6.pdf) | Особенности реализации
C_Initialize | GENERAL-PURPOSE FUNCTIONS (стр. 100-103) | см. в описании
C_Finalize | - " - |
C_GetInfo | - " - |
C_GetFunctionList | - " - |
C_GetSlotList | SLOT AND TOKEN MANAGEMENT FUNCTIONS (стр. 104-114) | см. в описании
C_GetSlotInfo | - " - |
C_GetTokenInfo | - " - |
C_WaitForSlotEvent | - " - | см. в описании
C_GetMechanismList | - " - | см. в описании
C_GetMechanismInfo | - " - |
C_InitToken | - " - | см. в описании
C_InitPIN | - " - | см. в описании
C_SetPIN | - " - | см. в описании
C_OpenSession | SESSION MANAGEMENT FUNCTIONS (стр. 115-124) |
C_CloseSession | - " - |
C_CloseAllSessions | - " - |
C_GetSessionInfo | - " - |
C_GetOperationState | - " - |
C_SetOperationState | - " - |
C_Login | - " - | см. в описании
C_Logout | - " - | см. в описании
C_CreateObject | OBJECT MANAGEMENT FUNCTIONS (стр. 125-136) | см. в описании
C_CopyObject | - " - | см. в описании
C_DestroyObject | - " - |
C_GetObjectSize | - " - | см. в описании
C_GetAttributeValue | - " - |
C_SetAttributeValue | - " - |
C_FindObjectsInit | - " - | см. в описании
C_FindObjects | - " - |
C_FindObjectsFinal | - " - |
C_EncryptInit | ENCRYPTION FUNCTIONS (стр. 137-141) |
C_Encrypt | - " - |
C_EncryptUpdate | - " - |
C_EncryptFinal | - " - |
C_DecryptInit | DECRYPTION FUNCTIONS (стр. 142-145) |
C_Decrypt | - " - |
C_DecryptUpdate | - " - |
C_DecryptFinal | - " - |
C_DigestInit | MESSAGE DIGESTING FUNCTIONS (стр. 146-149) |
C_Digest | - " - |
C_DigestUpdate | - " - |
C_DigestKey | - " - | см. в описании
C_DigestFinal | - " - |
C_SignInit | SIGNING AND MACING FUNCTIONS (стр. 150-154) |
C_Sign | - " - |
C_SignUpdate | - " - |
C_SignFinal | - " - |
C_SignRecoverInit | - " - | см. в описании
C_SignRecover | - " - |
C_VerifyInit | FUNCTIONS FOR VERIFYING SIGNATURES AND MACS (стр. 155-160) |
C_Verify | - " - |
C_VerifyUpdate | - " - | см. в описании
C_VerifyFinal | - " - | см. в описании
C_VerifyRecoverInit | - " - | см. в описании
C_VerifyRecover | - " - | см. в описании
C_DigestEncryptUpdate | DUAL-FUNCTION CRYPTOGRAPHIC FUNCTIONS (стр. 161-171) |
C_DecryptDigestUpdate | - " - |
C_SignEncryptUpdate | - " - |
C_DecryptVerifyUpdate | - " - | см. в описании
C_GenerateKey | KEY MANAGEMENT FUNCTIONS (стр. 172-181) |
C_GenerateKeyPair | - " - |
C_WrapKey | - " - |
C_UnwrapKey | - " - |
C_DeriveKey | - " - |
C_SeedRandom | RANDOM NUMBER GENERATION FUNCTIONS (стр. 182) | см. в описании
C_GenerateRandom | - " - |
C_GetFunctionStatus | PARALLEL FUNCTION MANAGEMENT FUNCTIONS (стр. 183-184) |
C_CancelFunction | - " - |

  • Общие функции работы с библиотекой криптографического интерфейса токена.
  • Функции работы со слотом и токеном.
  • Функции работы с сессиями.
  • Функции работы с объектами.
  • Функции шифрования данных.
  • Функции расшифрования данных.
  • Функции хеширования данных.
  • Функции создания ЭЦП и имитовставки.
  • Функции проверки ЭЦП и имитовставки.
  • Функции, выполняющие две криптографические операции.
  • Функции работы с ключами.
  • Функции генерации случайных данных.
  • Функции менеджмента параллельных функций.


Общие функции работы с библиотекой криптографического интерфейса токена.

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

Функции | Описание
C_GetFunctionList | Функция C_GetFunctionList() получает указатель на список указателей на функции Cryptoki библиотеки.
C_Initialize | Функция C_Initialize() инициализирует Cryptoki библиотеку.
C_Finalize | Функция C_Finalize() означает завершение работы приложения с Cryptoki библиотекой.
C_GetInfo | Функция C_GetInfo() получает общую информацию о Cryptoki библиотеке.


C_GetFunctionList

Функция C_GetFunctionList() получает указатель на список указателей на функции Cryptoki библиотеки.

Адрес pFunctionList может находиться в памяти Cryptoki библиотеки, которая может и не быть доступной на запись. Поэтому не должно быть попыток записи в это пространство памяти.

Функция C_GetFunctionList() является единственной функцией Cryptoki, которая может вызываться до функции C_Initialize().

CK_RV C_GetFunctionList(
  CK_FUNCTION_LIST_PTR * pFunctionList
);

Аргументы

pFunctionList
Адрес, по которому возвращается указатель на структуру библиотеки CK_FUNCTION_LIST, состоящую из указателей на все функции Cryptoki библиотеки.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_Initialize

Функция C_Initialize() инициализирует Cryptoki библиотеку.

Функция C_Initialize() должна быть первой функцией, вызываемой приложением, исключая вызов функции C_GetFunctionList().

Если несколько приложений одновременно работают с Cryptoki библиотекой, в каждом из них должна быть вызвана функция C_Initialize(). Каждый успешный вызов функции C_Initialize() должен быть в конечном итоге завершен вызовом функции C_Finalize().

CK_RV C_Initialize(
  CK_VOID_PTR pInitArgs
);

Аргументы

pInitArgs
Зарезервирован для будущего использования.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_ALREADY_INITIALIZED | Этот код ошибки может быть возвращен только функцией C_Initialize(). Ошибка означает, что Cryptoki библиотека уже была проинициализировна (предыдущим вызовом C_Initialize(), за которым не следовал вызов функции C_Finalize()).
CKR_FUNCTION_FAILED | Данная функция не может быть выполнена, но данный код ошибки не содержит детальную информацию о причине неудачи. Однако, ситуация не так плоха, как при возвращении ошибки CKR_GENERAL_ERROR. В зависимости от действительной причины неудачи, возможно, что повторный вызов функции будет успешным.
CKR_FUNCTION_NOT_SUPPORTED |

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована с ограничениями: нельзя использовать pInitArgs для передачи параметров функции

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_Finalize

Функция C_Finalize() означает завершение работы приложения с Cryptoki библиотекой.

Если несколько приложений оджновременно работают с Cryptoki библиотекой, в каждом из них должна быть вызвана функция C_Finalize(). Каждому вызову приложением функции C_Finalize() должен предшествовать единичный вызов функции C_Initialize(). Между этими двумя вызовами приложение может осуществлять вызовы других функций Cryptoki.

CK_RV C_Finalize(
  CK_VOID_PTR pReserved
);

Аргументы

pReserved
Зарезервирован и должен быть равен NULL_PTR.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_GetInfo

Функция C_GetInfo() получает общую информацию о Cryptoki библиотеке.

CK_RV C_GetInfo(
  CK_INFO_PTR pInfo
);

Аргументы

pInfo
Адрес, по которому возвращается информация.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


Функции работы со слотом и токеном.

Перечисленные функции предназначены для получения информации о слотах, токенах и механизмах системы, а также для инициализации токена и пароля.

Функции | Описание
C_GetSlotList | Функция C_GetSlotList() используется для получения списка слотов в системе.
C_GetSlotInfo | Функция C_GetSlotInfo() возвращает информацию о данном слоте системы.
C_GetTokenInfo | Функция C_GetTokenInfo() возвращает информацию о данном токене системы.
C_GetMechanismList | Функция C_GetMechanismList() возвращает список типов механизмов, поддерживаемых токеном.
C_GetMechanismInfo | Функция C_GetMechanismInfo() возвращает информацию о данном механизме, потенциально поддерживаемом токеном.
C_InitToken | Функция C_InitToken() инициализирует токен.
C_InitPIN | Функция C_InitPIN() инициализирует пароль обычного пользователя.
C_SetPIN | Функция C_SetPIN() изменяет пароль текущего зарегистрированного пользователя или пароль CKU_USER, если сессия не зарегистрирована.
C_WaitForSlotEvent | Функция C_WaitForSlotEvent() ожидает события в слоте.


C_GetSlotList

Функция C_GetSlotList() используется для получения списка слотов в системе.

CK_RV C_GetSlotList(
  CK_BBOOL tokenPresent,
  CK_SLOT_ID_PTR pSlotList,
  CK_ULONG_PTR pulCount
);

Аргументы

tokenPresent
Зарезервирован для будущего использования.
pSlotList
Адрес, по которому возвращается список слотов.
pulCount
Адрес, по которому возвращается количество слотов.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_BUFFER_TOO_SMALL | Размер буфера недостаточен для возвращения в него необходимых данных.
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована с ограничениями: не используется параметр tokenPresent, функци показывает лишь те слоты, к которым ей разрешено обращаться.

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_GetSlotInfo

Функция C_GetSlotInfo() возвращает информацию о данном слоте системы.

CK_RV C_GetSlotInfo(
  CK_SLOT_ID slotID,
  CK_SLOT_INFO_PTR pInfo
);

Аргументы

slotID
Идентификатор слота.
pInfo
Адрес, по которому возвращается информация о слоте.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_SLOT_ID_INVALID | Данный идентификатор слота недопустим.
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_GetTokenInfo

Функция C_GetTokenInfo() возвращает информацию о данном токене системы.

CK_RV C_GetTokenInfo(
  CK_SLOT_ID slotID,
  CK_TOKEN_INFO_PTR pInfo
);

Аргументы

slotID
Идентификатор слота, в котором находится данный токен.
pInfo
Адрес, по которому возвращается информация о токене.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_SLOT_ID_INVALID | Данный идентификатор слота недопустим.
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_GetMechanismList

Функция C_GetMechanismList() возвращает список типов механизмов, поддерживаемых токеном.

CK_RV C_GetMechanismList(
  CK_SLOT_ID slotID,
  CK_MECHANISM_TYPE_PTR pMechanismList,
  CK_ULONG_PTR pulCount
);

Аргументы

slotID
Идентификатор слота, в котором находится данный токен.
pMechanismList
Адрес, по которому возвращается список типов механизмов.
pulCount
Адрес, по которому возвращается количество механизмов.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_BUFFER_TOO_SMALL | Размер буфера недостаточен для возвращения в него необходимых данных.
CKR_SLOT_ID_INVALID | Данный идентификатор слота недопустим.
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11. Всегда возвращает полный список механизмов, поддерживаемых провайдерами ГОСТ и RSA.

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_GetMechanismInfo

Функция C_GetMechanismInfo() возвращает информацию о данном механизме, потенциально поддерживаемом токеном.

CK_RV C_GetMechanismInfo(
  CK_SLOT_ID slotID,
  CK_MECHANISM_TYPE type,
  CK_MECHANISM_INFO_PTR pInfo
);

Аргументы

slotID
Идентификатор слота, в котором находится данный токен.
type
Тип механизма.
pInfo
Адрес, по которому возвращается информация о механизме.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_MECHANISM_INVALID | Механизм неизвестен или не поддерживается данным токеном
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_SLOT_ID_INVALID | Данный идентификатор слота недопустим.
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_InitToken

Функция C_InitToken() инициализирует токен.

CK_RV C_InitToken(
  CK_SLOT_ID slotID,
  CK_CHAR_PTR pPin,
  CK_ULONG ulPinLen,
  CK_CHAR_PTR pLabel
);

Аргументы

slotID
Идентификатор слота, в котором находится данный токен.
pPin
Указатель на первоначальный пароль Security Officer (не должен оканчиваться нулем).
ulPinLen
Длина пароля в байтах.
pLabel
Указатель на 32-байтную метку токена (которая может быть заполнена пробелами, но не должна оканчиваться нулем).

Возвращаемые значения

Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_FUNCTION_NOT_SUPPORTED |

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция не реализована. Стандартный интерфейс вызова функции сохранен.

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_InitPIN

Функция C_InitPIN() инициализирует пароль обычного пользователя.

CK_RV C_InitPIN(
  CK_SESSION_HANDLE hSession,
  CK_CHAR_PTR pPin,
  CK_ULONG ulPinLen
);

Аргументы

hSession
Дескриптор сессии.
pPin
Указатель на пароль обычного пользователя.
ulPinLen
Длина пароля в байтах.

Возвращаемые значения

Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_FUNCTION_NOT_SUPPORTED |

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция не реализована. Стандартный интерфейс вызова функции сохранен.

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_SetPIN

Функция C_SetPIN() изменяет пароль текущего зарегистрированного пользователя или пароль CKU_USER, если сессия не зарегистрирована.

CK_RV C_SetPIN(
  CK_SESSION_HANDLE hSession,
  CK_CHAR_PTR pOldPin,
  CK_ULONG ulOldLen,
  CK_CHAR_PTR pNewPin,
  CK_ULONG ulNewLen
);

Аргументы

hSession
Дескриптор сессии.
pOldPin
Указатель на старый пароль.
ulOldLen
Длина старого пароля в байтах.
pNewPin
Указатель на новый пароль.
ulNewLen
Длина нового пароля в байтах.

Возвращаемые значения

Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_FUNCTION_NOT_SUPPORTED |

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция не реализована. Стандартный интерфейс вызова функции сохранен.

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_WaitForSlotEvent

Функция C_WaitForSlotEvent() ожидает события в слоте.

CK_RV C_WaitForSlotEvent(
  CK_FLAGS flags,
  CK_SLOT_ID_PTR pSlot,
  CK_VOID_PTR pReserved
);

Аргументы

flags
Флаги блокировки.
pSlot
Адрес, по которому возвращается номер слота, в котором произошло событие.
pReserved
Зарезервирован и должен быть равен NULL_PTR.

Возвращаемые значения

Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_NO_EVENT |

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция не реализована. Стандарный интефейс вызова функции сохранен.

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


Функции работы с сессиями.

Перечисленные функции предназначены для открытия и закрытия сессий, получения информации о них, а также для выполнения доступа к текущей сессии.

Функции | Описание
C_OpenSession | Функция C_OpenSession() открывает сессию между приложением и токеном в заданном слоте.
C_CloseSession | Функция C_CloseSession() закрывает сессию между приложением и токеном.
C_CloseAllSessions | Функция C_CloseAllSessions() закрывает все сессии между приложением и токеном.
C_GetSessionInfo | Функция C_GetSessionInfo() возвращает информацию о сессии.
C_Login | Функция C_Login() регистрирует пользователя в токене.
C_Logout | Функция C_Logout() заканчивает регистрацию пользователя в токене.
C_GetOperationState | Функция C_GetOperationState() получает состояние криптографической операции в указанной сессии.
C_SetOperationState | Функция C_SetOperationState() восстанавливает состояние криптографической операции в указанной сессии.


C_OpenSession

Функция C_OpenSession() открывает сессию между приложением и токеном в заданном слоте.

Во время открытия сессии при помощи функции C_OpenSession() параметр flags представляет собой логическое ИЛИ нуля или более битовых флагов, определенных в типе данных CK_SESSION_INFO. Бит CKF_SERIAL_SESSION всегда должен быть установлен; если при вызове функции C_OpenSession() этот бит не установлен, то функция вернет ошибку CKR_SESSION_PARALLEL_NOT_SUPPORTED.

Если токен защищен от записи (что указано в структуре CK_TOKEN_INFO), то с ним могут быть открыты только "read-only" сессии.

Функция возврата Notify используется Cryptoki для уведомления приложения о некоторых событиях. Если приложение не желает поддерживать возвраты, то оно должно установить значение параметра Notify в NULL_PTR.

CK_RV C_OpenSession(
  CK_SLOT_ID slotID,
  CK_FLAGS flags,
  CK_VOID_PTR pApplication,
  CK_NOTIFY Notify,
  CK_SESSION_HANDLE_PTR phSession
);

Аргументы

slotID
Идентификатор слота.
flags
Флаги, определяющие тип сессии.
pApplication
Определенный приложением указатель на возвращаемое уведомление.
Notify
Адрес функции возврата уведомления.
phSession
Указатель на пространство для хранения дескриптора новой сессии.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_SESSION_PARALLEL_NOT_SUPPORTED | Данный токен не поддерживает параллельные сессии. Эта ошибка существует в Cryptoki версии 2.01 и старше, где токен не поддерживает параллельные сессии. CKR_SESSION_PARALLEL_NOT_SUPPORTED может быть возвращена только функцией C_OpenSession().
CKR_SLOT_ID_INVALID | Данный идентификатор слота недопустим.
CKR_TOKEN_WRITE_PROTECTED | Данная функция не может быть выполнена, поскольку токен защищен от записи. Данный код ошибки имеет более высокий приоритет, чем CKR_SESSION_READ_ONLY.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_CloseSession

Функция C_CloseSession() закрывает сессию между приложением и токеном.

После закрытия сессии все сессионные объекты, созданные в данной сессии, автоматически удаляются, даже если приложение имеет другие сессии, использующие эти объекты.

CK_RV C_CloseSession(
  CK_SESSION_HANDLE hSession
);

Аргументы

hSession
Дескриптор сессии.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_CloseAllSessions

Функция C_CloseAllSessions() закрывает все сессии между приложением и токеном.

После закрытия сессии все сессионные объекты, созданные в данной сессии, автоматически удаляются.

CK_RV C_CloseAllSessions(
  CK_SLOT_ID slotID
);

Аргументы

slotID
Идентификатор слота, в котором содержится данный токен.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_SLOT_ID_INVALID | Данный идентификатор слота недопустим.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_GetSessionInfo

Функция C_GetSessionInfo() возвращает информацию о сессии.

CK_RV C_GetSessionInfo(
  CK_SESSION_HANDLE hSession,
  CK_SESSION_INFO_PTR pInfo
);

Аргументы

hSession
Дескриптор сессии.
pInfo
Адрес, по которому возвращается информация о сессии.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_Login

Функция C_Login() регистрирует пользователя в токене.

CK_RV C_Login(
  CK_SESSION_HANDLE hSession,
  CK_USER_TYPE userType,
  CK_CHAR_PTR pPin,
  CK_ULONG ulPinLen
);

Аргументы

hSession
Дескриптор сессии.
userType
Тип пользователя.
pPin
Указатель на пароль пользователя.
ulPinLen
Длина пароля в байтах.

Возвращаемые значения

Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_OK |

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция не реализована. Стандартный интерфейс вызова функции сохранен.

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_Logout

Функция C_Logout() заканчивает регистрацию пользователя в токене.

CK_RV C_Logout(
  CK_SESSION_HANDLE hSession
);

Аргументы

hSession
Дескриптор сессии.

Возвращаемые значения

Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_OK |

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция не реализована. Стандартный интерфейс вызова функции сохранен.

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_GetOperationState

Функция C_GetOperationState() получает состояние криптографической операции в указанной сессии.

CK_RV C_GetOperationState(
  CK_SESSION_HANDLE hSession,
  CK_BYTE_PTR pOperationState,
  CK_ULONG_PTR pulOperationStateLen
);

Аргументы

hSession
Дескриптор сессии.
pOperationState
Адрес, по которому возвращается состояние операции.
pulOperationStateLen
Адрес, по которому возвращается размер состояния.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_BUFFER_TOO_SMALL | Размер буфера недостаточен для возвращения в него необходимых данных.
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_SetOperationState

Функция C_SetOperationState() восстанавливает состояние криптографической операции в указанной сессии.

CK_RV C_SetOperationState(
  CK_SESSION_HANDLE hSession,
  CK_BYTE_PTR pOperationState,
  CK_ULONG ulOperationStateLen,
  CK_OBJECT_HANDLE hEncryptionKey,
  CK_OBJECT_HANDLE hAuthenticationKey
);

Аргументы

hSession
Дескриптор сессии.
pOperationState
Адрес буфера, содержащего состояние операции.
ulOperationStateLen
Размер состояния операции.
hEncryptionKey
Дескриптор ключа шифрования.
hAuthenticationKey
Дескриптор ключа аутентификации.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


Функции работы с объектами.

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

Функции | Описание
C_CreateObject | Функция C_CreateObject() создает новый объект.
C_GetAttributeValue | Функция C_GetAttributeValue() получает значение одного или нескольких атрибутов объекта.
C_SetAttributeValue | Функция C_SetAttributeValue() изменяет значение одного или нескольких атрибутов объекта.
C_FindObjectsInit | Функция C_FindObjectsInit() инициализирует операцию поиска объектов токена и сессионных объектов в соответствии с заданным шаблоном.
C_FindObjects | Функция C_FindObjects() продолжает операцию поиска объектов токена и сессионных объектов в соответствии с заданным шаблоном, получая дополнительные декрипторы объектов.
C_FindObjectsFinal | Функция C_FindObjectsFinal() завершает операцию поиска объектов токена и сессионных объектов.
C_DestroyObject | Функция C_DestroyObject() удаляет объект.
C_CopyObject | Функция C_CopyObject() копирует заданный объект, создавая в качестве копии новый объект.
C_GetObjectSize | Функция C_GetObjectSize() получает размер объекта в байтах.


C_CreateObject

Функция C_CreateObject() создает новый объект.

Если функция C_CreateObject() не поддерживает переданный ей шаблон для нового объекта, то ее вызов будет неудачным и никакой объект при этом создан не будет.

Если при помощи функции C_CreateObject() создается ключевой объект, то атрибут CKA_LOCAL этого нового объекта будет выставлен в CK_FALSE.

CK_RV C_CreateObject(
  CK_SESSION_HANDLE hSession,
  CK_ATTRIBUTE_PTR pTemplate,
  CK_ULONG ulCount,
  CK_OBJECT_HANDLE_PTR phObject
);

Аргументы

hSession
Дескриптор сессии.
pTemplate
Указатель на шаблон для создаваемого объекта.
ulCount
Количество атрибутов в шаблоне.
phObject
Адрес, по которому возвращается дескриптор нового объекта.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_ATTRIBUTE_VALUE_INVALID | В шаблоне указано неверное значение для некоторого атрибута.
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.
CKR_TEMPLATE_INCOMPLETE | В шаблоне для создаваемого объекта недостает некоторых необходимых атрибутов.
CKR_TEMPLATE_INCONSISTENT | Шаблон для создаваемого объекта содержит противоречивые атрибуты.
CKR_ATTRIBUTE_TYPE_INVALID | В шаблоне указан недопустимый тип атрибута.
CKR_ATTRIBUTE_READ_ONLY | Осуществлялась попытка присвоить значение аргументу, который не может быть установлен или изменен данным приложением.
CKR_FUNCTION_FAILED | Данная функция не может быть выполнена, но данный код ошибки не содержит детальную информацию о причине неудачи. Однако, ситуация не так плоха, как при возвращении ошибки CKR_GENERAL_ERROR. В зависимости от действительной причины неудачи, возможно, что повторный вызов функции будет успешным.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11. Из ключевых объектов функция может создавать только объекты класса CKO_PUBLIC_KEY.

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_GetAttributeValue

Функция C_GetAttributeValue() получает значение одного или нескольких атрибутов объекта.

Для каждой тройки в шаблоне (type, pValue, ulValueLen) функция C_GetAttributeValue() действует по следующему алгоритму:

1. Если заданный атрибут объекта (т. е. атрибут, определенный в поле type) не может быть раскрыт, поскольку объект является чувствительным или неизвлекаемым, то поле ulValueLen соответствующей тройки заполняется значением -1.

2. Иначе, если заданный атрибут объекта является недопустимым (т. е. объект не имеет такого атрибута), то поле ulValueLen соответствующей тройки заполняется значением -1.

3. Иначе, если поле pValue имеет значение NULL_PTR, тогда соответствующее ему поле ulValueLen заполняется значением, равным точной длине заданного атрибута объекта.

4. Иначе, если в поле ulValueLen указана длина, достаточная для хранения значения заданного атрибута, то это значение копируется в буфер по адресу pValue и поле ulValueLen заполняется значением, равным точной длине заданного атрибута объекта.

5. В остальных случаях поле ulValueLen заполняется значением -1.

Если хотя бы к одному из запрашиваемых атрибутов применяется шаг №1, то функция возвращает ошибку CKR_ATTRIBUTE_SENSITIVE. Если хотя бы к одному из запрашиваемых атрибутов применяется шаг №2, то функция возвращает ошибку CKR_ATTRIBUTE_TYPE_INVALID. Если хотя бы к одному из запрашиваемых атрибутов применяется шаг №5, то функция возвращает ошибку CKR_BUFFER_TOO_SMALL. В случае, когда возникает сразу несколько перечисленных ошибок, Cryptoki может вернуть любую из них. Только если ни для одного из требуемых атрибутов не возникает ни одной из перечисленных ошибок, функция возвращает CKR_OK.

Необходимо помнить, что ошибки CKR_ATTRIBUTE_SENSITIVE, CKR_ATTRIBUTE_TYPE_INVALID и CKR_BUFFER_TOO_SMALL не свидетельствуют о неудачной работе функции C_GetAttributeValue() (т. е. не являются ее действительными ошибками). Если функция C_GetAttributeValue() вернет одну из этих ошибок, то несмотря на это каждый атрибут в переданном функции шаблоне будет обработан. Все атрибуты, которые могут быть возвращены функцией C_GetAttributeValue(), будут возвращены.

CK_RV C_GetAttributeValue(
  CK_SESSION_HANDLE hSession,
  CK_OBJECT_HANDLE hObject,
  CK_ATTRIBUTE_PTR pTemplate,
  CK_ULONG ulCount
);

Аргументы

hSession
Дескриптор сессии.
hObject
Дескриптор объекта.
pTemplate
Указатель на шаблон, определяющий получаемые значения атрибутов.
ulCount
Количество атрибутов в шаблоне.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.
CKR_OBJECT_HANDLE_INVALID | Заданный дескриптор объекта не действителен. Необходимо помнить, что 0 никогда не является верным дескриптором объекта.
CKR_ATTRIBUTE_SENSITIVE | Невозможно получить значение атрибута объекта, поскольку объект является либо чувствительным, либо неизвлекаемым.
CKR_ATTRIBUTE_TYPE_INVALID | В шаблоне указан недопустимый тип атрибута.
CKR_BUFFER_TOO_SMALL | Размер буфера недостаточен для возвращения в него необходимых данных.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_SetAttributeValue

Функция C_SetAttributeValue() изменяет значение одного или нескольких атрибутов объекта.

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

Если функция C_SetAttributeValue() вернет ошибку, то несмотря на это каждый атрибут в переданном функции шаблоне будет обработан. Все атрибуты, которые могут быть изменены функцией C_SetAttributeValue(), будут обработаны.

CK_RV C_SetAttributeValue(
  CK_SESSION_HANDLE hSession,
  CK_OBJECT_HANDLE hObject,
  CK_ATTRIBUTE_PTR pTemplate,
  CK_ULONG ulCount
);

Аргументы

hSession
Дескриптор сессии.
hObject
Дескриптор объекта.
pTemplate
Указатель на шаблон, определяющий новые значения для атрибутов.
ulCount
Количество атрибутов в шаблоне.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_ATTRIBUTE_VALUE_INVALID | В шаблоне указано неверное значение для некоторого атрибута.
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.
CKR_OBJECT_HANDLE_INVALID | Заданный дескриптор объекта не действителен. Необходимо помнить, что 0 никогда не является верным дескриптором объекта.
CKR_ATTRIBUTE_READ_ONLY | Осуществлялась попытка присвоить значение аргументу, который не может быть установлен или изменен данным приложением.
CKR_ATTRIBUTE_TYPE_INVALID | В шаблоне указан недопустимый тип атрибута.
CKR_FUNCTION_FAILED | Данная функция не может быть выполнена, но данный код ошибки не содержит детальную информацию о причине неудачи. Однако, ситуация не так плоха, как при возвращении ошибки CKR_GENERAL_ERROR. В зависимости от действительной причины неудачи, возможно, что повторный вызов функции будет успешным.
CKR_TEMPLATE_INCONSISTENT | Шаблон для создаваемого объекта содержит противоречивые атрибуты.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_FindObjectsInit

Функция C_FindObjectsInit() инициализирует операцию поиска объектов токена и сессионных объектов в соответствии с заданным шаблоном.

Критерий поиска определяется в соответствии с атрибутами шаблона. Для того, чтобы осуществить поиск всех объектов, необходимо задать нулевой параметр ulCount.

После вызова функции C_FindObjectsInit() приложение может вызывать функцию C_FindObjects() сколь угодно раз для получения дескрипторов объектов, соответствующих шаблону поиска, и в конечном итоге вызвать функцию C_FindObjectsFinal() для завершения активной операции поиска. Не более, чем одна операция поиска может быть активна в данный момент времени в данной сессии.

CK_RV C_FindObjectsInit(
  CK_SESSION_HANDLE hSession,
  CK_ATTRIBUTE_PTR pTemplate,
  CK_ULONG ulCount
);

Аргументы

hSession
Дескриптор сессии.
pTemplate
Указатель на шаблон поиска по значениям атрибутов.
ulCount
Количество атрибутов в шаблоне поиска.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_ATTRIBUTE_VALUE_INVALID | В шаблоне указано неверное значение для некоторого атрибута.
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.
CKR_OPERATION_ACTIVE | Уже существует активная операция (или комбинация активных операций), которые не допускают Cryptoki активировать данную операцию. Например, активная операция поиска не позволяет Cryptoki активировать операция зашифрования при помощи функции C_EncryptInit(). Или, например, активные операции хеширования и зашифрования не допускают активацию операции подписи. И еще пример: если токен не поддерживает одновременных двойных криптографических операций (на что указывает флаг CKF_DUAL_CRYPTO_OPERATIONS в структуре CK_TOKEN_INFO), тогда активная операция подписи запретит активировать операцию зашифрования.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11. Выборка ключа ограничена поиском по "имени" и осуществляется вызовом функции C_FindObjectsInit только с атрибутом CKA_LABEL.

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_FindObjects

Функция C_FindObjects() продолжает операцию поиска объектов токена и сессионных объектов в соответствии с заданным шаблоном, получая дополнительные декрипторы объектов.

Если не существует объектов, соответствующих шаблону поиска, то по адресу pulObjectCount возвращается ноль.

Поиск должен быть проинициализирован при помощи функции C_FindObjectsInit().

CK_RV C_FindObjects(
  CK_SESSION_HANDLE hSession,
  CK_OBJECT_HANDLE_PTR phObject,
  CK_ULONG ulMaxObjectCount,
  CK_ULONG_PTR pulObjectCount
);

Аргументы

hSession
Дескриптор сессии.
phObject
Адрес, по которому возвращается список (массив) дополнительных дескрипторов объектов.
ulMaxObjectCount
Максимальное число возвращаемых дескрипторов объектов.
pulObjectCount
Адрес, по которому возвращается действительное число возвращаемых дескрипторов объектов.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.
CKR_OPERATION_NOT_INITIALIZED | Не существует активной операции соответствующего типа в данной сессии. Например, приложение не может вызвать функцию C_Encrypt() без предварительного вызова функции C_EncryptInit() для активирования операции зашифрования.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_FindObjectsFinal

Функция C_FindObjectsFinal() завершает операцию поиска объектов токена и сессионных объектов.

CK_RV C_FindObjectsFinal(
  CK_SESSION_HANDLE hSession
);

Аргументы

hSession
Дескриптор сессии.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_OPERATION_NOT_INITIALIZED | Не существует активной операции соответствующего типа в данной сессии. Например, приложение не может вызвать функцию C_Encrypt() без предварительного вызова функции C_EncryptInit() для активирования операции зашифрования.
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_DestroyObject

Функция C_DestroyObject() удаляет объект.

CK_RV C_DestroyObject(
  CK_SESSION_HANDLE hSession,
  CK_OBJECT_HANDLE hObject
);

Аргументы

hSession
Дескриптор сессии.
hObject
Дескриптор объекта.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_FUNCTION_FAILED | Данная функция не может быть выполнена, но данный код ошибки не содержит детальную информацию о причине неудачи. Однако, ситуация не так плоха, как при возвращении ошибки CKR_GENERAL_ERROR. В зависимости от действительной причины неудачи, возможно, что повторный вызов функции будет успешным.
CKR_OBJECT_HANDLE_INVALID | Заданный дескриптор объекта не действителен. Необходимо помнить, что 0 никогда не является верным дескриптором объекта.
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_CopyObject

Функция C_CopyObject() копирует заданный объект, создавая в качестве копии новый объект.

CK_RV C_CopyObject(
  CK_SESSION_HANDLE hSession,
  CK_OBJECT_HANDLE hObject,
  CK_ATTRIBUTE_PTR pTemplate,
  CK_ULONG ulCount,
  CK_OBJECT_HANDLE_PTR phNewObject
);

Аргументы

hSession
Дескриптор сессии.
hObject
Дескриптор копируемого объекта.
pTemplate
Указатель на шаблон для нового объекта.
ulCount
Количество атрибутов в шаблоне.
phNewObject
Адрес, по которому возвращается дескриптор копии объекта.

Возвращаемые значения

Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_FUNCTION_NOT_SUPPORTED |

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция не реализована. Стандарный интефейс вызова функции сохранен.

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_GetObjectSize

Функция C_GetObjectSize() получает размер объекта в байтах.

CK_RV C_GetObjectSize(
  CK_SESSION_HANDLE hSession,
  CK_OBJECT_HANDLE hObject,
  CK_ULONG_PTR pulSize
);

Аргументы

hSession
Дескриптор сессии.
hObject
Дескриптор объекта.
pulSize
Адрес, по которому возвращается размер объекта в байтах.

Возвращаемые значения

Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_FUNCTION_NOT_SUPPORTED |

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция не реализована. Стандарный интефейс вызова функции сохранен.

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


Функции шифрования данных.

Перечисленные функции предназначены для выполнения операций шифрования данных.

Функции | Описание
C_EncryptInit | Функция C_EncryptInit() инициализирует операцию шифрования.
C_EncryptUpdate | Функция C_EncryptUpdate() продолжает операцию шифрования данных в потоке, обрабатывая очередную часть данных.
C_EncryptFinal | Функция C_EncryptFinal() заканчивает операцию шифрования данных в потоке.
C_Encrypt | Функция C_Encrypt() шифрует полученные данные и завершает операцию шифрования.


C_EncryptInit

Функция C_EncryptInit() инициализирует операцию шифрования.

Атрибут CKA_ENCRYPT ключа шифрования должен иметь значение CK_TRUE.

После вызова функции C_EncryptInit() существует две возможности осуществления операции шифрования данных: приложение может либо вызвать функцию C_Encrypt() для шифрования данных целиком, либо вызывать функцию C_EncryptUpdate() ноль или более раз, завершая этот процесс вызовом функции C_EncryptFinal(), для шифрования данных в потоке. Операция шифрования данных остается активной до тех пор, пока не будет осуществлен вызов одной из функций C_Encrypt() или C_EncryptFinal(), которые фактически получают заключительную часть зашифрованного текста.

CK_RV C_EncryptInit(
  CK_SESSION_HANDLE hSession,
  CK_MECHANISM_PTR pMechanism,
  CK_OBJECT_HANDLE hKey
);

Аргументы

hSession
Дескриптор сессии.
pMechanism
Указатель на механизм шифрования.
hKey
Дескриптор ключа шифрования.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_OPERATION_ACTIVE | Уже существует активная операция (или комбинация активных операций), которые не допускают Cryptoki активировать данную операцию. Например, активная операция поиска не позволяет Cryptoki активировать операция зашифрования при помощи функции C_EncryptInit(). Или, например, активные операции хеширования и зашифрования не допускают активацию операции подписи. И еще пример: если токен не поддерживает одновременных двойных криптографических операций (на что указывает флаг CKF_DUAL_CRYPTO_OPERATIONS в структуре CK_TOKEN_INFO), тогда активная операция подписи запретит активировать операцию зашифрования.
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.
CKR_KEY_HANDLE_INVALID | Заданный дескриптор ключа недопустим. Это может произойти в том случае, когда заданный дескриптор является действительным дескриптором некоторого объекта, но тот в свою очередь не является ключем. Необходимо помнить, что 0 никогда не является верным дескриптором ключа.
CKR_MECHANISM_INVALID | Криптографической операции передан неверный механизм. Этот код ошибки возникает в случае, когда задается неизвестный механизм, либо когда заданный механизм не может быть использован данной функцией в данном токене.
CKR_MECHANISM_PARAM_INVALID | Криптографической операции передан механизм с недопустимыми параметрами. Совокупность допустимых значений параметра для данного механизма может изменятся в зависимости от токена.
CKR_KEY_FUNCTION_NOT_PERMITTED | Осуществлялась попытка выполнить криптографическую операцию с ключем, у которого не установлены необходимые для этой операции атрибуты. Например, если ключ используется в операции зашифрования, то его атрибут CKA_ENCRYPT должен быть установлен в CK_TRUE (заметим, что закрытый ключ не может иметь этот атрибут). Этот код ошибки имеет меньший приоритет, чем CKR_KEY_TYPE_INCONSISTENT.
CKR_KEY_TYPE_INCONSISTENT | Тип заданного ключа не соответствует переданному функции механизму. Этот код ошибки имеет более высокий приоритет, чем CKR_KEY_FUNCTION_NOT_PERMITTED.
CKR_FUNCTION_FAILED | Данная функция не может быть выполнена, но данный код ошибки не содержит детальную информацию о причине неудачи. Однако, ситуация не так плоха, как при возвращении ошибки CKR_GENERAL_ERROR. В зависимости от действительной причины неудачи, возможно, что повторный вызов функции будет успешным.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_EncryptUpdate

Функция C_EncryptUpdate() продолжает операцию шифрования данных в потоке, обрабатывая очередную часть данных.

Операция шифрования должна быть инициализирована с помощью функции C_EncryptInit(). Эта функция может вызываться последовательно любое число раз.

Накладываются ограничения на длину входных данных для блочных режимов шифрования - входные данные должны состоять из целого числа блоков. Если эти ограничения не соблюдаются, то в этом случае функция C_EncryptUpdate() терпит неудачу и возвращает ошибку CKR_DATA_LEN_RANGE.

Зашифрованные данные могут возвращаться по тому же адресу, по которому функции передавались входные данные, т. е. параметры pPart и pEncryptedPart могут совпадать.

CK_RV C_EncryptUpdate(
  CK_SESSION_HANDLE hSession,
  CK_BYTE_PTR pPart,
  CK_ULONG ulPartLen,
  CK_BYTE_PTR pEncryptedPart,
  CK_ULONG_PTR pulEncryptedPartLen
);

Аргументы

hSession
Дескриптор сессии.
pPart
Указатель на очередную часть данных.
ulPartLen
Длина очередной части данных.
pEncryptedPart
Адрес, по которому возвращается зашифрованная часть данных.
pulEncryptedPartLen
Адрес, по которому возвращается длина зашифрованной части данных в байтах.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_OPERATION_NOT_INITIALIZED | Не существует активной операции соответствующего типа в данной сессии. Например, приложение не может вызвать функцию C_Encrypt() без предварительного вызова функции C_EncryptInit() для активирования операции зашифрования.
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.
CKR_DATA_LEN_RANGE | Криптографической операции были переданы открытые входные данные с неверной длиной. В зависимости от механизма операции это может означать, что входные данные имеют слишком маленькую или, наоборот, слишком большую длину, либо их длина не кратна некоторому размеру блока. Этот код ошибки имеет более высокий приоритет, чем CKR_DATA_INVALID.
CKR_BUFFER_TOO_SMALL | Размер буфера недостаточен для возвращения в него необходимых данных.
CKR_FUNCTION_FAILED | Данная функция не может быть выполнена, но данный код ошибки не содержит детальную информацию о причине неудачи. Однако, ситуация не так плоха, как при возвращении ошибки CKR_GENERAL_ERROR. В зависимости от действительной причины неудачи, возможно, что повторный вызов функции будет успешным.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11.

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_EncryptFinal

Функция C_EncryptFinal() заканчивает операцию шифрования данных в потоке.

Операция шифрования должна быть проинициализирована с помощью функции C_EncryptInit(). Функция C_EncryptFinal() всегда заканчивает активную операцию шифрования за исключением тех случаев, когда она возвращает ошибку CKR_BUFFER_TOO_SMALL, либо когда функция завершена успешно (т. е. возвращается CKR_OK), yо при этом она использовалась для определения длины буфера зашифрованных данных.

CK_RV C_EncryptFinal(
  CK_SESSION_HANDLE hSession,
  CK_BYTE_PTR pLastEncryptedPart,
  CK_ULONG_PTR pulLastEncryptedPartLen
);

Аргументы

hSession
Дескриптор сессии.
pLastEncryptedPart
Адрес, по которому возвращается последняя часть зашифрованных данных.
pulLastEncryptedPartLen
Адрес, по которому возвращается длина последней части зашифрованных данных.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_OPERATION_NOT_INITIALIZED | Не существует активной операции соответствующего типа в данной сессии. Например, приложение не может вызвать функцию C_Encrypt() без предварительного вызова функции C_EncryptInit() для активирования операции зашифрования.
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.
CKR_BUFFER_TOO_SMALL | Размер буфера недостаточен для возвращения в него необходимых данных.
CKR_FUNCTION_FAILED | Данная функция не может быть выполнена, но данный код ошибки не содержит детальную информацию о причине неудачи. Однако, ситуация не так плоха, как при возвращении ошибки CKR_GENERAL_ERROR. В зависимости от действительной причины неудачи, возможно, что повторный вызов функции будет успешным.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_Encrypt

Функция C_Encrypt() шифрует полученные данные и завершает операцию шифрования.

Операция шифрования должна быть проинициализирована с помощью функции C_EncryptInit(). Функция C_Encrypt() всегда заканчивает активную операцию шифрования за исключением тех случаев, когда она возвращает ошибку CKR_BUFFER_TOO_SMALL, либо когда функция завершена успешно (т. е. возвращается CKR_OK), но при этом она использовалась для определения длины буфера зашифрованных данных.

Функция C_Encrypt() не умеет завершать операцию шифрования в потоке, и поэтому ее вызов должен осуществляться после функции C_EncryptInit() и не перемешиваться с вызовами функции C_EncryptUpdate().

Зашифрованные данные могут возвращаться по тому же адресу, по которому функции передавались входные данные, т. е. параметры pData и pEncryptedData могут совпадать.

Для большинства механизмов вызов функции C_Encrypt() эквивалентен последовательности вызовов функции C_EncryptUpdate(), заканчивающейся вызовом функции C_EncryptFinal().

CK_RV C_Encrypt(
  CK_SESSION_HANDLE hSession,
  CK_BYTE_PTR pData,
  CK_ULONG ulDataLen,
  CK_BYTE_PTR pEncryptedData,
  CK_ULONG_PTR pulEncryptedDataLen
);

Аргументы

hSession
Дескриптор сессии.
pData
Указатель на данные.
ulDataLen
Длина данных.
pEncryptedData
Адрес, по которому возвращаются зашифрованные данные.
pulEncryptedDataLen
Адрес, по которому возвращается длина зашифрованных данных.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_OPERATION_NOT_INITIALIZED | Не существует активной операции соответствующего типа в данной сессии. Например, приложение не может вызвать функцию C_Encrypt() без предварительного вызова функции C_EncryptInit() для активирования операции зашифрования.
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.
CKR_BUFFER_TOO_SMALL | Размер буфера недостаточен для возвращения в него необходимых данных.
CKR_FUNCTION_FAILED | Данная функция не может быть выполнена, но данный код ошибки не содержит детальную информацию о причине неудачи. Однако, ситуация не так плоха, как при возвращении ошибки CKR_GENERAL_ERROR. В зависимости от действительной причины неудачи, возможно, что повторный вызов функции будет успешным.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


Функции расшифрования данных.

Перечисленные функции предназначены для выполнения операций расшифрования данных.

Функции | Описание
C_DecryptInit | Функция C_DecryptInit() инициализирует операцию расшифрования.
C_DecryptUpdate | Функция C_DecryptUpdate() продолжает операцию расшифрования данных в потоке, обрабатывая очередную зашифрованную часть данных.
C_DecryptFinal | Функция C_DecryptFinal() заканчивает операцию расшифрования данных в потоке.
C_Decrypt | Функция C_Decrypt() расшифровывает данные целиком.


C_DecryptInit

Функция C_DecryptInit() инициализирует операцию расшифрования.

Атрибут CKA_DECRYPT ключа расшифрования должен иметь значение CK_TRUE.

После вызова функции C_DecryptInit() существует две возможности осуществления операции расшифрования данных: приложение может либо вызвать функцию C_Decrypt() для расшифрования данных целиком, либо вызывать функцию C_DecryptUpdate() ноль или более раз, завершая этот процесс вызовом функции C_DecryptFinal(), для расшифрования данных в потоке. Операция расшифрования данных остается активной до тех пор, пока не будет осуществлен вызов одной из функций C_Decrypt() или C_DecryptFinal(), которые фактически получают заключительную часть открытого текста.

CK_RV C_DecryptInit(
  CK_SESSION_HANDLE hSession,
  CK_MECHANISM_PTR pMechanism,
  CK_OBJECT_HANDLE hKey
);

Аргументы

hSession
Дескриптор сессии.
pMechanism
Указатель на механизм расшифрования.
hKey
Дескриптор ключа расшифрования.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_OPERATION_ACTIVE | Уже существует активная операция (или комбинация активных операций), которые не допускают Cryptoki активировать данную операцию. Например, активная операция поиска не позволяет Cryptoki активировать операция зашифрования при помощи функции C_EncryptInit(). Или, например, активные операции хеширования и зашифрования не допускают активацию операции подписи. И еще пример: если токен не поддерживает одновременных двойных криптографических операций (на что указывает флаг CKF_DUAL_CRYPTO_OPERATIONS в структуре CK_TOKEN_INFO), тогда активная операция подписи запретит активировать операцию зашифрования.
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.
CKR_KEY_HANDLE_INVALID | Заданный дескриптор ключа недопустим. Это может произойти в том случае, когда заданный дескриптор является действительным дескриптором некоторого объекта, но тот в свою очередь не является ключем. Необходимо помнить, что 0 никогда не является верным дескриптором ключа.
CKR_MECHANISM_INVALID | Криптографической операции передан неверный механизм. Этот код ошибки возникает в случае, когда задается неизвестный механизм, либо когда заданный механизм не может быть использован данной функцией в данном токене.
CKR_MECHANISM_PARAM_INVALID | Криптографической операции передан механизм с недопустимыми параметрами. Совокупность допустимых значений параметра для данного механизма может изменятся в зависимости от токена.
CKR_KEY_FUNCTION_NOT_PERMITTED | Осуществлялась попытка выполнить криптографическую операцию с ключем, у которого не установлены необходимые для этой операции атрибуты. Например, если ключ используется в операции зашифрования, то его атрибут CKA_ENCRYPT должен быть установлен в CK_TRUE (заметим, что закрытый ключ не может иметь этот атрибут). Этот код ошибки имеет меньший приоритет, чем CKR_KEY_TYPE_INCONSISTENT.
CKR_KEY_TYPE_INCONSISTENT | Тип заданного ключа не соответствует переданному функции механизму. Этот код ошибки имеет более высокий приоритет, чем CKR_KEY_FUNCTION_NOT_PERMITTED.
CKR_FUNCTION_FAILED | Данная функция не может быть выполнена, но данный код ошибки не содержит детальную информацию о причине неудачи. Однако, ситуация не так плоха, как при возвращении ошибки CKR_GENERAL_ERROR. В зависимости от действительной причины неудачи, возможно, что повторный вызов функции будет успешным.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_DecryptUpdate

Функция C_DecryptUpdate() продолжает операцию расшифрования данных в потоке, обрабатывая очередную зашифрованную часть данных.

Операция расшифрования должна быть проинициализирована с помощью функции C_DecryptInit(). Эта функция может вызываться последовательно любое число раз.

Накладываются ограничения на длину входных данных для блочных режимов шифрования - входные данные должны состоять из целого числа блоков. Если эти ограничения не соблюдаются, то C_DecryptUpdate() терпит неудачу и возвращает ошибку CKR_ENCRYPTED_DATA_LEN_RANGE.

Расшифрованные данные могут возвращаться по тому же адресу, по которому функции передавались зашифрованные данные, т. е. параметры pEncryptedPart и pPart могут совпадать.

CK_RV C_DecryptUpdate(
  CK_SESSION_HANDLE hSession,
  CK_BYTE_PTR pEncryptedPart,
  CK_ULONG ulEncryptedPartLen,
  CK_BYTE_PTR pPart,
  CK_ULONG_PTR pulPartLen
);

Аргументы

hSession
Дескриптор сессии.
pEncryptedPart
Указатель на очередную зашифрованную часть данных.
ulEncryptedPartLen
Длина очередной зашифрованной части данных.
pPart
Адрес, по которому возвращается расшифрованная часть данных.
pulPartLen
Адрес, по которому возвращается длина расшифрованной части данных в байтах.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_OPERATION_NOT_INITIALIZED | Не существует активной операции соответствующего типа в данной сессии. Например, приложение не может вызвать функцию C_Encrypt() без предварительного вызова функции C_EncryptInit() для активирования операции зашифрования.
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.
CKR_ENCRYPTED_DATA_LEN_RANGE | Операция расшифрования определила, что входные зашифрованные данные являются неверным зашифрованным текстом исключительно по их длине. В зависимости от механизма операции это может означать, что входные зашифрованные данные имеют слишком маленькую или, наоборот, слишком большую длину, либо их длина не кратна некоторому размеру блока. Этот код ошибки имеет более высокий приоритет, чем CKR_ENCRYPTED_DATA_INVALID.
CKR_BUFFER_TOO_SMALL | Размер буфера недостаточен для возвращения в него необходимых данных.
CKR_FUNCTION_FAILED | Данная функция не может быть выполнена, но данный код ошибки не содержит детальную информацию о причине неудачи. Однако, ситуация не так плоха, как при возвращении ошибки CKR_GENERAL_ERROR. В зависимости от действительной причины неудачи, возможно, что повторный вызов функции будет успешным.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_DecryptFinal

Функция C_DecryptFinal() заканчивает операцию расшифрования данных в потоке.

Операция расшифрования должна быть проинициализирована с помощью функции C_DecryptInit(). Функция C_DecryptFinal() всегда заканчивает активную операцию расшифрования за исключением тех случаев, когда она возвращает ошибку CKR_BUFFER_TOO_SMALL, либо когда функция завершена успешно (т. е. возвращается CKR_OK), но при этом она использовалась для определения длины буфера расшифрованных данных.

CK_RV C_DecryptFinal(
  CK_SESSION_HANDLE hSession,
  CK_BYTE_PTR pLastPart,
  CK_ULONG_PTR pulLastPartLen
);

Аргументы

hSession
Дескриптор сессии.
pLastPart
Адрес, по которому возвращается последняя часть расшифрованных данных.
pulLastPartLen
Адрес, по которому возвращается длина последней части расшифрованных данных.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_OPERATION_NOT_INITIALIZED | Не существует активной операции соответствующего типа в данной сессии. Например, приложение не может вызвать функцию C_Encrypt() без предварительного вызова функции C_EncryptInit() для активирования операции зашифрования.
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.
CKR_BUFFER_TOO_SMALL | Размер буфера недостаточен для возвращения в него необходимых данных.
CKR_FUNCTION_FAILED | Данная функция не может быть выполнена, но данный код ошибки не содержит детальную информацию о причине неудачи. Однако, ситуация не так плоха, как при возвращении ошибки CKR_GENERAL_ERROR. В зависимости от действительной причины неудачи, возможно, что повторный вызов функции будет успешным.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_Decrypt

Функция C_Decrypt() расшифровывает данные целиком.

Операция расшифрования должна быть проинициализирована с помощью функции C_DecryptInit(). Функция C_Decrypt() всегда заканчивает активную операцию расшифрования за исключением тех случаев, когда она возвращает ошибку CKR_BUFFER_TOO_SMALL, либо когда функция завершена успешно (т. е. возвращается CKR_OK), но при этом она использовалась для определения длины буфера расшифрованных данных.

Функция C_Decrypt() не умеет завершать операцию расшифрования в потоке, и поэтому ее вызов должен осуществляться после функции C_DecryptInit() и не перемешиваться с вызовами функции C_DecryptUpdate().

Расшифрованные данные могут возвращаться по тому же адресу, по которому функции передавались входные зашифрованные данные, т. е. параметры pData и pEncryptedData могут совпадать.

Для большинства механизмов вызов функции C_Decrypt() эквивалентен последовательности вызовов функции C_DecryptUpdate(), заканчивающейся вызовом функции C_DecryptFinal().

CK_RV C_Decrypt(
  CK_SESSION_HANDLE hSession,
  CK_BYTE_PTR pEncryptedData,
  CK_ULONG ulEncryptedDataLen,
  CK_BYTE_PTR pData,
  CK_ULONG_PTR pulDataLen
);

Аргументы

hSession
Дескриптор сессии.
pEncryptedData
Указатель на зашифрованные данные.
ulEncryptedDataLen
Длина зашифрованных данных.
pData
Адрес, по которому возвращаются расшифрованные данные.
pulDataLen
Адрес, по которому возвращается длина расшифрованных данных.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_OPERATION_NOT_INITIALIZED | Не существует активной операции соответствующего типа в данной сессии. Например, приложение не может вызвать функцию C_Encrypt() без предварительного вызова функции C_EncryptInit() для активирования операции зашифрования.
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.
CKR_ENCRYPTED_DATA_LEN_RANGE | Операция расшифрования определила, что входные зашифрованные данные являются неверным зашифрованным текстом исключительно по их длине. В зависимости от механизма операции это может означать, что входные зашифрованные данные имеют слишком маленькую или, наоборот, слишком большую длину, либо их длина не кратна некоторому размеру блока. Этот код ошибки имеет более высокий приоритет, чем CKR_ENCRYPTED_DATA_INVALID.
CKR_BUFFER_TOO_SMALL | Размер буфера недостаточен для возвращения в него необходимых данных.
CKR_FUNCTION_FAILED | Данная функция не может быть выполнена, но данный код ошибки не содержит детальную информацию о причине неудачи. Однако, ситуация не так плоха, как при возвращении ошибки CKR_GENERAL_ERROR. В зависимости от действительной причины неудачи, возможно, что повторный вызов функции будет успешным.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


Функции хеширования данных.

Перечисленные функции предназначены для выполнения операций хеширования данных.

Функции | Описание
C_DigestInit | Функция C_DigestInit() инициализирует операцию хеширования данных.
C_Digest | Функция C_Digest() хеширует данные целиком.
C_DigestUpdate | Функция C_DigestUpdate() продолжает операцию хеширования данных в потоке, обрабатывая очередную часть данных.
C_DigestFinal | Функция C_DigestFinal() заканчивает операцию хеширования данных в потоке, возвращая хеш данных.
C_DigestKey | Функция C_DigestKey() хеширует значение секретного ключа.


C_DigestInit

Функция C_DigestInit() инициализирует операцию хеширования данных.

После вызова функции C_DigestInit() существует две возможности осуществления операции хеширования данных: приложение может либо вызвать функцию C_Digest() для хеширования данных целиком, либо вызывать функцию C_DigestUpdate() ноль или более раз, завершая этот процесс вызовом функции C_DigestFinal(), для хеширования данных в потоке. Операция хеширования данных остается активной до тех пор, пока не будет осуществлен вызов одной из функций C_Digest() или C_DigestFinal(), которые фактически получают хеш данных.

CK_RV C_DigestInit(
  CK_SESSION_HANDLE hSession,
  CK_MECHANISM_PTR pMechanism
);

Аргументы

hSession
Дескриптор сессии.
pMechanism
Указатель на механизм хеширования.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_OPERATION_ACTIVE | Уже существует активная операция (или комбинация активных операций), которые не допускают Cryptoki активировать данную операцию. Например, активная операция поиска не позволяет Cryptoki активировать операция зашифрования при помощи функции C_EncryptInit(). Или, например, активные операции хеширования и зашифрования не допускают активацию операции подписи. И еще пример: если токен не поддерживает одновременных двойных криптографических операций (на что указывает флаг CKF_DUAL_CRYPTO_OPERATIONS в структуре CK_TOKEN_INFO), тогда активная операция подписи запретит активировать операцию зашифрования.
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.
CKR_MECHANISM_INVALID | Криптографической операции передан неверный механизм. Этот код ошибки возникает в случае, когда задается неизвестный механизм, либо когда заданный механизм не может быть использован данной функцией в данном токене.
CKR_MECHANISM_PARAM_INVALID | Криптографической операции передан механизм с недопустимыми параметрами. Совокупность допустимых значений параметра для данного механизма может изменятся в зависимости от токена.
CKR_FUNCTION_FAILED | Данная функция не может быть выполнена, но данный код ошибки не содержит детальную информацию о причине неудачи. Однако, ситуация не так плоха, как при возвращении ошибки CKR_GENERAL_ERROR. В зависимости от действительной причины неудачи, возможно, что повторный вызов функции будет успешным.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_Digest

Функция C_Digest() хеширует данные целиком.

Операция хеширования должна быть проинициализирована с помощью функции C_DigestInit(). Функция C_Digest() всегда заканчивает активную операцию хеширования за исключением тех случаев, когда она возвращает ошибку CKR_BUFFER_TOO_SMALL, либо когда функция завершена успешно (т. е. возвращается CKR_OK), но при этом она использовалась для определения длины буфера хеша данных.

Функция C_Digest() не умеет завершать операцию хеширования в потоке, и поэтому ее вызов должен осуществляться после функции C_DigestInit() и не перемешиваться с вызовами функции C_DigestUpdate().

Хеш может возвращаться по тому же адресу, по которому функции передавались входные данные, т. е. параметры pData и pDigest могут совпадать.

Вызов функции C_Digest() эквивалентен последовательности вызовов функции C_DigestUpdate(), заканчивающейся вызовом функции C_DigestFinal().

CK_RV C_Digest(
  CK_SESSION_HANDLE hSession,
  CK_BYTE_PTR pData,
  CK_ULONG ulDataLen,
  CK_BYTE_PTR pDigest,
  CK_ULONG_PTR pulDigestLen
);

Аргументы

hSession
Дескриптор сессии.
pData
Указатель на данные.
ulDataLen
Длина данных.
pDigest
Адрес, по которому возвращается хеш данных.
pulDigestLen
Адрес, по которому возвращается длина хеша данных.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_OPERATION_NOT_INITIALIZED | Не существует активной операции соответствующего типа в данной сессии. Например, приложение не может вызвать функцию C_Encrypt() без предварительного вызова функции C_EncryptInit() для активирования операции зашифрования.
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.
CKR_BUFFER_TOO_SMALL | Размер буфера недостаточен для возвращения в него необходимых данных.
CKR_FUNCTION_FAILED | Данная функция не может быть выполнена, но данный код ошибки не содержит детальную информацию о причине неудачи. Однако, ситуация не так плоха, как при возвращении ошибки CKR_GENERAL_ERROR. В зависимости от действительной причины неудачи, возможно, что повторный вызов функции будет успешным.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_DigestUpdate

Функция C_DigestUpdate() продолжает операцию хеширования данных в потоке, обрабатывая очередную часть данных.

Операция хеширования должна быть проинициализирована с помощью функции C_DigestInit(). Эта функция может вызываться последовательно любое число раз.

CK_RV C_DigestUpdate(
  CK_SESSION_HANDLE hSession,
  CK_BYTE_PTR pPart,
  CK_ULONG ulPartLen
);

Аргументы

hSession
Дескриптор сессии.
pPart
Указатель на очередную часть данных.
ulPartLen
Длина очередной части данных.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_OPERATION_NOT_INITIALIZED | Не существует активной операции соответствующего типа в данной сессии. Например, приложение не может вызвать функцию C_Encrypt() без предварительного вызова функции C_EncryptInit() для активирования операции зашифрования.
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.
CKR_FUNCTION_FAILED | Данная функция не может быть выполнена, но данный код ошибки не содержит детальную информацию о причине неудачи. Однако, ситуация не так плоха, как при возвращении ошибки CKR_GENERAL_ERROR. В зависимости от действительной причины неудачи, возможно, что повторный вызов функции будет успешным.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_DigestFinal

Функция C_DigestFinal() заканчивает операцию хеширования данных в потоке, возвращая хеш данных.

Операция хеширования должна быть проинициализирована с помощью функции C_DigestInit(). Функция C_DigestFinal() всегда заканчивает активную операцию хеширования за исключением тех случаев, когда она возвращает ошибку CKR_BUFFER_TOO_SMALL, либо когда функция завершена успешно (т. е. возвращается CKR_OK), но при этом она использовалась для определения длины буфера хеша данных.

CK_RV C_DigestFinal(
  CK_SESSION_HANDLE hSession,
  CK_BYTE_PTR pDigest,
  CK_ULONG_PTR pulDigestLen
);

Аргументы

hSession
Дескриптор сессии.
pDigest
Адрес, по которому возвращается хеш данных.
pulDigestLen
Адрес, по которому возвращается длина хеша данных.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_OPERATION_NOT_INITIALIZED | Не существует активной операции соответствующего типа в данной сессии. Например, приложение не может вызвать функцию C_Encrypt() без предварительного вызова функции C_EncryptInit() для активирования операции зашифрования.
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.
CKR_BUFFER_TOO_SMALL | Размер буфера недостаточен для возвращения в него необходимых данных.
CKR_FUNCTION_FAILED | Данная функция не может быть выполнена, но данный код ошибки не содержит детальную информацию о причине неудачи. Однако, ситуация не так плоха, как при возвращении ошибки CKR_GENERAL_ERROR. В зависимости от действительной причины неудачи, возможно, что повторный вызов функции будет успешным.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_DigestKey

Функция C_DigestKey() хеширует значение секретного ключа.

CK_RV C_DigestKey(
  CK_SESSION_HANDLE hSession,
  CK_OBJECT_HANDLE hKey
);

Аргументы

hSession
Дескриптор сессии.
hKey
Дескриптор ключа.

Возвращаемые значения

Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_FUNCTION_NOT_SUPPORTED |

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция не реализована. Стандарный интефейс вызова функции сохранен.

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


Функции создания ЭЦП и имитовставки.

Перечисленные функции предназначены создания ЭЦП и имитовставки.

Функции | Описание
C_SignInit | Функция C_SignInit() инициализирует операцию подписи, где подпись является добавлением к данным.
C_Sign | Функция C_Sign() подписывает данные и завершает операцию подписи.
C_SignUpdate | Функция C_SignUpdate() продолжает операцию подписи данных в потоке, обрабатывая очередную часть данных.
C_SignFinal | Функция C_SignFinal() завершает операцию подписи данных в потоке, возвращая подпись данных.
C_SignRecoverInit | Функция C_SignRecoverInit() инициализирует операцию подписи, в которой данные восстанавливаются из подписи.
C_SignRecover | Функция C_SignRecover() вычисляет подпись данных так, что данные восстанавливаются из подписи.


C_SignInit

Функция C_SignInit() инициализирует операцию подписи, где подпись является добавлением к данным.

Атрибут CKA_SIGN ключа подписи должен иметь значение CK_TRUE.

После вызова функции C_SignInit() существует две возможности осуществления операции подписи данных: приложение может либо вызвать функцию C_Sign() для подписи данных целиком, либо вызывать функцию C_SignUpdate() один или более раз, завершая этот процесс вызовом функции C_SignFinal(), для подписи данных в потоке. Операция подписи данных остается активной до тех пор, пока не будет осуществлен вызов одной из функций C_Sign() или C_SignFinal(), которые фактически получают подпись.

CK_RV C_SignInit(
  CK_SESSION_HANDLE hSession,
  CK_MECHANISM_PTR pMechanism,
  CK_OBJECT_HANDLE hKey
);

Аргументы

hSession
Дескриптор сессии.
pMechanism
Указатель на механизм подписи.
hKey
Дескриптор ключа подписи.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_OPERATION_ACTIVE | Уже существует активная операция (или комбинация активных операций), которые не допускают Cryptoki активировать данную операцию. Например, активная операция поиска не позволяет Cryptoki активировать операция зашифрования при помощи функции C_EncryptInit(). Или, например, активные операции хеширования и зашифрования не допускают активацию операции подписи. И еще пример: если токен не поддерживает одновременных двойных криптографических операций (на что указывает флаг CKF_DUAL_CRYPTO_OPERATIONS в структуре CK_TOKEN_INFO), тогда активная операция подписи запретит активировать операцию зашифрования.
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.
CKR_KEY_HANDLE_INVALID | Заданный дескриптор ключа недопустим. Это может произойти в том случае, когда заданный дескриптор является действительным дескриптором некоторого объекта, но тот в свою очередь не является ключем. Необходимо помнить, что 0 никогда не является верным дескриптором ключа.
CKR_MECHANISM_INVALID | Криптографической операции передан неверный механизм. Этот код ошибки возникает в случае, когда задается неизвестный механизм, либо когда заданный механизм не может быть использован данной функцией в данном токене.
CKR_MECHANISM_PARAM_INVALID | Криптографической операции передан механизм с недопустимыми параметрами. Совокупность допустимых значений параметра для данного механизма может изменятся в зависимости от токена.
CKR_KEY_FUNCTION_NOT_PERMITTED | Осуществлялась попытка выполнить криптографическую операцию с ключем, у которого не установлены необходимые для этой операции атрибуты. Например, если ключ используется в операции зашифрования, то его атрибут CKA_ENCRYPT должен быть установлен в CK_TRUE (заметим, что закрытый ключ не может иметь этот атрибут). Этот код ошибки имеет меньший приоритет, чем CKR_KEY_TYPE_INCONSISTENT.
CKR_KEY_TYPE_INCONSISTENT | Тип заданного ключа не соответствует переданному функции механизму. Этот код ошибки имеет более высокий приоритет, чем CKR_KEY_FUNCTION_NOT_PERMITTED.
CKR_FUNCTION_FAILED | Данная функция не может быть выполнена, но данный код ошибки не содержит детальную информацию о причине неудачи. Однако, ситуация не так плоха, как при возвращении ошибки CKR_GENERAL_ERROR. В зависимости от действительной причины неудачи, возможно, что повторный вызов функции будет успешным.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_Sign

Функция C_Sign() подписывает данные и завершает операцию подписи.

Операция подписи должна быть инициализирована вызовом C_SignInit(). Функция C_Sign() всегда заканчивает активную операцию подписи за исключением тех случаев, когда она возвращает ошибку CKR_BUFFER_TOO_SMALL, либо когда функция завершена успешно (т. е. возвращается CKR_OK), но при этом она использовалась для определения длины буфера подписи данных.

Функция C_Sign() не умеет завершать операцию подписи в потоке, и поэтому ее вызов должен осуществляться после функции C_SignInit() и не перемешиваться с вызовами функции C_SignUpdate().

Для большинства механизмов вызов функции C_Sign() эквивалентен последовательности вызовов функции C_SignUpdate(), заканчивающейся вызовом функции C_SignFinal().

CK_RV C_Sign(
  CK_SESSION_HANDLE hSession,
  CK_BYTE_PTR pData,
  CK_ULONG ulDataLen,
  CK_BYTE_PTR pSignature,
  CK_ULONG_PTR pulSignatureLen
);

Аргументы

hSession
Дескриптор сессии.
pData
Указатель на данные.
ulDataLen
Длина данных.
pSignature
Адрес, по которому возвращается подпись данных.
pulSignatureLen
Адрес, по которому возвращается длина подписи данных.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_OPERATION_NOT_INITIALIZED | Не существует активной операции соответствующего типа в данной сессии. Например, приложение не может вызвать функцию C_Encrypt() без предварительного вызова функции C_EncryptInit() для активирования операции зашифрования.
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.
CKR_BUFFER_TOO_SMALL | Размер буфера недостаточен для возвращения в него необходимых данных.
CKR_DATA_LEN_RANGE | Криптографической операции были переданы открытые входные данные с неверной длиной. В зависимости от механизма операции это может означать, что входные данные имеют слишком маленькую или, наоборот, слишком большую длину, либо их длина не кратна некоторому размеру блока. Этот код ошибки имеет более высокий приоритет, чем CKR_DATA_INVALID.
CKR_FUNCTION_FAILED | Данная функция не может быть выполнена, но данный код ошибки не содержит детальную информацию о причине неудачи. Однако, ситуация не так плоха, как при возвращении ошибки CKR_GENERAL_ERROR. В зависимости от действительной причины неудачи, возможно, что повторный вызов функции будет успешным.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_SignUpdate

Функция C_SignUpdate() продолжает операцию подписи данных в потоке, обрабатывая очередную часть данных.

Операция подписи должна быть проинициализирована с помощью функции C_SignInit(). Эта функция может вызываться последовательно любое число раз.

CK_RV C_SignUpdate(
  CK_SESSION_HANDLE hSession,
  CK_BYTE_PTR pPart,
  CK_ULONG ulPartLen
);

Аргументы

hSession
Дескриптор сессии.
pPart
Указатель на очередную часть данных.
ulPartLen
Длина очередной части данных.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_OPERATION_NOT_INITIALIZED | Не существует активной операции соответствующего типа в данной сессии. Например, приложение не может вызвать функцию C_Encrypt() без предварительного вызова функции C_EncryptInit() для активирования операции зашифрования.
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.
CKR_FUNCTION_FAILED | Данная функция не может быть выполнена, но данный код ошибки не содержит детальную информацию о причине неудачи. Однако, ситуация не так плоха, как при возвращении ошибки CKR_GENERAL_ERROR. В зависимости от действительной причины неудачи, возможно, что повторный вызов функции будет успешным.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_SignFinal

Функция C_SignFinal() завершает операцию подписи данных в потоке, возвращая подпись данных.

Операция подписи должна быть проинициализирована с помощью функции C_SignInit(). Функция C_SignFinal() всегда заканчивает активную операцию подписи за исключением тех случаев, когда она возвращает ошибку CKR_BUFFER_TOO_SMALL, либо когда функция завершена успешно (т. е. возвращается CKR_OK), но при этом она использовалась для определения длины буфера подписи данных.

CK_RV C_SignFinal(
  CK_SESSION_HANDLE hSession,
  CK_BYTE_PTR pSignature,
  CK_ULONG_PTR pulSignatureLen
);

Аргументы

hSession
Дескриптор сессии.
pSignature
Адрес, по которому возвращается подпись данных.
pulSignatureLen
Адрес, по которому возвращается длина подписи данных.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_OPERATION_NOT_INITIALIZED | Не существует активной операции соответствующего типа в данной сессии. Например, приложение не может вызвать функцию C_Encrypt() без предварительного вызова функции C_EncryptInit() для активирования операции зашифрования.
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.
CKR_BUFFER_TOO_SMALL | Размер буфера недостаточен для возвращения в него необходимых данных.
CKR_DATA_LEN_RANGE | Криптографической операции были переданы открытые входные данные с неверной длиной. В зависимости от механизма операции это может означать, что входные данные имеют слишком маленькую или, наоборот, слишком большую длину, либо их длина не кратна некоторому размеру блока. Этот код ошибки имеет более высокий приоритет, чем CKR_DATA_INVALID.
CKR_FUNCTION_FAILED | Данная функция не может быть выполнена, но данный код ошибки не содержит детальную информацию о причине неудачи. Однако, ситуация не так плоха, как при возвращении ошибки CKR_GENERAL_ERROR. В зависимости от действительной причины неудачи, возможно, что повторный вызов функции будет успешным.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_SignRecoverInit

Функция C_SignRecoverInit() инициализирует операцию подписи, в которой данные восстанавливаются из подписи.

CK_RV C_SignRecoverInit(
  CK_SESSION_HANDLE hSession,
  CK_MECHANISM_PTR pMechanism,
  CK_OBJECT_HANDLE hKey
);

Аргументы

hSession
Дескриптор сессии.
pMechanism
Указатель на механизм подписи.
hKey
Дескриптор ключа подписи.

Возвращаемые значения

Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_MECHANISM_INVALID |

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция не реализована. Стандарный интефейс вызова функции сохранен.

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_SignRecover

Функция C_SignRecover() вычисляет подпись данных так, что данные восстанавливаются из подписи.

Операция подписи должна быть инициализирована вызовом C_SignInit(). Функция C_SignRecover() всегда заканчивает активную операцию подписи за исключением тех случаев, когда она возвращает ошибку CKR_BUFFER_TOO_SMALL, либо когда функция завершена успешно (т. е. возвращается CKR_OK), но при этом она использовалась для определения длины буфера подписи данных.

Функция C_SignRecover() не умеет завершать операцию подписи в потоке, и поэтому ее вызов должен осуществляться после функции C_SignInit() и не перемешиваться с вызовами функции C_SignUpdate().

CK_RV C_SignRecover(
  CK_SESSION_HANDLE hSession,
  CK_BYTE_PTR pData,
  CK_ULONG ulDataLen,
  CK_BYTE_PTR pSignature,
  CK_ULONG_PTR pulSignatureLen
);

Аргументы

hSession
Дескриптор сессии.
pData
Указатель на подписываемые данные.
ulDataLen
Длина данных.
pSignature
Адрес, по которому возвращается подпись данных.
pulSignatureLen
Адрес, по которому возвращается длина подписи данных.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_OPERATION_NOT_INITIALIZED | Не существует активной операции соответствующего типа в данной сессии. Например, приложение не может вызвать функцию C_Encrypt() без предварительного вызова функции C_EncryptInit() для активирования операции зашифрования.
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.
CKR_BUFFER_TOO_SMALL | Размер буфера недостаточен для возвращения в него необходимых данных.
CKR_DATA_LEN_RANGE | Криптографической операции были переданы открытые входные данные с неверной длиной. В зависимости от механизма операции это может означать, что входные данные имеют слишком маленькую или, наоборот, слишком большую длину, либо их длина не кратна некоторому размеру блока. Этот код ошибки имеет более высокий приоритет, чем CKR_DATA_INVALID.
CKR_FUNCTION_FAILED | Данная функция не может быть выполнена, но данный код ошибки не содержит детальную информацию о причине неудачи. Однако, ситуация не так плоха, как при возвращении ошибки CKR_GENERAL_ERROR. В зависимости от действительной причины неудачи, возможно, что повторный вызов функции будет успешным.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована с ограничениями. Реализация функции эквивалентна реализации функции C_Sign.

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


Функции проверки ЭЦП и имитовставки.

Перечисленные функции предназначены проверки ЭЦП и имитовставки.

Функции | Описание
C_VerifyInit | Функция C_VerifyInit() инициализирует операцию проверки подписи, где подпись является добавлением к данным.
C_Verify | Функция C_Verify() проверяет подпись данных целиком, где подпись является добавлением к данным.
C_VerifyUpdate | Функция C_VerifyUpdate() продолжает операцию проверки подписи данных в потоке, обрабатывая очередную часть данных.
C_VerifyFinal | Функция C_VerifyFinal() завершает операцию проверки подписи данных в потоке.
C_VerifyRecoverInit | Функция C_VerifyRecoverInit() инициализирует операцию проверки подписи, в которые данные восстанавливаются из подписи.
C_VerifyRecover | Функция C_VerifyRecover() выполняет проверку подписи.


C_VerifyInit

Функция C_VerifyInit() инициализирует операцию проверки подписи, где подпись является добавлением к данным.

Атрибут CKA_VERIFY ключа проверки подписи должен иметь значение CK_TRUE.

CK_RV C_VerifyInit(
  CK_SESSION_HANDLE hSession,
  CK_MECHANISM_PTR pMechanism,
  CK_OBJECT_HANDLE hKey
);

Аргументы

hSession
Дескриптор сессии.
pMechanism
Указатель на механизм проверки подписи.
hKey
Дескриптор ключа проверки подписи.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_OPERATION_ACTIVE | Уже существует активная операция (или комбинация активных операций), которые не допускают Cryptoki активировать данную операцию. Например, активная операция поиска не позволяет Cryptoki активировать операция зашифрования при помощи функции C_EncryptInit(). Или, например, активные операции хеширования и зашифрования не допускают активацию операции подписи. И еще пример: если токен не поддерживает одновременных двойных криптографических операций (на что указывает флаг CKF_DUAL_CRYPTO_OPERATIONS в структуре CK_TOKEN_INFO), тогда активная операция подписи запретит активировать операцию зашифрования.
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.
CKR_KEY_HANDLE_INVALID | Заданный дескриптор ключа недопустим. Это может произойти в том случае, когда заданный дескриптор является действительным дескриптором некоторого объекта, но тот в свою очередь не является ключем. Необходимо помнить, что 0 никогда не является верным дескриптором ключа.
CKR_KEY_FUNCTION_NOT_PERMITTED | Осуществлялась попытка выполнить криптографическую операцию с ключем, у которого не установлены необходимые для этой операции атрибуты. Например, если ключ используется в операции зашифрования, то его атрибут CKA_ENCRYPT должен быть установлен в CK_TRUE (заметим, что закрытый ключ не может иметь этот атрибут). Этот код ошибки имеет меньший приоритет, чем CKR_KEY_TYPE_INCONSISTENT.
CKR_KEY_TYPE_INCONSISTENT | Тип заданного ключа не соответствует переданному функции механизму. Этот код ошибки имеет более высокий приоритет, чем CKR_KEY_FUNCTION_NOT_PERMITTED.
CKR_MECHANISM_INVALID | Криптографической операции передан неверный механизм. Этот код ошибки возникает в случае, когда задается неизвестный механизм, либо когда заданный механизм не может быть использован данной функцией в данном токене.
CKR_MECHANISM_PARAM_INVALID | Криптографической операции передан механизм с недопустимыми параметрами. Совокупность допустимых значений параметра для данного механизма может изменятся в зависимости от токена.
CKR_FUNCTION_FAILED | Данная функция не может быть выполнена, но данный код ошибки не содержит детальную информацию о причине неудачи. Однако, ситуация не так плоха, как при возвращении ошибки CKR_GENERAL_ERROR. В зависимости от действительной причины неудачи, возможно, что повторный вызов функции будет успешным.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_Verify

Функция C_Verify() проверяет подпись данных целиком, где подпись является добавлением к данным.

Операция подписи должна быть проинициализирована с помощью функции C_VerifyInit(). Функция C_Verify() всегда заканчивает активную операцию проверки подписи.

CK_RV C_Verify(
  CK_SESSION_HANDLE hSession,
  CK_BYTE_PTR pData,
  CK_ULONG ulDataLen,
  CK_BYTE_PTR pSignature,
  CK_ULONG ulSignatureLen
);

Аргументы

hSession
Дескриптор сессии.
pData
Указатель на данные.
ulDataLen
Длина данных.
pSignature
Указатель на подпись.
ulSignatureLen
Длина подписи данных.

Возвращаемые значения

Успешный вызов функции C_Verify() возвращает либо CKR_OK (что означает, что подпись действительна), либо CKR_SIGNATURE_INVALID (что означает, что подпись недействительна), в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_OPERATION_NOT_INITIALIZED | Не существует активной операции соответствующего типа в данной сессии. Например, приложение не может вызвать функцию C_Encrypt() без предварительного вызова функции C_EncryptInit() для активирования операции зашифрования.
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.
CKR_DATA_LEN_RANGE | Криптографической операции были переданы открытые входные данные с неверной длиной. В зависимости от механизма операции это может означать, что входные данные имеют слишком маленькую или, наоборот, слишком большую длину, либо их длина не кратна некоторому размеру блока. Этот код ошибки имеет более высокий приоритет, чем CKR_DATA_INVALID.
CKR_SIGNATURE_LEN_RANGE | Данная подпись/MAC недействительна, что ясно исходя из ее длины. Этот код ошибки имеет более высокий приоритет, чем CKR_SIGNATURE_INVALID.
CKR_FUNCTION_FAILED | Данная функция не может быть выполнена, но данный код ошибки не содержит детальную информацию о причине неудачи. Однако, ситуация не так плоха, как при возвращении ошибки CKR_GENERAL_ERROR. В зависимости от действительной причины неудачи, возможно, что повторный вызов функции будет успешным.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_VerifyUpdate

Функция C_VerifyUpdate() продолжает операцию проверки подписи данных в потоке, обрабатывая очередную часть данных.

CK_RV C_VerifyUpdate(
  CK_SESSION_HANDLE hSession,
  CK_BYTE_PTR pPart,
  CK_ULONG ulPartLen
);

Аргументы

hSession
Дескриптор сессии.
pPart
Указатель на очередную часть данных.
ulPartLen
Длина очередной части данных.

Возвращаемые значения

Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_FUNCTION_NOT_SUPPORTED |

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция не реализована. Стандарный интефейс вызова функции сохранен.

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_VerifyFinal

Функция C_VerifyFinal() завершает операцию проверки подписи данных в потоке.

CK_RV C_VerifyFinal(
  CK_SESSION_HANDLE hSession,
  CK_BYTE_PTR pSignature,
  CK_ULONG ulSignatureLen
);

Аргументы

hSession
Дескриптор сессии.
pSignature
Указатель на подпись данных.
ulSignatureLen
Длина подписи данных.

Возвращаемые значения

Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_FUNCTION_NOT_SUPPORTED |

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция не реализована. Стандарный интефейс вызова функции сохранен.

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_VerifyRecoverInit

Функция C_VerifyRecoverInit() инициализирует операцию проверки подписи, в которые данные восстанавливаются из подписи.

CK_RV C_VerifyRecoverInit(
  CK_SESSION_HANDLE hSession,
  CK_MECHANISM_PTR pMechanism,
  CK_OBJECT_HANDLE hKey
);

Аргументы

hSession
Дескриптор сессии.
pMechanism
Указатель на механизм проверки подписи.
hKey
Дескриптор ключа проверки подписи.

Возвращаемые значения

Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_MECHANISM_INVALID |

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция не реализована. Стандарный интефейс вызова функции сохранен.

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_VerifyRecover

Функция C_VerifyRecover() выполняет проверку подписи.

CK_RV C_VerifyRecover(
  CK_SESSION_HANDLE hSession,
  CK_BYTE_PTR pSignature,
  CK_ULONG ulSignatureLen,
  CK_BYTE_PTR pData,
  CK_ULONG_PTR pulDataLen
);

Аргументы

hSession
Дескриптор сессии.
pSignature
Указатель на подпись.
ulSignatureLen
Длина подписи данных.
pData
Адрес, по которому возвращаются данные.
pulDataLen
Адрес, по которому возвращается длина данных.

Возвращаемые значения

Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_FUNCTION_NOT_SUPPORTED |

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция не реализована. Стандарный интефейс вызова функции сохранен.

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


Функции, выполняющие две криптографические операции.

Перечисленные функции предназначены для ....

Функции | Описание
C_DigestEncryptUpdate | Функция C_DigestEncryptUpdate() продолжает операции хеширования и шифрования данных в потоке, обрабатывая очередную часть данных.
C_DecryptDigestUpdate | Функция C_DecryptDigestUpdate() продолжает операции расшифрования и хеширования данных в потоке, обрабатывая очередную часть данных.
C_SignEncryptUpdate | Функция C_SignEncryptUpdate() продолжает операции подписи и шифрования данных в потоке, обрабатывая очередную часть данных.
C_DecryptVerifyUpdate | Функция C_DecryptVerifyUpdate() продолжает операции расшифрования данных и проверки подписи в потоке, обрабатывая очередную часть данных.


C_DigestEncryptUpdate

Функция C_DigestEncryptUpdate() продолжает операции хеширования и шифрования данных в потоке, обрабатывая очередную часть данных.

Операции хеширования и шифрования должны быть инициализированы с помощью функций C_DigestInit() и C_EncryptInit() соответственно. Эта функция может вызываться последовательно любое число раз. Вызовы функции C_DigestEncryptUpdate() могут чередоваться с вызовами функций C_DigestUpdate() и C_EncryptUpdate().

CK_RV C_DigestEncryptUpdate(
  CK_SESSION_HANDLE hSession,
  CK_BYTE_PTR pPart,
  CK_ULONG ulPartLen,
  CK_BYTE_PTR pEncryptedPart,
  CK_ULONG_PTR pulEncryptedPartLen
);

Аргументы

hSession
Дескриптор сессии
pPart
Входные данные
ulPartLen
Длина входных данных
pEncryptedPart
Адрес, по которому возвращается зашифрованная часть данных.
pulEncryptedPartLen
Адрес, по которому возвращается длина зашифрованной части данных в байтах.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_OPERATION_NOT_INITIALIZED | Не существует активной операции соответствующего типа в данной сессии. Например, приложение не может вызвать функцию C_Encrypt() без предварительного вызова функции C_EncryptInit() для активирования операции зашифрования.
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.
CKR_DATA_LEN_RANGE | Криптографической операции были переданы открытые входные данные с неверной длиной. В зависимости от механизма операции это может означать, что входные данные имеют слишком маленькую или, наоборот, слишком большую длину, либо их длина не кратна некоторому размеру блока. Этот код ошибки имеет более высокий приоритет, чем CKR_DATA_INVALID.
CKR_BUFFER_TOO_SMALL | Размер буфера недостаточен для возвращения в него необходимых данных.
CKR_FUNCTION_FAILED | Данная функция не может быть выполнена, но данный код ошибки не содержит детальную информацию о причине неудачи. Однако, ситуация не так плоха, как при возвращении ошибки CKR_GENERAL_ERROR. В зависимости от действительной причины неудачи, возможно, что повторный вызов функции будет успешным.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11.

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_DecryptDigestUpdate

Функция C_DecryptDigestUpdate() продолжает операции расшифрования и хеширования данных в потоке, обрабатывая очередную часть данных.

Операции хеширования и расшифрования должны быть инициализированы с помощью функций C_DigestInit() и C_DecryptInit() соответственно. Эта функция может вызываться последовательно любое число раз. Вызовы функции C_DecryptDigestUpdate() могут чередоваться с вызовами функций C_DecryptUpdate() и C_DigestUpdate().

CK_RV C_DecryptDigestUpdate(
  CK_SESSION_HANDLE hSession,
  CK_BYTE_PTR pEncryptedPart,
  CK_ULONG ulEncryptedPartLen,
  CK_BYTE_PTR pPart,
  CK_ULONG_PTR pulPartLen
);

Аргументы

hSession
Дескриптор сессии.
pEncryptedPart
Указатель на очередную зашифрованную часть данных.
ulEncryptedPartLen
Длина очередной зашифрованной части данных.
pPart
Адрес, по которому возвращается расшифрованная часть данных.
pulPartLen
Адрес, по которому возвращается длина расшифрованной части данных в байтах.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_OPERATION_NOT_INITIALIZED | Не существует активной операции соответствующего типа в данной сессии. Например, приложение не может вызвать функцию C_Encrypt() без предварительного вызова функции C_EncryptInit() для активирования операции зашифрования.
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.
CKR_ENCRYPTED_DATA_LEN_RANGE | Операция расшифрования определила, что входные зашифрованные данные являются неверным зашифрованным текстом исключительно по их длине. В зависимости от механизма операции это может означать, что входные зашифрованные данные имеют слишком маленькую или, наоборот, слишком большую длину, либо их длина не кратна некоторому размеру блока. Этот код ошибки имеет более высокий приоритет, чем CKR_ENCRYPTED_DATA_INVALID.
CKR_BUFFER_TOO_SMALL | Размер буфера недостаточен для возвращения в него необходимых данных.
CKR_FUNCTION_FAILED | Данная функция не может быть выполнена, но данный код ошибки не содержит детальную информацию о причине неудачи. Однако, ситуация не так плоха, как при возвращении ошибки CKR_GENERAL_ERROR. В зависимости от действительной причины неудачи, возможно, что повторный вызов функции будет успешным.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_SignEncryptUpdate

Функция C_SignEncryptUpdate() продолжает операции подписи и шифрования данных в потоке, обрабатывая очередную часть данных.

Операции подписи и шифрования должны быть инициализированы с помощью функций C_SignInit() и C_EncryptInit() соответственно. Эта функция может вызываться последовательно любое число раз. Вызовы функции C_SignEncryptUpdate() могут чередоваться с вызовами функций C_SignUpdate() и C_EncryptUpdate().

CK_RV C_SignEncryptUpdate(
  CK_SESSION_HANDLE hSession,
  CK_BYTE_PTR pPart,
  CK_ULONG ulPartLen,
  CK_BYTE_PTR pEncryptedPart,
  CK_ULONG_PTR pulEncryptedPartLen
);

Аргументы

hSession
Дескриптор сессии
pPart
Входные данные
ulPartLen
Длина входных данных
pEncryptedPart
Адрес, по которому возвращается зашифрованная часть данных.
pulEncryptedPartLen
Адрес, по которому возвращается длина зашифрованной части данных в байтах.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_OPERATION_NOT_INITIALIZED | Не существует активной операции соответствующего типа в данной сессии. Например, приложение не может вызвать функцию C_Encrypt() без предварительного вызова функции C_EncryptInit() для активирования операции зашифрования.
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.
CKR_DATA_LEN_RANGE | Криптографической операции были переданы открытые входные данные с неверной длиной. В зависимости от механизма операции это может означать, что входные данные имеют слишком маленькую или, наоборот, слишком большую длину, либо их длина не кратна некоторому размеру блока. Этот код ошибки имеет более высокий приоритет, чем CKR_DATA_INVALID.
CKR_BUFFER_TOO_SMALL | Размер буфера недостаточен для возвращения в него необходимых данных.
CKR_FUNCTION_FAILED | Данная функция не может быть выполнена, но данный код ошибки не содержит детальную информацию о причине неудачи. Однако, ситуация не так плоха, как при возвращении ошибки CKR_GENERAL_ERROR. В зависимости от действительной причины неудачи, возможно, что повторный вызов функции будет успешным.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_DecryptVerifyUpdate

Функция C_DecryptVerifyUpdate() продолжает операции расшифрования данных и проверки подписи в потоке, обрабатывая очередную часть данных.

CK_RV C_DecryptVerifyUpdate(
  CK_SESSION_HANDLE hSession,
  CK_BYTE_PTR pEncryptedData,
  CK_ULONG ulEncryptedDataLen,
  CK_BYTE_PTR pData,
  CK_ULONG_PTR pulDataLen
);

Аргументы

hSession
Дескриптор сессии
pEncryptedData
Указатель на очередную зашифрованную часть данных.
ulEncryptedDataLen
Длина очередной зашифрованной части данных.
pData
Адрес, по которому возвращается расшифрованная часть данных.
pulDataLen
Адрес, по которому возвращается длина расшифрованной части данных в байтах.

Возвращаемые значения

Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_OPERATION_NOT_INITIALIZED | Не существует активной операции соответствующего типа в данной сессии. Например, приложение не может вызвать функцию C_Encrypt() без предварительного вызова функции C_EncryptInit() для активирования операции зашифрования.
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.
CKR_FUNCTION_FAILED | Данная функция не может быть выполнена, но данный код ошибки не содержит детальную информацию о причине неудачи. Однако, ситуация не так плоха, как при возвращении ошибки CKR_GENERAL_ERROR. В зависимости от действительной причины неудачи, возможно, что повторный вызов функции будет успешным.
CKR_FUNCTION_NOT_SUPPORTED |

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция не реализована. Стандарный интефейс вызова функции сохранен.

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


Функции работы с ключами.

Перечисленные функции предназначены для генерации ключа или ключевой пары, экспорта/импорта ключа и создания некоторого ключа из существующего.

Функции | Описание
C_GenerateKey | Функция C_GenerateKey() генерирует секретный ключ, создавая новый объект.
C_GenerateKeyPair | Функция C_GenerateKeyPair() генерирует ключевую пару , создавая новые ключевые объекты.
C_WrapKey | Функция C_WrapKey() экспортирует закрытый или секретный ключ.
C_UnwrapKey | Функция C_UnwrapKey() импортирует ключ, создавая новый закрытый или секретный ключ.
C_DeriveKey | Функция C_DeriveKey() получает ключ из базового ключа, создавая новый ключевой объект.


C_GenerateKey

Функция C_GenerateKey() генерирует секретный ключ, создавая новый объект.

То, какой тип ключа будет сгенерирован, зависит от механизма, поэтому необязательно указывать в шаблоне значения атрибутов CKA_KEY_TYPE и CKA_CLASS. Если хотя бы один из этих атрибутов указан и его значение противоречит механизму генерации, то функция выдаст ошибку CKR_TEMPLATE_INCONSISTENT.

Если функция C_GenerateKey() не поддерживает переданный ей шаблон, то вызов терпит неудачу и заканчивается не создавая объект.

Объект, созданный при помощи успешного вызова функции C_GenerateKey() имеет атрибут CKA_LOCAL, установленный в CK_TRUE.

CK_RV C_GenerateKey(
  CK_SESSION_HANDLE hSession,
  CK_MECHANISM_PTR pMechanism,
  CK_ATTRIBUTE_PTR pTemplate,
  CK_ULONG ulCount,
  CK_OBJECT_HANDLE_PTR phKey
);

Аргументы

hSession
Дескриптор сессии.
pMechanism
Указатель на механизм генерации.
pTemplate
Указатель на шаблон для нового ключа.
ulCount
Число атрибутов в шаблоне.
phKey
Адрес, по которому возвращается дескриптор нового ключа.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.
CKR_ATTRIBUTE_VALUE_INVALID | В шаблоне указано неверное значение для некоторого атрибута.
CKR_ATTRIBUTE_TYPE_INVALID | В шаблоне указан недопустимый тип атрибута.
CKR_TEMPLATE_INCONSISTENT | Шаблон для создаваемого объекта содержит противоречивые атрибуты.
CKR_MECHANISM_INVALID | Криптографической операции передан неверный механизм. Этот код ошибки возникает в случае, когда задается неизвестный механизм, либо когда заданный механизм не может быть использован данной функцией в данном токене.
CKR_MECHANISM_PARAM_INVALID | Криптографической операции передан механизм с недопустимыми параметрами. Совокупность допустимых значений параметра для данного механизма может изменятся в зависимости от токена.
CKR_FUNCTION_FAILED | Данная функция не может быть выполнена, но данный код ошибки не содержит детальную информацию о причине неудачи. Однако, ситуация не так плоха, как при возвращении ошибки CKR_GENERAL_ERROR. В зависимости от действительной причины неудачи, возможно, что повторный вызов функции будет успешным.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_GenerateKeyPair

Функция C_GenerateKeyPair() генерирует ключевую пару , создавая новые ключевые объекты.

То, какие типы ключей будут сгенерированы, зависит от механизма, поэтому необязательно указывать в шаблонах значения атрибутов CKA_KEY_TYPE и CKA_CLASS. Если хотя бы один из этих атрибутов указан и его значение противоречит механизму генерации, то функция выдаст ошибку CKR_TEMPLATE_INCONSISTENT.

Если функция C_GenerateKeyPair() не поддерживает переданные ей шаблоны, то вызов ее терпит неудачу и заканчивается не создавая ни одного нового объекта.

Объекты, созданные при помощи успешного вызова функции C_GenerateKeyPair() имеют атрибут CKA_LOCAL, установленный в CK_TRUE.

CK_RV C_GenerateKeyPair(
  CK_SESSION_HANDLE hSession,
  CK_MECHANISM_PTR pMechanism,
  CK_ATTRIBUTE_PTR pPublicKeyTemplate,
  CK_ULONG ulPublicKeyAttributeCount,
  CK_ATTRIBUTE_PTR pPrivateKeyTemplate,
  CK_ULONG ulPrivateKeyAttributeCount,
  CK_OBJECT_HANDLE_PTR phPublicKey,
  CK_OBJECT_HANDLE_PTR phPrivateKey
);

Аргументы

hSession
Дескриптор сессии.
pMechanism
Указатель на механизм генерации.
pPublicKeyTemplate
Указатель на шаблон ключа проверки подписи.
ulPublicKeyAttributeCount
Число атрибутов в шаблоне ключа проверки подписи.
pPrivateKeyTemplate
Указатель на шаблон для ключа подписи.
ulPrivateKeyAttributeCount
Число атрибутов в шаблоне ключа подписи.
phPublicKey
Адрес, по которому возвращается дескриптор нового ключа проверки подписи.
phPrivateKey
Адрес, по которому возвращается дескриптор нового ключа подписи.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.
CKR_ATTRIBUTE_VALUE_INVALID | В шаблоне указано неверное значение для некоторого атрибута.
CKR_ATTRIBUTE_TYPE_INVALID | В шаблоне указан недопустимый тип атрибута.
CKR_TEMPLATE_INCONSISTENT | Шаблон для создаваемого объекта содержит противоречивые атрибуты.
CKR_MECHANISM_INVALID | Криптографической операции передан неверный механизм. Этот код ошибки возникает в случае, когда задается неизвестный механизм, либо когда заданный механизм не может быть использован данной функцией в данном токене.
CKR_MECHANISM_PARAM_INVALID | Криптографической операции передан механизм с недопустимыми параметрами. Совокупность допустимых значений параметра для данного механизма может изменятся в зависимости от токена.
CKR_FUNCTION_FAILED | Данная функция не может быть выполнена, но данный код ошибки не содержит детальную информацию о причине неудачи. Однако, ситуация не так плоха, как при возвращении ошибки CKR_GENERAL_ERROR. В зависимости от действительной причины неудачи, возможно, что повторный вызов функции будет успешным.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_WrapKey

Функция C_WrapKey() экспортирует закрытый или секретный ключ.

Атрибут CKA_WRAP ключа, на котором производится экспорт, должен иметь значение CK_TRUE.

Атрибут CKA_EXTRACTABLE экспортируемого ключа должен иметь значение в CK_TRUE.

CK_RV C_WrapKey(
  CK_SESSION_HANDLE hSession,
  CK_MECHANISM_PTR pMechanism,
  CK_OBJECT_HANDLE hWrappingKey,
  CK_OBJECT_HANDLE hKey,
  CK_BYTE_PTR pWrappedKey,
  CK_ULONG_PTR pulWrappedKeyLen
);

Аргументы

hSession
Дескриптор сессии.
pMechanism
Указатель на механизм экспорта ключа.
hWrappingKey
Дескриптор ключа, на котором производится экспорт.
hKey
Дескриптор экспортируемого ключа.
pWrappedKey
Адрес, по которому возвращается ключевой блоб.
pulWrappedKeyLen
Адрес, по которому возвращается размер ключевого блоба.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.
CKR_WRAPPING_KEY_HANDLE_INVALID | Этот код ошибки может быть возвращен только функцией C_WrapKey(). Она указывает на то, что дескриптор ключа, предназначавшегося для зашифрования другого ключа, недействителен.
CKR_WRAPPING_KEY_TYPE_INCONSISTENT | Этот код ошибки может быть возвращен только функцией C_WrapKey(). Она указывает на то, что тип заданного ключа зашифрования не соответствует переданному функции механизму зашифрования ключа на другом ключе.
CKR_KEY_FUNCTION_NOT_PERMITTED | Осуществлялась попытка выполнить криптографическую операцию с ключем, у которого не установлены необходимые для этой операции атрибуты. Например, если ключ используется в операции зашифрования, то его атрибут CKA_ENCRYPT должен быть установлен в CK_TRUE (заметим, что закрытый ключ не может иметь этот атрибут). Этот код ошибки имеет меньший приоритет, чем CKR_KEY_TYPE_INCONSISTENT.
CKR_KEY_HANDLE_INVALID | Заданный дескриптор ключа недопустим. Это может произойти в том случае, когда заданный дескриптор является действительным дескриптором некоторого объекта, но тот в свою очередь не является ключем. Необходимо помнить, что 0 никогда не является верным дескриптором ключа.
CKR_KEY_UNEXTRACTABLE | Заданный закрытый или секретный ключ не может быть зашифрован, поскольку его атрибут CKA_UNEXTRACTABLE выставлен в CK_TRUE. Сравните с ошибкой CKR_KEY_NOT_WRAPPABLE.
CKR_KEY_TYPE_INCONSISTENT | Тип заданного ключа не соответствует переданному функции механизму. Этот код ошибки имеет более высокий приоритет, чем CKR_KEY_FUNCTION_NOT_PERMITTED.
CKR_BUFFER_TOO_SMALL | Размер буфера недостаточен для возвращения в него необходимых данных.
CKR_MECHANISM_PARAM_INVALID | Криптографической операции передан механизм с недопустимыми параметрами. Совокупность допустимых значений параметра для данного механизма может изменятся в зависимости от токена.
CKR_MECHANISM_INVALID | Криптографической операции передан неверный механизм. Этот код ошибки возникает в случае, когда задается неизвестный механизм, либо когда заданный механизм не может быть использован данной функцией в данном токене.
CKR_FUNCTION_FAILED | Данная функция не может быть выполнена, но данный код ошибки не содержит детальную информацию о причине неудачи. Однако, ситуация не так плоха, как при возвращении ошибки CKR_GENERAL_ERROR. В зависимости от действительной причины неудачи, возможно, что повторный вызов функции будет успешным.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_UnwrapKey

Функция C_UnwrapKey() импортирует ключ, создавая новый закрытый или секретный ключ.

Атрибут CKA_UNWRAP ключа, на котором производится импорт, должен иметь значение CK_TRUE.

Если функция C_UnwrapKey() не поддерживает переданный ей шаблон, то вызов ее терпит неудачу и завершается, не создавая при этом какого-либо ключевого объекта.

Объект, созданный при помощи успешного вызова функции C_UnwrapKey() имеет атрибут CKA_LOCAL, установленный в CK_FALSE.

CK_RV C_UnwrapKey(
  CK_SESSION_HANDLE hSession,
  CK_MECHANISM_PTR pMechanism,
  CK_OBJECT_HANDLE hUnwrappingKey,
  CK_BYTE_PTR pWrappedKey,
  CK_ULONG ulWrappedKeyLen,
  CK_ATTRIBUTE_PTR pTemplate,
  CK_ULONG ulCount,
  CK_OBJECT_HANDLE_PTR phKey
);

Аргументы

hSession
Дескриптор сессии.
pMechanism
Указатель на механизм импорта ключа.
hUnwrappingKey
Дескриптор ключа, на котором производится импорт.
pWrappedKey
Указатель на ключевой блоб.
ulWrappedKeyLen
Размер ключевого блоба.
pTemplate
Указатель на шаблон нового ключа.
ulCount
Количество атрибутов в шаблоне.
phKey
Адрес, по которому передается дескриптор нового ключа.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.
CKR_UNWRAPPING_KEY_HANDLE_INVALID | Этот код ошибки может быть возвращен только функцией C_UnwrapKey(). Она указывает на то, что декриптор ключа, используемого при расшифровании другого ключа является недействительным.
CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT | Этот код ошибки может быть возвращен только функцией C_UnwrapKey(). Она указывает на то, что тип заданного ключа расшифрования не соответствует переданному функции механизму расшифрования ключа на другом ключе.
CKR_KEY_FUNCTION_NOT_PERMITTED | Осуществлялась попытка выполнить криптографическую операцию с ключем, у которого не установлены необходимые для этой операции атрибуты. Например, если ключ используется в операции зашифрования, то его атрибут CKA_ENCRYPT должен быть установлен в CK_TRUE (заметим, что закрытый ключ не может иметь этот атрибут). Этот код ошибки имеет меньший приоритет, чем CKR_KEY_TYPE_INCONSISTENT.
CKR_TEMPLATE_INCOMPLETE | В шаблоне для создаваемого объекта недостает некоторых необходимых атрибутов.
CKR_TEMPLATE_INCONSISTENT | Шаблон для создаваемого объекта содержит противоречивые атрибуты.
CKR_ATTRIBUTE_VALUE_INVALID | В шаблоне указано неверное значение для некоторого атрибута.
CKR_ATTRIBUTE_TYPE_INVALID | В шаблоне указан недопустимый тип атрибута.
CKR_ATTRIBUTE_READ_ONLY | Осуществлялась попытка присвоить значение аргументу, который не может быть установлен или изменен данным приложением.
CKR_MECHANISM_INVALID | Криптографической операции передан неверный механизм. Этот код ошибки возникает в случае, когда задается неизвестный механизм, либо когда заданный механизм не может быть использован данной функцией в данном токене.
CKR_MECHANISM_PARAM_INVALID | Криптографической операции передан механизм с недопустимыми параметрами. Совокупность допустимых значений параметра для данного механизма может изменятся в зависимости от токена.
CKR_FUNCTION_FAILED | Данная функция не может быть выполнена, но данный код ошибки не содержит детальную информацию о причине неудачи. Однако, ситуация не так плоха, как при возвращении ошибки CKR_GENERAL_ERROR. В зависимости от действительной причины неудачи, возможно, что повторный вызов функции будет успешным.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_DeriveKey

Функция C_DeriveKey() получает ключ из базового ключа, создавая новый ключевой объект.

Атрибут CKA_DERIVE базового ключа должен иметь значение CK_TRUE.

Если функция C_DeriveKey() не поддерживает переданный ей шаблон, то вызов ее терпит неудачу и завершается, не создавая при этом какого-либо ключевого объекта.

Объект, созданный при помощи успешного вызова функции C_DeriveKey() имеет атрибут CKA_LOCAL, установленный в CK_FALSE.

CK_RV C_DeriveKey(
  CK_SESSION_HANDLE hSession,
  CK_MECHANISM_PTR pMechanism,
  CK_OBJECT_HANDLE hBaseKey,
  CK_ATTRIBUTE_PTR pTemplate,
  CK_ULONG ulCount,
  CK_OBJECT_HANDLE_PTR phKey
);

Аргументы

hSession
Дескриптор сессии.
pMechanism
Указатель структуру, определяющую механизм получения ключа.
hBaseKey
Дескриптор базового ключа.
pTemplate
Указатель на шаблон нового ключа.
ulCount
Количество атрибутов в шаблоне.
phKey
Адрес, по которому возвращается дескриптор полученного ключа.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.
CKR_KEY_HANDLE_INVALID | Заданный дескриптор ключа недопустим. Это может произойти в том случае, когда заданный дескриптор является действительным дескриптором некоторого объекта, но тот в свою очередь не является ключем. Необходимо помнить, что 0 никогда не является верным дескриптором ключа.
CKR_ATTRIBUTE_VALUE_INVALID | В шаблоне указано неверное значение для некоторого атрибута.
CKR_ATTRIBUTE_TYPE_INVALID | В шаблоне указан недопустимый тип атрибута.
CKR_TEMPLATE_INCONSISTENT | Шаблон для создаваемого объекта содержит противоречивые атрибуты.
CKR_KEY_TYPE_INCONSISTENT | Тип заданного ключа не соответствует переданному функции механизму. Этот код ошибки имеет более высокий приоритет, чем CKR_KEY_FUNCTION_NOT_PERMITTED.
CKR_KEY_FUNCTION_NOT_PERMITTED | Осуществлялась попытка выполнить криптографическую операцию с ключем, у которого не установлены необходимые для этой операции атрибуты. Например, если ключ используется в операции зашифрования, то его атрибут CKA_ENCRYPT должен быть установлен в CK_TRUE (заметим, что закрытый ключ не может иметь этот атрибут). Этот код ошибки имеет меньший приоритет, чем CKR_KEY_TYPE_INCONSISTENT.
CKR_MECHANISM_PARAM_INVALID | Криптографической операции передан механизм с недопустимыми параметрами. Совокупность допустимых значений параметра для данного механизма может изменятся в зависимости от токена.
CKR_MECHANISM_INVALID | Криптографической операции передан неверный механизм. Этот код ошибки возникает в случае, когда задается неизвестный механизм, либо когда заданный механизм не может быть использован данной функцией в данном токене.
CKR_FUNCTION_FAILED | Данная функция не может быть выполнена, но данный код ошибки не содержит детальную информацию о причине неудачи. Однако, ситуация не так плоха, как при возвращении ошибки CKR_GENERAL_ERROR. В зависимости от действительной причины неудачи, возможно, что повторный вызов функции будет успешным.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


Функции генерации случайных данных.

Перечисленные функции предназначены для генерации случайных данных

Функции | Описание
C_SeedRandom | Функция C_SeedRandom() перемешивает начальную последовательность в генераторе случайных чисел данного токена.
C_GenerateRandom | Функция C_GenerateRandom() генерирует случайные или псевдослучайные данные.


C_SeedRandom

Функция C_SeedRandom() перемешивает начальную последовательность в генераторе случайных чисел данного токена.

CK_RV C_SeedRandom(
  CK_SESSION_HANDLE hSession,
  CK_BYTE_PTR pSeed,
  CK_ULONG ulSeedLen
);

Аргументы

hSession
Дескриптор сессии.
pSeed
Указатель на начальную последовательность.
ulSeedLen
Длина начальной последовательности.

Возвращаемые значения

Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.
CKR_OK |

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция не реализована. Стандартный интерфейс вызова функции сохранен.

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_GenerateRandom

Функция C_GenerateRandom() генерирует случайные или псевдослучайные данные.

CK_RV C_GenerateRandom(
  CK_SESSION_HANDLE hSession,
  CK_BYTE_PTR pRandomData,
  CK_ULONG ulRandomLen
);

Аргументы

hSession
Дескриптор сессии.
pRandomData
Адрес буфера для записи случайных данных.
ulRandomLen
Длина случайных или псеводослучайных данных, которые будут сгенерированы.

Возвращаемые значения

При успешном завершении функция возвращает CKR_OK, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().
CKR_ARGUMENTS_BAD | Некоторые из аргументов, переданные функции, являются неподходящими.
CKR_FUNCTION_FAILED | Данная функция не может быть выполнена, но данный код ошибки не содержит детальную информацию о причине неудачи. Однако, ситуация не так плоха, как при возвращении ошибки CKR_GENERAL_ERROR. В зависимости от действительной причины неудачи, возможно, что повторный вызов функции будет успешным.
CKR_SESSION_HANDLE_INVALID | Данный дескриптор сессии являлся недопустимым во время вызова функции. Необходимо помнить, что это может произойти в том случае, когда токен, на котором была открыта данная сессия, был удален до вызова функции, так как удаление токена закрывает все сессии, открытые на нем.

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


Функции менеджмента параллельных функций.

Функции | Описание
C_GetFunctionStatus | Функция C_GetFunctionStatus() обеспечивает асинхронное получение статуса выполнения операции.
C_CancelFunction | Функция C_CancelFunction() выполняет принудительный останов параллельно выполняемой операции.


C_GetFunctionStatus

Функция C_GetFunctionStatus() обеспечивает асинхронное получение статуса выполнения операции.

CK_RV C_GetFunctionStatus(
  CK_SESSION_HANDLE hSession
);

Аргументы

hSession
Дескриптор сессии.

Возвращаемые значения

При успешном завершении функция возвращает CKR_FUNCTION_NOT_PARALLEL, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


C_CancelFunction

Функция C_CancelFunction() выполняет принудительный останов параллельно выполняемой операции.

CK_RV C_CancelFunction(
  CK_SESSION_HANDLE hSession
);

Аргументы

hSession
Дескриптор сессии.

Возвращаемые значения

При успешном завершении функция возвращает CKR_FUNCTION_NOT_PARALLEL, в противном случае возвращается код ошибки (см. таблицу).
Коды возврата | Описание
CKR_CRYPTOKI_NOT_INITIALIZED | Функция не может быть выполнена, поскольку библиотека криптографического интерфейса токена не была проинициализирована посредством функции C_Initialize().

Примечания

Подробное описание функции смотрите в документах RSA (PKCS#11 v 2.30)
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30b-d6.pdf

Особенности реализации:
Функция реализована в соответствии с требованиями стандарта PKCS#11

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.


Механизмы.

В данном разделе описаны механизмы, используемые в функциях Cryptoki. Некоторые контейнеры могут реализовывать не все механизмы или обеспечивать поддержку не всех функций для тех или иных механизмов. Поддержка механизмов и функций должна описываться в профиле контейнера.

  • Описание Miscellaneous simple key derivation mechanisms.
  • Описание механизмов использующих алгоритмы DES.
  • Описание механизмов использующих алгоритм RSA.
  • Описание механизмов использующих алгоритм ГОСТ 28147-89.
  • Описание механизмов использующих алгоритм ГОСТ 34.10-2001 и 34.11-94
  • Описание механизмов, использующих протокол TLS.
  • Описание дополнительных механизмов (Vendor defined).
  • Описание прочих механизмов.
  • Применимость


Описание Miscellaneous simple key derivation mechanisms.

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_CONCATENATE_BASE_AND_DATA |  |  |  |  |  |  | +
CKM_CONCATENATE_BASE_AND_KEY |  |  |  |  |  |  | +
CKM_CONCATENATE_DATA_AND_BASE |  |  |  |  |  |  | +
CKM_EXTRACT_KEY_FROM_KEY |  |  |  |  |  |  | +
CKM_SHA1_KEY_DERIVATION |  |  |  |  |  |  | +
CKM_XOR_BASE_AND_DATA |  |  |  |  |  |  | +

  • Механизм CKM_CONCATENATE_BASE_AND_DATA
  • Механизм CKM_CONCATENATE_BASE_AND_KEY
  • Механизм CKM_CONCATENATE_DATA_AND_BASE
  • Механизм CKM_EXTRACT_KEY_FROM_KEY
  • Механизм CKM_SHA1_KEY_DERIVATION
  • Механизм CKM_XOR_BASE_AND_DATA


Механизм CKM_CONCATENATE_BASE_AND_DATA

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_CONCATENATE_BASE_AND_DATA |  |  |  |  |  |  | +

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Механизм CKM_CONCATENATE_BASE_AND_KEY

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_CONCATENATE_BASE_AND_KEY |  |  |  |  |  |  | +

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Механизм CKM_CONCATENATE_DATA_AND_BASE

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_CONCATENATE_DATA_AND_BASE |  |  |  |  |  |  | +

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Механизм CKM_EXTRACT_KEY_FROM_KEY

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_EXTRACT_KEY_FROM_KEY |  |  |  |  |  |  | +

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован с ограничениями: параметр механизма должен быть кратным 8


Механизм CKM_SHA1_KEY_DERIVATION

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_SHA1_KEY_DERIVATION |  |  |  |  |  |  | +

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Механизм CKM_XOR_BASE_AND_DATA

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_XOR_BASE_AND_DATA |  |  |  |  |  |  | +

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Описание механизмов использующих алгоритмы DES.

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_DES_ECB_ENCRYPT_DATA |  |  |  |  |  |  | +
CKM_DES_CBC_ENCRYPT_DATA |  |  |  |  |  |  | +
CKM_DES_CBC | + |  |  |  |  | + |
CKM_DES_CBC_PAD | + |  |  |  |  | + |
CKM_DES_ECB | + |  |  |  |  | + |
CKM_DES_KEY_GEN |  |  |  |  | + |  |
CKM_DES_MAC |  | + |  |  |  |  |
CKM_DES_MAC_GENERAL |  | + |  |  |  |  |
CKM_DES2_KEY_GEN |  |  |  |  | + |  |
CKM_DES3_ECB_ENCRYPT_DATA |  |  |  |  |  |  | +
CKM_DES3_CBC_ENCRYPT_DATA |  |  |  |  |  |  | +
CKM_DES3_ECB | + |  |  |  |  | + |
CKM_DES3_CBC | + |  |  |  |  | + |
CKM_DES3_CBC_PAD | + |  |  |  |  | + |
CKM_DES3_KEY_GEN |  |  |  |  | + |  |
CKM_DES3_MAC |  | + |  |  |  |  |
CKM_DES3_MAC_GENERAL |  | + |  |  |  |  |

  • Механизм CKM_DES_ECB_ENCRYPT_DATA
  • Механизм CKM_DES_CBC_ENCRYPT_DATA
  • Механизм CKM_DES_CBC
  • Механизм CKM_DES_CBC_PAD
  • Механизм CKM_DES_ECB
  • Механизм CKM_DES_KEY_GEN
  • Механизм CKM_DES_MAC
  • Механизм CKM_DES_MAC_GENERAL
  • Механизм CKM_DES2_KEY_GEN
  • Механизм CKM_DES3_ECB_ENCRYPT_DATA
  • Механизм CKM_DES3_CBC_ENCRYPT_DATA
  • Механизм CKM_DES3_ECB
  • Механизм CKM_DES3_CBC
  • Механизм CKM_DES3_CBC_PAD
  • Механизм CKM_DES3_KEY_GEN
  • Механизм CKM_DES3_MAC
  • Механизм CKM_DES3_MAC_GENERAL


Механизм CKM_DES_ECB_ENCRYPT_DATA

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_DES_ECB_ENCRYPT_DATA |  |  |  |  |  |  | +

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Механизм CKM_DES_CBC_ENCRYPT_DATA

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_DES_CBC_ENCRYPT_DATA |  |  |  |  |  |  | +

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Механизм CKM_DES_CBC

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_DES_CBC | + |  |  |  |  | + |

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Механизм CKM_DES_CBC_PAD

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_DES_CBC_PAD | + |  |  |  |  | + |

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Механизм CKM_DES_ECB

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_DES_ECB | + |  |  |  |  | + |

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Механизм CKM_DES_KEY_GEN

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_DES_KEY_GEN |  |  |  |  | + |  |

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Механизм CKM_DES_MAC

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_DES_MAC |  | + |  |  |  |  |

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Механизм CKM_DES_MAC_GENERAL

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_DES_MAC_GENERAL |  | + |  |  |  |  |

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Механизм CKM_DES2_KEY_GEN

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_DES2_KEY_GEN |  |  |  |  | + |  |

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Механизм CKM_DES3_ECB_ENCRYPT_DATA

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_DES3_ECB_ENCRYPT_DATA |  |  |  |  |  |  | +

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Механизм CKM_DES3_CBC_ENCRYPT_DATA

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_DES3_CBC_ENCRYPT_DATA |  |  |  |  |  |  | +

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Механизм CKM_DES3_ECB

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_DES3_CBC | + |  |  |  |  | + |

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Механизм CKM_DES3_CBC

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_DES3_CBC | + |  |  |  |  | + |

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Механизм CKM_DES3_CBC_PAD

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_DES3_CBC_PAD | + |  |  |  |  | + |

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Механизм CKM_DES3_KEY_GEN

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_DES3_KEY_GEN |  |  |  |  | + |  |

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Механизм CKM_DES3_MAC

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_DES3_MAC |  | + |  |  |  |  |

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Механизм CKM_DES3_MAC_GENERAL

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_DES3_MAC |  | + |  |  |  |  |

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Описание механизмов использующих алгоритм RSA.

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_RSA_PKCS_KEY_PAIR_GEN |  |  |  |  | + |  |
CKM_RSA_PKCS | + | + |  |  |  |  |
CKM_RSA_X_509 | + | + |  |  |  |  |

  • Механизм CKM_RSA_PKCS_KEY_PAIR_GEN
  • Механизм CKM_RSA_PKCS
  • Механизм CKM_RSA_X_509


Механизм CKM_RSA_PKCS_KEY_PAIR_GEN

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_RSA_PKCS_KEY_PAIR_GEN |  |  |  |  | + |  |

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Механизм CKM_RSA_PKCS

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_RSA_PKCS | + | + |  |  |  |  |

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Механизм CKM_RSA_X_509

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_RSA_X_509 | + | + |  |  |  |  |

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Описание механизмов использующих алгоритм ГОСТ 28147-89.

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_GOST28147 | + |  |  |  |  | + |
CKM_GOST28147_ECB | + |  |  |  |  | + |
CKM_GOST28147_KEY_GEN |  |  |  |  | + |  |
CKM_G28147_PRE_MASTER_KEY_GEN |  |  |  |  | + |  |
CKM_GOST28147_KEY_WRAP |  |  |  |  |  | + |
CKM_GOST28147_KEY_WRAP_FULLBLOB |  |  |  |  |  | + |
CKM_GOST28147_MAC |  | + |  |  |  |  |
CKM_G28147_CBC | + |  |  |  |  |  |
CKM_G28147_CBC_PAD | + |  |  |  |  |  |
CKM_G28147_CFB | + |  |  |  |  |  |
CKM_G28147_CFB_PAD | + |  |  |  |  |  |
CKM_G28147_CNT | + |  |  |  |  |  |
CKM_G28147_CNT_PAD | + |  |  |  |  |  |
CKM_G28147_ECB_PAD | + |  |  |  |  |  |

  • Механизм CKM_GOST28147
  • Механизм CKM_GOST28147_ECB
  • Механизм CKM_GOST28147_KEY_GEN
  • Механизм CKM_G28147_PRE_MASTER_KEY_GEN
  • Механизм CKM_GOST28147_KEY_WRAP
  • Механизм CKM_GOST28147_KEY_WRAP_FULLBLOB
  • Механизм CKM_GOST28147_MAC
  • Механизм CKM_G28147_CBC
  • Механизм CKM_G28147_CBC_PAD
  • Механизм CKM_G28147_CFB
  • Механизм CKM_G28147_CFB_PAD
  • Механизм CKM_G28147_CNT
  • Механизм CKM_G28147_CNT_PAD
  • Механизм CKM_G28147_ECB_PAD


Механизм CKM_GOST28147

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_GOST28147 | + |  |  |  |  | + |

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Механизм CKM_GOST28147_ECB

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_GOST28147_ECB | + |  |  |  |  | + |

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Механизм CKM_GOST28147_KEY_GEN

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_GOST28147_KEY_GEN |  |  |  |  | + |  |

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Механизм CKM_G28147_PRE_MASTER_KEY_GEN

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_G28147_PRE_MASTER_KEY_GEN |  |  |  |  | + |  |

Описание реализации:

Механизм CKM_G28147_PRE_MASTER_KEY_GEN используется для генерации премастер ключа для протокола TLS.

Особенности реализации:

Реализован в полном объеме


Механизм CKM_GOST28147_KEY_WRAP

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_GOST28147_KEY_WRAP |  |  |  |  |  | + |

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Механизм CKM_GOST28147_KEY_WRAP_FULLBLOB

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_GOST28147_KEY_WRAP_FULLBLOB |  |  |  |  |  | + |

Описание реализации:

Механизм CKM_GOST28147_KEY_WRAP_FULLBLOB реализует экспорт/импорт ключа в виде структуры CRYPT_PRIVATEKEYBLOB.

Особенности реализации:

Реализован в полном объеме


Механизм CKM_GOST28147_MAC

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_GOST28147_MAC |  | + |  |  |  |  |

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Механизм CKM_G28147_CBC

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_G28147_CBC | + |  |  |  |  |  |

Описание реализации:

Механизм CKM_G28147_CBC реализует алгоритм ГОСТ-28147 в режиме CBC.

Особенности реализации:

Реализован в полном объеме


Механизм CKM_G28147_CBC_PAD

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_G28147_CBC_PAD | + |  |  |  |  |  |

Описание реализации:

Механизм CKM_G28147_CBC_PAD реализует алгоритм ГОСТ-28147 в режиме CBC с использованием выравнения в соответствии со стандартом PKCS5.

Особенности реализации:

Реализован в полном объеме


Механизм CKM_G28147_CFB

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_G28147_CFB | + |  |  |  |  |  |

Описание реализации:

Механизм CKM_G28147_CFB реализует алгоритм ГОСТ 28147-89 в режиме гаммирования с обратной связью.

Особенности реализации:

Реализован в полном объеме


Механизм CKM_G28147_CFB_PAD

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_G28147_CFB_PAD | + |  |  |  |  |  |

Описание реализации:

Механизм CKM_G28147_CFB_PAD реализует алгоритм ГОСТ 28147-89 в режиме гаммирования с обратной связью.

Особенности реализации:

Реализован в полном объеме


Механизм CKM_G28147_CNT

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_G28147_CNT | + |  |  |  |  |  |

Описание реализации:

Механизм CKM_G28147_CNT реализует алгоритм ГОСТ 28147-89 в режиме гаммирования.

Особенности реализации:

Реализован в полном объеме


Механизм CKM_G28147_CNT_PAD

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_G28147_CNT_PAD | + |  |  |  |  |  |

Описание реализации:

Механизм CKM_G28147_CNT_PAD реализует алгоритм ГОСТ 28147-89 в режиме гаммирования.

Особенности реализации:

Реализован в полном объеме


Механизм CKM_G28147_ECB_PAD

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_G28147_ECB_PAD | + |  |  |  |  |  |

Описание реализации:

Механизм CKM_G28147_ECB_PAD реализует алгоритм ГОСТ 28147-89 в режиме простой замены с использованием выравнивания в соответствии со стандартом PKCS5.

Особенности реализации:

Реализован в полном объеме


Описание механизмов использующих алгоритм ГОСТ 34.10-2001 и 34.11-94

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_GOSTR3410 |  | + |  |  |  |  |
CKM_GOSTR3410_DERIVE |  |  |  |  |  |  | +
CKM_GOSTR3410_KEY_PAIR_GEN |  |  |  |  | + |  |
CKM_GOSTR3410_WITH_GOSTR3411 |  | + |  |  |  |  |
CKM_GOSTR3410_KEY_WRAP |  |  |  |  |  | + |
CKM_GOSTR3411 |  |  |  | + |  |  |

  • Механизм CKM_GOSTR3410
  • Механизм CKM_GOSTR3410_DERIVE
  • Механизм CKM_GOSTR3410_KEY_PAIR_GEN
  • Механизм CKM_GOSTR3410_WITH_GOSTR3411
  • Механизм CKM_GOSTR3410_KEY_WRAP
  • Механизм CKM_GOSTR3411


Механизм CKM_GOSTR3410

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_GOSTR3410 |  | + |  |  |  |  |

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Механизм CKM_GOSTR3410_DERIVE

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_GOSTR3410_DERIVE |  |  |  |  |  |  | +

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Механизм CKM_GOSTR3410_KEY_PAIR_GEN

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_GOSTR3410_KEY_PAIR_GEN |  |  |  |  | + |  |

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Механизм CKM_GOSTR3410_WITH_GOSTR3411

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_GOSTR3410_WITH_GOSTR3411 |  | + |  |  |  |  |

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Механизм CKM_GOSTR3410_KEY_WRAP

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_GOSTR3410_WITH_GOSTR3411 |  |  |  |  |  | + |

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Механизм CKM_GOSTR3411

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_GOSTR3411 |  |  |  | + |  |  |

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Описание механизмов, использующих протокол TLS.

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_TLS_GOST_KEY_AND_MAC_DERIVE |  |  |  |  |  |  | +
CKM_TLS_GOST_MASTER_KEY_DERIVE |  |  |  |  |  |  | +
CKM_TLS_GOST_PRF |  |  |  |  |  |  | +

  • Механизм CKM_TLS_GOST_KEY_AND_MAC_DERIVE
  • Механизм CKM_TLS_GOST_MASTER_KEY_DERIVE
  • Механизм CKM_TLS_GOST_PRF


Механизм CKM_TLS_GOST_KEY_AND_MAC_DERIVE

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_TLS_GOST_KEY_AND_MAC_DERIVE |  |  |  |  |  |  | +

Описание реализации:

Механизм CKM_TLS_GOST_KEY_AND_MAC_DERIVE используется для выработки ключей шифрования и ключей имитозащиты из мастер ключа и случайных данных.

Для передачи данных диверсификации (R) используется CK_SSL3_KEY_MAT_PARAMS (см. п. 6.24.2 в документе PKCS#11 Mechanisms v2.30:Cryptoki-Draft7, RSA Laboratories, 29 July 2009,
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf)


Механизм CKM_TLS_GOST_MASTER_KEY_DERIVE

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_TLS_GOST_MASTER_KEY_DERIVE |  |  |  |  |  |  | +

Описание реализации:

Механизм CKM_TLS_GOST_MASTER_KEY_DERIVE используется в протоколе TLS для получения мастер ключа из премастер ключа.

Для передачи данных диверсификации (R) используется CK_SSL3_MASTER_KEY_DERIVE_PARAMS (см. п. 6.24.2 в документе PKCS#11 Mechanisms v2.30:Cryptoki-Draft7, RSA Laboratories, 29 July 2009,
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf)


Механизм CKM_TLS_GOST_PRF

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_TLS_GOST_PRF |  |  |  |  |  |  | +

Описание реализации:

Механизм CKM_TLS_GOST_PRF используется для порождения криптографически стойких псевдослучайных чисел произвольной длины.

Для передачи данных диверсификации (R) используется CK_TLS_PRF_PARAMS (см. п. 6.25.2 в документе PKCS#11 Mechanisms v2.30:Cryptoki-Draft7, RSA Laboratories, 29 July 2009,
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf)


Описание дополнительных механизмов (Vendor defined).

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_UEC_ENC |  |  |  |  |  |  | +
CKM_UEC_EXTRACT_KEY_FROM_RSA |  |  |  |  |  |  | +
CKM_UEC_HASH |  |  |  |  |  |  | +
CKM_UEC_WRAP |  |  |  |  |  | + |

  • Механизм CKM_UEC_ENC
  • Механизм CKM_UEC_EXTRACT_KEY_FROM_RSA
  • Механизм CKM_UEC_HASH
  • Механизм CKM_UEC_WRAP


Механизм CKM_UEC_ENC

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_UEC_ENC |  |  |  |  |  |  | +

Описание реализации:

Механизм CKM_UEC_ENC реализует диверсификацию вида:

MK=ENC[IMK](HASH(R))

Для передачи данных диверсификации (R) используется CK_KEY_DERIVATION_STRING_DATA (см. п. 6.27.2 в документе PKCS#11 Mechanisms v2.30:Cryptoki-Draft7, RSA Laboratories, 29 July 2009,
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf)


Механизм CKM_UEC_EXTRACT_KEY_FROM_RSA

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_UEC_EXTRACT_KEY_FROM_RSA |  |  |  |  |  |  | +

Описание реализации:

Механизм CKM_UEC_EXTRACT_KEY_FROM_RSA обеспечивает получение секретного ключа типа CKK_GENERIC_SECRET, содержащего в себе соответствующий (затребованный в параметрах механизма) атрибут RSA ключа (CKA_PRIVATE_EXPONENT, CKA_PRIME_1, CKA_PRIME_2, CKA_EXPONENT_1, CKA_EXPONENT_2, CKA_COEFFICIENT).

Тип CK_UEC_EXTRACT_PARAMS используется для передачи данных диверсификации.

typedef CK_ATTRIBUTE_TYPE CK_UEC_EXTRACT_PARAMS;


Механизм CKM_UEC_HASH

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_UEC_HASH |  |  |  |  |  |  | +

Описание реализации:

Механизм CKM_UEC_HASH реализует диверсификацию вида:

MK=HASH(IMK||R)

Для передачи данных диверсификации (R) используется CK_KEY_DERIVATION_STRING_DATA (см. п. 6.27.2 в документе PKCS#11 Mechanisms v2.30:Cryptoki-Draft7, RSA Laboratories, 29 July 2009,
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf)


Механизм CKM_UEC_WRAP

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_UEC_WRAP |  |  |  |  |  | + |

Описание реализации:

Механизм CKM_UEC_WRAP используется при вызовах функций C_WrapKey и C_UnwrapKey для импорта или экспорта симметричного ключа в виде его компонентов. Этот механизм применим ТОЛЬКО для ключей, формируемых с использованием ГОСТ 28147-89 и реализуется с использованием CK_UEC_WRAP_PARAMS:

        typedef struct CK_UEC_WRAP_COMPONENT_PARAMS {
            CK_BYTE_PTR szPwd;
            CK_ULONG ulComponentLength;
    }   CK_UEC_WRAP_COMPONENT_PARAMS;

        typedef struct CK_UEC_WRAP_PARAMS {
            CK_ULONG ulComponentCount;
            CK_UEC_WRAP_COMPONENT_PARAMS ComponentParams[5];
    }   CK_UEC_WRAP_PARAMS;

При вызове функции C_WrapKey, использующей механизм CKM_UEC_WRAP, необходимо передать ей на вход:

  • количество компонент ключа (не менее двух и не более пяти)
  • пароли (по количеству компонент) в виду ASCII строк, оканчивающихся признаком конца строки

    На выходе функция C_WrapKey сообщает:

  • длину каждой компоненты в байтах
  • суммарную длину всех компонент ключа

    и формирует массив CK_BYTE , содержащий ВСЕ заказанные при ее вызове компоненты ключа ПОДРЯД, начиная с первой.

    • При вызове функции C_UnwrapKey, использующей механизм CKM_UEC_WRAP, необходимо передать ей на вход:

  • количество компонент ключа (не менее двух и не более пяти)
  • пароли (по количеству компонент) в виде ASCII строк, оканчивающихся признаком конца строки

    • Руководство программиста PKCS#11 Версия: 4.0


Описание прочих механизмов.

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_MD5 |  |  |  | + |  |  |
CKM_SHA_1 |  |  |  | + |  |  |
CKM_SHA224 |  |  |  | + |  |  |
CKM_SHA256 |  |  |  | + |  |  |
CKM_SHA384 |  |  |  | + |  |  |
CKM_SHA512 |  |  |  | + |  |  |

  • Механизм CKM_MD5
  • Механизм CKM_SHA_1
  • Механизм CKM_SHA224
  • Механизм CKM_SHA256
  • Механизм CKM_SHA384
  • Механизм CKM_SHA512


Механизм CKM_MD5

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_MD5 |  |  |  | + |  |  |

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Механизм CKM_SHA_1

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_SHA_1 |  |  |  | + |  |  |

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Механизм CKM_SHA224

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_SHA224 |  |  |  | + |  |  |

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Механизм CKM_SHA256

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_SHA256 |  |  |  | + |  |  |

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Механизм CKM_SHA384

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_SHA384 |  |  |  | + |  |  |

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Механизм CKM_SHA512

Применимость с функциями стандарта:

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_SHA512 |  |  |  | + |  |  |

Подробное описание механизма смотрите в документах RSA (PKCS#11 v 2.30)

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/pkcs-11v2-30m1-d7.pdf

Особенности реализации:

Реализован в полном объеме, определенным в стандартной спецификации


Применимость

Miscellaneous simple key derivation mechanisms

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_CONCATENATE_BASE_AND_DATA |  |  |  |  |  |  | +
CKM_CONCATENATE_BASE_AND_KEY |  |  |  |  |  |  | +
CKM_CONCATENATE_DATA_AND_BASE |  |  |  |  |  |  | +
CKM_EXTRACT_KEY_FROM_KEY |  |  |  |  |  |  | +
CKM_SHA1_KEY_DERIVATION |  |  |  |  |  |  | +
CKM_XOR_BASE_AND_DATA |  |  |  |  |  |  | +

Механизмы, использующие алгоритмы DES

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_DES_ECB_ENCRYPT_DATA |  |  |  |  |  |  | +
CKM_DES_CBC_ENCRYPT_DATA |  |  |  |  |  |  | +
CKM_DES_CBC | + |  |  |  |  | + |
CKM_DES_CBC_PAD | + |  |  |  |  | + |
CKM_DES_ECB | + |  |  |  |  | + |
CKM_DES_KEY_GEN |  |  |  |  | + |  |
CKM_DES_MAC |  | + |  |  |  |  |
CKM_DES_MAC_GENERAL |  | + |  |  |  |  |
CKM_DES2_KEY_GEN |  |  |  |  | + |  |
CKM_DES3_ECB_ENCRYPT_DATA |  |  |  |  |  |  | +
CKM_DES3_CBC_ENCRYPT_DATA |  |  |  |  |  |  | +
CKM_DES3_ECB | + |  |  |  |  | + |
CKM_DES3_CBC | + |  |  |  |  | + |
CKM_DES3_CBC_PAD | + |  |  |  |  | + |
CKM_DES3_KEY_GEN |  |  |  |  | + |  |
CKM_DES3_MAC |  | + |  |  |  |  |
CKM_DES3_MAC_GENERAL |  | + |  |  |  |  |

Механизмы, использующие алгоритм RSA

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_RSA_PKCS_KEY_PAIR_GEN |  |  |  |  | + |  |
CKM_RSA_PKCS | + | + |  |  |  |  |
CKM_RSA_X_509 | + | + |  |  |  |  |

Механизмы, использующие алгоритм ГОСТ 28147-89

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_GOST28147 | + |  |  |  |  | + |
CKM_GOST28147_ECB | + |  |  |  |  | + |
CKM_GOST28147_KEY_GEN |  |  |  |  | + |  |
CKM_G28147_PRE_MASTER_KEY_GEN |  |  |  |  | + |  |
CKM_GOST28147_KEY_WRAP |  |  |  |  |  | + |
CKM_GOST28147_KEY_WRAP_FULLBLOB |  |  |  |  |  | + |
CKM_GOST28147_MAC |  | + |  |  |  |  |
CKM_G28147_CBC | + |  |  |  |  |  |
CKM_G28147_CBC_PAD | + |  |  |  |  |  |
CKM_G28147_CFB | + |  |  |  |  |  |
CKM_G28147_CFB_PAD | + |  |  |  |  |  |
CKM_G28147_CNT | + |  |  |  |  |  |
CKM_G28147_CNT_PAD | + |  |  |  |  |  |
CKM_G28147_ECB_PAD | + |  |  |  |  |  |

Механизмы, использующие алгоритмы ГОСТ 34.10-2001 и ГОСТ 34.11-94

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_GOSTR3410 |  | + |  |  |  |  |
CKM_GOSTR3410_DERIVE |  |  |  |  |  |  | +
CKM_GOSTR3410_KEY_PAIR_GEN |  |  |  |  | + |  |
CKM_GOSTR3410_WITH_GOSTR3411 |  | + |  |  |  |  |
CKM_GOSTR3410_KEY_WRAP |  |  |  |  |  | + |
CKM_GOSTR3411 |  |  |  | + |  |  |

Механизмы протокола TLS

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_TLS_GOST_KEY_AND_MAC_DERIVE |  |  |  |  |  |  | +
CKM_TLS_GOST_MASTER_KEY_DERIVE |  |  |  |  |  |  | +
CKM_TLS_GOST_PRF |  |  |  |  |  |  | +

Дополнительные механизмы (Vendor defined)

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_UEC_ENC |  |  |  |  |  |  | +
CKM_UEC_EXTRACT_KEY_FROM_RSA |  |  |  |  |  |  | +
CKM_UEC_HASH |  |  |  |  |  |  | +
CKM_UEC_WRAP |  |  |  |  |  | + |

Прочие механизмы

Mechanism | Encrypt & Decrypt | Sign & Verify | SR & VR | Digest | Gen. Key/ KeyPair | Wrap & Unwrap | Derive
CKM_MD5 |  |  |  | + |  |  |
CKM_SHA_1 |  |  |  | + |  |  |
CKM_SHA224 |  |  |  | + |  |  |
CKM_SHA256 |  |  |  | + |  |  |
CKM_SHA384 |  |  |  | + |  |  |
CKM_SHA512 |  |  |  | + |  |  |


Список требований

Глобальный C_Finalize

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_GetFunctionList

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_GetInfo

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_Initialize

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_GetMechanismInfo

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_GetMechanismList

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_GetSlotInfo

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_GetSlotList

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_GetTokenInfo

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_InitPIN

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_InitToken

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_SetPIN

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_WaitForSlotEvent

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_CloseAllSessions

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_CloseSession

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_GetOperationState

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_GetSessionInfo

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_Login

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_Logout

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_OpenSession

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_SetOperationState

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_CopyObject

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_CreateObject

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_DestroyObject

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_FindObjects

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_FindObjectsFinal

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_FindObjectsInit

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_GetAttributeValue

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_GetObjectSize

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_SetAttributeValue

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_Encrypt

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_EncryptFinal

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_EncryptInit

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_EncryptUpdate

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_Decrypt

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_DecryptFinal

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_DecryptInit

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_DecryptUpdate

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_Digest

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_DigestFinal

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_DigestInit

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_DigestKey

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_DigestUpdate

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_Sign

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_SignFinal

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_SignInit

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_SignRecover

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_SignRecoverInit

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_SignUpdate

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_Verify

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_VerifyFinal

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_VerifyInit

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_VerifyRecover

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_VerifyRecoverInit

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_VerifyUpdate

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_DecryptDigestUpdate

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_DecryptVerifyUpdate

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_DigestEncryptUpdate

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_SignEncryptUpdate

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_DeriveKey

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_GenerateKey

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_GenerateKeyPair

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_UnwrapKey

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_WrapKey

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_GenerateRandom

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_SeedRandom

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_CancelFunction

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Глобальный C_GetFunctionStatus

  • AIX: 5/6/7 или выше.

    FreeBSD: 7/8/9 или выше.

    Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.

    Solaris: 10/11 или выше.

    Mac OSX: 10.7/8 или выше.

    iOS: 6/7 или выше.

    Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.

    • Руководство программиста PKCS#11 Версия: 4.0