Поделиться через


Функция CertIsStrongHashToSign (wincrypt.h)

Определяет, можно ли использовать указанный хэш-алгоритм и открытый ключ в сертификате подписи для выполнения строгой подписи.

Синтаксис

BOOL CertIsStrongHashToSign(
  [in]           PCCERT_STRONG_SIGN_PARA pStrongSignPara,
  [in]           LPCWSTR                 pwszCNGHashAlgid,
  [in, optional] PCCERT_CONTEXT          pSigningCert
);

Параметры

[in] pStrongSignPara

Указатель на структуру CERT_STRONG_SIGN_PARA , содержащую сведения о поддерживаемых алгоритмах подписывания и хэширования.

[in] pwszCNGHashAlgid

Указатель на строку Юникода, содержащую имя алгоритма хэширования. Поддерживаются следующие алгоритмы:

  • L"MD5" (BCRYPT_MD5_ALGORITHM)
  • L"SHA1" (BCRYPT_SHA1_ALGORITHM)
  • L"SHA256" (BCRYPT_SHA256_ALGORITHM)
  • L"SHA256" (BCRYPT_SHA256_ALGORITHM)
  • L"SHA512" (BCRYPT_SHA512_ALGORITHM)

[in, optional] pSigningCert

Указатель на CERT_CONTEXT структуру, содержащую сертификат подписи. Алгоритм открытого ключа в сертификате подписи проверяется на прочность. Для подписывания используется алгоритм открытого ключа (асимметричный). Поддерживаются следующие алгоритмы подписи:

  • L"RSA" (BCRYPT_RSA_ALGORITHM)
  • L"DSA" (BCRYPT_DSA_ALGORITHM)
  • L"ECDSA" (SSL_ECDSA_ALGORITHM)
Этот параметр может иметь значение NULL, если требуется проверка только то, является ли алгоритм хэширования сильным.

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

Если функция выполняется успешно, функция возвращает значение TRUE.

Если функция завершается сбоем, она возвращает значение FALSE. Для получения дополнительных сведений об ошибке вызовите Метод GetLastError. Эта функция имеет следующие коды ошибок.

Код возврата Описание
E_INVALIDARG
Один или несколько входных аргументов неверны.
NTE_BAD_ALGID
Указанный алгоритм не поддерживается.

Требования

Требование Значение
Минимальная версия клиента Windows 8 [только классические приложения]
Минимальная версия сервера Windows Server 2012 [только классические приложения]
Целевая платформа Windows
Header wincrypt.h
Библиотека Crypt32.lib
DLL Crypt32.dll

См. также раздел

CERT_STRONG_SIGN_PARA