Compartilhar via


Função CryptSIPGetSignedDataMsg (mssip.h)

A função CryptSIPGetSignedDataMsg recupera uma assinatura Authenticode do arquivo.

Sintaxe

BOOL CryptSIPGetSignedDataMsg(
  [in]      SIP_SUBJECTINFO *pSubjectInfo,
  [out]     DWORD           *pdwEncodingType,
  [in]      DWORD           dwIndex,
  [in, out] DWORD           *pcbSignedDataMsg,
  [out]     BYTE            *pbSignedDataMsg
);

Parâmetros

[in] pSubjectInfo

Um ponteiro para uma estrutura SIP_SUBJECTINFO que contém informações sobre o assunto da mensagem.

[out] pdwEncodingType

O tipo de codificação da assinatura Authenticode.

Esse parâmetro pode ser uma combinação de um ou mais dos valores a seguir.

Valor Significado
PKCS_7_ASN_ENCODING
65536 (0x10000)
Especifica a codificação de mensagens PKCS nº 7 .
X509_ASN_ENCODING
1 (0x1)
Especifica a codificação de certificado X.509 .

[in] dwIndex

Esse parâmetro é reservado e deve ser definido como zero.

[in, out] pcbSignedDataMsg

O comprimento, em bytes, do buffer apontado pelo parâmetro pbSignedDataMsg .

[out] pbSignedDataMsg

Um ponteiro para um buffer para receber a assinatura Authenticode retornada.

Para determinar o tamanho do buffer necessário, defina o parâmetro pbSignedDataMsg como NULL e chame a função CryptSIPGetSignedDataMsg . Essa função colocará o tamanho necessário do buffer, em bytes, no valor apontado por pcbSignedDataMsg. Para obter mais informações, consulte Recuperando dados de comprimento desconhecido.

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. Alguns códigos de erro possíveis seguem.

Código de retorno Descrição
CRYPT_E_NO_MATCH
Não foi possível encontrar a assinatura especificada pelo índice.
ERROR_BAD_FORMAT
Os dados especificados ou o formato de arquivo do SIP (pacote de interface do assunto ) não é válido.
ERROR_INVALID_PARAMETER
A estrutura [SIP_SUBJECTINFO](/windows/desktop/api/mssip/ns-mssip-sip_subjectinfo) é um ponteiro nulo.
ERROR_INSUFFICIENT_BUFFER
O tamanho do buffer de mensagem era insuficiente para conter os dados recuperados, o parâmetro pcbSignedDataMsg foi definido para indicar o tamanho do buffer necessário.
TRUST_E_SUBJECT_FORM_UNKNOWN
O tipo de assunto especificado não é válido.

Comentários

Os assuntos incluem, mas não se limitam a imagens executáveis portáteis (.exe), imagens de gabinete (.cab), arquivos simples e arquivos de catálogo. Cada tipo de assunto usa um subconjunto diferente de seus dados para cálculo de hash e requer um procedimento diferente para armazenamento e recuperação. Portanto, cada tipo de assunto tem uma especificação SIP exclusiva.

Requisitos

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

Confira também

CryptSIPPutSignedDataMsg

CryptSIPRemoveSignedDataMsg