IX509CertificateRequestCmc
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
CMC (Certificate Management Message over CMS) 証明書要求を表します。
メソッド 23
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
InitializeFromInnerRequestTemplateName メソッドは、内部要求オブジェクトとテンプレートから証明書要求を初期化します。
| pInnerRequest | IX509CertificateRequest* | inoptional | 内部要求オブジェクトを表す IX509CertificateRequest インターフェイスへのポインター。これは PKCS #10 要求または CMC 要求のいずれかです。 |
| strTemplateName | LPWSTR | in | Active Directory に表示されるテンプレートの共通名 (CN)、またはドット区切りの十進数形式の オブジェクト識別子 を格納する BSTR 変数。 |
戻り値
関数が成功した場合は S_OK を返します。
関数が失敗した場合は、エラーを示す HRESULT 値を返します。とり得る値には次の表に示すものが含まれますが、これらに限定されません。一般的なエラーコードの一覧については、共通の HRESULT 値 を参照してください。
| リターンコード/値 | 説明 |
|---|---|
| pInnerRequest パラメーターに渡す要求オブジェクトは、PKCS #10 要求または CMC 要求である必要があります。 | |
|
要求オブジェクトは既に初期化されています。 |
解説(Remarks)
テンプレートを指定すると、内部要求に含まれていない可能性のある情報を外部要求オブジェクトに追加できます。たとえば、内部要求に必要な拡張が含まれていない場合は、それを含むテンプレートを指定できます。
InitializeFromInnerRequestTemplateName メソッドは次の処理を行います。
- 空の ICryptAttributes コレクションを作成します。
- 空の IX509NameValuePairs コレクションを作成します。
- 空の IX509Extensions コレクションを作成します。
- クリティカルな拡張用の IObjectIds コレクションを作成し、XCN_OID_KEY_USAGE および XCN_OID_BASIC_CONSTRAINTS2 オブジェクト識別子 (OID) を追加します。
- 要求オブジェクトから抑制する OID を格納する空の IObjectIds コレクションを作成します。
- 空の ISignerCertificates コレクションを作成します。
- テンプレートから秘密キーのフラグを取得します。
- テンプレートのフラグまたは設定で必要とされる場合は、ArchivePrivateKey プロパティを設定します。
- 暗号化アルゴリズムが指定されている場合はテンプレートから取得し、EncryptionAlgorithm プロパティを設定します。
- 可能であれば EncryptionStrength プロパティを設定します。
証明書要求の作成に使用されたテンプレートのオブジェクト識別子 (OID) を取得します。(IX509CertificateRequestCmc.get_TemplateObjectId)
| ppValue | IObjectId** | out | 要求に関連付けられた証明書テンプレートの OID を表す IObjectId オブジェクトを受け取るポインタである。 |
解説(Remarks)
このオブジェクト識別子は、テンプレートの Active Directory 共通名 (CN) に対応する OID になります。このプロパティを呼び出す前に、IX509CertificateRequestCmc オブジェクトを初期化する必要があります。詳細については、次のいずれかのメソッドを参照してください。
証明書要求のプライマリ署名が null 署名 (null-signed) かどうかを指定する Boolean 値を取得します。
| pValue | VARIANT_BOOL* | out | 要求が NULL 署名(署名なし)であるかどうかを表す VARIANT_BOOL を受け取るポインタである。 |
解説(Remarks)
null 署名の証明書要求は、実際には署名されていません。つまり、SHA-1 などのダイジェストアルゴリズムを使用して要求のダイジェストを計算することはできますが、RSA などの公開キーアルゴリズムで暗号化されることはありません。これは、証明機関を相互認証する場合によくあるように、秘密キーが利用できないときに使用できます。
このプロパティを呼び出す前に、CMC 要求オブジェクトを初期化する必要があります。詳細については、次のトピックを参照してください。
省略可能な証明書属性の ICryptAttributes コレクションを取得します。(IX509CertificateRequestCmc.get_CryptAttributes)
| ppValue | ICryptAttributes** | out | 要求に含まれる暗号化属性のコレクション ICryptAttributes を受け取るポインタである。 |
解説(Remarks)
このプロパティを呼び出す前に、CMC 要求オブジェクトを初期化する必要があります。詳細については、次のトピックを参照してください。
証明書要求に関連付けられた IX509NameValuePairs コレクションを取得します。
| ppValue | IX509NameValuePairs** | out | 要求に関連付けられた名前と値のペアのコレクション IX509NameValuePairs を受け取るポインタである。 |
解説(Remarks)
CMC 要求オブジェクトにおける名前と値のペアの例については、IX509NameValuePair を参照してください。このプロパティを呼び出す前に、CMC 要求オブジェクトを初期化する必要があります。詳細については、次のトピックを参照してください。
証明書要求に含まれる拡張のコレクションを取得します。(IX509CertificateRequestCmc.get_X509Extensions)
| ppValue | IX509Extensions** | out | 要求に含まれる X.509 拡張のコレクション IX509Extensions を受け取るポインタである。 |
解説(Remarks)
このプロパティを呼び出す前に、CMC 要求オブジェクトを初期化する必要があります。詳細については、次のトピックを参照してください。
クリティカルとしてマークされたバージョン 3 証明書拡張を識別する IObjectIds コレクションを取得します。(IX509CertificateRequestCmc.get_CriticalExtensions)
| ppValue | IObjectIds** | out | クリティカル(重要)としてマークされた拡張の OID コレクション IObjectIds を受け取るポインタである。 |
解説(Remarks)
拡張のクリティカル性は、証明書を使用するアプリケーションに対して、その拡張を無視できるかどうかを示します。このプロパティを呼び出す前に、CMC 要求オブジェクトを初期化する必要があります。詳細については、次のトピックを参照してください。
エンコード処理中に証明書から抑制する拡張または属性のオブジェクト識別子 (OID) のコレクションを取得します。
| ppValue | IObjectIds** | out | 要求から抑制(除外)する拡張の OID コレクション IObjectIds を受け取るポインタである。 |
解説(Remarks)
属性と拡張は、証明書要求がエンコードまたは初期化されるときに追加されます。SuppressDefaults プロパティを呼び出すことで、既定の拡張と属性の追加を抑制できます。CMC 要求では、既定で作成されるのは XCN_OID_REQUEST_CLIENT_INFO (IX509AttributeClientId) 属性のみです。拡張は既定では追加されません。
このプロパティを呼び出す前に、IX509CertificateRequestCmc オブジェクトを初期化する必要があります。詳細については、次のいずれかのメソッドを参照してください。
証明書の要求または応答の追跡に使用できるトランザクション識別子を指定または取得します。(Get)
| pValue | INT* | out | CMC 要求のトランザクション ID を表す INT を受け取るポインタである。 |
解説(Remarks)
証明書の要求と応答による一往復のトランザクションは、識別子を使用して追跡できます。クライアントはトランザクション ID を生成し、証明機関または登録機関がトランザクションを完了させるメッセージで応答するまでそれを保持します。応答にはその識別子が含まれます。
このプロパティを設定する場合は、Encode メソッドを呼び出す前に設定する必要がありますが、プロパティを呼び出す前に CMC 要求オブジェクトを初期化する必要があります。詳細については、次のトピックを参照してください。
証明書の要求または応答の追跡に使用できるトランザクション識別子を指定または取得します。(Put)
| Value | INT | in | CMC 要求のトランザクション ID を INT で指定する。 |
解説(Remarks)
証明書の要求と応答による一往復のトランザクションは、識別子を使用して追跡できます。クライアントはトランザクション ID を生成し、証明機関または登録機関がトランザクションを完了させるメッセージで応答するまでそれを保持します。応答にはその識別子が含まれます。
このプロパティを設定する場合は、Encode メソッドを呼び出す前に設定する必要がありますが、プロパティを呼び出す前に CMC 要求オブジェクトを初期化する必要があります。詳細については、次のトピックを参照してください。
ノンス (nonce) を格納するバイト配列を指定または取得します。(Get)
| Encoding | EncodingType | in | 取得する送信者ノンス文字列のエンコーディング種別を指定する EncodingType 列挙値である。 |
| pValue | LPWSTR* | out | リプレイ防止用の送信者ノンスを指定エンコーディングの文字列として受け取るポインタである。 |
解説(Remarks)
ノンスは、要求が以前のメッセージの繰り返しでないことを保証するために証明書要求に含めることができる、1 回限りのランダムまたは擬似ランダムなバイト配列です。
このプロパティは、必要に応じて Encode メソッドを呼び出す前に設定できますが、プロパティを呼び出す前に CMC 要求オブジェクトを初期化する必要があります。詳細については、次のトピックを参照してください。
ノンス (nonce) を格納するバイト配列を指定または取得します。(Put)
| Encoding | EncodingType | in | 渡す送信者ノンス文字列のエンコーディング種別を指定する EncodingType 列挙値である。 |
| Value | LPWSTR | in | リプレイ防止用の送信者ノンスを指定エンコーディングの文字列として渡す。 |
解説(Remarks)
ノンスは、要求が以前のメッセージの繰り返しでないことを保証するために証明書要求に含めることができる、1 回限りのランダムまたは擬似ランダムなバイト配列です。
このプロパティは、必要に応じて Encode メソッドを呼び出す前に設定できますが、プロパティを呼び出す前に CMC 要求オブジェクトを初期化する必要があります。詳細については、次のトピックを参照してください。
証明書要求の署名に使用されるプライマリ署名に関する情報を格納する IX509SignatureInformation オブジェクトを取得します。
| ppValue | IX509SignatureInformation** | out | 署名アルゴリズム等の署名情報を表す IX509SignatureInformation オブジェクトを受け取るポインタである。 |
解説(Remarks)
IX509SignatureInformation オブジェクトには、証明書要求に署名するプライマリ署名に使用されるハッシュ、公開キー、および署名アルゴリズムに関する情報が含まれます。CMC 要求は、プライマリ署名に加えて、0 個以上の証明書ベースの署名を持つことができます。証明書ベースの署名は、たとえば、新しい証明書を要求するエンティティの ID を 1 つ以上の追加の当事者が保証する必要がある場合に、要求に含めることができます。これらの追加の証明書ベースの署名のコレクションを取得するには、SignerCertificates プロパティを呼び出します。
プライマリ署名は通常、内部 PKCS #10 要求オブジェクト内の公開キーに対応する秘密キーを使用して作成されます。秘密キーは通常、新しい要求を証明書階層に登録 (エンロール) するために作成されるため、プライマリ署名は証明書ベースではなく、これを取得するには SignatureInformation プロパティを呼び出す必要があります。
SignatureInformation プロパティが呼び出されたときに IX509SignatureInformation オブジェクトが存在しない場合、または初期化時に署名の作成が延期された場合、このプロパティは次の処理を行います。
- 最も内側の PKCS #10 要求オブジェクトを取得します。
- 内部要求から署名情報を取得して複製します。
- 内部 PKCS #10 に関連付けられた秘密キーの取得を試み、秘密キーが見つからない場合は NullSigned プロパティを設定します。
- ハッシュアルゴリズムが指定されている場合は、内部要求に関連付けられたテンプレートから取得し、HashAlgorithm プロパティを設定します。
- 非対称アルゴリズムが指定されている場合は、内部要求に関連付けられた秘密キーから取得し、PublicKeyAlgorithm プロパティを設定します。
- テンプレートから秘密キーのフラグを取得し、必要に応じて AlternateSignatureAlgorithm を設定します。
このプロパティを呼び出す前に、CMC 要求オブジェクトを初期化する必要があります。詳細については、次のトピックを参照してください。
証明機関 (CA) に秘密キーをアーカイブするかどうかを示す Boolean 値を指定または取得します。(Get)
| pValue | VARIANT_BOOL* | out | 秘密鍵をアーカイブ(キーアーカイブ)するかどうかを表す VARIANT_BOOL を受け取るポインタである。 |
解説(Remarks)
CA に秘密キーのアーカイブを要求するには、KeyArchivalCertificate プロパティに CA の暗号化 (キー交換) 証明書も設定する必要があります。
このプロパティは、必要に応じて Encode メソッドを呼び出す前に設定できますが、プロパティ値を設定する前に CMC 要求オブジェクトを初期化する必要があります。詳細については、次のトピックを参照してください。
証明機関 (CA) に秘密キーをアーカイブするかどうかを示す Boolean 値を指定または取得します。(Put)
| Value | VARIANT_BOOL | in | 秘密鍵をアーカイブ(キーアーカイブ)するかどうかを VARIANT_BOOL で指定する。 |
解説(Remarks)
CA に秘密キーのアーカイブを要求するには、KeyArchivalCertificate プロパティに CA の暗号化 (キー交換) 証明書も設定する必要があります。
このプロパティは、必要に応じて Encode メソッドを呼び出す前に設定できますが、プロパティ値を設定する前に CMC 要求オブジェクトを初期化する必要があります。詳細については、次のトピックを参照してください。
証明機関 (CA) の暗号化証明書を指定または取得します。(Get)
| Encoding | EncodingType | in | 取得するキーアーカイブ証明書文字列のエンコーディング種別を指定する EncodingType 列挙値である。 |
| pValue | LPWSTR* | out | 秘密鍵アーカイブの暗号化に使用する CA の証明書を指定エンコーディングの文字列として受け取るポインタである。 |
解説(Remarks)
適切に構成されている場合、証明機関 (CA) はクライアントの秘密キーをアーカイブできます。通常、クライアントは CA に交換証明書を要求し、それを検証して、KeyArchivalCertificate プロパティへの入力として使用します。CA の公開キーは、アーカイブのために送信される秘密キーの暗号化に使用されます。キーのアーカイブを要求するには、ArchivePrivateKey プロパティを使用できます。
このプロパティを設定する場合は、Encode メソッドを呼び出す前に設定する必要がありますが、プロパティを呼び出す前に CMC 要求オブジェクトを初期化する必要があります。詳細については、次のトピックを参照してください。
証明機関 (CA) の暗号化証明書を指定または取得します。(Put)
| Encoding | EncodingType | in | 渡すキーアーカイブ証明書文字列のエンコーディング種別を指定する EncodingType 列挙値である。 |
| Value | LPWSTR | in | 秘密鍵アーカイブの暗号化に使用する CA の証明書を指定エンコーディングの文字列として渡す。 |
解説(Remarks)
適切に構成されている場合、証明機関 (CA) はクライアントの秘密キーをアーカイブできます。通常、クライアントは CA に交換証明書を要求し、それを検証して、KeyArchivalCertificate プロパティへの入力として使用します。CA の公開キーは、アーカイブのために送信される秘密キーの暗号化に使用されます。キーのアーカイブを要求するには、ArchivePrivateKey プロパティを使用できます。
このプロパティを設定する場合は、Encode メソッドを呼び出す前に設定する必要がありますが、プロパティを呼び出す前に CMC 要求オブジェクトを初期化する必要があります。詳細については、次のトピックを参照してください。
アーカイブする秘密キーの暗号化に使用するアルゴリズムのオブジェクト識別子 (OID) を指定または取得します。(Get)
| ppValue | IObjectId** | out | 鍵アーカイブ等の暗号化に使用するアルゴリズムを表す IObjectId オブジェクトを受け取るポインタである。 |
解説(Remarks)
証明機関 (CA) に秘密キーのアーカイブを要求する場合は、CA から交換証明書を取得し、その証明書に含まれる公開キーを使用して、アーカイブのために送信する秘密キーを暗号化する必要があります。EncryptionAlgorithm プロパティは、キーの暗号化に使用されるアルゴリズムを識別します。
このプロパティは、次のプロパティに関連しています。
このプロパティを設定する場合は、Encode メソッドを呼び出す前に設定する必要がありますが、プロパティを呼び出す前に CMC 要求オブジェクトを初期化する必要があります。詳細については、次のトピックを参照してください。
アーカイブする秘密キーの暗号化に使用するアルゴリズムのオブジェクト識別子 (OID) を指定または取得します。(Put)
| pValue | IObjectId* | inoptional | 鍵アーカイブ等の暗号化に使用するアルゴリズムを表す IObjectId オブジェクトを渡す。 |
解説(Remarks)
証明機関 (CA) に秘密キーのアーカイブを要求する場合は、CA から交換証明書を取得し、その証明書に含まれる公開キーを使用して、アーカイブのために送信する秘密キーを暗号化する必要があります。EncryptionAlgorithm プロパティは、キーの暗号化に使用されるアルゴリズムを識別します。
このプロパティは、次のプロパティに関連しています。
このプロパティを設定する場合は、Encode メソッドを呼び出す前に設定する必要がありますが、プロパティを呼び出す前に CMC 要求オブジェクトを初期化する必要があります。詳細については、次のトピックを参照してください。
アーカイブする秘密キーに適用される相対的な暗号化レベルを指定または取得します。(Get)
| pValue | INT* | out | 暗号化の強度(鍵長などのビット数)を表す INT を受け取るポインタである。 |
解説(Remarks)
このプロパティは、次のプロパティに関連しています。
暗号化強度は多くの場合、暗号化アルゴリズムによって暗黙的に決まります。アルゴリズムが複数の強度をサポートしていない場合は、EncryptionStrength プロパティを設定しないでください。
このプロパティを設定する場合は、Encode メソッドを呼び出す前に設定する必要がありますが、プロパティを呼び出す前に CMC 要求オブジェクトを初期化する必要があります。詳細については、次のトピックを参照してください。
アーカイブする秘密キーに適用される相対的な暗号化レベルを指定または取得します。(Put)
| Value | INT | in | 暗号化の強度(鍵長などのビット数)を INT で指定する。 |
解説(Remarks)
このプロパティは、次のプロパティに関連しています。
暗号化強度は多くの場合、暗号化アルゴリズムによって暗黙的に決まります。アルゴリズムが複数の強度をサポートしていない場合は、EncryptionStrength プロパティを設定しないでください。
このプロパティを設定する場合は、Encode メソッドを呼び出す前に設定する必要がありますが、プロパティを呼び出す前に CMC 要求オブジェクトを初期化する必要があります。詳細については、次のトピックを参照してください。
アーカイブする秘密キーのハッシュを取得します。
| Encoding | EncodingType | in | 取得する暗号化済み鍵ハッシュ文字列のエンコーディング種別を指定する EncodingType 列挙値である。 |
| pValue | LPWSTR* | out | アーカイブされた秘密鍵の暗号化済みハッシュを指定エンコーディングの文字列として受け取るポインタである。 |
解説(Remarks)
秘密キーのアーカイブの詳細については、ArchivePrivateKey プロパティおよび KeyArchivalCertificate プロパティを参照してください。
要求の署名に使用される証明書のコレクションを取得します。
| ppValue | ISignerCertificates** | out | CMC 要求に署名する署名証明書のコレクション ISignerCertificates を受け取るポインタである。 |
解説(Remarks)
CMC 要求は、プライマリ署名に加えて、0 個以上の証明書ベースの署名を持つことができます。証明書ベースの署名は、たとえば、新しい証明書を要求するエンティティの ID を 1 つ以上の追加の当事者が保証する必要がある場合に、要求に含めることができます。これらの追加の証明書ベースの署名のコレクションを取得するには、SignerCertificates プロパティを呼び出します。
プライマリ署名は通常、内部 PKCS #10 要求オブジェクト内の公開キーに対応する秘密キーを使用して作成されます。秘密キーは通常、新しい要求を証明書階層に登録 (エンロール) するために作成されるため、プライマリ署名は証明書ベースではなく、これを取得するには SignatureInformation プロパティを呼び出す必要があります。
このプロパティを呼び出す前に、CMC 要求オブジェクトを初期化する必要があります。詳細については、次のトピックを参照してください。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IX509CertificateRequestCmc "{728AB345-217D-11DA-B2A4-000E7BBB2B09}" #usecom global IX509CertificateRequestCmc IID_IX509CertificateRequestCmc "{}" #comfunc global IX509CertificateRequestCmc_InitializeFromInnerRequestTemplateName 40 sptr,wstr #comfunc global IX509CertificateRequestCmc_get_TemplateObjectId 41 sptr #comfunc global IX509CertificateRequestCmc_get_NullSigned 42 var #comfunc global IX509CertificateRequestCmc_get_CryptAttributes 43 sptr #comfunc global IX509CertificateRequestCmc_get_NameValuePairs 44 sptr #comfunc global IX509CertificateRequestCmc_get_X509Extensions 45 sptr #comfunc global IX509CertificateRequestCmc_get_CriticalExtensions 46 sptr #comfunc global IX509CertificateRequestCmc_get_SuppressOids 47 sptr #comfunc global IX509CertificateRequestCmc_get_TransactionId 48 var #comfunc global IX509CertificateRequestCmc_put_TransactionId 49 int #comfunc global IX509CertificateRequestCmc_get_SenderNonce 50 int,var #comfunc global IX509CertificateRequestCmc_put_SenderNonce 51 int,wstr #comfunc global IX509CertificateRequestCmc_get_SignatureInformation 52 sptr #comfunc global IX509CertificateRequestCmc_get_ArchivePrivateKey 53 var #comfunc global IX509CertificateRequestCmc_put_ArchivePrivateKey 54 int #comfunc global IX509CertificateRequestCmc_get_KeyArchivalCertificate 55 int,var #comfunc global IX509CertificateRequestCmc_put_KeyArchivalCertificate 56 int,wstr #comfunc global IX509CertificateRequestCmc_get_EncryptionAlgorithm 57 sptr #comfunc global IX509CertificateRequestCmc_put_EncryptionAlgorithm 58 sptr #comfunc global IX509CertificateRequestCmc_get_EncryptionStrength 59 var #comfunc global IX509CertificateRequestCmc_put_EncryptionStrength 60 int #comfunc global IX509CertificateRequestCmc_get_EncryptedKeyHash 61 int,var #comfunc global IX509CertificateRequestCmc_get_SignerCertificates 62 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_IX509CertificateRequestCmc "{728AB345-217D-11DA-B2A4-000E7BBB2B09}" #usecom global IX509CertificateRequestCmc IID_IX509CertificateRequestCmc "{}" #comfunc global IX509CertificateRequestCmc_InitializeFromInnerRequestTemplateName 40 sptr,wstr #comfunc global IX509CertificateRequestCmc_get_TemplateObjectId 41 sptr #comfunc global IX509CertificateRequestCmc_get_NullSigned 42 sptr #comfunc global IX509CertificateRequestCmc_get_CryptAttributes 43 sptr #comfunc global IX509CertificateRequestCmc_get_NameValuePairs 44 sptr #comfunc global IX509CertificateRequestCmc_get_X509Extensions 45 sptr #comfunc global IX509CertificateRequestCmc_get_CriticalExtensions 46 sptr #comfunc global IX509CertificateRequestCmc_get_SuppressOids 47 sptr #comfunc global IX509CertificateRequestCmc_get_TransactionId 48 sptr #comfunc global IX509CertificateRequestCmc_put_TransactionId 49 int #comfunc global IX509CertificateRequestCmc_get_SenderNonce 50 int,sptr #comfunc global IX509CertificateRequestCmc_put_SenderNonce 51 int,wstr #comfunc global IX509CertificateRequestCmc_get_SignatureInformation 52 sptr #comfunc global IX509CertificateRequestCmc_get_ArchivePrivateKey 53 sptr #comfunc global IX509CertificateRequestCmc_put_ArchivePrivateKey 54 int #comfunc global IX509CertificateRequestCmc_get_KeyArchivalCertificate 55 int,sptr #comfunc global IX509CertificateRequestCmc_put_KeyArchivalCertificate 56 int,wstr #comfunc global IX509CertificateRequestCmc_get_EncryptionAlgorithm 57 sptr #comfunc global IX509CertificateRequestCmc_put_EncryptionAlgorithm 58 sptr #comfunc global IX509CertificateRequestCmc_get_EncryptionStrength 59 sptr #comfunc global IX509CertificateRequestCmc_put_EncryptionStrength 60 int #comfunc global IX509CertificateRequestCmc_get_EncryptedKeyHash 61 int,sptr #comfunc global IX509CertificateRequestCmc_get_SignerCertificates 62 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。