Win32 API 日本語リファレンス
ホーム › Security.Cryptography.Certificates › IOCSPCAConfiguration

IOCSPCAConfiguration

COMIDispatch (デュアル)
✅ IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IIDaec92b40-3d46-433f-87d1-b84d5c1e790d継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7

公式ドキュメント

特定の証明機関 (CA) に対する証明書ステータス要求に、Online Certificate Status Protocol (OCSP) サービスが応答できるようにする一連の定義を表します。

メソッド 24

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 7 HRESULT get_Identifier(LPWSTR* pVal)

証明機関 (CA) 構成の名前を取得します。

pValLPWSTR*outこの CA 構成の識別子を受け取る文字列ポインタである。

解説(Remarks)

pVal で返される名前は、CreateCAConfiguration メソッドの bstrIdentifier パラメーターで使用される名前に対応します。

vtbl 8 HRESULT get_CACertificate(VARIANT* pVal)

証明機関 (CA) 用の、Distinguished Encoding Rules (DER) を使用してエンコードされた X.509 証明書を取得します。

pValVARIANT*outCA 証明書を受け取る VARIANT へのポインタである。

解説(Remarks)

pVal の証明書は、構成を作成するために CreateCAConfiguration メソッドの varCACert パラメーターで使用される証明書に対応します。

vtbl 9 HRESULT get_HashAlgorithm(LPWSTR* pVal)

証明書の署名に使用されるハッシュアルゴリズムの識別子を取得または設定します。(Get)

pValLPWSTR*out署名に使用するハッシュアルゴリズム名を受け取る文字列ポインタである。
vtbl 10 HRESULT put_HashAlgorithm(LPWSTR newVal)

証明書の署名に使用されるハッシュアルゴリズムの識別子を取得または設定します。(Put)

newValLPWSTRin署名に使用するハッシュアルゴリズム名を指定する。
vtbl 11 HRESULT get_SigningFlags(DWORD* pVal)

フラグ値の組み合わせを取得または設定します。これらの値は、証明機関 (CA) 構成に属する署名証明書の管理を指定します。(Get)

pValDWORD*out応答署名の動作を制御するフラグを受け取る DWORD へのポインタである。

解説(Remarks)

次の表は、SigningFlags のビットフラグ値の一覧です。

フラグ定数 フラグ値 説明
OCSP_SF_SILENT 0x001 プライベートキーをサイレントに取得します。
OCSP_SF_USE_CACERT 0x002 OCSP 応答の署名に、この構成の CA 証明書を使用します。このオプションは、レスポンダーサービスが CA コンピューターにインストールされている場合にのみ使用できます。
OCSP_SF_ALLOW_SIGNINGCERT_AUTORENEWAL 0x004 レスポンダーサービスが、更新された署名証明書に自動的に移行できるようにします。
OCSP_SF_FORCE_SIGNINGCERT_ISSUER_ISCA 0x008 委任された署名証明書が CA によって署名されるように強制します。
OCSP_SF_AUTODISCOVER_SIGNINGCERT 0x010 委任された署名証明書を自動的に検出します。
OCSP_SF_MANUAL_ASSIGN_SIGNINGCERT 0x020 署名証明書を手動で割り当てます。
OCSP_SF_RESPONDER_ID_KEYHASH 0x040 レスポンダー ID に、署名証明書の公開キーのハッシュが含まれます (既定)。
OCSP_SF_RESPONDER_ID_NAME 0x080 レスポンダー ID に、署名証明書のサブジェクトの名前が含まれます。
OCSP_SF_ALLOW_NONCE_EXTENSION 0x100 NONCE 拡張がレスポンダーサービスによって処理されるようにします。
OCSP_SF_ALLOW_SIGNINGCERT_AUTOENROLLMENT 0x200 レスポンダーサービスが署名証明書に対して登録 (エンロール) できます。
 

SigningFlags を設定する際は、OCSP_SF_USE_CACERT、OCSP_SF_AUTODISCOVER_SIGNINGCERT、OCSP_SF_MANUAL_ASSIGN_SIGNINGCERT のいずれかの値を指定する必要があります。

OCSP_SF_ALLOW_SIGNINGCERT_AUTOENROLLMENT を指定する場合は、OCSP_SF_AUTODISCOVER_SIGNINGCERT も指定する必要があります。

vtbl 12 HRESULT put_SigningFlags(DWORD newVal)

フラグ値の組み合わせを取得または設定します。これらの値は、証明機関 (CA) 構成に属する署名証明書の管理を指定します。(Put)

