Функция CryptSetHashParam (wincrypt.h)
Синтаксис
BOOL CryptSetHashParam(
[in] HCRYPTHASH hHash,
[in] DWORD dwParam,
[in] const BYTE *pbData,
[in] DWORD dwFlags
);
Параметры
[in] hHash
Дескриптор хэш-объекта, для которого необходимо задать параметры.
[in] dwParam
Этот параметр может принимать одно из указанных ниже значений.
Значение | Значение |
---|---|
|
Указатель на структуру HMAC_INFO , указывающую алгоритм шифрования хэша, а также внутренние и внешние строки для использования. |
|
Массив байтов, содержащий хэш-значение, помещаемое непосредственно в хэш-объект. Перед установкой этого значения размер хэш-значения необходимо определить с помощью функции CryptGetHashParam для чтения значения HP_HASHSIZE.
Некоторые поставщики служб шифрования (CSP) не поддерживают эту возможность. |
[in] pbData
Буфер данных значений. Поместите данные значения в этот буфер перед вызовом CryptSetHashParam. Форма этих данных зависит от числа значений.
[in] dwFlags
Этот параметр зарезервирован для использования в будущем и должен иметь нулевое значение.
Возвращаемое значение
Если функция выполнена успешно, функция возвращает значение TRUE.
Если функция завершается сбоем, она возвращает значение FALSE. Чтобы получить дополнительные сведения об ошибке, вызовите Метод GetLastError.
Коды ошибок, предваряемые "NTE", создаются конкретным поставщиком служб CSP, который вы используете. Ниже приведены некоторые возможные коды ошибок.
Код возврата | Описание |
---|---|
|
Один из параметров указывает недопустимый дескриптор. |
|
Контекст CSP в настоящее время используется другим процессом. |
|
Один из параметров содержит недопустимое значение. Чаще всего это недопустимый указатель. |
|
Параметр dwFlags не является нулевым или буфер pbData содержит недопустимое значение. |
|
Недопустимый хэш-объект, заданный параметром hHash . |
|
Параметр dwParam указывает неизвестное значение. |
|
Не удается найти контекст CSP, указанный при создании ключа hKey . |
|
Сбой функции каким-то неожиданным образом. |
Комментарии
Иногда необходимо подписать хэш-значение, созданное в другом месте. Это можно сделать с помощью следующей последовательности операций:
- Создайте хэш-объект с помощью CryptCreateHash.
- Задайте значение HP_HASHVAL.
- Подпишите хэш-значение с помощью CryptSignHash и получите блок цифровой подписи.
- Уничтожьте хэш-объект с помощью CryptDeographyHash.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | wincrypt.h |
Библиотека | Advapi32.lib |
DLL | Advapi32.dll |