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 |
---|---|
|
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 |
|
Confira também