newValDWORDin応答署名の動作を制御するフラグを指定する。

解説(Remarks)

次の表は、SigningFlags のビットフラグ値の一覧です。

フラグ定数 フラグ値 説明
OCSP_SF_SILENT 0x001 プライベートキーをサイレントに取得します。
OCSP_SF_USE_CACERT 0x002 OCSP 応答の署名に、この構成の CA 証明書を使用します。このオプションは、レスポンダーサービスが CA コンピューターにインストールされている場合にのみ使用できます。
OCSP_SF_ALLOW_SIGNINGCERT_AUTORENEWAL 0x004 レスポンダーサービスが、更新された署名証明書に自動的に移行できるようにします。
OCSP_SF_FORCE_SIGNINGCERT_ISSUER_ISCA 0x008 委任された署名証明書が CA によって署名されるように強制します。
OCSP_SF_AUTODISCOVER_SIGNINGCERT 0x010 委任された署名証明書を自動的に検出します。
OCSP_SF_MANUAL_ASSIGN_SIGNINGCERT 0x020 署名証明書を手動で割り当てます。
OCSP_SF_RESPONDER_ID_KEYHASH 0x040 レスポンダー ID に、署名証明書の公開キーのハッシュが含まれます (既定)。
OCSP_SF_RESPONDER_ID_NAME 0x080 レスポンダー ID に、署名証明書のサブジェクトの名前が含まれます。
OCSP_SF_ALLOW_NONCE_EXTENSION 0x100 NONCE 拡張がレスポンダーサービスによって処理されるようにします。
OCSP_SF_ALLOW_SIGNINGCERT_AUTOENROLLMENT 0x200 レスポンダーサービスが署名証明書に対して登録 (エンロール) できます。
 

SigningFlags を設定する際は、OCSP_SF_USE_CACERT、OCSP_SF_AUTODISCOVER_SIGNINGCERT、OCSP_SF_MANUAL_ASSIGN_SIGNINGCERT のいずれかの値を指定する必要があります。

OCSP_SF_ALLOW_SIGNINGCERT_AUTOENROLLMENT を指定する場合は、OCSP_SF_AUTODISCOVER_SIGNINGCERT も指定する必要があります。

vtbl 13 HRESULT get_SigningCertificate(VARIANT* pVal)

Distinguished Encoding Rules (DER) を使用してエンコードされた署名証明書を取得または設定します。Online Certificate Status Protocol (OCSP) レスポンダーサービスは、証明書ステータス要求への応答に署名するためにこの証明書を使用します。(Get)

pValVARIANT*outOCSP 応答の署名に使用する証明書を受け取る VARIANT へのポインタである。
vtbl 14 HRESULT put_SigningCertificate(VARIANT newVal)

Distinguished Encoding Rules (DER) を使用してエンコードされた署名証明書を取得または設定します。Online Certificate Status Protocol (OCSP) レスポンダーサービスは、証明書ステータス要求への応答に署名するためにこの証明書を使用します。(Put)

newValVARIANTinOCSP 応答の署名に使用する証明書を格納した VARIANT を渡す。
vtbl 15 HRESULT get_ReminderDuration(DWORD* pVal)

警告イベントがログに記録される、署名証明書の有効期間に対する割合 (パーセンテージ) を取得または設定します。(Get)

pValDWORD*out署名証明書の有効期限が近づいた際に通知を行うリマインダー期間 (パーセント) を受け取る DWORD へのポインタである。

解説(Remarks)

パーセンテージ値は 0 から 100 の範囲でなければならず、既定値は 90 です。Online Certificate Status Protocol (OCSP) レスポンダーサービスには、この既定値を持つサービス全体の値が含まれます。

vtbl 16 HRESULT put_ReminderDuration(DWORD newVal)

警告イベントがログに記録される、署名証明書の有効期間に対する割合 (パーセンテージ) を取得または設定します。(Put)

newValDWORDin署名証明書の有効期限通知を行うリマインダー期間 (パーセント) を指定する。

解説(Remarks)

パーセンテージ値は 0 から 100 の範囲でなければならず、既定値は 90 です。Online Certificate Status Protocol (OCSP) レスポンダーサービスには、この既定値を持つサービス全体の値が含まれます。

vtbl 17 HRESULT get_ErrorCode(DWORD* pVal)

CA 構成のエラー状態を識別するコードを取得します。

pValDWORD*outこの CA 構成に関連するエラーコードを受け取る DWORD へのポインタである。

解説(Remarks)

