КриптоПро CSP  

CPDuplicateHash

Функция CPDuplicateHash() создаёт точную копию объекта функции хэширования, включая все его переменные, определяющие внутреннее состояние объекта функции хэширования.

BOOL WINAPI CPDuplicateHash(
  HCRYPTPROV hProv,
  HCRYPTHASH hHash,
  DWORD * pdwReserved,
  DWORD dwFlags,
  HCRYPTHASH * phHash
);

Аргументы

hProv
[in] Дескриптор криптопровайдера. Получается при помощи функции CPAcquireContext().
hHash
[in] Дескриптор объекта функции хэширования.
pdwReserved
[in] Параметр зарезервирован для будущего использования и должен быть NULL.
dwFlags
[in] Параметр зарезервирован для будущего использования и должен быть нулевым.
phHash
[out] Адрес, по которому функция копирует дескриптор нового объекта функции хэширования.

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

При успешном завершении функция возвращает TRUE, в противном случае возвращается FALSE. Если возвращается FALSE, соответствующий код ошибки (см. таблицу) может быть получен через функцию GetLastError().
Коды возвратаОписание
ERROR_INVALID_PARAMETERОдин из параметров содержит некорректное значение. Чаще всего это некорректный указатель.
NTE_BAD_HASHДескриптор исходного хэша ошибочен.
NTE_NO_MEMORYКриптопровайдер во время операции исчерпал память.
NTE_BAD_FLAGSПараметр dwFlags имеет ненулевое значение.

Примечания

Полученный дескриптор объекта хэширования должен в обязательном порядке быть удалён с помощью вызова функции  CPDestroyHash() до вызова функции CPReleaseContext() для рабочего дескриптора криптопровайдера.

Требования:

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.
Ядро ОС: Вместо неё используется аналогичная функция CPCDuplicateHash .

См. также

CPDestroyHash() ,CPDuplicateHash в MS CSP World Wide Web link ,CryptDuplicateHash в MS CryptoAPI 2.0 World Wide Web link