CertSetCTLContextProperty 関数 (wincrypt.h)

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

構文

BOOL CertSetCTLContextProperty(
  [in] PCCTL_CONTEXT pCtlContext,
  [in] DWORD         dwPropId,
  [in] DWORD         dwFlags,
  [in] const void    *pvData
);

パラメーター

[in] pCtlContext

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

[in] dwPropId

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

意味
CERT_ARCHIVED_PROP_ID
pvData のデータ型: NULL

列挙中に証明書がスキップされたことを示します。 このプロパティ セットを持つ証明書は、特定の ハッシュ または特定のシリアル番号を持つ証明書の検索など、明示的な検索操作で引き続き見つかります。

CERT_AUTO_ENROLL_PROP_ID
pvData のデータ型: CRYPT_DATA_BLOBへのポインター

自動登録を使用して証明書を登録した後に設定されるプロパティ。 pvData が指すCRYPT_DATA_BLOB構造には、証明書が自動登録された証明書の種類の null で終わる Unicode 名が含まれます。 証明書の自動登録に対する後続の呼び出しでは、このプロパティがチェックされ、証明書が登録されているかどうかを判断します。

CERT_CTL_USAGE_PROP_ID
pvData のデータ型: CRYPT_DATA_BLOBへのポインター

pvDataは、抽象構文表記法 1 (ASN.1) でエンコードされたCTL_USAGE構造を含むCRYPT_DATA_BLOB構造体を指します。 この構造体は、X509_ENHANCED_KEY_USAGE値が設定された CryptEncodeObject を 使用してエンコードされました。

CERT_DESCRIPTION_PROP_ID
pvData のデータ型: CRYPT_DATA_BLOBへのポインター

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

CERT_ENHKEY_USAGE_PROP_ID
pvData のデータ型: CRYPT_DATA_BLOBへのポインター

ASN.1 でエンコードされた CERT_ENHKEY_USAGE 構造体を含む CRYPT_DATA_BLOB 構造体。 この構造体は、X509_ENHANCED_KEY_USAGE値が設定された CryptEncodeObject を 使用してエンコードされました。

CERT_FRIENDLY_NAME_PROP_ID
pvData のデータ型: CRYPT_DATA_BLOBへのポインター

CRYPT_DATA_BLOB構造体は、証明書の表示名を指定します。

CERT_HASH_PROP_ID
pvData のデータ型: CRYPT_HASH_BLOBへのポインター

このプロパティは、 CertGetCertificateContextProperty の呼び出しによって暗黙的に設定されます。

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

CERT_KEY_CONTEXT構造体には、HCRYPTPROV 値と秘密キーのキー指定の両方が含まれています。 hCryptProv メンバーと dwFlags の設定の詳細については、「CERT_KEY_PROV_HANDLE_PROP_ID、以下」を参照してください。 このプロパティには 、さらにCERT_KEY_CONTEXT 構造体メンバーを追加できることに注意してください。 その場合、 cbSize メンバー値はそれに応じて調整されます。 cbSize メンバーは、CERT_KEY_CONTEXT構造体のサイズに設定する必要があります

CERT_KEY_IDENTIFIER_PROP_ID
pvData のデータ型: CRYPT_DATA_BLOBへのポインター

このプロパティは通常、 CertGetCertificateContextProperty の呼び出しによって暗黙的に設定されます。

CERT_KEY_PROV_HANDLE_PROP_ID
pvData のデータ型: HCRYPTPROV へのポインター

証明書の秘密キーの HCRYPTPROV ハンドルが渡されます。 CERT_KEY_CONTEXT構造体の hCryptProv メンバーが存在する場合は更新されます。 存在しない場合は、CERT_KEY_PROV_INFO_PROP_IDによって初期化された dwKeySpec を使用して作成されます。 CERT_STORE_NO_CRYPT_RELEASE_FLAGが設定されていない場合、 hCryptProv 値は、プロパティが NULL に設定されている場合、または CERT_CONTEXT 構造体の最終的な解放時に暗黙的に解放されます。

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

CRYPT_KEY_PROV_INFO構造体は、証明書の秘密キーを指定します。

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

DWORD 値は秘密キーを指定します。 CERT_KEY_CONTEXT構造体の dwKeySpec メンバーが存在する場合は更新されます。 そうでない場合は、 hCryptProv を 0 に設定して作成されます。

CERT_MD5_HASH_PROP_ID
pvData のデータ型: CRYPT_HASH_BLOBへのポインター

このプロパティは、 CertGetCertificateContextProperty の呼び出しによって暗黙的に設定されます。

CERT_NEXT_UPDATE_LOCATION_PROP_ID
pvData のデータ型: CRYPT_DATA_BLOBへのポインター

CRYPT_DATA_BLOB構造体には、X509_ALTERNATE_NAME値が設定されたCryptEncodeObject を使用してエンコードされた ASN.1 でエンコードされたCERT_ALT_NAME_INFO構造が含まれています。 CERT_NEXT_UPDATE_LOCATION_PROP_IDは現在、CCTL でのみ使用されています。

CERT_PVK_FILE_PROP_ID
pvData のデータ型: CRYPT_DATA_BLOBへのポインター

CRYPT_DATA_BLOB構造体は、証明書の公開キーに関連付けられている秘密キーを含むファイルの名前を指定します。 CRYPT_DATA_BLOB構造体内では、pbData メンバーは null で終わる Unicode ワイド文字列へのポインターであり、cbData メンバーは文字列の長さを示します。

CERT_SHA1_HASH_PROP_ID
pvData のデータ型: CRYPT_HASH_BLOBへのポインター

このプロパティは、 CertGetCertificateContextProperty の呼び出しによって暗黙的に設定されます。

CERT_SIGNATURE_HASH_PROP_ID
CRYPT_HASH_BLOB
pvData のデータ型: CRYPT_HASH_BLOBへのポインター

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

 

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

CERT_FIRST_USER_PROP_IDからCERT_LAST_USER_PROP_IDまでの DWORD 値を使用して、ユーザーが追加の dwPropId 型を定義できます。 すべてのユーザー定義 dwPropId 型について、 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
無効なプロパティ識別子です。 詳細については、「 CertSetCertificateContextProperty」を参照してください。

注釈

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

サンプル C プログラム: 証明書のプロパティの取得と設定」を参照してください。

要件

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

こちらもご覧ください

CertGetCTLContextProperty

CertSetCertificateContextProperty

CryptEncodeObject

拡張プロパティ関数