CryptGetMessageCertificates 関数 (wincrypt.h)

CryptGetMessageCertificates 関数は、メッセージの証明書と CRL を含む開いている証明書ストアのハンドルを返します。 この関数は、プロバイダーの種類CERT_STORE_PROV_PKCS7を lpszStoreProvider パラメーターとして使用して CertOpenStore を呼び出します。

構文

HCERTSTORE CryptGetMessageCertificates(
  [in] DWORD             dwMsgAndCertEncodingType,
  [in] HCRYPTPROV_LEGACY hCryptProv,
  [in] DWORD             dwFlags,
  [in] const BYTE        *pbSignedBlob,
  [in] DWORD             cbSignedBlob
);

パラメーター

[in] dwMsgAndCertEncodingType

使用するエンコードの種類を指定します。 次の例に示すように、証明書と メッセージエンコードの両方の種類 をビットごとの OR 操作と組み合わせて指定することは、常に許容されます。

X509_ASN_ENCODING |PKCS_7_ASN_ENCODING

現在定義されているエンコードの種類は次のとおりです。

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] hCryptProv

このパラメーターは使用されず、 NULL に設定する必要があります。

Windows Server 2003 および Windows XP: CertOpenStore に渡される CSP のハンドル。 詳細については、「 CertOpenStore」を参照してください。 hCryptProv で特定の暗号化プロバイダーを渡す強い理由がない限り、0 を渡して既定の RSA または DSS プロバイダーを取得します。

このパラメーターのデータ型は HCRYPTPROV です

[in] dwFlags

CertOpenStore に渡されるフラグ。 詳細については、「 CertOpenStore」を参照してください。

[in] pbSignedBlob

署名付きメッセージを含むバッファー CRYPT_INTEGER_BLOB 構造体へのポインター。

[in] cbSignedBlob

署名されたメッセージのサイズ (バイト単位)。

戻り値

メッセージの証明書と CRL を含む証明書 ストア を返します。 エラーの場合、 NULL が返されます。

次に、 GetLastError 関数によって最も一般的に返されるエラー コードを示します。

リターン コード 説明
E_INVALIDARG
メッセージと証明書のエンコードの種類が無効です。 現在、PKCS_7_ASN_ENCODINGとX509_ASN_ENCODINGのみがサポートされています。
 

関数が失敗した場合、GetLastError は抽象構文表記 1 (ASN.1) エンコード/デコード エラーを返す可能性があります。 これらのエラーの詳細については、「 ASN.1 エンコード/デコードの戻り値」を参照してください。

注釈

GetLastError を使用して、エラーの理由を特定します。

この関数を使用する例については、「 サンプル C プログラム: 証明書ストアのプロパティの設定と取得」を参照してください。

要件

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

こちらもご覧ください

CryptVerifyMessageSignature

簡略化されたメッセージ関数