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 |
---|---|
|
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 |
|
Vea también