CertSetCRLContextProperty 関数 (wincrypt.h)

CertSetCRLContextProperty 関数は、指定された証明書失効リスト (CRL) コンテキストの拡張プロパティを設定します。

構文

BOOL CertSetCRLContextProperty(
  [in] PCCRL_CONTEXT pCrlContext,
  [in] DWORD         dwPropId,
  [in] DWORD         dwFlags,
  [in] const void    *pvData
);

パラメーター

[in] pCrlContext

CRL_CONTEXT構造体へのポインター。

[in] dwPropId

設定するプロパティを識別します。 dwPropId の値によって、pvData パラメーターの種類と内容が決まります。 現在定義されている識別子と pvData で返されるデータ型を次の表に示します。

通常、次のプロパティのみが設定されます。

  • CERT_HASH_PROP_ID
  • CERT_SHA1_HASH_PROP_ID
  • CERT_MD5_HASH_PROP_ID
  • CERT_SIGNATURE_HASH_PROP_ID
意味
CERT_ACCESS_STATE_PROP_ID
pvData のデータ型: DWORD へのポインター

証明書への書き込み操作を永続化するかどうかを示す DWORD 値を設定します。 証明書がメモリ ストア内にある場合、または読み取り専用として開かれたレジストリ ベースのストアにある場合、 DWORD 値は設定されません。

CERT_ARCHIVED_PROP_ID
pvData のデータ型: NULL

列挙中に証明書がスキップされたことを示します。 このプロパティ セットを持つ証明書は、特定のハッシュまたはシリアル番号を持つ証明書の検索に使用される明示的な検索操作で見つかります。 pvData 内のデータは、このプロパティに関連付けされません。

CERT_AUTO_ENROLL_PROP_ID
pvData のデータ型: BYTE 配列へのポインター

証明書が自動登録されている証明書の種類に名前を付ける 、null で終わる Unicode 文字列を設定します。

CERT_CTL_USAGE_PROP_ID
pvData のデータ型: BYTE 配列へのポインター

抽象構文表記 1 (ASN.1) でエンコードされたCTL_USAGE構造体を含むバイト配列設定します。

CERT_DESCRIPTION_PROP_ID
pvData のデータ型: BYTE 配列へのポインター

証明書 UI によって表示されるプロパティを設定します。 このプロパティを使用すると、ユーザーは証明書の使用方法を説明できます。

CERT_ENHKEY_USAGE_PROP_ID
pvData のデータ型:

ASN.1 でエンコードされたCERT_ENHKEY_USAGE構造体を含むバイト配列 設定します。

CERT_FRIENDLY_NAME_PROP_ID
pvData のデータ型: BYTE 配列へのポインター

CRL の表示名を含む null で終わる Unicode 文字列を設定します。

CERT_ISSUER_CHAIN_PUB_KEY_CNG_ALG_BIT_LENGTH_PROP_ID
pvData のデータ型: CRYPT_DATA_BLOB構造体へのポインター。

L"<PUBKEY>/<BITLENGTH>" 公開キー アルゴリズムとビット長ペアのセットを含む文字列を設定します。 区切り記号としてセミコロン L";"が使用されます。

PUBKEY> 値は<、CNG 公開キー アルゴリズムを識別します。 次のアルゴリズムがサポートされています。

  • L"RSA" (BCRYPT_RSA_ALGORITHM)
  • L"DSA" (BCRYPT_DSA_ALGORITHM)
  • L"ECDSA" (SSL_ECDSA_ALGORITHM)
<PUBKEY>/<BITLENGTH> ペアは、リーフを除く CRL 発行者チェーン内の証明書ごとに設定されます。 このプロパティは、独立した署名者チェーンを持つ OCSP 応答が CRL に変換されるときに設定できます。
メモ 委任された OCSP 署名者証明書には、このプロパティを設定しないでください。 委任された署名者証明書は、サブジェクト証明書の署名に使用されるのと同じキーで署名され、そこで確認されます。
 
以下に例を示します。

: L"RSA/2048;RSA/4096"

CERT_ISSUER_CHAIN_SIGN_HASH_CNG_ALG_PROP_ID
pvData のデータ型: CRYPT_DATA_BLOB構造体へのポインター。

