Função CertIsStrongHashToSign (wincrypt.h)

Determina se o algoritmo de hash especificado e a chave pública no certificado de autenticação podem ser usados para executar uma assinatura forte.

Sintaxe

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

Parâmetros

[in] pStrongSignPara

Ponteiro para uma estrutura CERT_STRONG_SIGN_PARA que contém informações sobre algoritmos de assinatura e hash com suporte.

[in] pwszCNGHashAlgid

Ponteiro para uma cadeia de caracteres Unicode que contém o nome do algoritmo de hash. Há suporte para os seguintes algoritmos:

  • 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

Ponteiro para uma estrutura CERT_CONTEXT que contém o certificado de autenticação. O algoritmo de chave pública no certificado de autenticação é verificado quanto à força. O algoritmo de chave pública (assimétrica) é usado para assinatura. Há suporte para os seguintes algoritmos de assinatura:

  • L"RSA" (BCRYPT_RSA_ALGORITHM)
  • L"DSA" (BCRYPT_DSA_ALGORITHM)
  • L"ECDSA" (SSL_ECDSA_ALGORITHM)
Esse parâmetro poderá ser NULL se você quiser marcar apenas se o algoritmo de hash for forte.

Retornar valor

Se a função for bem-sucedida, a função retornará TRUE.

Se a função falhar, ela retornará FALSE. Para obter informações de erro estendidas, chame GetLastError. Essa função tem os seguintes códigos de erro.

Código de retorno Descrição
E_INVALIDARG
Um ou mais argumentos de entrada não estão corretos.
NTE_BAD_ALGID
Não há suporte para um algoritmo especificado.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2012 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho wincrypt.h
Biblioteca Crypt32.lib
DLL Crypt32.dll

Confira também

CERT_STRONG_SIGN_PARA