次の方法で共有


CryptSIPGetSignedDataMsg 関数 (mssip.h)

CryptSIPGetSignedDataMsg 関数は、ファイルから Authenticode シグネチャを取得します。

構文

BOOL CryptSIPGetSignedDataMsg(
  [in]      SIP_SUBJECTINFO *pSubjectInfo,
  [out]     DWORD           *pdwEncodingType,
  [in]      DWORD           dwIndex,
  [in, out] DWORD           *pcbSignedDataMsg,
  [out]     BYTE            *pbSignedDataMsg
);

パラメーター

[in] pSubjectInfo

メッセージの件名に関する情報を含む SIP_SUBJECTINFO 構造体へのポインター。

[out] pdwEncodingType

Authenticode 署名のエンコードの種類。

このパラメーターには、次の値の 1 つ以上の組み合わせを指定できます。

意味
PKCS_7_ASN_ENCODING
65536 (0x10000)
PKCS #7 メッセージ エンコーディングを指定します。
X509_ASN_ENCODING
1 (0x1)
X.509 証明書のエンコードを指定します。

[in] dwIndex

このパラメーターは予約済みであり、0 に設定する必要があります。

[in, out] pcbSignedDataMsg

pbSignedDataMsg パラメーターが指すバッファーの長さ (バイト単位)。

[out] pbSignedDataMsg

返された Authenticode シグネチャを受け取るバッファーへのポインター。

必要なバッファーのサイズを確認するには、 pbSignedDataMsg パラメーターを NULL に設定し、 CryptSIPGetSignedDataMsg 関数を 呼び出します。 この関数は、 pcbSignedDataMsg が指す値にバッファーの必要なサイズをバイト単位で配置します。 詳細については、「 不明な長さのデータの取得」を参照してください。

戻り値

関数が成功した場合、関数は TRUE を返します。

関数が失敗すると、 FALSE が返されます。 拡張エラー情報については、 GetLastError を呼び出します。 考えられるエラー コードの一部を次に示します。

リターン コード 説明
CRYPT_E_NO_MATCH
インデックスで指定された署名が見つかりませんでした。
ERROR_BAD_FORMAT
サブジェクト インターフェイス パッケージ (SIP) の指定されたデータまたはファイル形式が無効です。
ERROR_INVALID_PARAMETER
[SIP_SUBJECTINFO](/windows/desktop/api/mssip/ns-mssip-sip_subjectinfo) 構造体は null ポインターです。
ERROR_INSUFFICIENT_BUFFER
取得したデータを保持するにはメッセージ バッファーのサイズが不十分でした。 pcbSignedDataMsg パラメーターは、必要なバッファー サイズを示すように設定されています。
TRUST_E_SUBJECT_FORM_UNKNOWN
指定されたサブジェクトの種類が無効です。

注釈

対象には、ポータブル実行可能イメージ (.exe)、キャビネット (.cab) イメージ、フラット ファイル、カタログ ファイルが含まれますが、これらに限定されません。 サブジェクトの種類ごとに、ハッシュ計算にデータの異なるサブセットが使用され、ストレージと取得には異なる手順が必要です。 したがって、各サブジェクトの種類には、一意の SIP 仕様があります。

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー mssip.h
Library Crypt32.lib
[DLL] Crypt32.dll

こちらもご覧ください

CryptSIPPutSignedDataMsg

CryptSIPRemoveSignedDataMsg