L"<SIGNATURE>/<HASH>" アルゴリズムペアのセットを含む文字列を設定します。 セミコロン L";"は、ペア間の区切り記号として使用されます。

このプロパティは、OCSP 応答が CRL に変換された場合にのみ設定されます。 委任された OCSP 署名者証明書の場合、署名者証明書のアルゴリズム ペアのみが返されます。 独立した OCSP 署名者証明書チェーンの場合、ルートを除くチェーン内の各証明書に対してアルゴリズム ペアが返されます。

SIGNATURE> 値は<、CNG 公開キー アルゴリズムを識別します。 次のアルゴリズムがサポートされています。

  • L"RSA" (BCRYPT_RSA_ALGORITHM)
  • L"DSA" (BCRYPT_DSA_ALGORITHM)
  • L"ECDSA" (SSL_ECDSA_ALGORITHM)
HASH> 値は<、CNG ハッシュ アルゴリズムを識別します。 次のアルゴリズムがサポートされています。
  • L"MD5" (BCRYPT_MD5_ALGORITHM)
  • L"SHA1" (BCRYPT_SHA1_ALGORITHM)
  • L"SHA256" (BCRYPT_SHA256_ALGORITHM)
  • L"SHA384" (BCRYPT_SHA384_ALGORITHM)
  • L"SHA512" (BCRYPT_SHA512_ALGORITHM)
以下に例を示します。
  • L"RSA/SHA256;RSA/SHA256"
このプロパティは、検証失効関数によって明示的に設定されます。
CERT_ISSUER_PUB_KEY_BIT_LENGTH_PROP_ID
pvData のデータ型: CRYPT_DATA_BLOB構造体へのポインター。

CRL 発行者証明書の公開キーの長さをビット単位で設定します。 このプロパティは、CRL に変換された OCSP にも適用できます。

このプロパティは、検証失効関数によって明示的に設定されます。

Windows 8とWindows Server 2012: このプロパティのサポートが開始されます。

CERT_KEY_CONTEXT_PROP_ID
pvData のデータ型: CERT_KEY_CONTEXTへのポインター

CERT_KEY_CONTEXT構造体を設定します。

CERT_KEY_IDENTIFIER_PROP_ID
pvData のデータ型: BYTE 配列へのポインター
CERT_KEY_PROV_HANDLE_PROP_ID
pvData のデータ型: HCRYPTPROV へのポインター

CERT_KEY_CONTEXT_PROP_IDから取得したプロバイダー ハンドルを設定します。

CERT_KEY_PROV_INFO_PROP_ID
pvData のデータ型: CRYPT_KEY_PROV_INFOへのポインター

CRYPT_KEY_PROV_INFO構造体へのポインターを設定します。

CERT_KEY_SPEC_PROP_ID
pvData のデータ型: DWORD へのポインター

プロパティから取得した秘密キーが存在する場合CERT_KEY_CONTEXT_PROP_ID指定する DWORD 値を設定します。 それ以外の場合CERT_KEY_PROV_INFO_PROP_ID存在する場合は、 dwKeySpec のソースになります。

CERT_MD5_HASH_PROP_ID
pvData のデータ型: BYTE 配列へのポインター

MD5 ハッシュを設定します。 ハッシュは、CryptHashCertificate 関数を使用して計算できます。

CERT_NEXT_UPDATE_LOCATION_PROP_ID
pvData のデータ型: BYTE 配列へのポインター

ASN.1 でエンコードされた CERT_ALT_NAME_INFO 構造体を CTL に設定します。

CERT_PVK_FILE_PROP_ID
pvData のデータ型: BYTE 配列へのポインター

証明書の公開キーに関連付けられている秘密キーを含むファイルの名前を指定する 、null で終わる Unicode のワイド文字列を設定します。

CERT_SHA1_HASH_PROP_ID
pvData のデータ型: BYTE 配列へのポインター

SHA1 ハッシュを設定します。 ハッシュは 、CryptHashCertificate を使用して計算できます。

