SignerSignEx2 (función)

La función SignerSignEx2 firma y marca de tiempo el archivo especificado, lo que permite varias firmas anidadas.

Nota

Esta función no tiene ningún archivo de encabezado asociado ni biblioteca de importación. Para llamar a esta función, debe crear un archivo de encabezado definido por el usuario y usar las funciones LoadLibrary y GetProcAddress para vincular dinámicamente a Mssign32.dll.

 

Sintaxis

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 el comportamiento de esta función.

Si el archivo que se va a firmar es un archivo ejecutable portátil (PE), puede ser cero o una combinación de uno o varios de los valores siguientes.

Valor Significado
SPC_EXC_PE_PAGE_HASHES_FLAG
0x10
Excluya los hashes de página al crear datos indirectos SIP para el archivo PE. Esta marca tiene prioridad sobre la marca SPC_INC_PE_PAGE_HASHES_FLAG .
Si no se especifica ni el SPC_EXC_PE_PAGE_HASHES_FLAG ni la marca SPC_INC_PE_PAGE_HASHES_FLAG , se usa el valor establecido con la función WintrustSetDefaultIncludePEPageHashes para esta configuración. El valor predeterminado para esta configuración es excluir los hashes de página al crear datos indirectos SIP para archivos PE.
Este valor se define en el archivo de encabezado Mssip.h.
Windows Server 2003 y Windows XP: Este valor no se admite.
SPC_INC_PE_IMPORT_ADDR_TABLE_FLAG
0x20
Este valor no se admite.
SPC_INC_PE_DEBUG_INFO_FLAG
0x40
Este valor no se admite.
SPC_INC_PE_RESOURCES_FLAG
0x80
Este valor no se admite.
SPC_INC_PE_PAGE_HASHES_FLAG
0x100
Incluya hashes de página al crear datos indirectos SIP para el archivo PE.
Windows Server 2003 y Windows XP: Este valor no se admite.
Este valor se define en el archivo de encabezado Mssip.h.
SIG_APPEND
0x1000
La firma se anidará. Si establece esta marca antes de agregar cualquier firma, la firma generada se agregará como la firma externa. Si no establece esta marca, la firma generada reemplaza a la firma externa, eliminando todas las firmas internas.

 

pSubjectInfo [in]

Puntero a una estructura de SIGNER_SUBJECT_INFO que especifica el sujeto al signo.

pSignerCert [in]

Puntero a una estructura de SIGNER_CERT que especifica el certificado que se va a usar para crear la firma digital.

pSignatureInfo [in]

Puntero a una estructura SIGNER_SIGNATURE_INFO que contiene información sobre la firma digital.

pProviderInfo [in, opcional]

Puntero a una estructura de SIGNER_PROVIDER_INFO que especifica el proveedor de servicios criptográficos (CSP) y la información de clave privada que se usa para crear la firma digital.

Si el valor de este parámetro es NULL, el parámetro pSignerCert debe especificar un certificado asociado a un CSP.

dwTimestampFlags [in, optional]

Marcas que se pasarán a SignerTimeStampEx3 si el parámetro pwszHttpTimeStamp no es NULL. Puede ser uno de los valores siguientes.

Valor Significado
SIGNER_TIMESTAMP_AUTHENTICODE
Valor predeterminado. Especifica una marca de tiempo Authenticode.
SIGNER_TIMESTAMP_RFC3161
Especifica una marca de tiempo RFC 3161.

 

Este parámetro se omite si el parámetro pwszHttpTimeStamp es NULL.

pszTimestampAlgorithmOid [in, optional]

Identificador de objeto del algoritmo que se va a usar para crear una marca de tiempo RFC 3161. Este parámetro se omite para las marcas de tiempo authenticode.

pwszHttpTimeStamp [in, opcional]

Dirección URL del servidor de marca de tiempo.

psRequest [in, opcional]

Puntero a una matriz de estructuras de CRYPT_ATTRIBUTE que se agregan a una solicitud de signo. Este parámetro se omite si el parámetro pwszHttpTimeStamp no contiene un valor válido o es NULL.

pSipData [in, opcional]

Valor de 32 bits que se pasa como datos adicionales a funciones SIP. El formato y el contenido de esto se definen mediante el proveedor SIP.

ppSignerContext [out]

Dirección de un puntero a la estructura SIGNER_CONTEXT que contiene el BLOB firmado. Cuando haya terminado de usar la estructura SIGNER_CONTEXT , libere la estructura de SIGNER_CONTEXT llamando a la función SignerFreeSignerContext .

pCryptoPolicy [in, opcional]

Si está presente, un puntero a una estructura de CERT_STRONG_SIGN_PARA que contiene los parámetros usados para comprobar si hay firmas seguras. Si no se pasa un certificado o su cadena, el archivo no se modifica de ninguna manera. Si se pasa una dirección URL para especificar una entidad de marca de tiempo (TSA), esta directiva también se aplica a la marca de tiempo.

pReserved

Reservado. Este valor debe ser NULL.

Valor devuelto

Si la función se realiza correctamente, la función devuelve S_OK.

Si se produce un error en la función, devuelve un valor HRESULT que indica el error. Entre los posibles códigos de error devueltos por esta función se incluyen, entre otros, los siguientes. Para obtener una lista de códigos de error comunes, consulte Valores HRESULT comunes.

Código devuelto Descripción
E_INVALIDARG
Si establece el parámetro dwTimestampFlags en SIGNER_TIMESTAMP_AUTHENTICODE, no puede establecer el parámetro dwFlagsen SIG_APPEND.

 

Requisitos

Requisito Value
Cliente mínimo compatible
Windows 8 [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows Server 2012 [solo aplicaciones de escritorio]
Archivo DLL
Mssign32.dll

Vea también

SignerSign

SignerSignEx

SignerFreeSignerContext