ICEnroll4
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
ICEnroll4 インターフェイスは、証明書登録コントロール (Certificate Enrollment Control) を表す複数のインターフェイスの 1 つです。
メソッド 33
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
PKCS で秘密キーをアーカイブするために使用される証明書を設定または取得します。(Put)
| bstrCert | LPWSTR | in | 秘密キーアーカイブ(キーリカバリ)に使用する CA の暗号化証明書を Base64 文字列として渡す。 |
PKCS で秘密キーをアーカイブするために使用される証明書を設定または取得します。(Get)
| pbstrCert | LPWSTR* | out | 秘密キーアーカイブに使用する証明書を Base64 文字列として受け取る LPWSTR へのポインタである。 |
証明書データのハッシュを設定または取得します。(Put)
| bstrThumbPrint | LPWSTR | in | 保留中要求を識別する証明書のサムプリント(拇印)を文字列として渡す。 |
解説(Remarks)
拇印 (thumbprint) は、保留中の証明書を指し示すために使用されます。
証明書データのハッシュを設定または取得します。(Get)
| pbstrThumbPrint | LPWSTR* | out | 現在設定されている証明書のサムプリントを文字列として受け取る LPWSTR へのポインタである。 |
解説(Remarks)
拇印 (thumbprint) は、保留中の証明書を指し示すために使用されます。
バイナリデータの BLOB を文字列に変換します。このメソッドは ICEnroll4 インターフェイスで初めて定義されました。
| Flags | INT | in | CryptBinaryToString 関数の dwFlags パラメーターに渡される値。指定可能な値の説明については、 CryptBinaryToString を参照してください。 |
| strBinary | LPWSTR | in | 文字列に変換するバイナリデータの BLOB。 |
| pstrEncoded | LPWSTR* | out | エンコードされたデータを受け取る BSTR へのポインター。BSTR の使用を終えたら、SysFreeString 関数を呼び出して解放してください。 |
戻り値
C++
メソッドが成功した場合は S_OK を返します。メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、 Common HRESULT Values を参照してください。
VB
戻り値はバイナリデータを表す文字列です。エンコードされた文字列をバイナリデータの BLOB に変換します。このメソッドは ICEnroll4 インターフェイスで初めて定義されました。
| Flags | INT | in | CryptStringToBinary 関数の dwFlags パラメーターに渡される値。有効な値については、 CryptStringToBinary を参照してください。 |
| strEncoded | LPWSTR | in | バイナリデータの BLOB に変換するエンコードされた文字列。 |
| pstrBinary | LPWSTR* | out | バイナリデータを受け取る BSTR へのポインター。BSTR の使用を終えたら、SysFreeString 関数を呼び出して解放してください。 |
戻り値
C++
メソッドが成功した場合は S_OK を返します。メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、 Common HRESULT Values を参照してください。
VB
戻り値はバイナリデータを含む文字列です。ICEnroll4::addExtensionToRequest メソッドは、要求に拡張を追加します。
| Flags | INT | in | 拡張が critical (重要) かどうかを指定します。 TRUE の場合、追加される拡張は critical です。FALSE の場合は critical ではありません。 TRUE は (Microsoft のヘッダーファイルにおいて) C/C++ プログラマー向けには 1 として定義されていますが、Visual Basic では True キーワードが -1 として定義されている点に注意してください。そのため、Visual Basic 開発者は、このパラメーターを TRUE に設定するには (True ではなく) 1 を使用する必要があります。ただし、このパラメーターを FALSE に設定するには、Visual Basic 開発者は 0 または False を使用できます。 |
| strName | LPWSTR | in | 拡張名を表す オブジェクト識別子 (OID)。 |
| strValue | LPWSTR | in | base64 でエンコードされた、またはバイナリの拡張値。 |
戻り値
VB
戻り値は HRESULT で、呼び出しが成功した場合は S_OK が返されます。証明書要求に属性を追加します。このメソッドは ICEnroll4 インターフェイスで初めて定義されました。
| Flags | INT | in | このパラメーターは将来の使用のために予約されており、0 に設定する必要があります。 |
| strName | LPWSTR | in | 属性名を表す オブジェクト識別子 (OID)。 |
| strValue | LPWSTR | in | base64 でエンコードされた、またはバイナリの属性値。 |
戻り値
VB
メソッドが成功した場合は S_OK を返します。メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、 Common HRESULT Values を参照してください。
認証されていない名前と値の文字列ペアを要求に追加します。このメソッドは ICEnroll4 インターフェイスで初めて定義されました。
| Flags | INT | in | このパラメーターは将来の使用のために予約されており、0 に設定する必要があります。 |
| strName | LPWSTR | in | 名前と値のペアのうち、名前の部分。 |
| strValue | LPWSTR | in | 名前と値のペアのうち、値の部分。 |
戻り値
VB
メソッドが成功した場合は S_OK を返します。メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、 Common HRESULT Values を参照してください。
要求からすべての拡張を削除します。このメソッドは ICEnroll4 インターフェイスで初めて定義されました。
戻り値
VB
メソッドが成功した場合は S_OK を返します。メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、 Common HRESULT Values を参照してください。
要求からすべての属性を削除します。このメソッドは ICEnroll4 インターフェイスで初めて定義されました。
戻り値
VB
メソッドが成功した場合は S_OK を返します。メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、 Common HRESULT Values を参照してください。
PKCS を作成します。(ICEnroll4.createRequest)
| Flags | CERT_CREATE_REQUEST_FLAGS | in | 作成する証明書要求の種類を指定する値。次のいずれかの値を指定できます。
| ||||||||||
| strDNName | LPWSTR | in | このパラメーターは NULL にできます。それ以外の場合、このパラメーターは要求の対象となるエンティティの識別名 (DN) を指定します。DN 名は X.500 の命名規則に従う必要があります (例: "CN=User, O=Microsoft")。2 文字のプレフィックスが存在しない場合は、代わりに OID を指定できます。 | ||||||||||
| Usage | LPWSTR | in | 生成される証明書の目的を表す オブジェクト識別子 (OID)。たとえば、個人用または商用の Authenticode 証明書、クライアント認証などです。複数の OID をコンマで区切って指定することもできます。 | ||||||||||
| pstrRequest | LPWSTR* | out | 要求を受け取る BSTR (BASE64_HEADER 形式) へのポインター。BSTR の使用を終えたら、SysFreeString 関数を呼び出して解放してください。 |
戻り値
C++
メソッドが成功した場合は S_OK を返します。メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、 Common HRESULT Values を参照してください。
VB
戻り値は要求を含む String (BASE64_HEADER 形式) です。解説(Remarks)
このメソッドがスクリプトから呼び出されると、証明書要求の作成をユーザーが許可するかどうかを尋ねるユーザーインターフェイスが表示されます。.pvk ファイルまたは .spc ファイルが指定された場合は、ファイルシステムへの書き込み操作をユーザーが許可するかどうかを尋ねるユーザーインターフェイスが表示されます。
例
BSTR bstrDN = NULL;
BSTR bstrReq = NULL;
ICEnroll4 * pEnroll4 = NULL;
HRESULT hr;
hr = CoInitializeEx( NULL, COINIT_APARTMENTTHREADED );
if (FAILED(hr))
{
printf("Failed CoInitializeEx - %x\n", hr);
goto error;
}
hr = CoCreateInstance( __uuidof(CEnroll),
NULL,
CLSCTX_INPROC_SERVER,
__uuidof(ICEnroll4),
(void **)&pEnroll4);
if (FAILED(hr))
{
printf("Failed CoCreateInstance - pEnroll4 [%x]\n", hr);
goto error;
}
// generate the DN for the cert request
bstrDN = SysAllocString( TEXT("CN=Your Name") // common name
TEXT(",OU=Your Unit") // org unit
TEXT(",O=Your Org") // organization
TEXT(",L=Your City") // locality
TEXT(",S=Your State") // state
TEXT(",C=Your Country") ); // country/region
// create the CMC request
hr = pEnroll4->createRequest( XECR_CMC,
bstrDN,
NULL,
&bstrReq );
if (FAILED(hr))
{
printf("Failed createRequest - pEnroll4 [%x]\n", hr);
goto error;
}
else
// do something with the CMC (bstrReq);
error:
//clean up resources, and so on
if ( bstrDN )
SysFreeString( bstrDN );
if ( bstrReq )
SysFreeString( bstrReq );
if ( pEnroll4 )
pEnroll4->Release();
CoUninitialize();
PKCS を作成します。(ICEnroll4.createFileRequest)
| Flags | CERT_CREATE_REQUEST_FLAGS | in | 作成する証明書の種類を指定する値。次のいずれかの値を指定できます。
| ||||||||||
| strDNName | LPWSTR | in | このパラメーターは NULL にできます。それ以外の場合、このパラメーターは要求の対象となるエンティティの識別名 (DN) を指定します。DN 名は X.500 の命名規則に従う必要があります (例: "CN=User, O=Microsoft")。2 文字のプレフィックスが存在しない場合は、代わりに OID を指定できます。 | ||||||||||
| strUsage | LPWSTR | in | 生成される要求の目的を表す オブジェクト識別子 (OID)。たとえば、個人用または商用の Authenticode 証明書、クライアント認証などです。複数の OID をコンマで区切って指定することもできます。 | ||||||||||
| strRequestFileName | LPWSTR | in | 要求を受け取るファイルの名前。 |
戻り値
VB
メソッドが成功した場合は S_OK を返します。メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、 Common HRESULT Values を参照してください。
解説(Remarks)
このメソッドがスクリプトから呼び出されると、証明書要求の作成をユーザーが許可するかどうか、およびファイルシステムへの書き込み操作をユーザーが許可するかどうかを尋ねるユーザーインターフェイスが表示されます。
以前の createRequest の呼び出しに応答して発行された資格情報の配信を受け入れ、その資格情報を適切なストアに格納します。
| strResponse | LPWSTR | in | base64 でエンコードされた応答を表す文字列。 |
戻り値
VB
メソッドが成功した場合は S_OK を返します。メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、 Common HRESULT Values を参照してください。
解説(Remarks)
応答には証明書がちょうど 1 つだけ含まれている必要があります。子証明書を含めることはできません。
応答は PKCS #7 または完全な CMC 応答のいずれかです。ただし、完全な CMC 応答を受け入れるには、暗号化サービスプロバイダー が CMC 構造の Abstract Syntax Notation One (ASN.1) エンコードをサポートしている必要があります。
このメソッドがスクリプトから呼び出されると、証明書のインストールをユーザーが許可するかどうかを尋ねるユーザーインターフェイスが表示されます。
以前の createFileRequest の呼び出しに応答して発行された資格情報の配信を受け入れ、その資格情報を適切なストアに格納します。
| strResponseFileName | LPWSTR | in | base64 でエンコードされた応答を含むファイルの名前を指定します。 |
戻り値
VB
メソッドが成功した場合は S_OK を返します。メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、 Common HRESULT Values を参照してください。
解説(Remarks)
strResponseFileName パラメーターで指定される応答には、証明書がちょうど 1 つだけ含まれている必要があります。子証明書を含めることはできません。
応答は PKCS #7 または完全な CMC 応答のいずれかです。ただし、完全な CMC 応答を受け入れるには、暗号化サービスプロバイダー が CMC 構造の Abstract Syntax Notation One (ASN.1) エンコードをサポートしている必要があります。
このメソッドがスクリプトから呼び出されると、証明書のインストールをユーザーが許可するかどうか、およびファイルシステムからの読み取り操作をユーザーが許可するかどうかを尋ねるユーザーインターフェイスが表示されます。
証明機関 (CA) の応答から証明書を取得します。このメソッドは ICEnroll4 インターフェイスで初めて定義されました。
| strResponse | LPWSTR | in | base64 でエンコードされた応答。 |
| pstrCert | LPWSTR* | out | 応答から取得した証明書を受け取る BSTR へのポインター。BSTR の使用を終えたら、SysFreeString 関数を呼び出して解放してください。 |
戻り値
C++
メソッドが成功した場合は S_OK を返します。メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、 Common HRESULT Values を参照してください。
VB
戻り値は証明書を含む文字列です。解説(Remarks)
strResponse に含まれる応答には、証明書がちょうど 1 つだけ含まれている必要があります。子証明書を含めることはできません。
応答は PKCS #7 または完全な Certificate Management over CMS (CMC) 応答のいずれかです。ただし、完全な CMC 応答を受け入れるには、暗号化サービスプロバイダー (CSP) が CMC 構造の Abstract Syntax Notation One (ASN.1) エンコードをサポートしている必要があります。
証明機関 (CA) からの応答を含むファイルから証明書を取得します。このメソッドは ICEnroll4 インターフェイスで初めて定義されました。
| strResponseFileName | LPWSTR | in | 応答を含むファイルの名前を指定します。 |
| pstrCert | LPWSTR* | out | 応答から取得した証明書を受け取る BSTR 値へのポインター。BSTR の使用を終えたら、SysFreeString 関数を呼び出して解放してください。 |
戻り値
C++
メソッドが成功した場合は S_OK を返します。メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。
VB
戻り値は証明書を含む String です。解説(Remarks)
strResponseFileName に含まれる応答には、証明書がちょうど 1 つだけ含まれている必要があります。子証明書を含めることはできません。
応答は PKCS #7 または完全な Certificate Management over CMS (CMC) 応答のいずれかです。ただし、完全な CMC 応答を受け入れるには、暗号化サービスプロバイダー (CSP) が CMC 構造の Abstract Syntax Notation One (ASN.1) エンコードをサポートしている必要があります。
このメソッドがスクリプトから呼び出されると、ファイルシステムからの読み取り操作をユーザーが許可するかどうかを尋ねるユーザーインターフェイスが表示されます。
受け入れた証明書チェーンと秘密キーを Personal Information Exchange (PFX) 形式の文字列に保存します。PFX 形式は PKCS とも呼ばれます。(ICEnroll4.createPFX)
| strPassword | LPWSTR | in | PFX 形式のメッセージのパスワード。パスワードを使用しないことを示すために、この値は空または NULL にできます。パスワードの使用を終えたら、SecureZeroMemory 関数を呼び出してメモリからクリアしてください。パスワードの保護の詳細については、Handling Passwords を参照してください。 |
| pstrPFX | LPWSTR* | out | base64 でエンコードされた PFX 形式の証明書情報を受け取る BSTR へのポインター。BSTR の使用を終えたら、SysFreeString 関数を呼び出して解放してください。 |
戻り値
C++
メソッドが成功した場合は S_OK を返します。メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、 Common HRESULT Values を参照してください。
VB
戻り値は PFX 形式の証明書情報を含む String です。解説(Remarks)
このメソッドは、証明書登録コントロール (Certificate Enrollment Control) がスクリプト化されたコントロールとして実行される場合は無効になります。
受け入れた証明書チェーンと秘密キーを Personal Information Exchange (PFX) 形式でファイルに保存します。このメソッドは ICEnroll4 インターフェイスで初めて定義されました。
| strPassword | LPWSTR | in | PFX のパスワード。パスワードを使用しないことを示すために、この値は空 (または NULL) にできます。パスワードの使用を終えたら、SecureZeroMemory 関数を呼び出してメモリからクリアしてください。パスワードの取り扱いの詳細については、Handling Passwords を参照してください。 |
| strPFXFileName | LPWSTR | in | base64 でエンコードされた PFX データを受け取るファイルの名前。 |
戻り値
VB
メソッドが成功した場合は S_OK を返します。メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、 Common HRESULT Values を参照してください。
解説(Remarks)
このメソッドがスクリプトから呼び出されると、ファイルシステムへの書き込み操作をユーザーが許可するかどうかを尋ねるユーザーインターフェイスが表示されます。
保留中の要求のプロパティを設定します。このメソッドは ICEnroll4 インターフェイスで初めて定義されました。
| lRequestID | INT | in | 証明機関 (CA) によって割り当てられた要求の識別子。 |
| strCADNS | LPWSTR | in | 証明機関 (CA) の Domain Name System (DNS) 名。strCADNS パラメーターを NULL にすることはできません。 |
| strCAName | LPWSTR | in | 証明機関 (CA) の名前。strCAName パラメーターを NULL にすることはできません。 |
| strFriendlyName | LPWSTR | in | 証明機関 (CA) の表示名。strFriendlyName パラメーターは NULL にできます。 |
戻り値
VB
メソッドが成功した場合は S_OK を返します。メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、 Common HRESULT Values を参照してください。
保留中の証明書要求を列挙し、それぞれから指定されたプロパティを取得します。このメソッドは ICEnroll4 インターフェイスで初めて定義されました。
| lIndex | INT | in | プロパティを取得する保留中の要求の序数位置を指定します。最初の要求には 0 を指定します。 | ||||||||||||
| lDesiredProperty | PENDING_REQUEST_DESIRED_PROPERTY | in | 取得するプロパティの識別子。このパラメーターには次のいずれかの値を指定できます。
| ||||||||||||
| pvarProperty | VARIANT* | out | 取得したプロパティの値を受け取る VARIANT へのポインター。 VARIANT の使用を終えたら、VariantClear 関数を呼び出して解放してください。 |
戻り値
C++
メソッドが成功した場合は S_OK を返します。メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、 Common HRESULT Values を参照してください。
lDesiredProperty に次の値が指定された場合、このメソッドは E_NOTIMPL を返します。
lDesiredProperty にその他の値を指定した場合、このメソッドは E_INVALIDARG を返します。
VB
保留中の要求のプロパティを含む Variant を返します。解説(Remarks)
このメソッドは、証明書登録コントロール (Certificate Enrollment Control) がスクリプト化されたコントロールとして実行される場合は無効になります。
クライアントの要求ストアから保留中の要求を削除します。このメソッドは ICEnroll4 インターフェイスで初めて定義されました。
| strThumbprint | LPWSTR | in | 証明書データの拇印 (thumbprint)、すなわち ハッシュ。 |
戻り値
VB
メソッドが成功した場合は S_OK を返します。メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、 Common HRESULT Values を参照してください。
署名キーおよび交換キーのサイズ情報を取得します。このメソッドは ICEnroll4 インターフェイスで初めて定義されました。
| lSizeSpec | XEKL_KEYSIZE | in | 取得するサイズ情報の種類を示す値。このパラメーターには次のいずれかの値を指定できます。
| ||||||||
| lKeySpec | XEKL_KEYSPEC | in | サイズ情報を返す対象のキーを指定します。このパラメーターには次のいずれかの値を指定できます。
| ||||||||
| pdwKeySize | INT* | out | キーサイズ (ビット単位) を受け取る変数へのポインター。 |
戻り値
C++
メソッドが成功した場合は S_OK を返します。メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。
VB
キーサイズ (ビット単位) を表す値。解説(Remarks)
CSP がこのメソッドをサポートしていない場合は、エラーが返されます。
XEKL_KEYSIZE_INC 値の詳細については、 CryptGetProvParam リファレンスページの PP_SIG_KEYSIZE_INC の使用方法を参照してください。
例
DWORD dwExchMin, dwExchMax, dwSignDef, dwSignInc;
// Determine the minimum and maximum key length values.
// hr is HRESULT variable.
hr = pEnroll4->GetKeyLenEx( XEKL_KEYSIZE_MIN,
XEKL_KEYSPEC_KEYX,
&dwExchMin );
if ( FAILED( hr ) )
printf("Failed GetKeyLenEx for Exchange Minimum [%x]\n", hr);
else
printf("Exchange key Min: %d\n", dwExchMin);
hr = pEnroll4->GetKeyLenEx( XEKL_KEYSIZE_MAX,
XEKL_KEYSPEC_KEYX,
&dwExchMax );
if ( FAILED( hr ) )
printf("Failed GetKeyLenEx for Exchange Maximum [%x]\n", hr);
else
printf("Exchange key Max: %d\n", dwExchMax );
hr = pEnroll4->GetKeyLenEx( XEKL_KEYSIZE_DEFAULT,
XEKL_KEYSPEC_SIG,
&dwSignDef );
if ( FAILED( hr ) )
printf("Failed GetKeyLenEx for Signature Default "
"Key size [%x]\n", hr);
else
printf("Signature key default size: %d\n", dwSignDef );
hr = pEnroll4->GetKeyLenEx( XEKL_KEYSIZE_INC,
XEKL_KEYSPEC_SIG,
&dwSignInc );
if ( FAILED( hr ) )
printf("Failed GetKeyLenEx for Signature "
"Key Size Increment [%x]\n", hr);
else
printf("Signature key increment size: %d\n", dwSignInc );
証明書または証明書のチェーンを処理し、適切な証明書ストアに格納します。ローカルストアに実際にインストールされた証明書の数を返す点を除いて InstallPKCS7 と同じです。
| PKCS7 | LPWSTR | in | 証明書または証明書のチェーンを含む文字列。 |
| plCertInstalled | INT* | out | ローカルストアにインストールされた証明書の数を返します。 |
戻り値
C++
メソッドが成功した場合は S_OK を返します。メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。
VB
ローカルストアにインストールされた証明書の数を含む Long。解説(Remarks)
このメソッドがスクリプトから呼び出されると、証明書のインストールをユーザーが許可するかどうかを尋ねるユーザーインターフェイスが表示されます。
証明書テンプレート (または "証明書の種類") を要求に追加します。
| lType | ADDED_CERT_TYPE | in | テンプレート拡張のバージョンの種類を示します。次のいずれかの値を指定できます。
| ||||||
| bstrOIDOrName | LPWSTR | in | 証明書要求に追加される証明書テンプレートの完全修飾名。この値は 証明機関 (CA) によって解釈されます。 | ||||||
| lMajorVersion | INT | in | テンプレートのメジャーバージョンを設定します。lFlag が XECT_EXTENSION_V! の場合、このパラメーターは無視されます。 | ||||||
| fMinorVersion | BOOL | in | テンプレートのマイナーバージョンを使用するかどうかを示します。lFlag が XECT_EXTENSION_V! の場合、このパラメーターは無視されます。 | ||||||
| lMinorVersion | INT | in | テンプレートのマイナーバージョンを設定します。lFlag が XECT_EXTENSION_V1 の場合、または fMinorVersion が FALSE の場合、このパラメーターは無視されます。 |
戻り値
VB
戻り値は HRESULT で、呼び出しが成功した場合は S_OK が返されます。解説(Remarks)
このメソッドは新しい要求メソッドである createRequest のみをサポートします。 createPKCS10 メソッドはサポートしません。
このメソッドを複数回呼び出して、要求に対して複数の証明書テンプレートを設定できます。
指定された暗号化サービスプロバイダー (CSP) の種類を取得します。このメソッドは ICEnroll4 インターフェイスで初めて定義されました。
| strProvName | LPWSTR | in | 種類を要求する対象の CSP の名前を指定する文字列値。 |
| plProvType | INT* | out | CSP の種類を受け取る LONG 値へのポインター。CSP の種類は次のいずれかの値です。 |
戻り値
C++
メソッドが成功した場合は S_OK を返します。メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、 Common HRESULT Values を参照してください。
VB
strProvName で指定されたプロバイダーのプロバイダーの種類を表す値。次のいずれかの値になります。署名者の証明書を設定します。
| bstrCert | LPWSTR | in | 要求への署名に使用する署名者証明書を Base64 文字列として渡す。 |
クライアント ID 要求属性を設定または取得します。クライアント ID 要求属性は、証明書要求の発生元を示します。このプロパティは ICEnroll4 インターフェイスで初めて定義されました。(Put)
| lClientId | INT | in | 登録要求を発行するクライアントを識別するクライアント ID を渡す。 |
クライアント ID 要求属性を設定または取得します。クライアント ID 要求属性は、証明書要求の発生元を示します。このプロパティは ICEnroll4 インターフェイスで初めて定義されました。(Get)
| plClientId | INT* | out | 現在のクライアント ID を受け取る INT へのポインタである。 |
証明書に BLOB プロパティを追加します。
| lPropertyId | INT | in | 証明書に追加する BLOB プロパティの識別子。 | ||||||||||
| lReserved | INT | in | このパラメーターは予約されており、0 にする必要があります。 | ||||||||||
| bstrProperty | LPWSTR | in | BLOB プロパティに関連付けられるデータ。このパラメーターには次のいずれかの値を指定できます。
|
BLOB のプロパティをリセットします。
生成される証明書要求にサブジェクトキー ID 拡張を追加するかどうかを決定します。(Put)
| fInclude | BOOL | in | 要求にサブジェクトキー識別子(Subject Key ID)を含めるかどうかを指定する BOOL 値を渡す。 |
生成される証明書要求にサブジェクトキー ID 拡張を追加するかどうかを決定します。(Get)
| pfInclude | BOOL* | out | 要求にサブジェクトキー識別子を含めるかどうかを受け取る BOOL へのポインタである。 |
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ICEnroll4 "{C1F1188A-2EB5-4A80-841B-7E729A356D90}" #usecom global ICEnroll4 IID_ICEnroll4 "{43F8F289-7A20-11D0-8F06-00C04FC295E1}" #comfunc global ICEnroll4_put_PrivateKeyArchiveCertificate 83 wstr #comfunc global ICEnroll4_get_PrivateKeyArchiveCertificate 84 var #comfunc global ICEnroll4_put_ThumbPrint 85 wstr #comfunc global ICEnroll4_get_ThumbPrint 86 var #comfunc global ICEnroll4_binaryToString 87 int,wstr,var #comfunc global ICEnroll4_stringToBinary 88 int,wstr,var #comfunc global ICEnroll4_addExtensionToRequest 89 int,wstr,wstr #comfunc global ICEnroll4_addAttributeToRequest 90 int,wstr,wstr #comfunc global ICEnroll4_addNameValuePairToRequest 91 int,wstr,wstr #comfunc global ICEnroll4_resetExtensions 92 #comfunc global ICEnroll4_resetAttributes 93 #comfunc global ICEnroll4_createRequest 94 int,wstr,wstr,var #comfunc global ICEnroll4_createFileRequest 95 int,wstr,wstr,wstr #comfunc global ICEnroll4_acceptResponse 96 wstr #comfunc global ICEnroll4_acceptFileResponse 97 wstr #comfunc global ICEnroll4_getCertFromResponse 98 wstr,var #comfunc global ICEnroll4_getCertFromFileResponse 99 wstr,var #comfunc global ICEnroll4_createPFX 100 wstr,var #comfunc global ICEnroll4_createFilePFX 101 wstr,wstr #comfunc global ICEnroll4_setPendingRequestInfo 102 int,wstr,wstr,wstr #comfunc global ICEnroll4_enumPendingRequest 103 int,int,var #comfunc global ICEnroll4_removePendingRequest 104 wstr #comfunc global ICEnroll4_GetKeyLenEx 105 int,int,var #comfunc global ICEnroll4_InstallPKCS7Ex 106 wstr,var #comfunc global ICEnroll4_addCertTypeToRequestEx 107 int,wstr,int,int,int #comfunc global ICEnroll4_getProviderType 108 wstr,var #comfunc global ICEnroll4_put_SignerCertificate 109 wstr #comfunc global ICEnroll4_put_ClientId 110 int #comfunc global ICEnroll4_get_ClientId 111 var #comfunc global ICEnroll4_addBlobPropertyToCertificate 112 int,int,wstr #comfunc global ICEnroll4_resetBlobProperties 113 #comfunc global ICEnroll4_put_IncludeSubjectKeyID 114 int #comfunc global ICEnroll4_get_IncludeSubjectKeyID 115 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_ICEnroll4 "{C1F1188A-2EB5-4A80-841B-7E729A356D90}" #usecom global ICEnroll4 IID_ICEnroll4 "{43F8F289-7A20-11D0-8F06-00C04FC295E1}" #comfunc global ICEnroll4_put_PrivateKeyArchiveCertificate 83 wstr #comfunc global ICEnroll4_get_PrivateKeyArchiveCertificate 84 sptr #comfunc global ICEnroll4_put_ThumbPrint 85 wstr #comfunc global ICEnroll4_get_ThumbPrint 86 sptr #comfunc global ICEnroll4_binaryToString 87 int,wstr,sptr #comfunc global ICEnroll4_stringToBinary 88 int,wstr,sptr #comfunc global ICEnroll4_addExtensionToRequest 89 int,wstr,wstr #comfunc global ICEnroll4_addAttributeToRequest 90 int,wstr,wstr #comfunc global ICEnroll4_addNameValuePairToRequest 91 int,wstr,wstr #comfunc global ICEnroll4_resetExtensions 92 #comfunc global ICEnroll4_resetAttributes 93 #comfunc global ICEnroll4_createRequest 94 int,wstr,wstr,sptr #comfunc global ICEnroll4_createFileRequest 95 int,wstr,wstr,wstr #comfunc global ICEnroll4_acceptResponse 96 wstr #comfunc global ICEnroll4_acceptFileResponse 97 wstr #comfunc global ICEnroll4_getCertFromResponse 98 wstr,sptr #comfunc global ICEnroll4_getCertFromFileResponse 99 wstr,sptr #comfunc global ICEnroll4_createPFX 100 wstr,sptr #comfunc global ICEnroll4_createFilePFX 101 wstr,wstr #comfunc global ICEnroll4_setPendingRequestInfo 102 int,wstr,wstr,wstr #comfunc global ICEnroll4_enumPendingRequest 103 int,int,sptr #comfunc global ICEnroll4_removePendingRequest 104 wstr #comfunc global ICEnroll4_GetKeyLenEx 105 int,int,sptr #comfunc global ICEnroll4_InstallPKCS7Ex 106 wstr,sptr #comfunc global ICEnroll4_addCertTypeToRequestEx 107 int,wstr,int,int,int #comfunc global ICEnroll4_getProviderType 108 wstr,sptr #comfunc global ICEnroll4_put_SignerCertificate 109 wstr #comfunc global ICEnroll4_put_ClientId 110 int #comfunc global ICEnroll4_get_ClientId 111 sptr #comfunc global ICEnroll4_addBlobPropertyToCertificate 112 int,int,wstr #comfunc global ICEnroll4_resetBlobProperties 113 #comfunc global ICEnroll4_put_IncludeSubjectKeyID 114 int #comfunc global ICEnroll4_get_IncludeSubjectKeyID 115 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。