CERT_SIGN_HASH_CNG_ALG_PROP_ID
pvData のデータ型: CRYPT_DATA_BLOB構造体へのポインター。

証明書の署名を表す L"<SIGNATURE>/<HASH>" 文字列を設定します。 SIGNATURE> 値は<、CNG 公開キー アルゴリズムを識別します。 次のアルゴリズムがサポートされています。

  • L"RSA" (BCRYPT_RSA_ALGORITHM)
  • L"DSA" (BCRYPT_DSA_ALGORITHM)
  • L"ECDSA" (SSL_ECDSA_ALGORITHM)
HASH> 値は<、CNG ハッシュ アルゴリズムを識別します。 次のアルゴリズムがサポートされています。
  • L"MD5" (BCRYPT_MD5_ALGORITHM)
  • L"SHA1" (BCRYPT_SHA1_ALGORITHM)
  • L"SHA256" (BCRYPT_SHA256_ALGORITHM)
  • L"SHA384" (BCRYPT_SHA384_ALGORITHM)
  • L"SHA512" (BCRYPT_SHA512_ALGORITHM)
一般的な例を次に示します。
  • L"RSA/SHA1"
  • L"RSA/SHA256"
  • L"ECDSA/SHA256"
このプロパティは、CRL に変換された OCSP 応答にも適用できます。

このプロパティは、検証失効関数によって明示的に設定されます。

Windows 8とWindows Server 2012: このプロパティのサポートが開始されます。

CERT_SIGNATURE_HASH_PROP_ID
pvData のデータ型: BYTE 配列へのポインター

署名ハッシュを設定します。 ハッシュが存在しない場合は、 CryptHashToBeSigned を使用して計算されます。 ハッシュの長さは、SHA の場合は 20 バイト、MD5 の場合は 16 バイトです。

 

ユーザーは、CERT_FIRST_USER_PROP_IDからCERT_LAST_USER_PROP_IDまでの DWORD 値を使用して、追加の dwPropId 型を定義できます。 すべてのユーザー定義 dwPropId 型について、 pvData はエンコードされたCRYPT_DATA_BLOBを指 します

その他のすべてのプロパティ識別子について、 pvData はエンコードされた CRYPT_DATA_BLOB 構造体を指します。

[in] dwFlags

CERT_STORE_NO_CRYPT_RELEASE_FLAGは、CERT_KEY_PROV_HANDLE_PROP_IDまたは dwPropId プロパティCERT_KEY_CONTEXT_PROP_ID設定できます。

CERT_SET_PROPERTY_IGNORE_PERSIST_ERROR_FLAG値が設定されている場合、プロバイダー/書き込みエラーはすべて無視され、キャッシュされたコンテキストのプロパティは常に設定されます。

CERT_SET_PROPERTY_INHIBIT_PERSIST_FLAGが設定されている場合、プロパティ セットは保持されません。

[in] pvData

dwPropId で渡された値によって決定されるデータ型へのポインター。

メモdwPropId の場合、pvDataNULL に設定すると、 プロパティが削除されます。
 

戻り値

関数が成功した場合、戻り値は TRUE になります

関数が失敗した場合、戻り値は FALSE になります。 拡張エラー情報については、 GetLastError を呼び出します。 考えられるエラー コードの 1 つは次のとおりです。

リターン コード 説明
E_INVALIDARG
プロパティが無効です。 指定された識別子が0x0000FFFFより大きいか、CERT_KEY_CONTEXT_PROP_ID プロパティに対して、無効な cbSize メンバーが CERT_KEY_CONTEXT 構造体で指定されました。

注釈

プロパティが既に存在する場合は、その古い値が置き換えられます。

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

要件

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

こちらもご覧ください

CERT_ALT_NAME_INFO

CERT_CONTEXT

CERT_ENHKEY_USAGE

CERT_KEY_CONTEXT

CRL_CONTEXT

CRYPT_DATA_BLOB

CRYPT_HASH_BLOB

CRYPT_KEY_PROV_INFO

CTL_USAGE

CertGetCRLContextProperty

CertSetCertificateContextProperty

CryptEncodeObject

CryptHashToBeSigned

拡張プロパティ関数