PFN_CRYPT_VERIFY_ENCODED_SIGNATURE_FUNC função de retorno de chamada (wincrypt.h)
A função de retorno de chamada PFN_CRYPT_VERIFY_ENCODED_SIGNATURE_FUNC é chamada para descriptografar uma assinatura codificada e compará-la com um hash computado.
Sintaxe
PFN_CRYPT_VERIFY_ENCODED_SIGNATURE_FUNC PfnCryptVerifyEncodedSignatureFunc;
BOOL PfnCryptVerifyEncodedSignatureFunc(
[in] DWORD dwCertEncodingType,
[in] PCERT_PUBLIC_KEY_INFO pPubKeyInfo,
[in] PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm,
[in, optional] void *pvDecodedSignPara,
[in] LPCWSTR pwszCNGPubKeyAlgid,
[in] LPCWSTR pwszCNGHashAlgid,
[in] BYTE *pbComputedHash,
[in] DWORD cbComputedHash,
[in] BYTE *pbSignature,
[in] DWORD cbSignature
)
{...}
Parâmetros
[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 atualmente são:
- X509_ASN_ENCODING
- PKCS_7_ASN_ENCODING
[in] pPubKeyInfo
O endereço de uma estrutura CERT_PUBLIC_KEY_INFO que contém a chave pública a ser usada para verificar a assinatura. Você pode usar isso com CryptImportPublicKeyInfoEx2 para obter um BCRYPT_KEY_HANDLE.
[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, optional] pvDecodedSignPara
Um ponteiro opcional para a estrutura de dados de parâmetros de assinatura decodificados retornados 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 (Cryptography API: Next Generation) 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.
[in] pbSignature
Um ponteiro para os bytes de assinatura codificados.
[in] cbSignature
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_VERIFY_ENCODED_SIGNATURE_FUNC | "CryptDllVerifyEncodedSignature" |
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 |