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 |