OCSP レスポンダーサービスは、構成に問題が発生するとエラーコードを返します。返されるコードの定義については、Microsoft Windows Software Development Kit (SDK) の Winerror.h を参照してください。

OCSPCAConfiguration オブジェクトは、エラーコードを初期値 E_PENDING の HRESULT として内部的に保存します。IOCSPAdmin::SetConfiguration が呼び出されると、エラーコードは E_PENDING にリセットされます。

vtbl 18 HRESULT get_CSPName(LPWSTR* pVal)

暗号化サービスプロバイダー (CSP) またはキーストレージプロバイダー (KSP) の名前を取得します。

pValLPWSTR*out署名鍵に使用する暗号化サービスプロバイダー (CSP) の名前を受け取る文字列ポインタである。

解説(Remarks)

pVal で返される名前は、SigningCertificate プロパティに使用される CSP または KSP に対応します。

vtbl 19 HRESULT get_KeySpec(DWORD* pVal)

構成にバインドされたキーが暗号化用かコンテンツの署名用かを示す値を取得します。

pValDWORD*out署名鍵の鍵指定 (KeySpec) を受け取る DWORD へのポインタである。

解説(Remarks)

Microsoft Base Cryptographic Provider の場合、KeySpec プロパティは、交換キーに対して AT_KEYEXCHANGE の値を、署名キーに対して AT_SIGNATURE の値を持ちます。既定値は AT_SIGNATURE です。

他の Microsoft CSP については、CryptoAPI 2.0 ドキュメントの Cryptographic Service Providers を参照してください。

Microsoft 製以外の CSP については、その CSP に付属するドキュメントを参照してください。

vtbl 20 HRESULT get_ProviderCLSID(LPWSTR* pVal)

CA 構成で使用される失効情報プロバイダーの CLSID を取得または設定します。(Get)

pValLPWSTR*out失効プロバイダーの CLSID を受け取る文字列ポインタである。
vtbl 21 HRESULT put_ProviderCLSID(LPWSTR newVal)

CA 構成で使用される失効情報プロバイダーの CLSID を取得または設定します。(Put)

newValLPWSTRin失効プロバイダーの CLSID を指定する。
vtbl 22 HRESULT get_ProviderProperties(VARIANT* pVal)

証明書ステータス応答を提供する情報を取得または設定します。(Get)

pValVARIANT*out失効プロバイダーのプロパティ群を受け取る VARIANT へのポインタである。

解説(Remarks)

pVal で返される VARIANT は、プロパティを名前と値のペアとして格納するセーフ配列へのポインターです。

この配列は、それぞれが VARIANT 型の要素からなる 2 次元配列です。配列には、コレクション内の名前付きプロパティごとに 1 行が含まれます。各行には、プロパティ名とプロパティ値の 2 つの列が含まれます。

次の表は、既定の失効プロバイダーで指定可能な名前付きプロパティ値とそのデータ型の一覧です:

名前 データ型
BaseCrl REG_BINARY
BaseCrlUrls REG_MULTI_SZ
CrlUrlTimeout DWORD
DeltaCrl REG_BINARY
DeltaCrlUrls REG_MULTI_SZ
RefreshTimeOut DWORD
RevocationErrorCode DWORD
IssuedSerialNumbersDirectories REG_MULTI_SZ

注: IssuedSerialNumberDirectories は Windows Server 2008 ではサポートされていません。

vtbl 23 HRESULT put_ProviderProperties(VARIANT newVal)

証明書ステータス応答を提供する情報を取得または設定します。(Put)

newValVARIANTin失効プロバイダーに設定するプロパティ群を格納した VARIANT を渡す。

解説(Remarks)

pVal で返される VARIANT は IOCSPPropertyCollection インターフェイスです。

失効情報プロバイダーのプロパティを操作するには、次の手順を実行します。

  1. IOCSPPropertyCollection オブジェクトを作成します。
  2. InitializeFromProperties を呼び出し、ProviderProperties プロパティによって返された VARIANT (pVal) を渡します。
  3. IOCSPPropertyCollection インターフェイスの Methods と Properties を使用します。
次の表は、既定の失効情報プロバイダーで指定可能な IOCSPProperty の Name 値とそのデータ型の一覧です。
名前 データ型
BaseCrl BaseCrlUrl に依存
BaseCrlUrl REG_MULTI_SZ
CrlUrlTimeout DWORD
DeltaCrl BaseCrlUrl または DeltaCrlUrl に依存
DeltaCrlUrl REG_MULTI_SZ
RefreshTimeOut DWORD
RevocationErrorCode DWORD
vtbl 24 HRESULT get_Modified(VARIANT_BOOL* pVal)

