КриптоПро CSP  

CPCDuplicateHash

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

DWORD CPCAPI CPCDuplicateHash(
  HCRYPTMODULE hCSP,
  HCRYPTPROV hProv,
  HCRYPTHASH hHash,
  DWORD * pdwReserved,
  DWORD dwFlags,
  HCRYPTHASH * phHash
);

Аргументы

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

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

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

Примечания

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

Требования:

Ядро FreeBSD: 7/8/9 или выше
Ядро Linux: ядро 2.4.x/2.6.x/3.0.х/3.2.х или выше
Ядро Solaris: 10/11 или выше.
Ядро Windows 2000 или выше: Необходимо Windows 2000 SP4 или старше.

См. также

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