CertGetCTLContextProperty 関数 (wincrypt.h)

CertGetCTLContextProperty 関数は、証明書信頼リスト (CTL) コンテキストの拡張プロパティを取得します。

構文

BOOL CertGetCTLContextProperty(
  [in]      PCCTL_CONTEXT pCtlContext,
  [in]      DWORD         dwPropId,
  [out]     void          *pvData,
  [in, out] DWORD         *pcbData
);

パラメーター

[in] pCtlContext

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

[in] dwPropId

取得するプロパティを識別します。 現在定義されている識別子と pvData で返されるデータ型を次の表に示します。

意味
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 のデータ型: BYTE 配列へのポインター

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

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

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

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

SHA1 ハッシュを返します。 ハッシュが存在しない場合は、 CryptHashCertificate を使用して計算されます。

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

CERT_KEY_CONTEXT構造体を返します。

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

存在しない場合は、szOID_SUBJECT_KEY_IDENTIFIER拡張機能を検索します。 失敗した場合は、証明書の SubjectPublicKeyInfo メンバーに対して SHA1 ハッシュが実行され、識別子の値が生成されます。

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構造体を 返します。

CERT_NEXT_UPDATE_LOCATION_PROP_IDは現在、CCTL でのみ使用されています。

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

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

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

SHA1 ハッシュを返します。 ハッシュが存在しない場合は、 CryptHashCertificate を使用して計算されます。

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

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

 

他のすべてのプロパティ識別子の場合、pvData はバイト配列を指し、CertSetCertificateContextPropertypvData パラメーターが指すCRYPT_DATA_BLOBを指していません。

各プロパティ識別子の詳細については、CertSetCertificateContextPropertydwPropId パラメーターに関するドキュメントを参照してください。 CERT_SHA1_HASH_PROP_IDとCERT_NEXT_UPDATE_LOCATION_PROP_IDは、最も関心のある定義済みのプロパティです。

[out] pvData

dwPropId によって決定されたデータを受け取るバッファーへのポインター。 返される構造体のメンバーが指す構造体も、基本構造体の後に返されます。 したがって、 pcbData に含まれるサイズは、多くの場合、基本構造のサイズを超えています。

このパラメーターは、メモリ割り当て目的で情報のサイズを設定するために NULL にすることができます 。 詳細については、「不明な 長さのデータの取得」を参照してください。

[in, out] pcbData

pvData パラメーターが指すバッファーのサイズ (バイト単位) を指定する DWORD 値へのポインター。 関数が戻るときに、 DWORD 値にはバッファーに格納されるバイト数が含まれます。

メモ バッファーで返されるデータを処理する場合、アプリケーションは返されるデータの実際のサイズを使用する必要があります。 実際のサイズは、入力時に指定されたバッファーのサイズよりも若干小さくすることができます。 (入力では、バッファー サイズは通常、可能な最大の出力データがバッファーに収まるように十分な大きさで指定されます)。出力時に、このパラメーターが指す変数は、バッファーにコピーされたデータの実際のサイズを反映するように更新されます。
 

戻り値

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

関数が失敗した場合、戻り値は FALSE になります

呼び出された関数 CryptHashCertificate からのエラーは、この関数に反映できます。 拡張エラー情報については、 GetLastError を呼び出します。

考えられるエラー コードの一部を次に示します。

リターン コード 説明
CRYPT_E_NOT_FOUND
CTL には、指定されたプロパティがありません。
ERROR_MORE_DATA
pvData パラメーターで指定されたバッファーが、返されたデータを保持するのに十分な大きさでない場合、関数はERROR_MORE_DATA コードを設定し、必要なバッファー サイズをバイト単位で pcbData が指す変数に格納します。

要件

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

こちらもご覧ください

CertEnumCTLContextProperties

CertGetCertificateContextProperty

CertSetCTLContextProperty

CryptHashCertificate

拡張プロパティ関数