OCSPCAConfiguration オブジェクトが作成されてから変更されたかどうかを示す値を取得します。

pValVARIANT_BOOL*out構成が変更済みかどうかを受け取る VARIANT_BOOL へのポインタである。
vtbl 25 HRESULT get_LocalRevocationInformation(VARIANT* pVal)

ローカルマシンの証明書失効リスト (CRL) を取得または設定します。(Get)

pValVARIANT*outローカルの失効情報を受け取る VARIANT へのポインタである。

解説(Remarks)

LocalRevocationInformation プロパティに使用される CRL は、署名されていても署名されていなくてもかまいません。CRL の署名検証は行われません。

vtbl 26 HRESULT put_LocalRevocationInformation(VARIANT newVal)

ローカルマシンの証明書失効リスト (CRL) を取得または設定します。(Put)

newValVARIANTin設定するローカルの失効情報を格納した VARIANT を渡す。

解説(Remarks)

LocalRevocationInformation プロパティに使用される CRL は、署名されていても署名されていなくてもかまいません。CRL の署名検証は行われません。

vtbl 27 HRESULT get_SigningCertificateTemplate(LPWSTR* pVal)

署名証明書のテンプレート名を取得または設定します。(Get)

pValLPWSTR*out署名証明書の発行に使用する証明書テンプレート名を受け取る文字列ポインタである。
vtbl 28 HRESULT put_SigningCertificateTemplate(LPWSTR newVal)

署名証明書のテンプレート名を取得または設定します。(Put)

newValLPWSTRin署名証明書の発行に使用する証明書テンプレート名を指定する。
vtbl 29 HRESULT get_CAConfig(LPWSTR* pVal)

署名証明書の署名に使用する必要がある証明機関 (CA) の名前を取得または設定します。(Get)

pValLPWSTR*outCA の構成文字列 (サーバー名と CA 名) を受け取る文字列ポインタである。
vtbl 30 HRESULT put_CAConfig(LPWSTR newVal)

署名証明書の署名に使用する必要がある証明機関 (CA) の名前を取得または設定します。(Put)

newValLPWSTRinCA の構成文字列 (サーバー名と CA 名) を指定する。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。

出力引数:
#define global IID_IOCSPCAConfiguration "{AEC92B40-3D46-433F-87D1-B84D5C1E790D}"
#usecom global IOCSPCAConfiguration IID_IOCSPCAConfiguration "{}"
#comfunc global IOCSPCAConfiguration_get_Identifier                  7 var
#comfunc global IOCSPCAConfiguration_get_CACertificate               8 var
#comfunc global IOCSPCAConfiguration_get_HashAlgorithm               9 var
#comfunc global IOCSPCAConfiguration_put_HashAlgorithm               10 wstr
#comfunc global IOCSPCAConfiguration_get_SigningFlags                11 var
#comfunc global IOCSPCAConfiguration_put_SigningFlags                12 int
#comfunc global IOCSPCAConfiguration_get_SigningCertificate          13 var
#comfunc global IOCSPCAConfiguration_put_SigningCertificate          14 int
#comfunc global IOCSPCAConfiguration_get_ReminderDuration            15 var
#comfunc global IOCSPCAConfiguration_put_ReminderDuration            16 int
#comfunc global IOCSPCAConfiguration_get_ErrorCode                   17 var
#comfunc global IOCSPCAConfiguration_get_CSPName                     18 var
#comfunc global IOCSPCAConfiguration_get_KeySpec                     19 var
#comfunc global IOCSPCAConfiguration_get_ProviderCLSID               20 var
#comfunc global IOCSPCAConfiguration_put_ProviderCLSID               21 wstr
#comfunc global IOCSPCAConfiguration_get_ProviderProperties          22 var
#comfunc global IOCSPCAConfiguration_put_ProviderProperties          23 int
#comfunc global IOCSPCAConfiguration_get_Modified                    24 var
#comfunc global IOCSPCAConfiguration_get_LocalRevocationInformation  25 var
#comfunc global IOCSPCAConfiguration_put_LocalRevocationInformation  26 int
#comfunc global IOCSPCAConfiguration_get_SigningCertificateTemplate  27 var
#comfunc global IOCSPCAConfiguration_put_SigningCertificateTemplate  28 wstr
#comfunc global IOCSPCAConfiguration_get_CAConfig                    29 var
#comfunc global IOCSPCAConfiguration_put_CAConfig                    30 wstr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。