КриптоПро CSP  

CPHashData

Функция CPHashData() передаёт данные указанному объекту функции хэширования.

BOOL WINAPI CPHashData(
  HCRYPTPROV hProv,
  HCRYPTHASH hHash,
  CONST BYTE * pbData,
  DWORD dwDataLen,
  DWORD dwFlags
);

Аргументы

hProv
[in] Дескриптор криптопровайдера. Получается при помощи функции CPAcquireContext().
hHash
[in] Дескриптор объекта функции хэширования. Приложение получает этот дескриптор, используя функцию CPCreateHash().
pbData
[in] Если значение dwFlags нулевое, указатель на буфер, содержащий данные для хэширования. Если установлен флаг CP_HASH_DATA_IOVEC указатель на массив структур CSP_iovec. См. Вектор ввода вывода .
dwDataLen
[in] Если значение dwFlags нулевое, число байтов хэшируемых данных. Если установлен флаг CP_HASH_DATA_IOVEC, число элементов массива CSP_iovec.
dwFlags
[in] Значения флагов. Параметр определяет способ обработки фрагмента данных в потоке. Нулевое значение соответствует хэшированию фрагмента данных потока, флаг CP_HASH_DATA_IOVEC соответствует обработке данных в форме вектора ввода/вывода. См. Вектор ввода вывода .

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

При успешном завершении функция возвращает TRUE, в противном случае возвращается FALSE. Если возвращается FALSE, соответствующий код ошибки (см. таблицу) может быть получен через функцию GetLastError().
Коды возвратаОписание
ERROR_INVALID_PARAMETERОдин из параметров содержит некорректное значение. Чаще всего это некорректный указатель.
NTE_BAD_ALGIDУказанный объект хэширования не поддерживает данную операцию.
NTE_BAD_HASHДескриптор хэша ошибочен.
NTE_BAD_HASH_STATEБыла сделана попытка добавить данные к объекту функции хэширования, который уже отмечен как "закрытый".
NTE_BAD_KEYИспользуется алгоритм хэширования (CALG_G28147_IMIT, CALG_GR3413_2015_M_IMIT, CALG_GR3413_2015_K_IMIT), но сессионный ключ удалён прежде, чем действие хэширования завершено, или превышена допустимая нагрузка на ключ.
NTE_BAD_FLAGSВеличина dwFlags имеет значение, отличное от нулевого либо от CP_HASH_DATA_IOVEC.
NTE_BAD_LENВеличина dwDataLen при установленном флаге CP_HASH_DATA_IOVEC имеет значение, превосходящее CSP_UIO_MAXIOV.
NTE_FAILНарушение целостности ключей в ОЗУ.

Требования:

AIX: 6/7.
FreeBSD: 11/12, pfSense 2.x.
Linux: LSB 4.x (RHEL 5/6/7/8, SuSE 11SP4/12/15, Oracle Linux 5/6/7/8, CentOS 6/7/8, Ubuntu 14.04/16.04/18.04/19.10, Linux Mint 18/19, Fedora 28/29/30/31, Debian 8/9/10 и др.).
Solaris: 10/11.
Mac OS X: 10.9/10.10/10.11/10.12/10.13/10.14/10.15.
iOS: 8/9/10/11/12/13.
Sailfish: 2/3.
Windows: 7/8/8.1/10, Server 2008/2008R2/2012/2012R2/2016/2019.
Файл описания: Прототип описан в файле wincsp.h.
Ядро ОС: Вместо неё используется аналогичная функция CPCHashData .

См. также

CPCreateHash() ,CPHashSessionKey() ,CPHashData в MS CSP World Wide Web link ,CryptHashData в MS CryptoAPI 2.0 World Wide Web link