BOOL WINAPI CPGetHashParam( HCRYPTPROV hProv, HCRYPTHASH hHash, DWORD dwParam, BYTE * pbData, DWORD * pdwDataLen, DWORD dwFlags );
Значение dwParam | Содержимое буфера pbData |
---|---|
HP_ALGID | Алгоритм функции хэширования. Идентификатор алгоритма (ALG_ID), соответствующий данному объекту функции хэширования. Возвращается через буфер pbData. В pdwDataLen будет возвращена величина 4. |
HP_HASHSIZE | Размер значения функции хэширования. Величина DWORD, определяющая число байтов в значении функции хэширования, будет возвращена через буфер pbData. В pdwDataLen будет возвращена величина 4. |
HP_HASHVAL | Значение функции хэширования в little-endian порядке байт в соответствии с типом GostR3411-94-Digest CPCMS [RFC 4490]. Вычисленное значение функции хэширования будет возвращено через буфер pbData. Длина значения функции хэширования будет возвращена в pdwDataLen. Во время вызова функции объект хэша "закрывается". Для ГОСТ Р 34.11-94 и ГОСТ Р 34.11-2012 (и HMAC-ов на их основе) проводится дополнение до размера блока (если требуется), исполняются шаговые функции для последнего блока (если требуется), для длины и для контрольной суммы. Для ГОСТ 28147-89 в режиме имитовставки проводится дополнение до размера блока (если требуется), и исполняется шаговая функции для последнего блока (если требуется). Расчёт хэш-функции может быть продолжен с помощью:
|
HP_R2_SIGN | Возвращает значение R2 в алгоритме распределённой подписи, вырабатываемой с использованием функционального ключевого носителя. Через параметр pbData возвращается значение данных - точка эллиптической кривой в аффинных координатах (X,Y), длина данных – 64 бита. Закрывает объект функции хэшироваия. Специфика протокола ООО "КРИПТО-ПРО" взаимодействия с функциональным ключевым носителем. |
HP_R_SIGN | Возвращает значение R в алгоритме распределённой подписи, вырабатываемой с использованием функционального ключевого носителя. Через параметр pbData возвращается значение данных - точка эллиптической кривой в аффинных координатах (X,Y), длина данных – 64 бита. Специфика протокола ООО "КРИПТО-ПРО" взаимодействия с функциональным ключевым носителем. |
HP_SHAREDMODE | Возвращает значение числа от 2 до 5 компонент, на которые раскладывается ключ объектом CALG_SHAREDKEY_HASH, либо собирается ключ объектом CALG_FITTINGKEY_HASH. |
HP_SHAREDKEYMODE | Возвращает значение числа компонент, на которые раскладывается ключ объектом CALG_SHAREDKEY_HASH, либо из которых собирается ключ объектом CALG_FITTINGKEY_HASH. |
HP_IKE_SPI_COOKIE | Возвращает 32-35 байты значения хэша (при нумерации 0..63) для объектов типа CALG_GR3411_2012_512 и CALG_GR3411_2012_512_HMAC. |
Коды возврата | Описание |
---|---|
ERROR_INVALID_PARAMETER | Один из параметров содержит некорректное значение. Чаще всего это некорректный указатель. |
NTE_BAD_HASH | Дескриптор хэша ошибочен. |
ERROR_MORE_DATA | Размер буфера pbData недостаточен для копирования затребованных данных. |
NTE_BAD_FLAGS | Параметр dwFlags имеет ненулевое значение. |
NTE_BAD_TYPE | Параметр dwParam передаёт неизвестное значение параметра. |
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 или старше.
Файл описания: Прототип описан в файле wincsp.h.
Ядро ОС: Вместо неё используется аналогичная функция CPCGetHashParam .
CPCreateHash() ,CPGetKeyParam() ,CPSetHashParam() ,CPGetHashParam в MS CSP ,CryptGetHashParam в MS CryptoAPI 2.0