C¶EXTENSIONS¶CreateObject(long session, CKA[] templ, LongRef object)¶Создает объект с заданными атрибутами. Объекты создаются на токене, либо в памяти Единой библиотеки (например, временные объекты).
Запускается в режимах
Для Криптотокен 2 ЭП:
CKO.PUBLIC_KEY или CKO.SECRET_KEY с атрибутом CKA.TOKEN равном false.| Параметры: |
|
|---|---|
| Результат: |
|
Decrypt(long session, byte[] encryptedData, byte[] data, LongRef dataLen)¶Осуществляет единоразовое расшифрование, т.е расшифровывает только один блок данных.
Предупреждение
При шифровании с использованием механизма CKM.GOST28147_ECB длина данных должна быть кратной 8 байт.
Запускается в режимах
См.также
| Параметры: |
|
|---|---|
| Результат: |
|
DecryptFinal(long session, byte[] lastPart, LongRef lastPartLen)¶Завершает составную операцию расшифрования.
Запускается в режимах
См.также
| Параметры: |
|
|---|---|
| Результат: |
|
DecryptInit(long session, CKM mechanism, long key)¶Инициализирует и задает параметры для операции расшифрования. Поддерживается как аппаратное, так и программное расшифрование.
Особенности апплетов:
Криптотокен 2 ЭП
Аппаратное шифрование
Для аппаратного шифрования используется виртуальный секретный ключ.
Данный ключ должен быть предварительно импортирован с помощью функции C.UnwrapKey или
сгенерирован и экспортирован с помощью функции C.WrapKey.
При использовании виртуального секретного ключа функция инициализирует операцию зашифрования по ГОСТ 28147–89 с параметрами id-tc26-gost-28147-param-Z.
CKA.VENDOR_KT2_KEY_ACTIVE принимает значение true, ключ готов к криптографическому преобразованию.CKA.VENDOR_KT2_KEY_ACTIVE принимает значение false.Программное шифрование
Программное шифрование применяется стандартным способом.
Для программного шифрования доступен атрибут CKA.VENDOR_KT2_KEY_MESHING.
Если атрибут имеет значение true, применяется алгоритм усложнения ключей для ГОСТ 28147–89 RFC 4357 п.2.3.2.
Поддерживаются следующие механизмы:
CKM.GOST28147_ECB (0x00001221) – механизм для симметричного шифра в режиме ECB по стандарту ГОСТ 28147–89.CKM.GOST28147 (0x00001222) – механизм для симметричного шифра в режиме CFB по стандарту ГОСТ 28147–89.CKM.GOST28147_ECB (0x00001221) – механизм для симметричного шифра в режиме ECB по стандарту ГОСТ 28147–89.CKM.GOST28147 (0x00001222) – механизм для симметричного шифра в режиме CFB по стандарту ГОСТ 28147–89.CKM.RSA_PKCS (0x00000001) – механизм для асимметричного шифра RSA. Также используется для ЭП.CKM.RSA_PKCS_OAEP (0x00000009) – механизм для асимметричного шифра RSA с использованием OAEP.CKM.DES3_ECB (0x00000132) – механизм для симметричного шифра triple-DES в режиме ECB.CKM.DES3_CBC (0x00000133) – механизм для симметричного шифра triple-DES в режиме CBC.CKM.AES_ECB (0x00001081) – механизм для симметричного шифра AES в режиме ECB.CKM.AES_CBC (0x00001082) – механизм для симметричного шифра AES в режиме CBC.Запускается в режимах
См.также
| Параметры: |
|
|---|---|
| Результат: |
|
DecryptUpdate(long session, byte[] encryptedPart, byte[] data, LongRef dataLen)¶Продолжает составную операцию расшифрования – расшифровывает очередной блок данных.
Предупреждение
При шифровании с использованием механизма CKM.GOST28147_ECB длина данных должна быть кратной 8 байт.
Запускается в режимах
См.также
| Параметры: |
|
|---|---|
| Результат: |
|
DeriveKey(long session, CKM mechanism, long baseKey, CKA[] templ, LongRef key)¶Вырабатывает ключ согласования или сессионный ключ (в зависимости от апплета, с которым происходит работа и используемого механизма).
Особенности апплетов:
Криптотокен
Поддерживаемые механизмы:
CKM.GOSTR3410_DERIVE (0x00001204) – механизм для выработки ключа согласования,
соответствующий стандарту ГОСТ Р 34.10–2001.CKM.TLS_GOST_MASTER_KEY_DERIVE (CKM.NSSCK_VENDOR_PKSC11_RU_TEAM | 0x101) – механизм для выработки
48-байтного ключа из 32-байтного ключа, используемый при создании master_secret ключей для протокола TLS 1.0.CKM.TLS_GOST_KEY_AND_MAC_DERIVE (CKM.NSSCK_VENDOR_PKSC11_RU_TEAM | 0x102) – механизм для выработки ключа
согласования из master_secret и случайных данных.CKM.TLS_GOST_PRF (CKM.NSSCK_VENDOR_PKSC11_RU_TEAM | 0x103) – механизм для генерации псевдослучайных данных
произвольной длины защищенным образом, соответствующий стандарту ГОСТ.Криптотокен 2 ЭП
Для выработки ключа с использованием дескриптора может использоваться структура JC_KT2_GOSTR3410_DERIVE_PARAMS.
Поддерживаемые механизмы:
CKM.GOSTR3410_DERIVE (0x00001204) – механизм для выработки ключа согласования,
соответствующий стандарту ГОСТ Р 34.10–2001.CKM.GOSTR3410_2012_DERIVE (CKM.CK_VENDOR_PKCS11_RU_TEAM_TC26 | 0x007) – механизм для выработки ключа согласования,
соответствующий стандарту ГОСТ Р 34.10–2012.CKM.GOSTR3410_12_DERIVE – псевдоним для CKM.GOSTR3410_2012_DERIVE.Laser
Поддерживаемые механизмы:
CKM.TLS_MASTER_KEY_DERIVE (0x00000375) – механизм для выработки 48-байтного ключа из другого
48-байтного ключа, используемый при создании master_secret ключей для протокола TLS 1.0.CKM.TLS_KEY_AND_MAC_DERIVE (0x00000376) – механизм для выработки ключа согласования из
master_secret и случайных данных.CKM.TLS_MASTER_KEY_DERIVE_DH (0x00000377) – механизм для выработки 48-байтного ключа из другого ключа
произвольного размера, используемый при создании master_secret ключей для протокола TLS 1.0.CKM.ECDH1_DERIVE (0x00001050) – механизм для генерации ключа согласования, основывающийся на
эллиптических кривых и алгоритме Диффи-Хеллмана.Запускается в режимах
| Параметры: |
|
|---|---|
| Результат: |
|
Digest(long session, byte[] data, byte[] digest, LongRef digestLen)¶Осуществляет единоразовое хэширование, т.е хэширует только один блок данных.
Запускается в режимах
Для Криптотокен 2 ЭП:
См.также
| Параметры: |
|
|---|---|
| Результат: |
|
DigestFinal(long session, byte[] digest, LongRef digestLen)¶Завершает составную операцию хеширования.
Запускается в режимах
Для Криптотокен 2 ЭП:
См.также
| Параметры: |
|
|---|---|
| Результат: |
|
DigestInit(long session, CKM mechanism)¶Инициализирует операцию хэширования.
Поддерживаемые механизмы хэширования:
Криптотокен
CKM.GOSTR3411 (0x00001210) – механизм хеширования, соответствующий стандарту ГОСТ Р 34.11–94.
В зависимости от значений второго и третьего полей структуры CKM (см. таблицу ниже), вычисление
хэш-последовательности выполняется аппаратно, т. е. с использованием криптографических возможностей устройства
eToken ГОСТ или JaCarta ГОСТ, либо программно.
pParameter |
Способ вычисления хэш-последовательности |
|---|---|
null |
Аппаратный (средствами JaCarta ГОСТ) |
0x06 0x07 0x2A 0x85 0x03 0x02 0x02 0x1E 0x01 |
Программный (используется набор эталонных параметров
id-GostR3411-94-CryptoProParamSet, определённый в RFC 4357. |
Криптотокен 2 ЭП
CKM.GOSTR3411 (0x00001210) – механизм хеширования, соответствующий стандарту ГОСТ Р 34.11–94;CKM.GOSTR3411_2012_256 (CK_VENDOR_PKCS11_RU_TEAM_TC26 | 0x012) – механизм хеширования по ГОСТ Р 34.11–2012 (длина хэш–кода 256 бит);CKM.GOSTR3411_12_256 – псевдоним для CKM.GOSTR3411_2012_256;CKM.GOSTR3411_2012_512 (CK_VENDOR_PKCS11_RU_TEAM_TC26 | 0x013) – механизм хеширования по ГОСТ Р 34.11–2012 (длина хэш–кода 512 бит);CKM.GOSTR3411_12_512 – псевдоним для CKM.GOSTR3411_2012_512.Laser
CKM.MD5 (0x00000210) – механизм хеширования данных по алгоритму MD5;CKM.SHA_1 (0x00000220) – механизм хеширования данных по алгоритму SHA-1;CKM.SHA256 (0x00000250) – механизм хеширования данных по алгоритму SHA-256;CKM.SHA384 (0x00000260) – механизм хеширования данных по алгоритму SHA-384;CKM.SHA512 (0x00000270) – механизм хеширования данных по алгоритму SHA-512.Запускается в режимах
Для Криптотокен 2 ЭП:
См.также
| Параметры: |
|
|---|---|
| Результат: |
|
DigestUpdate(long session, byte[] part)¶Продолжает составную операцию хэширования – хэширует очередной блок данных.
Запускается в режимах
Для Криптотокен 2 ЭП:
См.также
| Параметры: |
|
|---|---|
| Результат: |
|
Encrypt(long session, byte[] data, byte[] encryptedData, LongRef encryptedDataLen)¶Осуществляет единоразовое зашифрование, т.е зашифровывает только один блок данных.
Предупреждение
При шифровании с использованием механизма CKM.GOST28147 длина данных должна быть кратной 8 байт.
Запускается в режимах
См.также
| Параметры: |
|
|---|---|
| Результат: |
|
EncryptFinal(long session, byte[] lastEncryptedPart, LongRef lastEncryptedPartLen)¶Завершает составную операцию зашифрования.
Запускается в режимах
См.также
| Параметры: |
|
|---|---|
| Результат: |
|
EncryptInit(long session, CKM mechanism, long key)¶Инициализирует операцию зашифрования. Поддерживается аппаратное и программное шифрование.
Особенности апплетов:
Криптотокен 2 ЭП
Аппаратное шифрование
Для аппаратного шифрования используется виртуальный секретный ключ.
Данный ключ должен быть предварительно импортирован с помощью функции C.UnwrapKey или
сгенерирован и экспортирован с помощью функции C.WrapKey.
При использовании виртуального секретного ключа функция инициализирует операцию зашифрования по ГОСТ 28147–89 с параметрами id-tc26-gost-28147-param-Z.
CKA.VENDOR_KT2_KEY_ACTIVE принимает значение true, ключ готов к криптографическому преобразованию.CKA.VENDOR_KT2_KEY_ACTIVE принимает значение false.Программное шифрование
Программное шифрование применяется стандартным способом.
Для программного шифрования доступен атрибут CKA.VENDOR_KT2_KEY_MESHING.
Если атрибут имеет значение true, применяется алгоритм усложнения ключей для ГОСТ 28147–89 RFC 4357 п.2.3.2.
Поддерживаются следующие механизмы:
CKM.GOST28147_ECB (0x00001221) – механизм для симметричного шифра в режиме ECB по стандарту ГОСТ 28147–89.CKM.GOST28147 (0x00001222) – механизм для симметричного шифра в режиме CFB по стандарту ГОСТ 28147–89.CKM.GOST28147_ECB (0x00001221) – механизм для симметричного шифра в режиме ECB по стандарту ГОСТ 28147–89.CKM.GOST28147 (0x00001222) – механизм для симметричного шифра в режиме CFB по стандарту ГОСТ 28147–89.CKM.RSA_PKCS (0x00000001) – механизм для асимметричного шифра RSA. Также используется для ЭП.CKM.RSA_PKCS_OAEP (0x00000009) – механизм для асимметричного шифра RSA с использованием OAEP.CKM.DES3_ECB (0x00000132) – механизм для симметричного шифра triple-DES в режиме ECB.CKM.DES3_CBC (0x00000133) – механизм для симметричного шифра triple-DES в режиме CBC.CKM.AES_ECB (0x00001081) – механизм для симметричного шифра AES в режиме ECB.CKM.AES_CBC (0x00001082) – механизм для симметричного шифра AES в режиме CBC.Запускается в режимах
См.также
| Параметры: |
|
|---|---|
| Результат: |
|
EncryptUpdate(long session, byte[] part, byte[] encryptedPart, LongRef encryptedPartLen)¶Продолжает составную операцию зашифрования – зашифровывает очередной блок данных.
Запускается в режимах
См.также
| Параметры: |
|
|---|---|
| Результат: |
|
FindObjects(long session, long[] found, LongRef objectCount)¶Ищет объекты, которые совпадают с заданным шаблоном.
Запускается в режимах
См.также
| Параметры: |
|
|---|---|
| Результат: |
|
GenerateKey(long session, CKM mechanism, CKA[] templ, LongRef key)¶Генерирует секретный ключ.
Особенности апплетов:
Криптотокен
Поддерживаемые механизмы:
CKM.GOST28147_KEY_GEN (0x00001220) – механизм генерации ключей,
соответствующий стандарту ГОСТ 28147–89.Криптотокен 2 ЭП
Предупреждение
Laser
Поддерживаемые механизмы:
CKM.DES2_KEY_GEN (0x00000130) – механизм генерации ключей DES двойной длины.CKM.DES3_KEY_GEN (0x00000131) – механизм генерации ключей для алгоритма triple-DES.CKM.TLS_PRE_MASTER_KEY_GEN (0x00000374) – механизм генерации 48-байтных секретных ключей, используемых
при создании pre_master ключей для протокола TLS 1.0.CKM.AES_KEY_GEN (0x00001080) – механизм генерации ключей для алгоритма AES.Запускается в режимах
| Параметры: |
|
|---|---|
| Результат: |
|
GenerateKeyPair(long session, CKM mechanism, CKA[] publicKeyTemplate, CKA[] privateKeyTemplate, LongRef publicKey, LongRef privateKey)¶Генерирует ключевую пару и возвращает идентификаторы закрытого и открытого ключей.
Поддерживаются следующие механизмы:
Криптотокен
CKM.GOSTR3410_KEY_PAIR_GEN (0x00001200) – механизм генерации ключевой пары
в соответствии со стандартом ГОСТ Р 34.10–2001.Криптотокен 2 ЭП
CKM.GOSTR3410_KEY_PAIR_GEN (0x00001200) – механизм генерации ключевой пары
в соответствии со стандартом ГОСТ Р 34.10–2001.CKM.GOSTR3410_256_KEY_PAIR_GEN (0x00001200 идентичен CKM.GOSTR3410_KEY_PAIR_GEN) –
механизм генерации ключевой пары в соответствии со стандартом ГОСТ Р 34.10–2012 (длина ключа 256 бит).Для генерации ключевых пар конкретного стандарта, помимо указания механизма,
необходимо передавать соответствующее значение в атрибут CKA.GOSTR3411_PARAMS шаблона открытого ключа.
| Стандарт ключевой пары | Механизм | Значение CKA.GOSTR3411_PARAMS |
|---|---|---|
| ГОСТ Р 34.10–2001 | CKM.GOSTR3410_KEY_PAIR_GEN |
id-GostR3411-94-CryptoProParamSet |
| ГОСТ Р 34.10–2012 (длина ключа 256 бит) | CKM.GOSTR3410_256_KEY_PAIR_GEN |
id-tc26-gost3411-12-256 |
Laser
CKM.RSA_PKCS_KEY_PAIR_GEN (0x00000000) – механизм генерации ключевой пары для алгоритма RSA.CKM.ECDSA_KEY_PAIR_GEN (0x00001040) – механизм генерации ключевой пары для алгоритма ECDSA.CKM.EC_KEY_PAIR_GEN (0x00001040) – механизм генерации ключевой пары для алгоритма EC.Запускается в режимах
| Параметры: |
|
|---|---|
| Результат: |
|
GetMechanismInfo(long slotID, long type, CK_MECHANISM_INFO info)¶Получает информацию о заданном механизме.
Запускается в режимах
| Параметры: |
|
|---|---|
| Результат: |
|
GetMechanismList(long slotID, long[] mechanismList, LongRef count)¶Получает список механизмов, поддерживаемых токеном.
Запускается в режимах
| Параметры: |
|
|---|---|
| Результат: |
|
GetSessionInfo(long session, CK_SESSION_INFO info)¶Получает информацию о сеансе.
Запускается в режимах
| Параметры: |
|
|---|---|
| Результат: |
|
GetSlotInfo(long slotID, CK_SLOT_INFO info)¶Получает информацию о заданном слоте.
Запускается в режимах
| Параметры: |
|
|---|---|
| Результат: |
|
GetSlotList(boolean tokenPresent, long[] slotList, LongRef count)¶Получает список слотов в системе. При этом возвращает список слотов только с поддерживаемыми апплетами.
Запускается в режимах
| Параметры: |
|
|---|---|
| Результат: |
|
GetTokenInfo(long slotID, CK_TOKEN_INFO info)¶Получает информацию об апплете, соответствующем заданному слоту.
Запускается в режимах
| Параметры: |
|
|---|---|
| Результат: |
|
InitPIN(long session, String pin)¶Инициализирует значение PIN-кода пользователя.
PIN-код может содержать символы в кодировке UTF-8 из следующего набора:
Особенности апплетов:
Криптотокен
По умолчанию PIN-код пользователя не установлен.
Операция доступна, если для апплета не инициализирован PIN-код пользователя.
При использовании Антифрод-терминала функция запрашивает PIN-код пользователя с подтверждением
на клавиатуре терминала (в этом случае функция вызывается с любым значением параметра pin).
Длина PIN-кода – от 6 до 32 символов.
Криптотокен 2 ЭП
Предупреждение
Laser
По умолчанию для PIN-кода пользователя установлено значение 11111111.
Операция доступна всегда, при её выполнении изменяется текущий PIN-код пользователя.
Длина PIN-кода – от 4 до 16 символов.
Запускается в режимах
| Параметры: |
|
|---|---|
| Результат: |
|
InitToken(long slotID, String pin, String label)¶Инициализирует поддерживаемые апплеты и устанавливает метки токена.
Криптотокен
Процесс инициализации предполагает удаление всех объектов, за исключением информации о ДСЧ. При этом:
Криптотокен 2 ЭП
Предупреждение
Laser
Для устройств модели JXXX v2.0 операция может выполняться в режимах администратора и гостя. Для всех остальных – только в
режиме администратора. Процесс инициализации включает удаление всех объектов и последующую персонализацию апплета
согласно установленным настройкам. При этом значения PIN-кодов администратора и пользователя устанавливаются на
заданные. Если настройки не были установлены, то используются настройки по умолчанию:
00000000,11111111.Примечание
Можно произвести полную очистку содержимого смарт-карты/токена,
если в качестве значения PIN-кода администратора передать null.
Запускается в режимах
| Параметры: |
|
|---|---|
| Результат: |
|
Initialize(CK_C_INITIALIZE_ARGS pInitArgs)¶Инициализирует библиотеку.
Примечание
Библиотека не поддерживает приложения, использующие многопотоковый доступ, и не реагирует на
значения флагов CK_C_INITIALIZE_ARGS.CKF_OS_LOCKING_OK,
CK_C_INITIALIZE_ARGS.CKF_LIBRARY_CANT_CREATE_OS_THREADS
и следующих параметров:
Запускается в режимах
| Результат: | CKR код завершения |
|---|
Login(long session, long userType, String pin)¶Используется для ввода PIN-кода и перехода в режим пользователя или администратора.
Особенности апплетов:
Криптотокен
Возможные значения параметра userType и PIN-коды по умолчанию:
| Пользователь | Значение userType |
PIN-код по умолчанию |
|---|---|---|
| Администратор | CKU.SO |
1234567890 |
| Пользователь | CKU.USER |
Не установлен |
Криптотокен 2 ЭП
Возможные значения параметра userType и PIN-коды по умолчанию
(устанавливаются на производстве “Аладдин Р.Д.”, если заказчик не предоставил свои):
| Пользователь | Значение userType |
PIN-код по умолчанию |
|---|---|---|
| Пользователь | CKU.USER |
1234567890 |
| Подпись | CKU.SIGNATURE |
Задается пользователем |
Примечание
Функция вызывается с параметром userType равным CKU.SIGNATURE только после перехода в режим Пользователя.
Laser
Возможные значения параметра userType и PIN-коды по умолчанию:
| Пользователь | Значение userType |
PIN-код по умолчанию |
|---|---|---|
| Администратор | CKU.SO |
00000000(8 нулей)
|
| Пользователь | CKU.USER |
11111111(8 единиц)
|
Запускается в режимах
Для Криптотокен 2 ЭП:
userType равном CKU.SIGNATURE;userType равном CKU.SO и CKU.USER.| Параметры: |
|
|---|---|
| Результат: |
|
OpenSession(long slotID, long flags, NativePointer application, CK_NOTIFY notify, LongRef session)¶Открывает сеанс между приложением и токеном в заданном слоте.
Примечание
Параметры application и notify – должны принимать значение null.
| Параметры: |
|
|---|---|
| Результат: |
|
SetAttributeValue(long session, long object, CKA[] templ)¶Устанавливает значение одного или нескольких атрибутов для указанного объекта.
Примечание
Значение атрибута CKA.VALUE должно быть представлено в формате от младшего к старшему (little
endian).
Запускается в режимах
| Параметры: |
|
|---|---|
| Результат: |
|
SetPIN(long session, String oldPin, String newPin)¶Меняет PIN-код пользователя/администратора/подписи.
PIN-код пользователя должен быть предварительно инициализирован (см. C.InitPIN).
PIN-код может содержать символы в кодировке UTF-8 из следующего набора:
Особенности апплетов:
Криптотокен
Функция меняет PIN-коды пользователя и администратора.
Длина PIN-кодов пользователя/администратора – от 6 до 32 символов.
Криптотокен 2 ЭП
Функция меняет PIN-коды пользователя и подписи.
Длина PIN-кодов пользователя/подписи – от 6 до 32 символов.
Смена ключа администратора безопасности возможна с помощью ПО «АРМ администратора безопасности JaCarta-2 ГОСТ» или «АРМ разработчика JaCarta-2 ГОСТ».
Laser
Функция меняет PIN-коды пользователя и администратора.
Длина PIN-кодов пользователя/администратора – от 4 до 16 символов.
Запускается в режимах
| Параметры: |
|
|---|---|
| Результат: |
|
Sign(long session, byte[] data, byte[] signature, LongRef signatureLen)¶Осуществляет единоразовую подпись, т.е подписывает только один блок данных.
Либо вычисляет HMAC от одного блока данных, вырабатывает имитовставку от одного блока данных –
конкретная операция зависит от того, с каким значением параметра mechanism была инициализирована операция подписи.
Примечание
Если операция подписи инициализирована с механизмом CKM.GOSTR3410 (см. C.SignInit),
то поддерживается только 32-байтовый размер данных.
Запускается в режимах
См.также
| Параметры: |
|
|---|---|
| Результат: |
|
SignFinal(long session, byte[] signature, LongRef signatureLen)¶Завершает составную операцию подписи, вычисления HMAC или выработки имитовставки.
При работе с апплетом Криптотокен функция поддерживает только механизмы CKM.GOSTR3410_WITH_GOSTR3411 и CKM.GOST28147_MAC.
Примечание
Механизмы, используемые в процессе выработки электронной подписи или имитовставки
предварительно задаются функцией C.SignInit.
Запускается в режимах
См.также
| Параметры: |
|
|---|---|
| Результат: |
|
SignInit(long session, CKM mechanism, long key)¶Инициализирует операцию подписи для указанного ключа, выработки имитовставки и вычисления HMAC.
Поддерживаемые механизмы:
CKM.GOSTR3410 (0x00001201) – механизм для генерации и проверки ЭП,
соответствующий стандарту ГОСТ Р 34.10–2001.
Использует в качестве входного параметра ранее вычисленное 32-байтовое значение хэш-функции.CKM.GOSTR3410_WITH_GOSTR3411 (0x00001202) – механизм для генерации и проверки
ЭП (ГОСТ Р 34.10–2001) с хэшированием (ГОСТ Р 34.11–94) подаваемых на вход данных.
Размер данных не ограничен.CKM.GOST28147_MAC (0x00001223) – механизм выработки и проверки имитовставки,
соответствующий стандарту ГОСТ 28147–89.
Размер входных данных не ограничен.CKM.GOSTR3410_256 – псевдоним для CKM.GOSTR3410;CKM.GOSTR3410_WITH_GOSTR3411_2012_256 (CK_VENDOR_PKCS11_RU_TEAM_TC26 | 0x008) – механизм для генерации и проверки
ЭП (ГОСТ Р 34.10–2012 (длина ключа 256 бит)) с хэшированием (ГОСТ Р 34.11–2012 (длина хэш–кода 256 бит)) подаваемых на вход данных.
Размер данных не ограничен.CKM.GOSTR3410_WITH_GOSTR3411_12_256 – псевдоним для CKM.GOSTR3410_WITH_GOSTR3411_2012_256;CKM.GOSTR3411_2012_256_HMAC (CK_VENDOR_PKCS11_RU_TEAM_TC26 | 0x014) – механизм выработки и проверки имитовставки,
соответствующий стандарту ГОСТ Р 34.11–2012 (длина хэш–кода 256 бит);CKM.GOSTR3411_12_256_HMAC – псевдоним для CKM.GOSTR3411_2012_256_HMAC;CKM.GOSTR3411_2012_512_HMAC (CK_VENDOR_PKCS11_RU_TEAM_TC26 | 0x015) – механизм выработки и проверки имитовставки,
соответствующий стандарту ГОСТ Р 34.11–2012 (длина хэш–кода 512 бит);CKM.GOSTR3411_12_512_HMAC – псевдоним для CKM.GOSTR3411_2012_512_HMAC.CKM.RSA_PKCS (0x00000001) – механизм для генерации и проверки ЭП по алгоритму RSA. Может быть также
использован для зашифрования/расшифрования данных.CKM.SHA1_RSA_PKCS (0x00000006) – механизм для генерации и проверки ЭП (RSA) с предварительным
хэшированием по алгоритму SHA-1.CKM.SHA256_RSA_PKCS (0x00000040) – механизм для генерации и проверки ЭП (RSA) с предварительным
хэшированием по алгоритму SHA-256.CKM.DES3_MAC (0x00000134) – механизм для формирования и проверки имитовставки фиксированной длины
на основе triple-DES. Ограничение длины выхода – 4 байт.CKM.DES3_MAC_GENERAL (0x00000135) – механизм для формирования и проверки имитовставки произвольной
длины на основе triple-DES.CKM.MD5_HMAC (0x00000211) – механизм для формирования и проверки имитовставки на основе MD5.CKM.SHA_1_HMAC (0x00000221) – механизм для формирования и проверки имитовставки на основе SHA-1.CKM.SHA256_HMAC (0x00000251) – механизм для формирования и проверки имитовставки на основе SHA-256.CKM.SHA384_HMAC (0x00000261) – механизм для формирования и проверки имитовставки на основе SHA-384.CKM.SHA512_HMAC (0x00000271) – механизм для формирования и проверки имитовставки на основе SHA-512.CKM.CMS_SIG (0x00000500) – механизм для генерации и проверки ЭП в формате CMS.CKM.ECDSA (0x00001041) – механизм для генерации и проверки ЭП по алгоритму ECDSA.CKM.ECDSA_SHA1 (0x00001042) – механизм для генерации и проверки ЭП (ECDSA) с предварительным
хэшированием по алгоритму SHA1.CKM.ECDSA_SHA256 (0x00001043) – механизм для генерации и проверки ЭП (ECDSA) с предварительным
хэшированием по алгоритму SHA256.CKM.AES_MAC (0x00001083) – механизм для формирования и проверки имитовставки фиксированной длины
на основе AES. Ограничение длины выхода – 8 байт.CKM.AES_MAC_GENERAL (0x00001084) – механизм для формирования и проверки имитовставки произвольной
длины на основе AES.Запускается в режимах
См.также
| Параметры: |
|
|---|---|
| Результат: |
|
SignUpdate(long session, byte[] part)¶Продолжает составную операцию подписи – подписывает очередной блок данных, вычисляет HMAC или вырабатывает имитовставку для очередного блока данных.
При работе с апплетом Криптотокен функция C.SignUpdate поддерживает только
механизмы CKM.GOSTR3410_WITH_GOSTR3411 и CKM.GOST28147_MAC.
Примечание
Механизмы, используемые в процессе выработки электронной подписи или имитовставки
предварительно задаются функцией C.SignInit.
Запускается в режимах
См.также
| Параметры: |
|
|---|---|
| Результат: |
|
UnwrapKey(long session, CKM mechanism, long unwrappingKey, byte[] wrappedKey, CKA[] templ, LongRef key)¶Производит импорт сессионного ключа на ключе согласования.
Поддерживаются следующие механизмы:
Криптотокен
CKM.GOST28147_KEY_WRAP (0x00001224) – механизм для импорта и экспорта ключей,
соответствующий стандарту ГОСТ 28147–89.Криптотокен 2 ЭП
CKM.GOST28147_KEY_WRAP (0x00001224) – механизм для импорта и экспорта ключей,
соответствующий стандарту ГОСТ 28147–89.
CKM.GOSTR3410_KEY_WRAP (0x00001203) – механизм для импорта и экспорта ключей,
соответствующий стандарту ГОСТ Р 34.10–2001.
Особенности механизма
Используется аппаратный и программный экспорт ключа.
Аппаратный экспорт ключа
CKA.VENDOR_KT2_KEY_ACTIVE принимает значение true.CKA.VENDOR_KT2_KEY_ACTIVE принимает значение false.Программный экспорт ключа
CKA.VENDOR_KT2_KEY_WRAP (CKA_VENDOR_DEFINED | 0x0024) – если атрибут имеет значение true,
используется алгоритм шифрования ключа содержимого по RFC 4357 п.6.1/6.2;
в противном случае используется RFC 4357 п.6.3/6.4.Laser
CKM.RSA_PKCS (0x00000001) – механизм для импорта и экспорта ключей с использованием ключевой пары и
алгоритма RSA.CKM.DES3_ECB (0x00000132) – механизм для импорта и экспорта ключей в режиме ECB с использованием
алгоритма triple-DES.CKM.DES3_CBC (0x00000133) – механизм для импорта и экспорта ключей в режиме CBC с использованием
алгоритма triple-DES.CKM.AES_ECB (0x00001081) – механизм для импорта и экспорта ключей в режиме ECB с использованием
алгоритма AES.CKM.AES_CBC (0x00001082) – механизм для импорта и экспорта ключей в режиме CBC с использованием
алгоритма AES.Запускается в режимах
| Параметры: |
|
|---|---|
| Результат: |
|
Verify(long session, byte[] data, byte[] signature)¶Осуществляет единоразовую проверку подписи, т.е проверяет только один блок данных.
Либо проверяет значение HMAC для одного блока данных, проверяет значение имитовставки
для одного блока данных – конкретная операция зависит от того,
с каким значением параметра mechanism была инициализирована операция проверки.
Примечание
В случае инициализации операции проверки (см. C.VerifyInit) с механизмом
CKM.GOSTR3410 размер данных должен быть 32-байта.
Запускается в режимах
См.также
| Параметры: |
|
|---|---|
| Результат: |
|
VerifyFinal(long session, byte[] signature)¶Завершает операцию проверки подписи, проверки HMAC или проверки имитовставки.
При работе с апплетом Криптотокен функция поддерживает только механизмы CKM.GOSTR3410_WITH_GOSTR3411 и CKM.GOST28147_MAC.
Примечание
Механизмы, используемые в процессе выработки электронной подписи или
имитовставки предварительно задаются функцией C.VerifyInit.
Запускается в режимах
См.также
| Параметры: |
|
|---|---|
| Результат: |
|
VerifyInit(long session, CKM mechanism, long key)¶Инициализирует операцию проверки электронной подписи, имитовставки или значения HMAC.
Поддерживаемые механизмы:
CKM.GOSTR3410 (0x00001201) – механизм для генерации и проверки ЭП,
соответствующий стандарту ГОСТ Р 34.10–2001.
Использует в качестве входного параметра ранее вычисленное 32-байтовое значение хэш-функции.CKM.GOSTR3410_WITH_GOSTR3411 (0x00001202) – механизм для генерации и проверки
ЭП (ГОСТ Р 34.10–2001) с хэшированием (ГОСТ Р 34.11–94) подаваемых на вход данных.
Размер данных не ограничен.CKM.GOST28147_MAC (0x00001223) – механизм выработки и проверки имитовставки,
соответствующий стандарту ГОСТ 28147–89.
Размер входных данных не ограничен.CKM.GOSTR3410_256 – псевдоним для CKM.GOSTR3410;CKM.GOSTR3410_WITH_GOSTR3411_2012_256 (CK_VENDOR_PKCS11_RU_TEAM_TC26 | 0x008) – механизм для генерации и проверки
ЭП (ГОСТ Р 34.10–2012 (длина ключа 256 бит)) с хэшированием (ГОСТ Р 34.11–2012 (длина хэш–кода 256 бит)) подаваемых на вход данных.
Размер данных не ограничен.CKM.GOSTR3410_WITH_GOSTR3411_12_256 – псевдоним для CKM.GOSTR3410_WITH_GOSTR3411_2012_256;CKM.GOSTR3411_2012_256_HMAC (CK_VENDOR_PKCS11_RU_TEAM_TC26 | 0x014) – механизм выработки и проверки имитовставки,
соответствующий стандарту ГОСТ Р 34.11–2012 (длина хэш–кода 256 бит);CKM.GOSTR3411_12_256_HMAC – псевдоним для CKM.GOSTR3411_2012_256_HMAC;CKM.GOSTR3411_2012_512_HMAC (CK_VENDOR_PKCS11_RU_TEAM_TC26 | 0x015) – механизм выработки и проверки имитовставки,
соответствующий стандарту ГОСТ Р 34.11–2012 (длина хэш–кода 512 бит);CKM.GOSTR3411_12_512_HMAC – псевдоним для CKM.GOSTR3411_2012_512_HMAC.CKM.RSA_PKCS (0x00000001) – механизм для генерации и проверки ЭП по алгоритму RSA. Может быть также
использован для зашифрования/расшифрования данных.CKM.SHA1_RSA_PKCS (0x00000006) – механизм для генерации и проверки ЭП (RSA) с предварительным
хэшированием по алгоритму SHA-1.CKM.SHA256_RSA_PKCS (0x00000040) – механизм для генерации и проверки ЭП (RSA) с предварительным
хэшированием по алгоритму SHA-256.CKM.DES3_MAC (0x00000134) – механизм для формирования и проверки имитовставки фиксированной длины
на основе triple-DES. Ограничение длины выхода – 4 байт.CKM.DES3_MAC_GENERAL (0x00000135) – механизм для формирования и проверки имитовставки произвольной
длины на основе triple-DES.CKM.MD5_HMAC (0x00000211) – механизм для формирования и проверки имитовставки на основе MD5.CKM.SHA_1_HMAC (0x00000221) – механизм для формирования и проверки имитовставки на основе SHA-1.CKM.SHA256_HMAC (0x00000251) – механизм для формирования и проверки имитовставки на основе SHA-256.CKM.SHA384_HMAC (0x00000261) – механизм для формирования и проверки имитовставки на основе SHA-384.CKM.SHA512_HMAC (0x00000271) – механизм для формирования и проверки имитовставки на основе SHA-512.CKM.CMS_SIG (0x00000500) – механизм для генерации и проверки ЭП в формате CMS.CKM.ECDSA (0x00001041) – механизм для генерации и проверки ЭП по алгоритму ECDSA.CKM.ECDSA_SHA1 (0x00001042) – механизм для генерации и проверки ЭП (ECDSA) с предварительным
хэшированием по алгоритму SHA1.CKM.ECDSA_SHA256 (0x00001043) – механизм для генерации и проверки ЭП (ECDSA) с предварительным
хэшированием по алгоритму SHA256.CKM.AES_MAC (0x00001083) – механизм для формирования и проверки имитовставки фиксированной длины
на основе AES. Ограничение длины выхода – 8 байт.CKM.AES_MAC_GENERAL (0x00001084) – механизм для формирования и проверки имитовставки произвольной
длины на основе AES.Запускается в режимах
См.также
| Параметры: |
|
|---|---|
| Результат: |
|
VerifyUpdate(long session, byte[] part)¶Продолжает составную операцию проверки подписи – проверяет очередной блок данных, проверяет HMAC или имитовставку для очередного блока данных.
При работе с апплетом Криптотокен функция поддерживает только механизмы CKM.GOSTR3410_WITH_GOSTR3411 и CKM.GOST28147_MAC.
Примечание
Механизмы, используемые в процессе выработки электронной подписи или
имитовставки предварительно задаются функцией C.VerifyInit.
Запускается в режимах
См.также
| Параметры: |
|
|---|---|
| Результат: |
|
WaitForSlotEvent(long flags, LongRef slot, NativePointer reserved)¶Отслеживает отключение и подключение устройств.
Запускается в режимах
| Параметры: |
|
|---|---|
| Результат: |
|
WrapKey(long session, CKM mechanism, long wrappingKey, long key, byte[] wrappedKey, LongRef wrappedKeyLen)¶Производит экспорт симметричного сессионного ключа (сгенерированного программно) на симметричном ключе согласования.
Поддерживаются следующие механизмы:
Криптотокен
CKM.GOST28147_KEY_WRAP (0x00001224) – механизм для импорта и экспорта ключей,
соответствующий стандарту ГОСТ 28147–89.Криптотокен 2 ЭП
CKM.GOST28147_KEY_WRAP (0x00001224) – механизм для импорта и экспорта ключей,
соответствующий стандарту ГОСТ 28147–89.
CKM.GOSTR3410_KEY_WRAP (0x00001203) – механизм для импорта и экспорта ключей,
соответствующий стандарту ГОСТ Р 34.10–2001.
Особенности механизма
Используется аппаратный и программный экспорт ключа.
Аппаратный экспорт ключа
При аппаратном экспорте функция позволяет генерировать и экспортировать сессионный ключ для преобразований по ГОСТ 28147–89 с параметрами id-tc26-gost-28147-param-Z.
Для апплета Криптотокен 2 ЭП вводится понятие «виртуального секретного ключа», под которым понимается ключ, который может присутствовать (но не обязательно) в оперативной памяти изделия.
Вызову функции должно предшествовать получение дескриптора «виртуального секретного ключа»,
который потом передается в качестве параметра функции. Поиск объекта виртуального ключа осуществляется по шаблону,
содержащему атрибуты CKA_CLASS = CKO_SECRET_KEY, CKA_ID = ”VSKO_ID”.
После экспорта ключа атрибут CKA.VENDOR_KT2_KEY_ACTIVE принимает значение true.
Апплет версии 2.5.5 позволяет также экспортировать сгенерированный ранее секретный ключ. После завершения операции преобразования ключ удаляется из памяти изделия.
Программный экспорт ключа
CKA.VENDOR_KT2_KEY_WRAP (CKA_VENDOR_DEFINED | 0x0024) – если атрибут имеет значение true,
используется алгоритм шифрования ключа содержимого по RFC 4357 п.6.1/6.2;
в противном случае используется RFC 4357 п.6.3/6.4.CKA.VENDOR_KT2_AUTOGENERATE_KEY (CKA_VENDOR_DEFINED | 0x0026) – если атрибут имеет значение true,
будет сгенерирован случайный секретный ключ. По умолчанию принимается значение true.Laser
CKM.RSA_PKCS (0x00000001) – механизм для импорта и экспорта ключей с использованием ключевой пары и
алгоритма RSA.CKM.DES3_ECB (0x00000132) – механизм для импорта и экспорта ключей в режиме ECB с использованием
алгоритма triple-DES.CKM.DES3_CBC (0x00000133) – механизм для импорта и экспорта ключей в режиме CBC с использованием
алгоритма triple-DES.CKM.AES_ECB (0x00001081) – механизм для импорта и экспорта ключей в режиме ECB с использованием
алгоритма AES.CKM.AES_CBC (0x00001082) – механизм для импорта и экспорта ключей в режиме CBC с использованием
алгоритма AES.Запускается в режимах
| Параметры: |
|
|---|---|
| Результат: |
|
l2s(Map<Long, String> map, String ckx, long l)¶Вспомогательный метод. Возвращает имя значения l или ‘unknown %s constant 0x08x’ % (ckx, l)’,
если значение не найдено в словаре.
| Параметры: |
|
|---|---|
| Результат: | имя значения или ‘unknown %s constant 0x08x’ % (ckx, l)’. |