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)’. |