IEnroll
COM公式ドキュメント
Certificate Enrollment Control を表し、主に証明書要求の生成に使用されます。(IEnroll)
メソッド 70
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
base64 エンコードされた PKCS を作成します。(IEnroll.createFilePKCS10WStr)
| DNName | LPWSTR | in | 要求の対象となるエンティティの識別名 (DN)。DNName は X.500 の命名規則に従う必要があります。たとえば "CN=User, O=Microsoft" のようになります。2 文字のプレフィックスが存在しない場合は、代わりにオブジェクト識別子 (OID) を指定できます。 |
| Usage | LPWSTR | in | 生成される証明書の用途を記述する OID。たとえば、個人用または商用の Authenticode 証明書、あるいはクライアント認証などです。コンマで区切って複数の OID を指定することもできます。 OID は PKCS #10 要求にそのまま渡されます。コントロールは OID を検査しません。 |
| wszPKCS10FileName | LPWSTR | in | base64 エンコードされた PKCS #10 を保存するファイルの名前。このファイルの内容は、処理のために証明機関 (CA) に送信できます。 |
解説(Remarks)
既定では、Microsoft Base Cryptographic Provider が使用され、一意の署名キーが作成されます。
PKCS を受け入れて処理します。(IEnroll.acceptFilePKCS7WStr)
| wszPKCS7FileName | LPWSTR | in | PKCS #7 を格納しているファイルの名前を指定します。 |
戻り値
戻り値は HRESULT です。S_OK は成功を示します。この関数が正常に完了すると、ファイル内の PKCS #7 が受け入れられます。
解説(Remarks)
既定では、証明書の保存に MY、CA、ROOT、REQUEST の各システムストアが使用されます。ただし、このメソッドを呼び出す前に次のプロパティを設定することで、他のストアを指定できます:
base64 エンコードされた PKCS を作成します。(IEnroll.createPKCS10WStr)
| DNName | LPWSTR | in | 要求の対象となるエンティティの識別名 (DN) を格納する、null で終わる Unicode 文字列。このパラメーターでは、DN 名は X.500 の命名規則に従う必要があります。たとえば "CN=User, O=Microsoft" のようになります。2 文字のプレフィックスが存在しない場合は、代わりにオブジェクト識別子 (OID) を指定できます。 |
| Usage | LPWSTR | in | 生成される証明書の用途を記述する OID を格納する、null で終わる Unicode 文字列。たとえば、個人用または商用の Authenticode 証明書、あるいはクライアント認証などです。コンマで区切って複数の OID を指定することもできます。 OID は PKCS #10 要求にそのまま渡されます。一般的な拡張性と理解のしやすさのため、コントロールは特定用途の OID を解釈しようとはしません。したがって、クライアント認証の OID を指定しても、生成されるキーは交換キーではなく、依然として署名キーになります。 |
| pPkcs10Blob | CRYPT_INTEGER_BLOB* | inout | base64 エンコードされた PKCS10 証明書要求を受け取る CRYPT_DATA_BLOB へのポインター。 このメモリの使用が終わったら、この構造体の pbData メンバーを CoTaskMemFree 関数に渡して解放してください。 |
戻り値
メソッドが成功した場合、S_OK を返し、pPkcs10Blob には、処理のために Web サーバーに直接ポストできる base64 エンコードされた PKCS #10 要求が格納されます。
メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。
解説(Remarks)
既定では、Microsoft Base Cryptographic Provider が使用され、プロバイダーの種類は PROV_RSA_FULL で、署名キーが作成され、一意の新しいキーセットが作成されます。
PKCS を受け入れて処理します。(IEnroll.acceptPKCS7Blob)
| pBlobPKCS7 | CRYPT_INTEGER_BLOB* | inout | 証明書と、発行者を識別する証明書チェーンを格納した、base64 エンコードされた PKCS #7 を表します。 |
戻り値
戻り値は HRESULT です。S_OK は成功を示します。この関数が正常に完了すると、PKCS #7 が受け入れられます。
解説(Remarks)
acceptPKCS7Blob のパラメーターとして入力される PKCS #7 には、要求の証明書と、その証明書の発行者を識別する証明書チェーンが含まれます。通常は(常にではありませんが)証明書チェーンにルートは含まれません。PKCS #7 は、base64 エンコード、バイナリ、または X.509 証明書形式("begin cert" および "end cert" タグの有無は問いません)のいずれかにできます。証明書と、それに対して生成された関連キーは MY ストアに格納されます。ルート証明書は ROOT ストアに配置され、証明書チェーンの残りは証明機関 (CA) ストアに配置されます。PKCS #7 に含まれる ROOT 証明書が受け入れられる場合、Crypt32 は ROOT 証明書がユーザーのストアに追加されることをユーザーに通知します。ユーザーには ROOT 証明書を拒否する選択肢があります。この選択肢は、信頼されていないルートを ROOT ストアに配置することをユーザーが拒否できるようにするために用意されています。ROOT を ROOT ストアに配置することを拒否しても、Certificate Enrollment Control の受け入れが失敗することはありません。
既定では、証明書の保存に MY、CA、ROOT、REQUEST の各システムストアが使用されます。ただし、このメソッドを呼び出す前に次のプロパティを設定することで、他のストアを指定できます:
PKCS に基づいて証明書コンテキストを取得します。
| pBlobPKCS7 | CRYPT_INTEGER_BLOB* | inout | PKCS #7 を表す CRYPT_DATA_BLOB 構造体へのポインター。 |
戻り値
戻り値は、証明書コンテキストを表す CERT_CONTEXT へのポインターです。メソッドが失敗した場合は NULL です。
getMyStore メソッドは実装されていません。
戻り値
このメソッドは常に NULL を返します。GetLastError は ERROR_CALL_NOT_IMPLEMENTED を返します。
getCAStore メソッドは実装されていません。
戻り値
このメソッドは常に NULL を返します。GetLastError は ERROR_CALL_NOT_IMPLEMENTED を返します。
getROOTHStore メソッドは実装されていません。
戻り値
このメソッドは常に NULL を返します。GetLastError は ERROR_CALL_NOT_IMPLEMENTED を返します。
IEnroll4::enumProvidersWStr メソッドは、ProviderType プロパティで指定された、利用可能な暗号化サービスプロバイダー (CSP) の名前を取得します。
| dwIndex | INT | in | 名前を取得する CSP の序数位置を指定します。最初の CSP の場合は 0 を指定します。 |
| dwFlags | INT | in | CryptEnumProviders 関数にそのまま渡されるフラグを指定します。現在は使用されていません。0 を指定してください。 |
| pbstrProvName | LPWSTR* | inout | 指定したプロパティの種類を持つ CSP の名前を受け取る LPWSTR 変数へのポインター。 |
戻り値
戻り値は HRESULT です。S_OK は成功を示します。 ProviderType プロパティで示される種類を持つ CSP が他になくなると、ERROR_NO_MORE_ITEMS が返されます。
解説(Remarks)
ProviderType プロパティの値が設定されていない場合は、レジストリに設定されている ProviderType の既定値(通常は PROV_RSA_FULL)が使用されます。
enumProvidersWStr メソッドは CryptEnumProviders 関数を呼び出します。
ProviderNameWStr プロパティで指定された暗号化サービスプロバイダー (CSP) のコンテナーの名前を取得します。
| dwIndex | INT | in | 名前を取得するコンテナーの序数位置を指定します。最初のコンテナーの場合は 0 を指定します。 |
| pbstr | LPWSTR* | inout | コンテナーの名前を受け取る LPWSTR 変数へのポインター。 |
戻り値
戻り値は HRESULT です。S_OK は成功を示します。項目が他になくなると、ERROR_NO_MORE_ITEMS が返されます。
解説(Remarks)
ProviderNameWStr プロパティの値が設定されていない場合は、レジストリに設定されている ProviderNameWStr の既定値(通常は Microsoft Base Cryptographic Provider)が使用されます。
freeRequestInfoBlob メソッドは、証明書コンテキストを削除します。このメソッドは IEnroll インターフェースで最初に定義されました。
| pkcs7OrPkcs10 | CRYPT_INTEGER_BLOB | in | コンテキストが削除されるセッション情報を指定する CRYPT_DATA_BLOB 構造体。 |
戻り値
戻り値は HRESULT です。S_OK は成功を示します。
IEnroll4 の MyStoreNameWStr プロパティは、リンクされた秘密キーを持つ証明書が保管されるストアの名前を設定または取得します。(Get)
| szwName | LPWSTR* | inout | 個人(MY)証明書ストアの名前を受け取る LPWSTR へのポインタである。 |
解説(Remarks)
MyStoreNameWStr プロパティは、次のメソッドの動作に影響します:
IEnroll4 の MyStoreNameWStr プロパティは、リンクされた秘密キーを持つ証明書が保管されるストアの名前を設定または取得します。(Put)
| szwName | LPWSTR | in | 個人(MY)証明書ストアの名前を渡す。 |
解説(Remarks)
MyStoreNameWStr プロパティは、次のメソッドの動作に影響します:
MyStoreTypeWStr プロパティで指定されたストアの種類を設定または取得します。(Get)
| szwType | LPWSTR* | inout | 個人(MY)証明書ストアの種類を受け取る LPWSTR へのポインタである。 |
解説(Remarks)
MyStoreTypeWStr プロパティは、次のメソッドの動作に影響します:
MyStoreTypeWStr プロパティで指定されたストアの種類を設定または取得します。(Put)
| szwType | LPWSTR | in | 個人(MY)証明書ストアの種類を渡す。 |
解説(Remarks)
MyStoreTypeWStr プロパティは、次のメソッドの動作に影響します:
MY ストアに使用するレジストリの場所を設定または取得します。(Get)
| pdwFlags | INT* | inout | 個人(MY)証明書ストアを開く際のフラグを受け取る INT へのポインタである。 |
解説(Remarks)
MyStoreFlags プロパティの値は、 CertOpenStore CryptoAPI 関数の dwFlags パラメーターを通じて渡されます。
MyStoreFlags プロパティは、次のメソッドを使用する前に設定する必要があります:
MY ストアに使用するレジストリの場所を設定または取得します。(Put)
| dwFlags | INT | in | 個人(MY)証明書ストアを開く際のフラグを渡す。 |
解説(Remarks)
MyStoreFlags プロパティの値は、 CertOpenStore CryptoAPI 関数の dwFlags パラメーターを通じて渡されます。
MyStoreFlags プロパティは、次のメソッドを使用する前に設定する必要があります:
IEnroll4 の CAStoreNameWStr プロパティは、"ROOT" でも "MY" でもないすべての証明書が保管されるストアの名前を設定または取得します。(Get)
| szwName | LPWSTR* | inout | 中間 CA 証明書ストアの名前を受け取る LPWSTR へのポインタである。 |
解説(Remarks)
CAStoreNameWStr プロパティは、次のメソッドの動作に影響します:
IEnroll4 の CAStoreNameWStr プロパティは、"ROOT" でも "MY" でもないすべての証明書が保管されるストアの名前を設定または取得します。(Put)
| szwName | LPWSTR | in | 中間 CA 証明書ストアの名前を渡す。 |
解説(Remarks)
CAStoreNameWStr プロパティは、次のメソッドの動作に影響します:
CAStoreNameWStr プロパティで指定されたストアに使用するストアの種類を設定または取得します。(Get)
| szwType | LPWSTR* | inout | 中間 CA 証明書ストアの種類を受け取る LPWSTR へのポインタである。 |
解説(Remarks)
CAStoreTypeWStr プロパティは、次のメソッドの動作に影響します:
CAStoreNameWStr プロパティで指定されたストアに使用するストアの種類を設定または取得します。(Put)
| szwType | LPWSTR | in | 中間 CA 証明書ストアの種類を渡す。 |
解説(Remarks)
CAStoreTypeWStr プロパティは、次のメソッドの動作に影響します:
IEnroll4 の CAStoreFlags プロパティは、ストアが開かれるときに証明機関 (CA) ストアを制御するフラグを設定または取得します。(Get)
| pdwFlags | INT* | inout | 中間 CA 証明書ストアを開く際のフラグを受け取る INT へのポインタである。 |
解説(Remarks)
CAStoreFlags プロパティは、次のメソッドの動作に影響します:
IEnroll4 の CAStoreFlags プロパティは、ストアが開かれるときに証明機関 (CA) ストアを制御するフラグを設定または取得します。(Put)
| dwFlags | INT | in | 中間 CA 証明書ストアを開く際のフラグを渡す。 |
解説(Remarks)
CAStoreFlags プロパティは、次のメソッドの動作に影響します:
IEnroll4 の RootStoreNameWStr プロパティは、本質的に信頼される自己署名ルート証明書がすべて保管されるルートストアの名前を設定または取得します。(Get)
| szwName | LPWSTR* | inout | ルート証明書ストアの名前を受け取る LPWSTR へのポインタである。 |
解説(Remarks)
RootStoreNameWStr は、次のメソッドの動作に影響します:
IEnroll4 の RootStoreNameWStr プロパティは、本質的に信頼される自己署名ルート証明書がすべて保管されるルートストアの名前を設定または取得します。(Put)
| szwName | LPWSTR | in | ルート証明書ストアの名前を渡す。 |
解説(Remarks)
RootStoreNameWStr は、次のメソッドの動作に影響します:
RootStoreNameWStr プロパティで指定されたストアに使用するストアの種類を設定または取得します。(Get)
| szwType | LPWSTR* | inout | ルート証明書ストアの種類を受け取る LPWSTR へのポインタである。 |
解説(Remarks)
RootStoreTypeWStr は、次のメソッドの動作に影響します:
RootStoreNameWStr プロパティで指定されたストアに使用するストアの種類を設定または取得します。(Put)
| szwType | LPWSTR | in | ルート証明書ストアの種類を渡す。 |
解説(Remarks)
RootStoreTypeWStr は、次のメソッドの動作に影響します:
ルートストアに使用するレジストリの場所を設定または取得します。(Get)
| pdwFlags | INT* | inout | ルート証明書ストアを開く際のフラグを受け取る INT へのポインタである。 |
解説(Remarks)
RootStoreFlags プロパティの値は、 CertOpenStore CryptoAPI 関数の dwFlags パラメーターを通じて渡されます。
RootStoreFlags プロパティは、次のメソッドを使用する前に設定する必要があります:
ルートストアに使用するレジストリの場所を設定または取得します。(Put)
| dwFlags | INT | in | ルート証明書ストアを開く際のフラグを渡す。 |
解説(Remarks)
RootStoreFlags プロパティの値は、 CertOpenStore CryptoAPI 関数の dwFlags パラメーターを通じて渡されます。
RootStoreFlags プロパティは、次のメソッドを使用する前に設定する必要があります:
IEnroll4 の RequestStoreNameWStr プロパティは、ダミー証明書を格納するストアの名前を設定または取得します。(Get)
| szwName | LPWSTR* | inout | 要求(REQUEST)証明書ストアの名前を受け取る LPWSTR へのポインタである。 |
解説(Remarks)
通常、RequestStoreNameWStr プロパティの変更は高度なアプリケーションでのみ行われます。この値を変更することは、ほとんどのアプリケーションでは推奨されません。
RequestStoreNameWStr プロパティは、次のメソッドの動作に影響します:
IEnroll4 の RequestStoreNameWStr プロパティは、ダミー証明書を格納するストアの名前を設定または取得します。(Put)
| szwName | LPWSTR | in | 要求(REQUEST)証明書ストアの名前を渡す。 |
解説(Remarks)
通常、RequestStoreNameWStr プロパティの変更は高度なアプリケーションでのみ行われます。この値を変更することは、ほとんどのアプリケーションでは推奨されません。
RequestStoreNameWStr プロパティは、次のメソッドの動作に影響します:
RequestStoreNameWStr プロパティで指定されたストアに使用するストアの種類を設定または取得します。このストアの種類は CertOpenStore 関数に直接渡されます。(Get)
| szwType | LPWSTR* | inout | 要求(REQUEST)証明書ストアの種類を受け取る LPWSTR へのポインタである。 |
解説(Remarks)
通常、RequestStoreTypeWStr プロパティの変更は高度なアプリケーションでのみ行われます。
RequestStoreTypeWStr は、次のメソッドの動作に影響します:
RequestStoreNameWStr プロパティで指定されたストアに使用するストアの種類を設定または取得します。このストアの種類は CertOpenStore 関数に直接渡されます。(Put)
| szwType | LPWSTR | in | 要求(REQUEST)証明書ストアの種類を渡す。 |
解説(Remarks)
通常、RequestStoreTypeWStr プロパティの変更は高度なアプリケーションでのみ行われます。
RequestStoreTypeWStr は、次のメソッドの動作に影響します:
IEnroll4 の RequestStoreFlags プロパティは、要求ストアに使用するレジストリの場所を設定または取得します。(Get)
| pdwFlags | INT* | inout | 要求(REQUEST)証明書ストアを開く際のフラグを受け取る INT へのポインタである。 |
解説(Remarks)
RequestStoreFlags プロパティの値は、 CertOpenStore CryptoAPI 関数の dwFlags パラメーターを通じて渡されます。
通常、RequestStoreFlags プロパティの変更は高度なアプリケーションでのみ行われます。
RequestStoreFlags プロパティは、次のメソッドを使用する前に設定する必要があります:
IEnroll4 の RequestStoreFlags プロパティは、要求ストアに使用するレジストリの場所を設定または取得します。(Put)
| dwFlags | INT | in | 要求(REQUEST)証明書ストアを開く際のフラグを渡す。 |
解説(Remarks)
RequestStoreFlags プロパティの値は、 CertOpenStore CryptoAPI 関数の dwFlags パラメーターを通じて渡されます。
通常、RequestStoreFlags プロパティの変更は高度なアプリケーションでのみ行われます。
RequestStoreFlags プロパティは、次のメソッドを使用する前に設定する必要があります:
使用するキーコンテナーの名前を設定または取得します。(Get)
| szwContainer | LPWSTR* | inout | 現在のキーコンテナ名を受け取る LPWSTR へのポインタである。 |
解説(Remarks)
指定するコンテナーは、既存のコンテナーでも新しいコンテナーでもかまいません。既存のコンテナーを指定できるのは、 UseExistingKeySet プロパティが設定されていて、かつキーセットがまだ生成されていない場合に限られます。たとえば、あるコンテナーに対して交換キーセットのみが生成されている場合でも、UseExistingKeySet を設定せずに、署名キーセットを使用して証明書の登録(エンロール)を実行できます。事前に UseExistingKeySet を設定しておけば、交換キーセットを使用できます。
既定では、IEnroll コントロールを実行するたびに新しいコンテナーが選択されます。これにより、新しいキーセットが確実に生成されます。このプロパティが明示的に設定されていない場合は、生成された GUID がコンテナー名として使用されます。
ContainerNameWStr プロパティは、次のメソッドの動作に影響します:
使用するキーコンテナーの名前を設定または取得します。(Put)
| szwContainer | LPWSTR | in | 使用するキーコンテナ名を渡す。 |
解説(Remarks)
指定するコンテナーは、既存のコンテナーでも新しいコンテナーでもかまいません。既存のコンテナーを指定できるのは、 UseExistingKeySet プロパティが設定されていて、かつキーセットがまだ生成されていない場合に限られます。たとえば、あるコンテナーに対して交換キーセットのみが生成されている場合でも、UseExistingKeySet を設定せずに、署名キーセットを使用して証明書の登録(エンロール)を実行できます。事前に UseExistingKeySet を設定しておけば、交換キーセットを使用できます。
既定では、IEnroll コントロールを実行するたびに新しいコンテナーが選択されます。これにより、新しいキーセットが確実に生成されます。このプロパティが明示的に設定されていない場合は、生成された GUID がコンテナー名として使用されます。
ContainerNameWStr プロパティは、次のメソッドの動作に影響します:
使用する暗号化サービスプロバイダー (CSP) の名前を設定または取得します。(Get)
| szwProvider | LPWSTR* | inout | 現在の暗号化サービスプロバイダー(CSP)名を受け取る LPWSTR へのポインタである。 |
解説(Remarks)
ProviderNameWStr プロパティは、次のメソッドの動作に影響します:
使用する暗号化サービスプロバイダー (CSP) の名前を設定または取得します。(Put)
| szwProvider | LPWSTR | in | 使用する暗号化サービスプロバイダー(CSP)名を渡す。 |
解説(Remarks)
ProviderNameWStr プロパティは、次のメソッドの動作に影響します:
プロバイダーの種類を設定または取得します。(Get)
| pdwType | INT* | inout | 現在のプロバイダーの種類を受け取る INT へのポインタである。 |
解説(Remarks)
プロバイダーの種類に関する一般的な情報については、 Cryptographic Provider Types を参照してください。
Microsoft Base Cryptographic Provider の有効な値の詳細については、 CryptAcquireContext CryptoAPI 関数を参照してください。
他の CSP のプロバイダーの種類の情報については、その CSP に付属のドキュメントを参照してください。
ProviderType プロパティの値は、CryptAcquireContext の dwProvType パラメーターを通じて渡されます。
ProviderType プロパティは、次のメソッドの動作に影響します:
プロバイダーの種類を設定または取得します。(Put)
| dwType | INT | in | 使用するプロバイダーの種類を渡す。 |
解説(Remarks)
プロバイダーの種類に関する一般的な情報については、 Cryptographic Provider Types を参照してください。
Microsoft Base Cryptographic Provider の有効な値の詳細については、 CryptAcquireContext CryptoAPI 関数を参照してください。
他の CSP のプロバイダーの種類の情報については、その CSP に付属のドキュメントを参照してください。
ProviderType プロパティの値は、CryptAcquireContext の dwProvType パラメーターを通じて渡されます。
ProviderType プロパティは、次のメソッドの動作に影響します:
生成されるキーの種類を設定または取得します。(Get)
| pdw | INT* | inout | 現在のキー仕様(AT_KEYEXCHANGE または AT_SIGNATURE)を受け取る INT へのポインタである。 |
解説(Remarks)
Microsoft Base Cryptographic Provider の場合、KeySpec プロパティの値は、交換キーでは AT_KEYEXCHANGE、署名キーでは AT_SIGNATURE になります。既定値は AT_SIGNATURE です。
他の Microsoft CSP に関する情報については、CryptoAPI 2.0 のドキュメントの Cryptographic Service Providers を参照してください。
他の CSP に関する情報については、その CSP に付属のドキュメントを参照してください。
KeySpec プロパティは、次のメソッドの動作に影響します:
生成されるキーの種類を設定または取得します。(Put)
| dw | INT | in | 使用するキー仕様(AT_KEYEXCHANGE または AT_SIGNATURE)を渡す。 |
解説(Remarks)
Microsoft Base Cryptographic Provider の場合、KeySpec プロパティの値は、交換キーでは AT_KEYEXCHANGE、署名キーでは AT_SIGNATURE になります。既定値は AT_SIGNATURE です。
他の Microsoft CSP に関する情報については、CryptoAPI 2.0 のドキュメントの Cryptographic Service Providers を参照してください。
他の CSP に関する情報については、その CSP に付属のドキュメントを参照してください。
KeySpec プロパティは、次のメソッドの動作に影響します:
IEnroll4 の ProviderFlags プロパティは、プロバイダーの種類を設定または取得します。(Get)
| pdwFlags | INT* | inout | プロバイダーのコンテキスト取得時に使用するフラグを受け取る INT へのポインタである。 |
解説(Remarks)
Microsoft Base Cryptographic Provider に対する有効な ProviderFlags 値の詳細については、 CryptAcquireContext CryptoAPI 関数を参照してください。
他の CSP に関する情報については、その CSP に付属のドキュメントを参照してください。
ProviderFlags プロパティの値は、CryptAcquireContext の dwFlags パラメーターを通じて渡されます。
ProviderFlags プロパティは、次のメソッドの動作に影響します:
IEnroll4 の ProviderFlags プロパティは、プロバイダーの種類を設定または取得します。(Put)
| dwFlags | INT | in | プロバイダーのコンテキスト取得時に使用するフラグを渡す。 |
解説(Remarks)
Microsoft Base Cryptographic Provider に対する有効な ProviderFlags 値の詳細については、 CryptAcquireContext CryptoAPI 関数を参照してください。
他の CSP に関する情報については、その CSP に付属のドキュメントを参照してください。
ProviderFlags プロパティの値は、CryptAcquireContext の dwFlags パラメーターを通じて渡されます。
ProviderFlags プロパティは、次のメソッドの動作に影響します:
IEnroll4 の UseExistingKeySet プロパティは、既存のキーを使用するかどうかを決定するブール値を設定または取得します。(Get)
| fUseExistingKeys | BOOL* | inout | 既存のキーセットを使用するかどうかを受け取る BOOL へのポインタである。 |
解説(Remarks)
既存のキーセットを使用する場合は、UseExistingKeySet プロパティを true に設定する必要があります。
UseExistingKeySet プロパティは、次のメソッドの動作に影響します:
IEnroll4 の UseExistingKeySet プロパティは、既存のキーを使用するかどうかを決定するブール値を設定または取得します。(Put)
| fUseExistingKeys | BOOL | in | 既存のキーセットを使用するかどうかを指定する BOOL 値を渡す。 |
解説(Remarks)
既存のキーセットを使用する場合は、UseExistingKeySet プロパティを true に設定する必要があります。
UseExistingKeySet プロパティは、次のメソッドの動作に影響します:
証明書要求が生成されるときに CryptGenKey に渡される値を設定または取得します。(Get)
| pdwFlags | INT* | inout | キー生成時に使用するフラグを受け取る INT へのポインタである。 |
解説(Remarks)
既定では、.pvk ファイルが要求されない限り、秘密キーはエクスポートできません。.pvk ファイルを指定せずに秘密キーをエクスポート可能にするには、GenKeyFlags を CRYPT_EXPORTABLE に設定します。
.pvk ファイル名を指定するには、 PVKFileNameWStr プロパティを使用します。
GenKeyFlags プロパティの値は、 CryptGenKey CryptoAPI 関数の dwFlags パラメーターを通じて渡されます。
暗号化サービスプロバイダー (CSP) がエクスポート可能な秘密キーをサポートしていない場合は、エラーが発生します。
GenKeyFlags プロパティは、次のメソッドの動作に影響します:
証明書要求が生成されるときに CryptGenKey に渡される値を設定または取得します。(Put)
| dwFlags | INT | in | キー生成時に使用するフラグを渡す。 |
解説(Remarks)
既定では、.pvk ファイルが要求されない限り、秘密キーはエクスポートできません。.pvk ファイルを指定せずに秘密キーをエクスポート可能にするには、GenKeyFlags を CRYPT_EXPORTABLE に設定します。
.pvk ファイル名を指定するには、 PVKFileNameWStr プロパティを使用します。
GenKeyFlags プロパティの値は、 CryptGenKey CryptoAPI 関数の dwFlags パラメーターを通じて渡されます。
暗号化サービスプロバイダー (CSP) がエクスポート可能な秘密キーをサポートしていない場合は、エラーが発生します。
GenKeyFlags プロパティは、次のメソッドの動作に影響します:
IEnroll4 の DeleteRequestCert プロパティは、要求ストア内のダミー証明書を削除するかどうかを決定するブール値を設定または取得します。(Get)
| fDelete | BOOL* | inout | 登録完了後に要求証明書を削除するかどうかを受け取る BOOL へのポインタである。 |
解説(Remarks)
DeleteRequestCert プロパティは、次のメソッドの動作に影響します:
IEnroll4 の DeleteRequestCert プロパティは、要求ストア内のダミー証明書を削除するかどうかを決定するブール値を設定または取得します。(Put)
| fDelete | BOOL | in | 登録完了後に要求証明書を削除するかどうかを指定する BOOL 値を渡す。 |
解説(Remarks)
DeleteRequestCert プロパティは、次のメソッドの動作に影響します:
IEnroll4 の WriteCertToUserDS プロパティは、証明書をユーザーの Active Directory ストアに書き込むかどうかを決定するブール値を設定または取得します。(Get)
| fBool | BOOL* | inout | 証明書をユーザーのディレクトリサービス(DS)エントリに書き込むかどうかを受け取る BOOL へのポインタである。 |
解説(Remarks)
WriteCertToUserDS は、次のメソッドの動作に影響します:
IEnroll4 の WriteCertToUserDS プロパティは、証明書をユーザーの Active Directory ストアに書き込むかどうかを決定するブール値を設定または取得します。(Put)
| fBool | BOOL | in | 証明書をユーザーのディレクトリサービス(DS)エントリに書き込むかどうかを指定する BOOL 値を渡す。 |
解説(Remarks)
WriteCertToUserDS は、次のメソッドの動作に影響します:
要求内の識別名を Unicode 文字列としてではなく T61 文字列としてエンコードするかどうかを決定するブール値を設定または取得します。(Get)
| fBool | BOOL* | inout | 識別名に T61 エンコードを使用するかどうかを受け取る BOOL へのポインタである。 |
解説(Remarks)
EnableT61DNEncoding プロパティは、次のメソッドの動作に影響します:
要求内の識別名を Unicode 文字列としてではなく T61 文字列としてエンコードするかどうかを決定するブール値を設定または取得します。(Put)
| fBool | BOOL | in | 識別名に T61 エンコードを使用するかどうかを指定する BOOL 値を渡す。 |
解説(Remarks)
EnableT61DNEncoding プロパティは、次のメソッドの動作に影響します:
証明書を暗号化サービスプロバイダー (CSP) に書き込むかどうかを決定するブール値を設定または取得します。(Get)
| fBool | BOOL* | inout | 証明書を CSP のキーコンテナに書き込むかどうかを受け取る BOOL へのポインタである。 |
解説(Remarks)
このプロパティは通常スマートカードで使用され、証明書は "MY" ストアに書き込まれるのに加えて、スマートカードにも書き込まれます。
既定値は true です。これは、Certificate Enrollment Control が証明書を CSP に書き込もうとしますが、ハードウェアトークンエラーが発生しない限り失敗しないことを意味します。この値が true でも、スマートカードやその他のハードウェア依存の CSP がインストールされていない場合、ハードウェアトークンエラーは無視されます。
Certificate Enrollment Control が CSP への書き込みを試みないように明示的に強制するには、この値を false に設定します。
WriteCertToCSP は、次のメソッドの動作に影響します:
証明書を暗号化サービスプロバイダー (CSP) に書き込むかどうかを決定するブール値を設定または取得します。(Put)
| fBool | BOOL | in | 証明書を CSP のキーコンテナに書き込むかどうかを指定する BOOL 値を渡す。 |
解説(Remarks)
このプロパティは通常スマートカードで使用され、証明書は "MY" ストアに書き込まれるのに加えて、スマートカードにも書き込まれます。
既定値は true です。これは、Certificate Enrollment Control が証明書を CSP に書き込もうとしますが、ハードウェアトークンエラーが発生しない限り失敗しないことを意味します。この値が true でも、スマートカードやその他のハードウェア依存の CSP がインストールされていない場合、ハードウェアトークンエラーは無視されます。
Certificate Enrollment Control が CSP への書き込みを試みないように明示的に強制するには、この値を false に設定します。
WriteCertToCSP は、次のメソッドの動作に影響します:
IEnroll4 の SPCFileNameWStr プロパティは、base64 エンコードされた PKCS を書き込むファイルの名前を設定または取得します。(Get)
| szw | LPWSTR* | inout | ソフトウェア発行元証明書(SPC)ファイルのパスを受け取る LPWSTR へのポインタである。 |
解説(Remarks)
ファイルはバイナリ PKCS #7 として書き込まれます。このファイルを指定しても、ユーザーのいずれかのストアへの証明書の受け入れには影響しません。
ファイルが既に存在する場合は、ユーザーに通知され、上書きの許可を求められます。
SPCFileNameWStr は、次のメソッドの動作に影響します:
IEnroll4 の SPCFileNameWStr プロパティは、base64 エンコードされた PKCS を書き込むファイルの名前を設定または取得します。(Put)
| szw | LPWSTR | in | ソフトウェア発行元証明書(SPC)ファイルのパスを渡す。 |
解説(Remarks)
ファイルはバイナリ PKCS #7 として書き込まれます。このファイルを指定しても、ユーザーのいずれかのストアへの証明書の受け入れには影響しません。
ファイルが既に存在する場合は、ユーザーに通知され、上書きの許可を求められます。
SPCFileNameWStr は、次のメソッドの動作に影響します:
エクスポートされたキーを格納するファイルの名前を設定または取得します。(Get)
| szw | LPWSTR* | inout | 秘密キー(PVK)ファイルのパスを受け取る LPWSTR へのポインタである。 |
解説(Remarks)
PVKFileNameWStr プロパティは、次のメソッドの動作に影響します:
エクスポート機能は、暗号化サービスプロバイダー (CSP) によってはサポートされていない場合があります。従来、Authenticode は秘密キーをディスク上の .pvk ファイルにエクスポートし、レジストリからキーを削除してきました。既定では、秘密キーはエクスポート用には生成されず、多くの暗号化サービスプロバイダーはキーのエクスポートをサポートしていません。ただし、CSP が秘密キーのエクスポートをサポートしている場合、PVKFileNameWStr プロパティに NULL 以外の値を指定すると、秘密キーがエクスポート可能として生成され、秘密キーと公開キーが PVKFileNameWStr プロパティで指定されたファイルに書き込まれます。秘密キーは CSP から削除されます。プロパティで指定するファイル名は、アクセス可能な任意のファイルにできます。既定では、.pvk ファイルは生成されず、キーはエクスポート可能としては生成されません。
.pvk ファイルが既に存在する場合は、ユーザーに通知され、上書きの許可を求められます。
GenKeyFlags プロパティにも、秘密キーをエクスポートできるかどうかを制御するフラグがあります。GenKeyFlags プロパティと PVKFileNameWStr プロパティを一緒に使用するときは注意してください。PVKFileNameWStr プロパティを先に設定すると、GenKeyFlags プロパティは自動的に CRYPT_EXPORTABLE に設定されます。GenKeyFlags プロパティが(put_GenKeyFlags 関数を使用して)CRYPT_EXPORTABLE フラグを含めずに設定された場合、GenKeyFlags は CRYPT_EXPORTABLE に設定されず、生成されるキーはエクスポートできません。次の手順はこれを示しています:
- put_PVKFileNameWStr を呼び出して、エクスポートされたキーを受け取るファイルのファイル名を設定します。GenKeyFlags プロパティは自動的に CRYPT_EXPORTABLE に設定されます。
- CRYPT_EXPORTABLE に設定されていない値(たとえば 0)を指定して put_GenKeyFlags を呼び出します。
- GenKeyFlags は CRYPT_EXPORTABLE に設定されなくなります(手順 1 で自動的に設定された値)。
前述の手順に従って生成されたキーは、エクスポートできません。したがって、これらを一緒に使用する場合は、PVKFileNameWStr プロパティより先に GenKeyFlags プロパティを設定することをお勧めします。
あるいは、GenKeyFlags プロパティ内の CRYPT_EXPORTABLE ビットの現在の値を確認し、その値と GenKeyFlags プロパティに加える変更との間でビットごとの OR 演算を実行して、そのビットが消去されないようにすることもできます。GenKeyFlags プロパティを更新するときに、CRYPT_EXPORTABLE ビットを明示的に設定することもできます。
エクスポートされたキーを格納するファイルの名前を設定または取得します。(Put)
| szw | LPWSTR | in | 秘密キー(PVK)ファイルのパスを渡す。 |
解説(Remarks)
PVKFileNameWStr プロパティは、次のメソッドの動作に影響します:
エクスポート機能は、暗号化サービスプロバイダー (CSP) によってはサポートされていない場合があります。従来、Authenticode は秘密キーをディスク上の .pvk ファイルにエクスポートし、レジストリからキーを削除してきました。既定では、秘密キーはエクスポート用には生成されず、多くの暗号化サービスプロバイダーはキーのエクスポートをサポートしていません。ただし、CSP が秘密キーのエクスポートをサポートしている場合、PVKFileNameWStr プロパティに NULL 以外の値を指定すると、秘密キーがエクスポート可能として生成され、秘密キーと公開キーが PVKFileNameWStr プロパティで指定されたファイルに書き込まれます。秘密キーは CSP から削除されます。プロパティで指定するファイル名は、アクセス可能な任意のファイルにできます。既定では、.pvk ファイルは生成されず、キーはエクスポート可能としては生成されません。
.pvk ファイルが既に存在する場合は、ユーザーに通知され、上書きの許可を求められます。
GenKeyFlags プロパティにも、秘密キーをエクスポートできるかどうかを制御するフラグがあります。GenKeyFlags プロパティと PVKFileNameWStr プロパティを一緒に使用するときは注意してください。PVKFileNameWStr プロパティを先に設定すると、GenKeyFlags プロパティは自動的に CRYPT_EXPORTABLE に設定されます。GenKeyFlags プロパティが(put_GenKeyFlags 関数を使用して)CRYPT_EXPORTABLE フラグを含めずに設定された場合、GenKeyFlags は CRYPT_EXPORTABLE に設定されず、生成されるキーはエクスポートできません。次の手順はこれを示しています:
- put_PVKFileNameWStr を呼び出して、エクスポートされたキーを受け取るファイルのファイル名を設定します。GenKeyFlags プロパティは自動的に CRYPT_EXPORTABLE に設定されます。
- CRYPT_EXPORTABLE に設定されていない値(たとえば 0)を指定して put_GenKeyFlags を呼び出します。
- GenKeyFlags は CRYPT_EXPORTABLE に設定されなくなります(手順 1 で自動的に設定された値)。
前述の手順に従って生成されたキーは、エクスポートできません。したがって、これらを一緒に使用する場合は、PVKFileNameWStr プロパティより先に GenKeyFlags プロパティを設定することをお勧めします。
あるいは、GenKeyFlags プロパティ内の CRYPT_EXPORTABLE ビットの現在の値を確認し、その値と GenKeyFlags プロパティに加える変更との間でビットごとの OR 演算を実行して、そのビットが消去されないようにすることもできます。GenKeyFlags プロパティを更新するときに、CRYPT_EXPORTABLE ビットを明示的に設定することもできます。
PKCS に署名するために使用する署名ハッシュアルゴリズムのみを設定または取得します。(IEnroll.get_HashAlgorithmWStr)
| szw | LPWSTR* | inout | 使用するハッシュアルゴリズム名を受け取る LPWSTR へのポインタである。 |
解説(Remarks)
この署名ハッシュアルゴリズムは、証明書に署名するために使用されるハッシュアルゴリズムと混同しないでください。登録(エンロール)コントロールは現在、ハッシュアルゴリズムとして任意の OID に加えて、次の表示名の値をサポートしています: SHA1(既定値)、MD2、および MD5。このプロパティを取得すると、取得される値は OID 形式になります(つまり、SHA1 は 1.3.14.3.2.29 として表示されます)。このプロパティを設定するときは、定義済みのフレンドリ値として示されるテキストの代わりに、対応する OID 形式を使用できます。
Certificate Enrollment Control は、HashAlgorithmWStr プロパティの値を、PKCS #10 証明書要求への署名に使用するハッシュアルゴリズムのヒントとして扱います。暗号化サービスプロバイダー (CSP) が HashAlgorithmWStr プロパティで指定されたアルゴリズムをサポートしている場合、そのアルゴリズムが使用されます。サポートしていない場合、Certificate Enrollment Control は SHA1 の使用を試みます。SHA1 が CSP でサポートされていない場合は、MD5 が試されます。SHA1 も MD5 もサポートされていない場合、Certificate Enrollment Control は CSP から返された最初のハッシュアルゴリズムの使用を試みます。
HashAlgorithmWStr プロパティは、次のメソッドの動作に影響します:
HashAlgID プロパティと HashAlgorithmWStr プロパティの両方が設定されている場合、PKCS #10 証明書要求への署名にどのハッシュアルゴリズムが使用されるかは、最後に更新された方によって指定されます。
PKCS に署名するために使用する署名ハッシュアルゴリズムのみを設定または取得します。(IEnroll.put_HashAlgorithmWStr)
| szw | LPWSTR | in | 使用するハッシュアルゴリズム名を渡す。 |
解説(Remarks)
この署名ハッシュアルゴリズムは、証明書に署名するために使用されるハッシュアルゴリズムと混同しないでください。登録(エンロール)コントロールは現在、ハッシュアルゴリズムとして任意の OID に加えて、次の表示名の値をサポートしています: SHA1(既定値)、MD2、および MD5。このプロパティを取得すると、取得される値は OID 形式になります(つまり、SHA1 は 1.3.14.3.2.29 として表示されます)。このプロパティを設定するときは、定義済みのフレンドリ値として示されるテキストの代わりに、対応する OID 形式を使用できます。
Certificate Enrollment Control は、HashAlgorithmWStr プロパティの値を、PKCS #10 証明書要求への署名に使用するハッシュアルゴリズムのヒントとして扱います。暗号化サービスプロバイダー (CSP) が HashAlgorithmWStr プロパティで指定されたアルゴリズムをサポートしている場合、そのアルゴリズムが使用されます。サポートしていない場合、Certificate Enrollment Control は SHA1 の使用を試みます。SHA1 が CSP でサポートされていない場合は、MD5 が試されます。SHA1 も MD5 もサポートされていない場合、Certificate Enrollment Control は CSP から返された最初のハッシュアルゴリズムの使用を試みます。
HashAlgorithmWStr プロパティは、次のメソッドの動作に影響します:
HashAlgID プロパティと HashAlgorithmWStr プロパティの両方が設定されている場合、PKCS #10 証明書要求への署名にどのハッシュアルゴリズムが使用されるかは、最後に更新された方によって指定されます。
更新証明書の証明書コンテキストを指定します。(Get)
| ppCertContext | CERT_CONTEXT** | inout | 更新対象の証明書コンテキストを受け取る CERT_CONTEXT ポインタへのポインタである。 |
解説(Remarks)
証明書更新要求を作成する方法の詳細については、「Creating Certificate Requests Using the Certificate Enrollment Control and CryptoAPI」の Creating a Renewal Request を参照してください。
更新証明書の証明書コンテキストを指定します。(Put)
| pCertContext | CERT_CONTEXT* | in | 更新対象として設定する証明書コンテキストへのポインタを渡す。 |
解説(Remarks)
証明書更新要求を作成する方法の詳細については、「Creating Certificate Requests Using the Certificate Enrollment Control and CryptoAPI」の Creating a Renewal Request を参照してください。
証明書テンプレートを要求に追加します(エンタープライズ証明機関 (CA) をサポートするために使用します)。
| szw | LPWSTR | in | 証明書要求に追加される証明書テンプレートの完全修飾名。この値は証明機関によって解釈されます。 |
戻り値
戻り値は HRESULT で、呼び出しが成功した場合は S_OK が返されます。
解説(Remarks)
要求に対して複数の証明書テンプレートが必要な場合は、このメソッドを複数回呼び出すことができます。
属性の認証済み名前と値のペアを要求に追加します。名前と値のペアの意味は証明機関 (CA) が解釈します。
| Name | LPWSTR | in | 属性の名前を格納する、null で終わる Unicode 文字列。たとえば、国/地域名を表す "2.5.4.6" などです。 |
| Value | LPWSTR | in | 属性の値を格納する、null で終わる Unicode 文字列。たとえば、"US" や "DomainName\UserID" などです。 |
戻り値
戻り値は HRESULT で、呼び出しが成功した場合は S_OK が返されます。
解説(Remarks)
AddNameValuePairToSignatureWStr メソッドは、要求に属性を追加するために使用します。
AddExtensionsToRequest メソッドは、証明書要求に拡張を追加します。このメソッドは IEnroll インターフェースで最初に定義されました。
| pCertExtensions | CERT_EXTENSIONS* | inout | 要求に追加する拡張を表す CERT_EXTENSIONS 構造体へのポインター。 |
戻り値
戻り値は HRESULT で、呼び出しが成功した場合は S_OK が返されます。
AddAuthenticatedAttributesToPKCS7Request メソッドは、認証済み属性を PKCS に追加します。
| pAttributes | CRYPT_ATTRIBUTES* | inout | PKCS #7 証明書要求に追加する認証済み属性を表す CRYPT_ATTRIBUTES 構造体へのポインター。 |
戻り値
戻り値は HRESULT で、呼び出しが成功した場合は S_OK が返されます。
CreatePKCS7RequestFromRequest メソッドは、PKCS を作成します。
| pRequest | CRYPT_INTEGER_BLOB* | inout | 既存の要求を表す CRYPT_DATA_BLOB 構造体へのポインター。 |
| pSigningCertContext | CERT_CONTEXT* | in | 要求への署名に使用する証明書を表す CERT_CONTEXT 構造体へのポインター。 |
| pPkcs7Blob | CRYPT_INTEGER_BLOB* | inout | 返される PKCS #7 証明書要求を受け取る CRYPT_DATA_BLOB 構造体へのポインター。 このメモリの使用が終わったら、この構造体の pbData メンバーを CoTaskMemFree 関数に渡して解放してください。 |
戻り値
メソッドが成功した場合、S_OK を返します。
メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IEnroll "{ACAA7838-4585-11D1-AB57-00C04FC295E1}" #usecom global IEnroll IID_IEnroll "{}" #comfunc global IEnroll_createFilePKCS10WStr 3 wstr,wstr,wstr #comfunc global IEnroll_acceptFilePKCS7WStr 4 wstr #comfunc global IEnroll_createPKCS10WStr 5 wstr,wstr,var #comfunc global IEnroll_acceptPKCS7Blob 6 var #comfunc global IEnroll_getCertContextFromPKCS7 7 var #comfunc global IEnroll_getMyStore 8 #comfunc global IEnroll_getCAStore 9 #comfunc global IEnroll_getROOTHStore 10 #comfunc global IEnroll_enumProvidersWStr 11 int,int,var #comfunc global IEnroll_enumContainersWStr 12 int,var #comfunc global IEnroll_freeRequestInfoBlob 13 int #comfunc global IEnroll_get_MyStoreNameWStr 14 var #comfunc global IEnroll_put_MyStoreNameWStr 15 wstr #comfunc global IEnroll_get_MyStoreTypeWStr 16 var #comfunc global IEnroll_put_MyStoreTypeWStr 17 wstr #comfunc global IEnroll_get_MyStoreFlags 18 var #comfunc global IEnroll_put_MyStoreFlags 19 int #comfunc global IEnroll_get_CAStoreNameWStr 20 var #comfunc global IEnroll_put_CAStoreNameWStr 21 wstr #comfunc global IEnroll_get_CAStoreTypeWStr 22 var #comfunc global IEnroll_put_CAStoreTypeWStr 23 wstr #comfunc global IEnroll_get_CAStoreFlags 24 var #comfunc global IEnroll_put_CAStoreFlags 25 int #comfunc global IEnroll_get_RootStoreNameWStr 26 var #comfunc global IEnroll_put_RootStoreNameWStr 27 wstr #comfunc global IEnroll_get_RootStoreTypeWStr 28 var #comfunc global IEnroll_put_RootStoreTypeWStr 29 wstr #comfunc global IEnroll_get_RootStoreFlags 30 var #comfunc global IEnroll_put_RootStoreFlags 31 int #comfunc global IEnroll_get_RequestStoreNameWStr 32 var #comfunc global IEnroll_put_RequestStoreNameWStr 33 wstr #comfunc global IEnroll_get_RequestStoreTypeWStr 34 var #comfunc global IEnroll_put_RequestStoreTypeWStr 35 wstr #comfunc global IEnroll_get_RequestStoreFlags 36 var #comfunc global IEnroll_put_RequestStoreFlags 37 int #comfunc global IEnroll_get_ContainerNameWStr 38 var #comfunc global IEnroll_put_ContainerNameWStr 39 wstr #comfunc global IEnroll_get_ProviderNameWStr 40 var #comfunc global IEnroll_put_ProviderNameWStr 41 wstr #comfunc global IEnroll_get_ProviderType 42 var #comfunc global IEnroll_put_ProviderType 43 int #comfunc global IEnroll_get_KeySpec 44 var #comfunc global IEnroll_put_KeySpec 45 int #comfunc global IEnroll_get_ProviderFlags 46 var #comfunc global IEnroll_put_ProviderFlags 47 int #comfunc global IEnroll_get_UseExistingKeySet 48 var #comfunc global IEnroll_put_UseExistingKeySet 49 int #comfunc global IEnroll_get_GenKeyFlags 50 var #comfunc global IEnroll_put_GenKeyFlags 51 int #comfunc global IEnroll_get_DeleteRequestCert 52 var #comfunc global IEnroll_put_DeleteRequestCert 53 int #comfunc global IEnroll_get_WriteCertToUserDS 54 var #comfunc global IEnroll_put_WriteCertToUserDS 55 int #comfunc global IEnroll_get_EnableT61DNEncoding 56 var #comfunc global IEnroll_put_EnableT61DNEncoding 57 int #comfunc global IEnroll_get_WriteCertToCSP 58 var #comfunc global IEnroll_put_WriteCertToCSP 59 int #comfunc global IEnroll_get_SPCFileNameWStr 60 var #comfunc global IEnroll_put_SPCFileNameWStr 61 wstr #comfunc global IEnroll_get_PVKFileNameWStr 62 var #comfunc global IEnroll_put_PVKFileNameWStr 63 wstr #comfunc global IEnroll_get_HashAlgorithmWStr 64 var #comfunc global IEnroll_put_HashAlgorithmWStr 65 wstr #comfunc global IEnroll_get_RenewalCertificate 66 var #comfunc global IEnroll_put_RenewalCertificate 67 var #comfunc global IEnroll_AddCertTypeToRequestWStr 68 wstr #comfunc global IEnroll_AddNameValuePairToSignatureWStr 69 wstr,wstr #comfunc global IEnroll_AddExtensionsToRequest 70 var #comfunc global IEnroll_AddAuthenticatedAttributesToPKCS7Request 71 var #comfunc global IEnroll_CreatePKCS7RequestFromRequest 72 var,var,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IEnroll "{ACAA7838-4585-11D1-AB57-00C04FC295E1}" #usecom global IEnroll IID_IEnroll "{}" #comfunc global IEnroll_createFilePKCS10WStr 3 wstr,wstr,wstr #comfunc global IEnroll_acceptFilePKCS7WStr 4 wstr #comfunc global IEnroll_createPKCS10WStr 5 wstr,wstr,sptr #comfunc global IEnroll_acceptPKCS7Blob 6 sptr #comfunc global IEnroll_getCertContextFromPKCS7 7 sptr #comfunc global IEnroll_getMyStore 8 #comfunc global IEnroll_getCAStore 9 #comfunc global IEnroll_getROOTHStore 10 #comfunc global IEnroll_enumProvidersWStr 11 int,int,sptr #comfunc global IEnroll_enumContainersWStr 12 int,sptr #comfunc global IEnroll_freeRequestInfoBlob 13 int #comfunc global IEnroll_get_MyStoreNameWStr 14 sptr #comfunc global IEnroll_put_MyStoreNameWStr 15 wstr #comfunc global IEnroll_get_MyStoreTypeWStr 16 sptr #comfunc global IEnroll_put_MyStoreTypeWStr 17 wstr #comfunc global IEnroll_get_MyStoreFlags 18 sptr #comfunc global IEnroll_put_MyStoreFlags 19 int #comfunc global IEnroll_get_CAStoreNameWStr 20 sptr #comfunc global IEnroll_put_CAStoreNameWStr 21 wstr #comfunc global IEnroll_get_CAStoreTypeWStr 22 sptr #comfunc global IEnroll_put_CAStoreTypeWStr 23 wstr #comfunc global IEnroll_get_CAStoreFlags 24 sptr #comfunc global IEnroll_put_CAStoreFlags 25 int #comfunc global IEnroll_get_RootStoreNameWStr 26 sptr #comfunc global IEnroll_put_RootStoreNameWStr 27 wstr #comfunc global IEnroll_get_RootStoreTypeWStr 28 sptr #comfunc global IEnroll_put_RootStoreTypeWStr 29 wstr #comfunc global IEnroll_get_RootStoreFlags 30 sptr #comfunc global IEnroll_put_RootStoreFlags 31 int #comfunc global IEnroll_get_RequestStoreNameWStr 32 sptr #comfunc global IEnroll_put_RequestStoreNameWStr 33 wstr #comfunc global IEnroll_get_RequestStoreTypeWStr 34 sptr #comfunc global IEnroll_put_RequestStoreTypeWStr 35 wstr #comfunc global IEnroll_get_RequestStoreFlags 36 sptr #comfunc global IEnroll_put_RequestStoreFlags 37 int #comfunc global IEnroll_get_ContainerNameWStr 38 sptr #comfunc global IEnroll_put_ContainerNameWStr 39 wstr #comfunc global IEnroll_get_ProviderNameWStr 40 sptr #comfunc global IEnroll_put_ProviderNameWStr 41 wstr #comfunc global IEnroll_get_ProviderType 42 sptr #comfunc global IEnroll_put_ProviderType 43 int #comfunc global IEnroll_get_KeySpec 44 sptr #comfunc global IEnroll_put_KeySpec 45 int #comfunc global IEnroll_get_ProviderFlags 46 sptr #comfunc global IEnroll_put_ProviderFlags 47 int #comfunc global IEnroll_get_UseExistingKeySet 48 sptr #comfunc global IEnroll_put_UseExistingKeySet 49 int #comfunc global IEnroll_get_GenKeyFlags 50 sptr #comfunc global IEnroll_put_GenKeyFlags 51 int #comfunc global IEnroll_get_DeleteRequestCert 52 sptr #comfunc global IEnroll_put_DeleteRequestCert 53 int #comfunc global IEnroll_get_WriteCertToUserDS 54 sptr #comfunc global IEnroll_put_WriteCertToUserDS 55 int #comfunc global IEnroll_get_EnableT61DNEncoding 56 sptr #comfunc global IEnroll_put_EnableT61DNEncoding 57 int #comfunc global IEnroll_get_WriteCertToCSP 58 sptr #comfunc global IEnroll_put_WriteCertToCSP 59 int #comfunc global IEnroll_get_SPCFileNameWStr 60 sptr #comfunc global IEnroll_put_SPCFileNameWStr 61 wstr #comfunc global IEnroll_get_PVKFileNameWStr 62 sptr #comfunc global IEnroll_put_PVKFileNameWStr 63 wstr #comfunc global IEnroll_get_HashAlgorithmWStr 64 sptr #comfunc global IEnroll_put_HashAlgorithmWStr 65 wstr #comfunc global IEnroll_get_RenewalCertificate 66 sptr #comfunc global IEnroll_put_RenewalCertificate 67 sptr #comfunc global IEnroll_AddCertTypeToRequestWStr 68 wstr #comfunc global IEnroll_AddNameValuePairToSignatureWStr 69 wstr,wstr #comfunc global IEnroll_AddExtensionsToRequest 70 sptr #comfunc global IEnroll_AddAuthenticatedAttributesToPKCS7Request 71 sptr #comfunc global IEnroll_CreatePKCS7RequestFromRequest 72 sptr,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。