Compartilhar via


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

Se uma assinatura contiver parâmetros codificados, a função de retorno de chamada PFN_CRYPT_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC será chamada para decodificar e retornar o identificador do algoritmo de hash e, opcionalmente, os parâmetros de assinatura.

Sintaxe

PFN_CRYPT_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC PfnCryptExtractEncodedSignatureParametersFunc;

BOOL PfnCryptExtractEncodedSignatureParametersFunc(
  [in]            DWORD dwCertEncodingType,
  [in]            PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm,
  [out, optional] void **ppvDecodedSignPara,
  [out]           LPWSTR *ppwszCNGHashAlgid
)
{...}

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] 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.

[out, optional] ppvDecodedSignPara

Um ponteiro para um endereço para a estrutura de dados de parâmetros de assinatura decodificados e alocados. Retornar o buffer decodificado é opcional.

[out] ppwszCNGHashAlgid

Um ponteiro para um endereço para a cadeia de caracteres Unicode alocada que representa o identificador de algoritmo de hash CNG extraído dos parâmetros de assinatura codificados. Se essa função retornar TRUE, um ponteiro não NULL deverá ser retornado.

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

A memória para os parâmetros ppvDecodedSignPara e ppwszCNGHashAlgid deve ser alocada usando a função LocalAlloc .

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_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC "CryptDllExtractEncodedSignatureParameters"

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