MsiGetFileSignatureInformationA 関数 (msi.h)
MsiGetFileSignatureInformation 関数は、デジタル署名されたファイルへのパスを取得し、ファイルの署名者証明書とハッシュを返します。
Windows インストーラー 3.0 以降: Windows インストーラー 3.0 以降では、MsiPatchCertificate テーブルと MsiDigitalCertificate テーブルを使用して、パッチ (.msp ファイル) のデジタル署名を検証できます。 詳細については、「セキュリティで保護されたインストール の作成に関する
Windows インストーラー 2.0: パッチのデジタル署名はサポートされていません。 Windows インストーラー 2.0 は、破損したリソースを検出する手段としてデジタル署名を使用し、外部キャビネットのデジタル署名のみを検証できます。また、MsiDigitalSignature と MsiDigitalCertificate テーブルの使用によってのみ検証できます。
構文
HRESULT MsiGetFileSignatureInformationA(
[in] LPCSTR szSignedObjectPath,
[in] DWORD dwFlags,
[out] PCCERT_CONTEXT *ppcCertContext,
[out] LPBYTE pbHashData,
[in, out] LPDWORD pcbHashData
);
パラメーター
[in] szSignedObjectPath
デジタル署名を含むファイルへの完全なパスを指定する null で終わる文字列へのポインター。
[in] dwFlags
特殊なエラー ケース フラグ。
旗 | 意味 |
---|---|
|
このフラグを設定せず、証明書コンテキストのみを要求する場合、デジタル署名の無効なハッシュでは、MsiGetFileSignatureInformation は致命的なエラーを返しません。
無効なハッシュの致命的なエラーを返すには、MSI_INVALID_HASH_IS_FATAL フラグを設定します。 |
[out] ppcCertContext
返された署名者証明書コンテキスト
[out] pbHashData
返されたハッシュ バッファー。 ハッシュ データが要求されていない場合、このパラメーターは NULL
[in, out] pcbHashData
pbHashData パラメーターによって指されるバッファーのサイズをバイト単位で指定する変数へのポインター。 pbHashData が NULL以外
戻り値
価値 | 意味 |
---|---|
|
正常に完了しました。 |
|
無効なパラメーターが指定されました。 |
|
WinVerifyTrust はシステムでは使用できません。
MsiGetFileSignatureInformation |
|
バッファーが小さすぎて、要求されたデータを保持できません。 ERROR_MORE_DATAが返された場合、pcbHashData は、ハッシュ データを保持するために必要なバッファーのサイズを提供します。 |
|
ファイルが署名されていません |
|
ファイルの現在のハッシュは、ファイルのデジタル署名に格納されているハッシュに従って無効です。 |
|
ファイルの署名者証明書が取り消されました。 ファイルのデジタル署名が侵害されています。 |
|
サブジェクトが指定された検証アクションに失敗しました。 ほとんどの信頼プロバイダーは、エラーの原因を説明するより詳細なエラー コードを返します。 |
|
信頼プロバイダーは、このシステムでは認識されません。 |
|
信頼プロバイダーは、指定されたアクションをサポートしていません。 |
|
信頼プロバイダーは、サブジェクトに指定されたフォームをサポートしていません。 |
MsiGetFileSignatureInformation
備考
証明書コンテキストのみを要求する場合、デジタル署名の無効なハッシュでは、MsiGetFileSignatureInformation は致命的なエラーを返しません。 無効なハッシュの致命的なエラーを返すには、dwFlags パラメーターにMSI_INVALID_HASH_IS_FATAL フラグを設定します。
証明書コンテキストとハッシュ情報は、WinVerifyTrust
MsiGetFileSignatureInformation
手記
msi.h ヘッダーは、MSIGetFileSignatureInformation をエイリアスとして定義し、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows Server 2012、Windows 8、Windows Server 2008 R2、または Windows 7 の Windows インストーラー 5.0。 Windows Server 2008 または Windows Vista の Windows インストーラー 4.0 または Windows インストーラー 4.5。 Windows Server 2003 または Windows XP 上の Windows インストーラー。 Windows インストーラーのバージョンで必要な最小 Windows Service Pack の詳細については、Windows インストーラーの Run-Time 要件を参照してください。 |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | msi.h |
ライブラリ | Msi.lib |
DLL | Msi.dll |
関連項目
デジタル署名と Windows インストーラー の
MsiDigitalCertificate テーブル の