IOCSPCAConfiguration
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
特定の証明機関 (CA) に対する証明書ステータス要求に、Online Certificate Status Protocol (OCSP) サービスが応答できるようにする一連の定義を表します。
メソッド 24
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
証明機関 (CA) 構成の名前を取得します。
| pVal | LPWSTR* | out | この CA 構成の識別子を受け取る文字列ポインタである。 |
解説(Remarks)
pVal で返される名前は、CreateCAConfiguration メソッドの bstrIdentifier パラメーターで使用される名前に対応します。
証明機関 (CA) 用の、Distinguished Encoding Rules (DER) を使用してエンコードされた X.509 証明書を取得します。
| pVal | VARIANT* | out | CA 証明書を受け取る VARIANT へのポインタである。 |
解説(Remarks)
pVal の証明書は、構成を作成するために CreateCAConfiguration メソッドの varCACert パラメーターで使用される証明書に対応します。
証明書の署名に使用されるハッシュアルゴリズムの識別子を取得または設定します。(Get)
| pVal | LPWSTR* | out | 署名に使用するハッシュアルゴリズム名を受け取る文字列ポインタである。 |
証明書の署名に使用されるハッシュアルゴリズムの識別子を取得または設定します。(Put)
| newVal | LPWSTR | in | 署名に使用するハッシュアルゴリズム名を指定する。 |
フラグ値の組み合わせを取得または設定します。これらの値は、証明機関 (CA) 構成に属する署名証明書の管理を指定します。(Get)
| pVal | DWORD* | 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 も指定する必要があります。
フラグ値の組み合わせを取得または設定します。これらの値は、証明機関 (CA) 構成に属する署名証明書の管理を指定します。(Put)
| newVal | DWORD | in | 応答署名の動作を制御するフラグを指定する。 |
解説(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 も指定する必要があります。
Distinguished Encoding Rules (DER) を使用してエンコードされた署名証明書を取得または設定します。Online Certificate Status Protocol (OCSP) レスポンダーサービスは、証明書ステータス要求への応答に署名するためにこの証明書を使用します。(Get)
| pVal | VARIANT* | out | OCSP 応答の署名に使用する証明書を受け取る VARIANT へのポインタである。 |
Distinguished Encoding Rules (DER) を使用してエンコードされた署名証明書を取得または設定します。Online Certificate Status Protocol (OCSP) レスポンダーサービスは、証明書ステータス要求への応答に署名するためにこの証明書を使用します。(Put)
| newVal | VARIANT | in | OCSP 応答の署名に使用する証明書を格納した VARIANT を渡す。 |
警告イベントがログに記録される、署名証明書の有効期間に対する割合 (パーセンテージ) を取得または設定します。(Get)
| pVal | DWORD* | out | 署名証明書の有効期限が近づいた際に通知を行うリマインダー期間 (パーセント) を受け取る DWORD へのポインタである。 |
解説(Remarks)
パーセンテージ値は 0 から 100 の範囲でなければならず、既定値は 90 です。Online Certificate Status Protocol (OCSP) レスポンダーサービスには、この既定値を持つサービス全体の値が含まれます。
警告イベントがログに記録される、署名証明書の有効期間に対する割合 (パーセンテージ) を取得または設定します。(Put)
| newVal | DWORD | in | 署名証明書の有効期限通知を行うリマインダー期間 (パーセント) を指定する。 |
解説(Remarks)
パーセンテージ値は 0 から 100 の範囲でなければならず、既定値は 90 です。Online Certificate Status Protocol (OCSP) レスポンダーサービスには、この既定値を持つサービス全体の値が含まれます。
CA 構成のエラー状態を識別するコードを取得します。
| pVal | DWORD* | out | この CA 構成に関連するエラーコードを受け取る DWORD へのポインタである。 |
解説(Remarks)
OCSP レスポンダーサービスは、構成に問題が発生するとエラーコードを返します。返されるコードの定義については、Microsoft Windows Software Development Kit (SDK) の Winerror.h を参照してください。
OCSPCAConfiguration オブジェクトは、エラーコードを初期値 E_PENDING の HRESULT として内部的に保存します。IOCSPAdmin::SetConfiguration が呼び出されると、エラーコードは E_PENDING にリセットされます。
暗号化サービスプロバイダー (CSP) またはキーストレージプロバイダー (KSP) の名前を取得します。
| pVal | LPWSTR* | out | 署名鍵に使用する暗号化サービスプロバイダー (CSP) の名前を受け取る文字列ポインタである。 |
解説(Remarks)
pVal で返される名前は、SigningCertificate プロパティに使用される CSP または KSP に対応します。
構成にバインドされたキーが暗号化用かコンテンツの署名用かを示す値を取得します。
| pVal | DWORD* | 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 に付属するドキュメントを参照してください。
CA 構成で使用される失効情報プロバイダーの CLSID を取得または設定します。(Get)
| pVal | LPWSTR* | out | 失効プロバイダーの CLSID を受け取る文字列ポインタである。 |
CA 構成で使用される失効情報プロバイダーの CLSID を取得または設定します。(Put)
| newVal | LPWSTR | in | 失効プロバイダーの CLSID を指定する。 |
証明書ステータス応答を提供する情報を取得または設定します。(Get)
| pVal | VARIANT* | 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 ではサポートされていません。
証明書ステータス応答を提供する情報を取得または設定します。(Put)
| newVal | VARIANT | in | 失効プロバイダーに設定するプロパティ群を格納した VARIANT を渡す。 |
解説(Remarks)
pVal で返される VARIANT は IOCSPPropertyCollection インターフェイスです。
失効情報プロバイダーのプロパティを操作するには、次の手順を実行します。
- IOCSPPropertyCollection オブジェクトを作成します。
- InitializeFromProperties を呼び出し、ProviderProperties プロパティによって返された VARIANT (pVal) を渡します。
- IOCSPPropertyCollection インターフェイスの Methods と Properties を使用します。
| 名前 | データ型 |
|---|---|
| BaseCrl | BaseCrlUrl に依存 |
| BaseCrlUrl | REG_MULTI_SZ |
| CrlUrlTimeout | DWORD |
| DeltaCrl | BaseCrlUrl または DeltaCrlUrl に依存 |
| DeltaCrlUrl | REG_MULTI_SZ |
| RefreshTimeOut | DWORD |
| RevocationErrorCode | DWORD |
OCSPCAConfiguration オブジェクトが作成されてから変更されたかどうかを示す値を取得します。
| pVal | VARIANT_BOOL* | out | 構成が変更済みかどうかを受け取る VARIANT_BOOL へのポインタである。 |
ローカルマシンの証明書失効リスト (CRL) を取得または設定します。(Get)
| pVal | VARIANT* | out | ローカルの失効情報を受け取る VARIANT へのポインタである。 |
解説(Remarks)
LocalRevocationInformation プロパティに使用される CRL は、署名されていても署名されていなくてもかまいません。CRL の署名検証は行われません。
ローカルマシンの証明書失効リスト (CRL) を取得または設定します。(Put)
| newVal | VARIANT | in | 設定するローカルの失効情報を格納した VARIANT を渡す。 |
解説(Remarks)
LocalRevocationInformation プロパティに使用される CRL は、署名されていても署名されていなくてもかまいません。CRL の署名検証は行われません。
署名証明書のテンプレート名を取得または設定します。(Get)
| pVal | LPWSTR* | out | 署名証明書の発行に使用する証明書テンプレート名を受け取る文字列ポインタである。 |
署名証明書のテンプレート名を取得または設定します。(Put)
| newVal | LPWSTR | in | 署名証明書の発行に使用する証明書テンプレート名を指定する。 |
署名証明書の署名に使用する必要がある証明機関 (CA) の名前を取得または設定します。(Get)
| pVal | LPWSTR* | out | CA の構成文字列 (サーバー名と CA 名) を受け取る文字列ポインタである。 |
署名証明書の署名に使用する必要がある証明機関 (CA) の名前を取得または設定します。(Put)
| newVal | LPWSTR | in | CA の構成文字列 (サーバー名と CA 名) を指定する。 |
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 不要)。#define global IID_IOCSPCAConfiguration "{AEC92B40-3D46-433F-87D1-B84D5C1E790D}" #usecom global IOCSPCAConfiguration IID_IOCSPCAConfiguration "{}" #comfunc global IOCSPCAConfiguration_get_Identifier 7 sptr #comfunc global IOCSPCAConfiguration_get_CACertificate 8 sptr #comfunc global IOCSPCAConfiguration_get_HashAlgorithm 9 sptr #comfunc global IOCSPCAConfiguration_put_HashAlgorithm 10 wstr #comfunc global IOCSPCAConfiguration_get_SigningFlags 11 sptr #comfunc global IOCSPCAConfiguration_put_SigningFlags 12 int #comfunc global IOCSPCAConfiguration_get_SigningCertificate 13 sptr #comfunc global IOCSPCAConfiguration_put_SigningCertificate 14 int #comfunc global IOCSPCAConfiguration_get_ReminderDuration 15 sptr #comfunc global IOCSPCAConfiguration_put_ReminderDuration 16 int #comfunc global IOCSPCAConfiguration_get_ErrorCode 17 sptr #comfunc global IOCSPCAConfiguration_get_CSPName 18 sptr #comfunc global IOCSPCAConfiguration_get_KeySpec 19 sptr #comfunc global IOCSPCAConfiguration_get_ProviderCLSID 20 sptr #comfunc global IOCSPCAConfiguration_put_ProviderCLSID 21 wstr #comfunc global IOCSPCAConfiguration_get_ProviderProperties 22 sptr #comfunc global IOCSPCAConfiguration_put_ProviderProperties 23 int #comfunc global IOCSPCAConfiguration_get_Modified 24 sptr #comfunc global IOCSPCAConfiguration_get_LocalRevocationInformation 25 sptr #comfunc global IOCSPCAConfiguration_put_LocalRevocationInformation 26 int #comfunc global IOCSPCAConfiguration_get_SigningCertificateTemplate 27 sptr #comfunc global IOCSPCAConfiguration_put_SigningCertificateTemplate 28 wstr #comfunc global IOCSPCAConfiguration_get_CAConfig 29 sptr #comfunc global IOCSPCAConfiguration_put_CAConfig 30 wstr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。