Compartilhar via


Função SignerSignEx2

A função SignerSignEx2 assina e carimba o arquivo especificado, permitindo várias assinaturas aninhadas.

Observação

Essa função não tem nenhum arquivo de cabeçalho associado ou biblioteca de importação. Para chamar essa função, você deve criar um arquivo de cabeçalho definido pelo usuário e usar as funções LoadLibrary e GetProcAddress para vincular dinamicamente a Mssign32.dll.

 

Sintaxe

HRESULT WINAPI SignerSignEx2(
  _In_       DWORD                  dwFlags,
  _In_       SIGNER_SUBJECT_INFO    *pSubjectInfo,
  _In_       SIGNER_CERT            *pSignerCert,
  _In_       SIGNER_SIGNATURE_INFO  *pSignatureInfo,
  _In_opt_   SIGNER_PROVIDER_INFO   *pProviderInfo,
  _In_opt_   DWORD                  dwTimestampFlags,
  _In_opt_   PCSTR                  pszTimestampAlgorithmOid,
  _In_opt_   PCWSTR                 pwszHttpTimeStamp,
  _In_opt_   PCRYPT_ATTRIBUTES      psRequest,
  _In_opt_   PVOID                  pSipData,
  _Out_      SIGNER_CONTEXT         **ppSignerContext,
  _In_opt_   PCERT_STRONG_SIGN_PARA pCryptoPolicy,
  _Reserved_ PVOID                  pReserved
);

Parâmetros

dwFlags [in]

Modifica o comportamento dessa função.

Se o arquivo a ser assinado for um arquivo PE (executável portátil), isso poderá ser zero ou uma combinação de um ou mais dos valores a seguir.

Valor Significado
SPC_EXC_PE_PAGE_HASHES_FLAG
0x10
Exclua hashes de página ao criar dados indiretos SIP para o arquivo PE. Esse sinalizador tem precedência sobre o sinalizador SPC_INC_PE_PAGE_HASHES_FLAG .
Se o SPC_EXC_PE_PAGE_HASHES_FLAG ou o sinalizador SPC_INC_PE_PAGE_HASHES_FLAG for especificado, o valor definido com a função WintrustSetDefaultIncludePEPageHashes será usado para essa configuração. O padrão dessa configuração é excluir hashes de página ao criar dados indiretos SIP para arquivos PE.
Esse valor é definido no arquivo de cabeçalho Mssip.h.
Windows Server 2003 e Windows XP: Não há suporte para esse valor.
SPC_INC_PE_IMPORT_ADDR_TABLE_FLAG
0x20
Não há suporte para esse valor.
SPC_INC_PE_DEBUG_INFO_FLAG
0x40
Não há suporte para esse valor.
SPC_INC_PE_RESOURCES_FLAG
0x80
Não há suporte para esse valor.
SPC_INC_PE_PAGE_HASHES_FLAG
0x100
Inclua hashes de página ao criar dados indiretos SIP para o arquivo PE.
Windows Server 2003 e Windows XP: Não há suporte para esse valor.
Esse valor é definido no arquivo de cabeçalho Mssip.h.
SIG_APPEND
0x1000
A assinatura será aninhada. Se você definir esse sinalizador antes de qualquer assinatura ser adicionada, a assinatura gerada será adicionada como a assinatura externa. Se você não definir esse sinalizador, a assinatura gerada substituirá a assinatura externa, excluindo todas as assinaturas internas.

 

pSubjectInfo [in]

Ponteiro para uma estrutura de SIGNER_SUBJECT_INFO que especifica o sujeito a assinar.

pSignerCert [in]

Ponteiro para uma estrutura SIGNER_CERT que especifica o certificado a ser usado para criar a assinatura digital.

pSignatureInfo [in]

Um ponteiro para uma estrutura SIGNER_SIGNATURE_INFO que contém informações sobre a assinatura digital.

pProviderInfo [in, opcional]

Ponteiro para uma estrutura de SIGNER_PROVIDER_INFO que especifica as informações de CSP ( provedor de serviços criptográficos ) e de chave privada usadas para criar a assinatura digital.

Se o valor desse parâmetro for NULL, o parâmetro pSignerCert deverá especificar um certificado associado a um CSP.

dwTimestampFlags [in, opcional]

Sinalizadores que serão passados para SignerTimeStampEx3 se o parâmetro pwszHttpTimeStamp não for NULL. Esse pode ser um dos valores a seguir.

Valor Significado
SIGNER_TIMESTAMP_AUTHENTICODE
Valor padrão. Especifica um carimbo de data/hora do Authenticode.
SIGNER_TIMESTAMP_RFC3161
Especifica um carimbo de data/hora RFC 3161.

 

Esse parâmetro será ignorado se o parâmetro pwszHttpTimeStamp for NULL.

pszTimestampAlgorithmOid [in, opcional]

Identificador de objeto do algoritmo a ser usado para criar um carimbo de data/hora RFC 3161. Esse parâmetro é ignorado para carimbos de data/hora do Authenticode.

pwszHttpTimeStamp [in, opcional]

URL do servidor de carimbo de data/hora.

psRequest [in, opcional]

Ponteiro para uma matriz de estruturas de CRYPT_ATTRIBUTE que são adicionadas a uma solicitação de sinal. Esse parâmetro será ignorado se o parâmetro pwszHttpTimeStamp não contiver um valor válido ou for NULL.

pSipData [in, opcional]

Um valor de 32 bits que é passado como dados adicionais para funções SIP. O formato e o conteúdo disso são definidos pelo provedor SIP.

ppSignerContext [out]

O endereço de um ponteiro para a estrutura SIGNER_CONTEXT que contém o BLOB assinado. Quando terminar de usar a estrutura SIGNER_CONTEXT , libere a estrutura SIGNER_CONTEXT chamando a função SignerFreeSignerContext .

pCryptoPolicy [in, opcional]

Se estiver presente, um ponteiro para uma estrutura de CERT_STRONG_SIGN_PARA que contém os parâmetros usados para marcar para assinaturas fortes. Se um certificado ou sua cadeia não for aprovado, o arquivo não será alterado de forma alguma. Se uma URL for passada para especificar uma TSA (Autoridade de Carimbo de Data/Hora), essa política também será aplicada ao carimbo de data/hora.

pReserved

Reservado. Esse valor deve ser NULL.

Valor retornado

Se a função for bem-sucedida, a função retornará S_OK.

Se a função falhar, ela retornará um valor HRESULT que indica o erro. Os possíveis códigos de erro retornados por essa função incluem, mas não se limitam a, o seguinte. Para obter uma lista de códigos de erro comuns, consulte Valores HRESULT comuns.

Código de retorno Descrição
E_INVALIDARG
Se você definir o parâmetro dwTimestampFlagscomo SIGNER_TIMESTAMP_AUTHENTICODE, não poderá definir o parâmetro dwFlags como SIG_APPEND.

 

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows 8 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows Server 2012 [somente aplicativos da área de trabalho]
DLL
Mssign32.dll

Confira também

SignerSign

SignerSignEx

SignerFreeSignerContext