Función MsiGetFileSignatureInformationA (msi.h)
La función MsiGetFileSignatureInformation toma la ruta de acceso a un archivo firmado digitalmente y devuelve el certificado y el hash del firmante del archivo. se puede llamar a msiGetFileSignatureInformation para obtener el certificado de firmante y el hash necesarios para rellenar las tablas MsiDigitalCertificate, MsiPatchCertificatey MsiDigitalSignature.
Windows Installer 2.0: no se admiten firmas digitales de revisiones. Windows Installer 2.0 usa firmas digitales como medio para detectar recursos dañados y solo puede comprobar las firmas digitales de gabinetes externos y solo mediante el uso de la msiDigitalSignature y tablas msiDigitalCertificate.
Sintaxis
HRESULT MsiGetFileSignatureInformationA(
[in] LPCSTR szSignedObjectPath,
[in] DWORD dwFlags,
[out] PCCERT_CONTEXT *ppcCertContext,
[out] LPBYTE pbHashData,
[in, out] LPDWORD pcbHashData
);
Parámetros
[in] szSignedObjectPath
Puntero a una cadena terminada en NULL que especifica la ruta de acceso completa al archivo que contiene la firma digital.
[in] dwFlags
Marcas de caso de error especiales.
[out] ppcCertContext
Contexto de certificado del firmante devuelto
[out] pbHashData
Búfer hash devuelto. Este parámetro puede ser NULL si no se solicitan los datos hash.
[in, out] pcbHashData
Puntero a una variable que especifica el tamaño, en bytes, del búfer al que apunta el parámetro pbHashData. Este parámetro no se puede NULL si pbHashData no esNULL. Si se devuelve ERROR_MORE_DATA, pbHashData proporciona el tamaño del búfer necesario para contener los datos hash. Si se devuelve ERROR_SUCCESS, proporciona el número de bytes escritos en el búfer hash. El parámetro de
Valor devuelto
Valor | Significado |
---|---|
|
Finalización correcta. |
|
Se especificó un parámetro no válido. |
|
winVerifyTrust no está disponible en el sistema. msiGetFileSignatureInformation requiere la presencia del archivo Wintrust.dll en el sistema. |
|
Un búfer es demasiado pequeño para contener los datos solicitados. Si se devuelve ERROR_MORE_DATA, pcbHashData proporciona el tamaño del búfer necesario para contener los datos hash. |
|
El archivo no está firmado |
|
El hash actual del archivo no es válido según el hash almacenado en la firma digital del archivo. |
|
Se ha revocado el certificado del firmante del archivo. La firma digital del archivo está en peligro. |
|
El asunto produjo un error en la acción de comprobación especificada. La mayoría de los proveedores de confianza devuelven un código de error más detallado que describe el motivo del error. |
|
El proveedor de confianza no se reconoce en este sistema. |
|
El proveedor de confianza no admite la acción especificada. |
|
El proveedor de confianza no admite el formulario especificado para el asunto. |
msiGetFileSignatureInformation también devuelve todos los valores de error de Win32 asignados a su equivalente tipo de datos HRESULT por HRESULT_FROM_WIN32.
Observaciones
Al solicitar solo el contexto del certificado, un hash no válido en la firma digital no provoca MsiGetFileSignatureInformation devolver un error irrecuperable. Para devolver un error irrecuperable para un hash no válido, establezca la marca MSI_INVALID_HASH_IS_FATAL en el parámetro dwFlags.
El contexto del certificado y la información hash se extraen del archivo mediante una llamada a WinVerifyTrust. El parámetro ppcCertContext es un duplicado del contexto de certificado del firmante de la firma. Es responsabilidad del autor de la llamada llamar a CertFreeCertificateContext liberar el contexto del certificado cuando termine.
Tenga en cuenta que MsiGetFileSignatureInformation requiere la presencia del archivo Wintrust.dll en el sistema.
Nota
El encabezado msi.h define MsiGetFileSignatureInformation como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows Installer 5.0 en Windows Server 2012, Windows 8, Windows Server 2008 R2 o Windows 7. Windows Installer 4.0 o Windows Installer 4.5 en Windows Server 2008 o Windows Vista. Windows Installer en Windows Server 2003 o Windows XP. Consulte Windows Installer Run-Time Requirements (Requisitos de Windows Installer) para obtener información sobre el Service Pack mínimo de Windows que requiere una versión de Windows Installer. |
de la plataforma de destino de |
Windows |
encabezado de |
msi.h |
biblioteca de |
Msi.lib |
DLL de |
Msi.dll |
Consulte también
firmas digitales y de Windows Installer