Compartilhar via


PFN_CRYPT_SIGN_AND_ENCODE_HASH_FUNC função de retorno de chamada (wincrypt.h)

A função de retorno de chamada PFN_CRYPT_SIGN_AND_ENCODE_HASH_FUNC é chamada para assinar e codificar um hash computado.

Sintaxe

PFN_CRYPT_SIGN_AND_ENCODE_HASH_FUNC PfnCryptSignAndEncodeHashFunc;

BOOL PfnCryptSignAndEncodeHashFunc(
  [in]      NCRYPT_KEY_HANDLE hKey,
  [in]      DWORD dwCertEncodingType,
  [in]      PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm,
  [in]      void *pvDecodedSignPara,
  [in]      LPCWSTR pwszCNGPubKeyAlgid,
  [in]      LPCWSTR pwszCNGHashAlgid,
  [in]      BYTE *pbComputedHash,
  [in]      DWORD cbComputedHash,
  [out]     BYTE *pbSignature,
  [in, out] DWORD *pcbSignature
)
{...}

Parâmetros

[in] hKey

Um identificador para a chave privada da API de Criptografia: CNG (Próxima Geração) a ser usada para assinar o hash.

[in] dwCertEncodingType

Especifica o tipo de codificação usado. É sempre aceitável especificar os tipos de codificação de certificado e mensagem combinando-os com uma operação OR bit a bit, conforme mostrado no exemplo a seguir:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING Tipos de codificação definidos no momento são:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pSignatureAlgorithm

Um ponteiro para uma estrutura CRYPT_ALGORITHM_IDENTIFIER que contém o OID ( identificador de objeto de assinatura) e seus parâmetros codificados opcionais.

[in] pvDecodedSignPara

Um ponteiro opcional para a estrutura de dados de parâmetros de assinatura decodificada retornada anteriormente pela função PFN_CRYPT_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC .

[in] pwszCNGPubKeyAlgid

Uma cadeia de caracteres Unicode que contém o identificador de algoritmo de chave pública CNG que corresponde a pSignatureAlgorithm-pszObjId>.

[in] pwszCNGHashAlgid

Uma cadeia de caracteres Unicode que contém o identificador de algoritmo de hash CNG que corresponde a pSignatureAlgorithm-pszObjId> ou a um identificador de algoritmo de hash em pvDecodedSignPara.

[in] pbComputedHash

Um ponteiro para os bytes de hash computados retornados pela função BCryptFinishHash que corresponde a pwszCNGHashAlgid.

[in] cbComputedHash

Um valor que representa o comprimento, em bytes, do hash computado.

[out] pbSignature

Um ponteiro para os bytes de assinatura codificados.

[in, out] pcbSignature

Um valor que representa o comprimento, em bytes, da assinatura codificada.

Retornar valor

Se a função for bem-sucedida, a função retornará diferente de zero (TRUE).

Se a função falhar, ela retornará zero (FALSE). Para obter informações de erro estendidas, chame GetLastError.

Se essa função de retorno de chamada não der suporte ao algoritmo de assinatura, ela deverá retornar FALSE e chamar SetLastError com ERROR_NOT_SUPPORTED.

Comentários

Você pode usar as funções de suporte do OID para implantar essa função de retorno de chamada. Wincrypt.h define a seguinte constante para essa finalidade.

Constante Definição
CRYPT_OID_SIGN_AND_ENCODE_HASH_FUNC "CryptDllSignAndEncodeHash"

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho wincrypt.h