BOOL WINAPI CPSetHashParam( HCRYPTPROV hProv, HCRYPTHASH hHash, DWORD dwParam, BYTE * pbData, DWORD dwFlags );
Значение dwParam | Содержимое буфера pbData |
---|---|
HP_HASHVAL | Устанавливается для объекта функции хэширования типа CALG_GR3411. Величина, 32 байта в little-endian порядке байт в соответствии с типом GostR3411-94-Digest CPCMS [RFC 4490], должна быть установлена в буфер pbData. |
HP_HASHSIZE | Устанавливается для объекта функции хэширования типа CALG_G28147_IMIT. В буфер pbData записывается величина DWORD, определяющая число байтов имитовставки в диапазоне от 1 до 4. По умолчанию длина имитовставки равна 4 байтам. |
KP_HASHOID | Идентификатор функции хэширования. Строка, заканчивающаяся нулем. Не допускается задавать для объектов типа CALG_GR3411_HMAC / CALG_GR3411_HMAC34. |
HP_TLS1PRF_SEED | Составляющая аргумента функции GOSTR3411_PRF. Принимает различные значения в сообщениях клиента и сервера при реализации TLS Handshake Protocol. Задается в виде структуры CRYPT_DATA_BLOB. |
HP_TLS1PRF_LABEL | Составляющая аргумента функции GOSTR3411_PRF. Принимает различные значения в сообщениях клиента и сервера при реализации TLS Handshake Protocol. Задается в виде структуры CRYPT_DATA_BLOB. |
HP_OPEN | Если через параметр pbData передаётся величина FALSE типа DWORD, производит повторную инициализацию объекта хеша типа CALG_GR3411, CALG_GR3411_HMAC, CALG_GR3411_HMAC34, CALG_G28147_IMIT в случае, если он закрыт. Если в pbData передаётся величина TRUE типа DWORD, закрытый объект функции хэширования типа CALG_GR3411 или CALG_G28147_IMIT открывается для дальнейшего хэширования данных. |
HP_KEYMIXSTART | Осуществляет диверсификацию ключа, ассоциированного с объектом хеширования, по алгоритму CALG_PRO_DIVERS. Через параметр pbData передаётся блоб диверсификации ключа в форме CRYPR_DATA_BLOB, см. CPCImportKey(). Допускается многократный вызов с различными параметрами диверсификации. |
HP_KEYSPEC_SIGN | Задает ключевую пару из открытого контейнера, на которой будут производиться вычисления в алгоритме распределенной подписи. Через параметр pbData передаётся значение типа ALG_ID, которое может быть равным AT_KEYEXCHANGE или AT_SIGNATURE. Установка данного параметра обязательно должна предшествовать применению алгоритма распределенной подписи. Специфика протокола ООО "КРИПТО-ПРО" взаимодействия с функциональным ключевым носителем. |
HP_R2_SIGN | Устанавливает значение R2 в алгоритме распределённой подписи, вырабатываемой с использованием функционального ключево-го носителя. Через параметр pbData передаётся структура типа CRYPT_HASH_BLOB_EX, где в качестве данных выступает точка эллиптической кривой в аффинных координатах (X,Y). Закрывает объект функции хэшироваия. Специфика протокола ООО "КРИПТО-ПРО" взаимодействия с функциональным ключевым носителем. |
HP_R_SIGN | Устанавливает значение R в алгоритме рас-пределённой подписи, вырабатываемой с использованием функционального ключево-го носителя. Через параметр pbData передаётся типа CRYPT_HASH_BLOB_EX, где в качестве данных выступает точка эллиптической кривой в аффинных координатах (X,Y). Специфика протокола ООО "КРИПТО-ПРО" взаимодействия с функциональным ключевым носителем. |
HP_S2_SIGN | Устанавливает значение ЭЦП, выработан-ное на стороне функционального ключевого носителя. Через параметр pbData передаётся значение типа CRYPT_HASH_BLOB_EX, где в качестве данных выступает значение ЭЦП (R,S2). Специфика протокола ООО "КРИПТО-ПРО" взаимодействия с функциональным ключевым носителем. |
HP_SHAREDMODE | Устанавливает значение числа от 2 до 5 компонент, на которые раскладывается ключ объектом CALG_SHAREDKEY_HASH, либо собирается ключ объектом CALG_FITTINGKEY_HASH. |
Коды возврата | Описание |
---|---|
ERROR_INVALID_PARAMETER | Один из параметров содержит некорректное значение. Чаще всего это некорректный указатель. |
NTE_BAD_HASH | Дескриптор хэша ошибочен. |
NTE_BAD_FLAGS | Параметр dwFlags имеет ненулевое значение. |
NTE_BAD_TYPE | Параметр dwParam передаёт неизвестное значение параметра. |
NTE_BAD_HASH_STATE | Была сделана попытка получить значение функции хэширования для "не закрытого" объекта функции хэширования. |
AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше с Internet Explorer 6.0 или старше.
Файл описания: Прототип описан в файле CSP_WinCrypt.h.
Ядро ОС: Вместо неё используется аналогичная функция CPCSetHashParam .
CPCreateHash() ,CPGetHashParam() ,CPSignHash() ,CPSetHashParam в MS CSP ,CryptSetHashParam в MS CryptoAPI 2.0