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

IEnroll

COM
IIDacaa7838-4585-11d1-ab57-00c04fc295e1継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

Certificate Enrollment Control を表し、主に証明書要求の生成に使用されます。(IEnroll)

メソッド 70

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT createFilePKCS10WStr(LPWSTR DNName, LPWSTR Usage, LPWSTR wszPKCS10FileName)

base64 エンコードされた PKCS を作成します。(IEnroll.createFilePKCS10WStr)

DNNameLPWSTRin要求の対象となるエンティティの識別名 (DN)。DNNameX.500 の命名規則に従う必要があります。たとえば "CN=User, O=Microsoft" のようになります。2 文字のプレフィックスが存在しない場合は、代わりにオブジェクト識別子 (OID) を指定できます。
UsageLPWSTRin

生成される証明書の用途を記述する OID。たとえば、個人用または商用の Authenticode 証明書、あるいはクライアント認証などです。コンマで区切って複数の OID を指定することもできます。

OID は PKCS #10 要求にそのまま渡されます。コントロールは OID を検査しません。

wszPKCS10FileNameLPWSTRinbase64 エンコードされた PKCS #10 を保存するファイルの名前。このファイルの内容は、処理のために証明機関 (CA) に送信できます。

解説(Remarks)

既定では、Microsoft Base Cryptographic Provider が使用され、一意の署名キーが作成されます。

vtbl 4 HRESULT acceptFilePKCS7WStr(LPWSTR wszPKCS7FileName)

PKCS を受け入れて処理します。(IEnroll.acceptFilePKCS7WStr)

wszPKCS7FileNameLPWSTRinPKCS #7 を格納しているファイルの名前を指定します。

戻り値

戻り値は HRESULT です。S_OK は成功を示します。この関数が正常に完了すると、ファイル内の PKCS #7 が受け入れられます。

解説(Remarks)

既定では、証明書の保存に MY、CA、ROOT、REQUEST の各システムストアが使用されます。ただし、このメソッドを呼び出す前に次のプロパティを設定することで、他のストアを指定できます:

vtbl 5 HRESULT createPKCS10WStr(LPWSTR DNName, LPWSTR Usage, CRYPT_INTEGER_BLOB* pPkcs10Blob)

base64 エンコードされた PKCS を作成します。(IEnroll.createPKCS10WStr)

DNNameLPWSTRin要求の対象となるエンティティの識別名 (DN) を格納する、null で終わる Unicode 文字列。このパラメーターでは、DN 名は X.500 の命名規則に従う必要があります。たとえば "CN=User, O=Microsoft" のようになります。2 文字のプレフィックスが存在しない場合は、代わりにオブジェクト識別子 (OID) を指定できます。
UsageLPWSTRin

生成される証明書の用途を記述する OID を格納する、null で終わる Unicode 文字列。たとえば、個人用または商用の Authenticode 証明書、あるいはクライアント認証などです。コンマで区切って複数の OID を指定することもできます。

OID は PKCS #10 要求にそのまま渡されます。一般的な拡張性と理解のしやすさのため、コントロールは特定用途の OID を解釈しようとはしません。したがって、クライアント認証の OID を指定しても、生成されるキーは交換キーではなく、依然として署名キーになります。

pPkcs10BlobCRYPT_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 で、署名キーが作成され、一意の新しいキーセットが作成されます。

vtbl 6 HRESULT acceptPKCS7Blob(CRYPT_INTEGER_BLOB* pBlobPKCS7)

PKCS を受け入れて処理します。(IEnroll.acceptPKCS7Blob)

pBlobPKCS7CRYPT_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 の各システムストアが使用されます。ただし、このメソッドを呼び出す前に次のプロパティを設定することで、他のストアを指定できます:

vtbl 7 CERT_CONTEXT* getCertContextFromPKCS7(CRYPT_INTEGER_BLOB* pBlobPKCS7)

PKCS に基づいて証明書コンテキストを取得します。

pBlobPKCS7CRYPT_INTEGER_BLOB*inoutPKCS #7 を表す CRYPT_DATA_BLOB 構造体へのポインター。

戻り値

戻り値は、証明書コンテキストを表す CERT_CONTEXT へのポインターです。メソッドが失敗した場合は NULL です。

vtbl 8 HCERTSTORE getMyStore()

getMyStore メソッドは実装されていません。

戻り値

このメソッドは常に NULL を返します。GetLastErrorERROR_CALL_NOT_IMPLEMENTED を返します。

vtbl 9 HCERTSTORE getCAStore()

getCAStore メソッドは実装されていません。

戻り値

このメソッドは常に NULL を返します。GetLastErrorERROR_CALL_NOT_IMPLEMENTED を返します。

vtbl 10 HCERTSTORE getROOTHStore()

getROOTHStore メソッドは実装されていません。

戻り値

このメソッドは常に NULL を返します。GetLastErrorERROR_CALL_NOT_IMPLEMENTED を返します。

vtbl 11 HRESULT enumProvidersWStr(INT dwIndex, INT dwFlags, LPWSTR* pbstrProvName)

IEnroll4::enumProvidersWStr メソッドは、ProviderType プロパティで指定された、利用可能な暗号化サービスプロバイダー (CSP) の名前を取得します。

dwIndexINTin名前を取得する CSP の序数位置を指定します。最初の CSP の場合は 0 を指定します。
dwFlagsINTinCryptEnumProviders 関数にそのまま渡されるフラグを指定します。現在は使用されていません。0 を指定してください。
pbstrProvNameLPWSTR*inout指定したプロパティの種類を持つ CSP の名前を受け取る LPWSTR 変数へのポインター。

戻り値

戻り値は HRESULT です。S_OK は成功を示します。 ProviderType プロパティで示される種類を持つ CSP が他になくなると、ERROR_NO_MORE_ITEMS が返されます。

解説(Remarks)

ProviderType プロパティの値が設定されていない場合は、レジストリに設定されている ProviderType の既定値(通常は PROV_RSA_FULL)が使用されます。

enumProvidersWStr メソッドは CryptEnumProviders 関数を呼び出します。

vtbl 12 HRESULT enumContainersWStr(INT dwIndex, LPWSTR* pbstr)

ProviderNameWStr プロパティで指定された暗号化サービスプロバイダー (CSP) のコンテナーの名前を取得します。

dwIndexINTin名前を取得するコンテナーの序数位置を指定します。最初のコンテナーの場合は 0 を指定します。
pbstrLPWSTR*inoutコンテナーの名前を受け取る LPWSTR 変数へのポインター。

戻り値

戻り値は HRESULT です。S_OK は成功を示します。項目が他になくなると、ERROR_NO_MORE_ITEMS が返されます。

解説(Remarks)

ProviderNameWStr プロパティの値が設定されていない場合は、レジストリに設定されている ProviderNameWStr の既定値(通常は Microsoft Base Cryptographic Provider)が使用されます。

vtbl 13 HRESULT freeRequestInfoBlob(CRYPT_INTEGER_BLOB pkcs7OrPkcs10)

freeRequestInfoBlob メソッドは、証明書コンテキストを削除します。このメソッドは IEnroll インターフェースで最初に定義されました。

pkcs7OrPkcs10CRYPT_INTEGER_BLOBinコンテキストが削除されるセッション情報を指定する CRYPT_DATA_BLOB 構造体。

戻り値

戻り値は HRESULT です。S_OK は成功を示します。

vtbl 14 HRESULT get_MyStoreNameWStr(LPWSTR* szwName)

IEnroll4 の MyStoreNameWStr プロパティは、リンクされた秘密キーを持つ証明書が保管されるストアの名前を設定または取得します。(Get)

szwNameLPWSTR*inout個人(MY)証明書ストアの名前を受け取る LPWSTR へのポインタである。

解説(Remarks)

MyStoreNameWStr プロパティは、次のメソッドの動作に影響します:

vtbl 15 HRESULT put_MyStoreNameWStr(LPWSTR szwName)

IEnroll4 の MyStoreNameWStr プロパティは、リンクされた秘密キーを持つ証明書が保管されるストアの名前を設定または取得します。(Put)

szwNameLPWSTRin個人(MY)証明書ストアの名前を渡す。

解説(Remarks)

MyStoreNameWStr プロパティは、次のメソッドの動作に影響します:

vtbl 16 HRESULT get_MyStoreTypeWStr(LPWSTR* szwType)

MyStoreTypeWStr プロパティで指定されたストアの種類を設定または取得します。(Get)

szwTypeLPWSTR*inout個人(MY)証明書ストアの種類を受け取る LPWSTR へのポインタである。

解説(Remarks)

MyStoreTypeWStr プロパティは、次のメソッドの動作に影響します:

vtbl 17 HRESULT put_MyStoreTypeWStr(LPWSTR szwType)

MyStoreTypeWStr プロパティで指定されたストアの種類を設定または取得します。(Put)

szwTypeLPWSTRin個人(MY)証明書ストアの種類を渡す。

解説(Remarks)

MyStoreTypeWStr プロパティは、次のメソッドの動作に影響します:

vtbl 18 HRESULT get_MyStoreFlags(INT* pdwFlags)

MY ストアに使用するレジストリの場所を設定または取得します。(Get)

pdwFlagsINT*inout個人(MY)証明書ストアを開く際のフラグを受け取る INT へのポインタである。

解説(Remarks)

MyStoreFlags プロパティの値は、 CertOpenStore CryptoAPI 関数の dwFlags パラメーターを通じて渡されます。

MyStoreFlags プロパティは、次のメソッドを使用する前に設定する必要があります:

vtbl 19 HRESULT put_MyStoreFlags(INT dwFlags)

MY ストアに使用するレジストリの場所を設定または取得します。(Put)

dwFlagsINTin個人(MY)証明書ストアを開く際のフラグを渡す。

解説(Remarks)

MyStoreFlags プロパティの値は、 CertOpenStore CryptoAPI 関数の dwFlags パラメーターを通じて渡されます。

MyStoreFlags プロパティは、次のメソッドを使用する前に設定する必要があります:

vtbl 20 HRESULT get_CAStoreNameWStr(LPWSTR* szwName)

IEnroll4 の CAStoreNameWStr プロパティは、"ROOT" でも "MY" でもないすべての証明書が保管されるストアの名前を設定または取得します。(Get)

szwNameLPWSTR*inout中間 CA 証明書ストアの名前を受け取る LPWSTR へのポインタである。

解説(Remarks)

CAStoreNameWStr プロパティは、次のメソッドの動作に影響します:

vtbl 21 HRESULT put_CAStoreNameWStr(LPWSTR szwName)

IEnroll4 の CAStoreNameWStr プロパティは、"ROOT" でも "MY" でもないすべての証明書が保管されるストアの名前を設定または取得します。(Put)

szwNameLPWSTRin中間 CA 証明書ストアの名前を渡す。

解説(Remarks)

CAStoreNameWStr プロパティは、次のメソッドの動作に影響します:

vtbl 22 HRESULT get_CAStoreTypeWStr(LPWSTR* szwType)

CAStoreNameWStr プロパティで指定されたストアに使用するストアの種類を設定または取得します。(Get)

szwTypeLPWSTR*inout中間 CA 証明書ストアの種類を受け取る LPWSTR へのポインタである。

解説(Remarks)

CAStoreTypeWStr プロパティは、次のメソッドの動作に影響します:

vtbl 23 HRESULT put_CAStoreTypeWStr(LPWSTR szwType)

CAStoreNameWStr プロパティで指定されたストアに使用するストアの種類を設定または取得します。(Put)

szwTypeLPWSTRin中間 CA 証明書ストアの種類を渡す。

解説(Remarks)

CAStoreTypeWStr プロパティは、次のメソッドの動作に影響します:

vtbl 24 HRESULT get_CAStoreFlags(INT* pdwFlags)

IEnroll4 の CAStoreFlags プロパティは、ストアが開かれるときに証明機関 (CA) ストアを制御するフラグを設定または取得します。(Get)

pdwFlagsINT*inout中間 CA 証明書ストアを開く際のフラグを受け取る INT へのポインタである。

解説(Remarks)

CAStoreFlags プロパティは、次のメソッドの動作に影響します:

vtbl 25 HRESULT put_CAStoreFlags(INT dwFlags)

IEnroll4 の CAStoreFlags プロパティは、ストアが開かれるときに証明機関 (CA) ストアを制御するフラグを設定または取得します。(Put)

dwFlagsINTin中間 CA 証明書ストアを開く際のフラグを渡す。

解説(Remarks)

CAStoreFlags プロパティは、次のメソッドの動作に影響します:

vtbl 26 HRESULT get_RootStoreNameWStr(LPWSTR* szwName)

IEnroll4 の RootStoreNameWStr プロパティは、本質的に信頼される自己署名ルート証明書がすべて保管されるルートストアの名前を設定または取得します。(Get)

szwNameLPWSTR*inoutルート証明書ストアの名前を受け取る LPWSTR へのポインタである。

解説(Remarks)

RootStoreNameWStr は、次のメソッドの動作に影響します:

vtbl 27 HRESULT put_RootStoreNameWStr(LPWSTR szwName)

IEnroll4 の RootStoreNameWStr プロパティは、本質的に信頼される自己署名ルート証明書がすべて保管されるルートストアの名前を設定または取得します。(Put)

szwNameLPWSTRinルート証明書ストアの名前を渡す。

解説(Remarks)

RootStoreNameWStr は、次のメソッドの動作に影響します:

vtbl 28 HRESULT get_RootStoreTypeWStr(LPWSTR* szwType)

RootStoreNameWStr プロパティで指定されたストアに使用するストアの種類を設定または取得します。(Get)

szwTypeLPWSTR*inoutルート証明書ストアの種類を受け取る LPWSTR へのポインタである。

解説(Remarks)

RootStoreTypeWStr は、次のメソッドの動作に影響します:

vtbl 29 HRESULT put_RootStoreTypeWStr(LPWSTR szwType)

RootStoreNameWStr プロパティで指定されたストアに使用するストアの種類を設定または取得します。(Put)

szwTypeLPWSTRinルート証明書ストアの種類を渡す。

解説(Remarks)

RootStoreTypeWStr は、次のメソッドの動作に影響します:

vtbl 30 HRESULT get_RootStoreFlags(INT* pdwFlags)

ルートストアに使用するレジストリの場所を設定または取得します。(Get)

pdwFlagsINT*inoutルート証明書ストアを開く際のフラグを受け取る INT へのポインタである。

解説(Remarks)

RootStoreFlags プロパティの値は、 CertOpenStore CryptoAPI 関数の dwFlags パラメーターを通じて渡されます。

RootStoreFlags プロパティは、次のメソッドを使用する前に設定する必要があります:

vtbl 31 HRESULT put_RootStoreFlags(INT dwFlags)

ルートストアに使用するレジストリの場所を設定または取得します。(Put)

dwFlagsINTinルート証明書ストアを開く際のフラグを渡す。

解説(Remarks)

RootStoreFlags プロパティの値は、 CertOpenStore CryptoAPI 関数の dwFlags パラメーターを通じて渡されます。

RootStoreFlags プロパティは、次のメソッドを使用する前に設定する必要があります:

vtbl 32 HRESULT get_RequestStoreNameWStr(LPWSTR* szwName)

IEnroll4 の RequestStoreNameWStr プロパティは、ダミー証明書を格納するストアの名前を設定または取得します。(Get)

szwNameLPWSTR*inout要求(REQUEST)証明書ストアの名前を受け取る LPWSTR へのポインタである。

解説(Remarks)

通常、RequestStoreNameWStr プロパティの変更は高度なアプリケーションでのみ行われます。この値を変更することは、ほとんどのアプリケーションでは推奨されません。

RequestStoreNameWStr プロパティは、次のメソッドの動作に影響します:

vtbl 33 HRESULT put_RequestStoreNameWStr(LPWSTR szwName)

IEnroll4 の RequestStoreNameWStr プロパティは、ダミー証明書を格納するストアの名前を設定または取得します。(Put)

szwNameLPWSTRin要求(REQUEST)証明書ストアの名前を渡す。

解説(Remarks)

通常、RequestStoreNameWStr プロパティの変更は高度なアプリケーションでのみ行われます。この値を変更することは、ほとんどのアプリケーションでは推奨されません。

RequestStoreNameWStr プロパティは、次のメソッドの動作に影響します:

vtbl 34 HRESULT get_RequestStoreTypeWStr(LPWSTR* szwType)

RequestStoreNameWStr プロパティで指定されたストアに使用するストアの種類を設定または取得します。このストアの種類は CertOpenStore 関数に直接渡されます。(Get)

szwTypeLPWSTR*inout要求(REQUEST)証明書ストアの種類を受け取る LPWSTR へのポインタである。

解説(Remarks)

通常、RequestStoreTypeWStr プロパティの変更は高度なアプリケーションでのみ行われます。

RequestStoreTypeWStr は、次のメソッドの動作に影響します:

vtbl 35 HRESULT put_RequestStoreTypeWStr(LPWSTR szwType)

RequestStoreNameWStr プロパティで指定されたストアに使用するストアの種類を設定または取得します。このストアの種類は CertOpenStore 関数に直接渡されます。(Put)

szwTypeLPWSTRin要求(REQUEST)証明書ストアの種類を渡す。

解説(Remarks)

通常、RequestStoreTypeWStr プロパティの変更は高度なアプリケーションでのみ行われます。

RequestStoreTypeWStr は、次のメソッドの動作に影響します:

vtbl 36 HRESULT get_RequestStoreFlags(INT* pdwFlags)

IEnroll4 の RequestStoreFlags プロパティは、要求ストアに使用するレジストリの場所を設定または取得します。(Get)

pdwFlagsINT*inout要求(REQUEST)証明書ストアを開く際のフラグを受け取る INT へのポインタである。

解説(Remarks)

RequestStoreFlags プロパティの値は、 CertOpenStore CryptoAPI 関数の dwFlags パラメーターを通じて渡されます。

通常、RequestStoreFlags プロパティの変更は高度なアプリケーションでのみ行われます。

RequestStoreFlags プロパティは、次のメソッドを使用する前に設定する必要があります:

vtbl 37 HRESULT put_RequestStoreFlags(INT dwFlags)

IEnroll4 の RequestStoreFlags プロパティは、要求ストアに使用するレジストリの場所を設定または取得します。(Put)

dwFlagsINTin要求(REQUEST)証明書ストアを開く際のフラグを渡す。

解説(Remarks)

RequestStoreFlags プロパティの値は、 CertOpenStore CryptoAPI 関数の dwFlags パラメーターを通じて渡されます。

通常、RequestStoreFlags プロパティの変更は高度なアプリケーションでのみ行われます。

RequestStoreFlags プロパティは、次のメソッドを使用する前に設定する必要があります:

vtbl 38 HRESULT get_ContainerNameWStr(LPWSTR* szwContainer)

使用するキーコンテナーの名前を設定または取得します。(Get)

szwContainerLPWSTR*inout現在のキーコンテナ名を受け取る LPWSTR へのポインタである。

解説(Remarks)

指定するコンテナーは、既存のコンテナーでも新しいコンテナーでもかまいません。既存のコンテナーを指定できるのは、 UseExistingKeySet プロパティが設定されていて、かつキーセットがまだ生成されていない場合に限られます。たとえば、あるコンテナーに対して交換キーセットのみが生成されている場合でも、UseExistingKeySet を設定せずに、署名キーセットを使用して証明書の登録(エンロール)を実行できます。事前に UseExistingKeySet を設定しておけば、交換キーセットを使用できます。

既定では、IEnroll コントロールを実行するたびに新しいコンテナーが選択されます。これにより、新しいキーセットが確実に生成されます。このプロパティが明示的に設定されていない場合は、生成された GUID がコンテナー名として使用されます。

ContainerNameWStr プロパティは、次のメソッドの動作に影響します:

vtbl 39 HRESULT put_ContainerNameWStr(LPWSTR szwContainer)

使用するキーコンテナーの名前を設定または取得します。(Put)

szwContainerLPWSTRin使用するキーコンテナ名を渡す。

解説(Remarks)

指定するコンテナーは、既存のコンテナーでも新しいコンテナーでもかまいません。既存のコンテナーを指定できるのは、 UseExistingKeySet プロパティが設定されていて、かつキーセットがまだ生成されていない場合に限られます。たとえば、あるコンテナーに対して交換キーセットのみが生成されている場合でも、UseExistingKeySet を設定せずに、署名キーセットを使用して証明書の登録(エンロール)を実行できます。事前に UseExistingKeySet を設定しておけば、交換キーセットを使用できます。

既定では、IEnroll コントロールを実行するたびに新しいコンテナーが選択されます。これにより、新しいキーセットが確実に生成されます。このプロパティが明示的に設定されていない場合は、生成された GUID がコンテナー名として使用されます。

ContainerNameWStr プロパティは、次のメソッドの動作に影響します:

vtbl 40 HRESULT get_ProviderNameWStr(LPWSTR* szwProvider)

使用する暗号化サービスプロバイダー (CSP) の名前を設定または取得します。(Get)

szwProviderLPWSTR*inout現在の暗号化サービスプロバイダー(CSP)名を受け取る LPWSTR へのポインタである。

解説(Remarks)

ProviderNameWStr プロパティは、次のメソッドの動作に影響します:

vtbl 41 HRESULT put_ProviderNameWStr(LPWSTR szwProvider)

使用する暗号化サービスプロバイダー (CSP) の名前を設定または取得します。(Put)

szwProviderLPWSTRin使用する暗号化サービスプロバイダー(CSP)名を渡す。

解説(Remarks)

ProviderNameWStr プロパティは、次のメソッドの動作に影響します:

vtbl 42 HRESULT get_ProviderType(INT* pdwType)

プロバイダーの種類を設定または取得します。(Get)

pdwTypeINT*inout現在のプロバイダーの種類を受け取る INT へのポインタである。

解説(Remarks)

プロバイダーの種類に関する一般的な情報については、 Cryptographic Provider Types を参照してください。

Microsoft Base Cryptographic Provider の有効な値の詳細については、 CryptAcquireContext CryptoAPI 関数を参照してください。

他の CSP のプロバイダーの種類の情報については、その CSP に付属のドキュメントを参照してください。

ProviderType プロパティの値は、CryptAcquireContextdwProvType パラメーターを通じて渡されます。

ProviderType プロパティは、次のメソッドの動作に影響します:

vtbl 43 HRESULT put_ProviderType(INT dwType)

プロバイダーの種類を設定または取得します。(Put)

dwTypeINTin使用するプロバイダーの種類を渡す。

解説(Remarks)

プロバイダーの種類に関する一般的な情報については、 Cryptographic Provider Types を参照してください。

Microsoft Base Cryptographic Provider の有効な値の詳細については、 CryptAcquireContext CryptoAPI 関数を参照してください。

他の CSP のプロバイダーの種類の情報については、その CSP に付属のドキュメントを参照してください。

ProviderType プロパティの値は、CryptAcquireContextdwProvType パラメーターを通じて渡されます。

ProviderType プロパティは、次のメソッドの動作に影響します:

vtbl 44 HRESULT get_KeySpec(INT* pdw)

生成されるキーの種類を設定または取得します。(Get)

pdwINT*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 プロパティは、次のメソッドの動作に影響します:

vtbl 45 HRESULT put_KeySpec(INT dw)

生成されるキーの種類を設定または取得します。(Put)

dwINTin使用するキー仕様(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 プロパティは、次のメソッドの動作に影響します:

vtbl 46 HRESULT get_ProviderFlags(INT* pdwFlags)

IEnroll4 の ProviderFlags プロパティは、プロバイダーの種類を設定または取得します。(Get)

pdwFlagsINT*inoutプロバイダーのコンテキスト取得時に使用するフラグを受け取る INT へのポインタである。

解説(Remarks)

Microsoft Base Cryptographic Provider に対する有効な ProviderFlags 値の詳細については、 CryptAcquireContext CryptoAPI 関数を参照してください。

他の CSP に関する情報については、その CSP に付属のドキュメントを参照してください。

ProviderFlags プロパティの値は、CryptAcquireContextdwFlags パラメーターを通じて渡されます。

ProviderFlags プロパティは、次のメソッドの動作に影響します:

vtbl 47 HRESULT put_ProviderFlags(INT dwFlags)

IEnroll4 の ProviderFlags プロパティは、プロバイダーの種類を設定または取得します。(Put)

dwFlagsINTinプロバイダーのコンテキスト取得時に使用するフラグを渡す。

解説(Remarks)

Microsoft Base Cryptographic Provider に対する有効な ProviderFlags 値の詳細については、 CryptAcquireContext CryptoAPI 関数を参照してください。

他の CSP に関する情報については、その CSP に付属のドキュメントを参照してください。

ProviderFlags プロパティの値は、CryptAcquireContextdwFlags パラメーターを通じて渡されます。

ProviderFlags プロパティは、次のメソッドの動作に影響します:

vtbl 48 HRESULT get_UseExistingKeySet(BOOL* fUseExistingKeys)

IEnroll4 の UseExistingKeySet プロパティは、既存のキーを使用するかどうかを決定するブール値を設定または取得します。(Get)

fUseExistingKeysBOOL*inout既存のキーセットを使用するかどうかを受け取る BOOL へのポインタである。

解説(Remarks)

既存のキーセットを使用する場合は、UseExistingKeySet プロパティを true に設定する必要があります。

UseExistingKeySet プロパティは、次のメソッドの動作に影響します:

vtbl 49 HRESULT put_UseExistingKeySet(BOOL fUseExistingKeys)

IEnroll4 の UseExistingKeySet プロパティは、既存のキーを使用するかどうかを決定するブール値を設定または取得します。(Put)

fUseExistingKeysBOOLin既存のキーセットを使用するかどうかを指定する BOOL 値を渡す。

解説(Remarks)

既存のキーセットを使用する場合は、UseExistingKeySet プロパティを true に設定する必要があります。

UseExistingKeySet プロパティは、次のメソッドの動作に影響します:

vtbl 50 HRESULT get_GenKeyFlags(INT* pdwFlags)

証明書要求が生成されるときに CryptGenKey に渡される値を設定または取得します。(Get)

pdwFlagsINT*inoutキー生成時に使用するフラグを受け取る INT へのポインタである。

解説(Remarks)

既定では、.pvk ファイルが要求されない限り、秘密キーはエクスポートできません。.pvk ファイルを指定せずに秘密キーをエクスポート可能にするには、GenKeyFlagsCRYPT_EXPORTABLE に設定します。

.pvk ファイル名を指定するには、 PVKFileNameWStr プロパティを使用します。

GenKeyFlags プロパティの値は、 CryptGenKey CryptoAPI 関数の dwFlags パラメーターを通じて渡されます。

暗号化サービスプロバイダー (CSP) がエクスポート可能な秘密キーをサポートしていない場合は、エラーが発生します。

GenKeyFlags プロパティは、次のメソッドの動作に影響します:

注意 GenKeyFlags プロパティの既定値は 0 です。この値を変更する必要がある場合は、これらのメソッドを呼び出す前に変更する必要があります。これらのメソッドのいずれかを呼び出した後は、GenKeyFlags プロパティの値を変更できません。
vtbl 51 HRESULT put_GenKeyFlags(INT dwFlags)

証明書要求が生成されるときに CryptGenKey に渡される値を設定または取得します。(Put)

dwFlagsINTinキー生成時に使用するフラグを渡す。

解説(Remarks)

既定では、.pvk ファイルが要求されない限り、秘密キーはエクスポートできません。.pvk ファイルを指定せずに秘密キーをエクスポート可能にするには、GenKeyFlagsCRYPT_EXPORTABLE に設定します。

.pvk ファイル名を指定するには、 PVKFileNameWStr プロパティを使用します。

GenKeyFlags プロパティの値は、 CryptGenKey CryptoAPI 関数の dwFlags パラメーターを通じて渡されます。

暗号化サービスプロバイダー (CSP) がエクスポート可能な秘密キーをサポートしていない場合は、エラーが発生します。

GenKeyFlags プロパティは、次のメソッドの動作に影響します:

注意 GenKeyFlags プロパティの既定値は 0 です。この値を変更する必要がある場合は、これらのメソッドを呼び出す前に変更する必要があります。これらのメソッドのいずれかを呼び出した後は、GenKeyFlags プロパティの値を変更できません。
vtbl 52 HRESULT get_DeleteRequestCert(BOOL* fDelete)

IEnroll4 の DeleteRequestCert プロパティは、要求ストア内のダミー証明書を削除するかどうかを決定するブール値を設定または取得します。(Get)

fDeleteBOOL*inout登録完了後に要求証明書を削除するかどうかを受け取る BOOL へのポインタである。

解説(Remarks)

DeleteRequestCert プロパティは、次のメソッドの動作に影響します:

vtbl 53 HRESULT put_DeleteRequestCert(BOOL fDelete)

IEnroll4 の DeleteRequestCert プロパティは、要求ストア内のダミー証明書を削除するかどうかを決定するブール値を設定または取得します。(Put)

fDeleteBOOLin登録完了後に要求証明書を削除するかどうかを指定する BOOL 値を渡す。

解説(Remarks)

DeleteRequestCert プロパティは、次のメソッドの動作に影響します:

vtbl 54 HRESULT get_WriteCertToUserDS(BOOL* fBool)

IEnroll4 の WriteCertToUserDS プロパティは、証明書をユーザーの Active Directory ストアに書き込むかどうかを決定するブール値を設定または取得します。(Get)

fBoolBOOL*inout証明書をユーザーのディレクトリサービス(DS)エントリに書き込むかどうかを受け取る BOOL へのポインタである。

解説(Remarks)

WriteCertToUserDS は、次のメソッドの動作に影響します:

vtbl 55 HRESULT put_WriteCertToUserDS(BOOL fBool)

IEnroll4 の WriteCertToUserDS プロパティは、証明書をユーザーの Active Directory ストアに書き込むかどうかを決定するブール値を設定または取得します。(Put)

fBoolBOOLin証明書をユーザーのディレクトリサービス(DS)エントリに書き込むかどうかを指定する BOOL 値を渡す。

解説(Remarks)

WriteCertToUserDS は、次のメソッドの動作に影響します:

vtbl 56 HRESULT get_EnableT61DNEncoding(BOOL* fBool)

要求内の識別名を Unicode 文字列としてではなく T61 文字列としてエンコードするかどうかを決定するブール値を設定または取得します。(Get)

fBoolBOOL*inout識別名に T61 エンコードを使用するかどうかを受け取る BOOL へのポインタである。

解説(Remarks)

EnableT61DNEncoding プロパティは、次のメソッドの動作に影響します:

vtbl 57 HRESULT put_EnableT61DNEncoding(BOOL fBool)

要求内の識別名を Unicode 文字列としてではなく T61 文字列としてエンコードするかどうかを決定するブール値を設定または取得します。(Put)

fBoolBOOLin識別名に T61 エンコードを使用するかどうかを指定する BOOL 値を渡す。

解説(Remarks)

EnableT61DNEncoding プロパティは、次のメソッドの動作に影響します:

vtbl 58 HRESULT get_WriteCertToCSP(BOOL* fBool)

証明書を暗号化サービスプロバイダー (CSP) に書き込むかどうかを決定するブール値を設定または取得します。(Get)

fBoolBOOL*inout証明書を CSP のキーコンテナに書き込むかどうかを受け取る BOOL へのポインタである。

解説(Remarks)

このプロパティは通常スマートカードで使用され、証明書は "MY" ストアに書き込まれるのに加えて、スマートカードにも書き込まれます。

既定値は true です。これは、Certificate Enrollment Control が証明書を CSP に書き込もうとしますが、ハードウェアトークンエラーが発生しない限り失敗しないことを意味します。この値が true でも、スマートカードやその他のハードウェア依存の CSP がインストールされていない場合、ハードウェアトークンエラーは無視されます。

Certificate Enrollment Control が CSP への書き込みを試みないように明示的に強制するには、この値を false に設定します。

WriteCertToCSP は、次のメソッドの動作に影響します:

vtbl 59 HRESULT put_WriteCertToCSP(BOOL fBool)

証明書を暗号化サービスプロバイダー (CSP) に書き込むかどうかを決定するブール値を設定または取得します。(Put)

fBoolBOOLin証明書を CSP のキーコンテナに書き込むかどうかを指定する BOOL 値を渡す。

解説(Remarks)

このプロパティは通常スマートカードで使用され、証明書は "MY" ストアに書き込まれるのに加えて、スマートカードにも書き込まれます。

既定値は true です。これは、Certificate Enrollment Control が証明書を CSP に書き込もうとしますが、ハードウェアトークンエラーが発生しない限り失敗しないことを意味します。この値が true でも、スマートカードやその他のハードウェア依存の CSP がインストールされていない場合、ハードウェアトークンエラーは無視されます。

Certificate Enrollment Control が CSP への書き込みを試みないように明示的に強制するには、この値を false に設定します。

WriteCertToCSP は、次のメソッドの動作に影響します:

vtbl 60 HRESULT get_SPCFileNameWStr(LPWSTR* szw)

IEnroll4 の SPCFileNameWStr プロパティは、base64 エンコードされた PKCS を書き込むファイルの名前を設定または取得します。(Get)

szwLPWSTR*inoutソフトウェア発行元証明書(SPC)ファイルのパスを受け取る LPWSTR へのポインタである。

解説(Remarks)

ファイルはバイナリ PKCS #7 として書き込まれます。このファイルを指定しても、ユーザーのいずれかのストアへの証明書の受け入れには影響しません。

ファイルが既に存在する場合は、ユーザーに通知され、上書きの許可を求められます。

SPCFileNameWStr は、次のメソッドの動作に影響します:

vtbl 61 HRESULT put_SPCFileNameWStr(LPWSTR szw)

IEnroll4 の SPCFileNameWStr プロパティは、base64 エンコードされた PKCS を書き込むファイルの名前を設定または取得します。(Put)

szwLPWSTRinソフトウェア発行元証明書(SPC)ファイルのパスを渡す。

解説(Remarks)

ファイルはバイナリ PKCS #7 として書き込まれます。このファイルを指定しても、ユーザーのいずれかのストアへの証明書の受け入れには影響しません。

ファイルが既に存在する場合は、ユーザーに通知され、上書きの許可を求められます。

SPCFileNameWStr は、次のメソッドの動作に影響します:

vtbl 62 HRESULT get_PVKFileNameWStr(LPWSTR* szw)

エクスポートされたキーを格納するファイルの名前を設定または取得します。(Get)

szwLPWSTR*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 フラグを含めずに設定された場合、GenKeyFlagsCRYPT_EXPORTABLE に設定されず、生成されるキーはエクスポートできません。次の手順はこれを示しています:

  1. put_PVKFileNameWStr を呼び出して、エクスポートされたキーを受け取るファイルのファイル名を設定します。GenKeyFlags プロパティは自動的に CRYPT_EXPORTABLE に設定されます。
  2. CRYPT_EXPORTABLE に設定されていない値(たとえば 0)を指定して put_GenKeyFlags を呼び出します。
  3. GenKeyFlagsCRYPT_EXPORTABLE に設定されなくなります(手順 1 で自動的に設定された値)。

前述の手順に従って生成されたキーは、エクスポートできません。したがって、これらを一緒に使用する場合は、PVKFileNameWStr プロパティより先に GenKeyFlags プロパティを設定することをお勧めします。

あるいは、GenKeyFlags プロパティ内の CRYPT_EXPORTABLE ビットの現在の値を確認し、その値と GenKeyFlags プロパティに加える変更との間でビットごとの OR 演算を実行して、そのビットが消去されないようにすることもできます。GenKeyFlags プロパティを更新するときに、CRYPT_EXPORTABLE ビットを明示的に設定することもできます。

vtbl 63 HRESULT put_PVKFileNameWStr(LPWSTR szw)

エクスポートされたキーを格納するファイルの名前を設定または取得します。(Put)

szwLPWSTRin秘密キー(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 フラグを含めずに設定された場合、GenKeyFlagsCRYPT_EXPORTABLE に設定されず、生成されるキーはエクスポートできません。次の手順はこれを示しています:

  1. put_PVKFileNameWStr を呼び出して、エクスポートされたキーを受け取るファイルのファイル名を設定します。GenKeyFlags プロパティは自動的に CRYPT_EXPORTABLE に設定されます。
  2. CRYPT_EXPORTABLE に設定されていない値(たとえば 0)を指定して put_GenKeyFlags を呼び出します。
  3. GenKeyFlagsCRYPT_EXPORTABLE に設定されなくなります(手順 1 で自動的に設定された値)。

前述の手順に従って生成されたキーは、エクスポートできません。したがって、これらを一緒に使用する場合は、PVKFileNameWStr プロパティより先に GenKeyFlags プロパティを設定することをお勧めします。

あるいは、GenKeyFlags プロパティ内の CRYPT_EXPORTABLE ビットの現在の値を確認し、その値と GenKeyFlags プロパティに加える変更との間でビットごとの OR 演算を実行して、そのビットが消去されないようにすることもできます。GenKeyFlags プロパティを更新するときに、CRYPT_EXPORTABLE ビットを明示的に設定することもできます。

vtbl 64 HRESULT get_HashAlgorithmWStr(LPWSTR* szw)

PKCS に署名するために使用する署名ハッシュアルゴリズムのみを設定または取得します。(IEnroll.get_HashAlgorithmWStr)

szwLPWSTR*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 証明書要求への署名にどのハッシュアルゴリズムが使用されるかは、最後に更新された方によって指定されます。

vtbl 65 HRESULT put_HashAlgorithmWStr(LPWSTR szw)

PKCS に署名するために使用する署名ハッシュアルゴリズムのみを設定または取得します。(IEnroll.put_HashAlgorithmWStr)

szwLPWSTRin使用するハッシュアルゴリズム名を渡す。

解説(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 証明書要求への署名にどのハッシュアルゴリズムが使用されるかは、最後に更新された方によって指定されます。

vtbl 66 HRESULT get_RenewalCertificate(CERT_CONTEXT** ppCertContext)

更新証明書の証明書コンテキストを指定します。(Get)

ppCertContextCERT_CONTEXT**inout更新対象の証明書コンテキストを受け取る CERT_CONTEXT ポインタへのポインタである。

解説(Remarks)

証明書更新要求を作成する方法の詳細については、「Creating Certificate Requests Using the Certificate Enrollment Control and CryptoAPI」の Creating a Renewal Request を参照してください。

vtbl 67 HRESULT put_RenewalCertificate(CERT_CONTEXT* pCertContext)

更新証明書の証明書コンテキストを指定します。(Put)

pCertContextCERT_CONTEXT*in更新対象として設定する証明書コンテキストへのポインタを渡す。

解説(Remarks)

証明書更新要求を作成する方法の詳細については、「Creating Certificate Requests Using the Certificate Enrollment Control and CryptoAPI」の Creating a Renewal Request を参照してください。

vtbl 68 HRESULT AddCertTypeToRequestWStr(LPWSTR szw)

証明書テンプレートを要求に追加します(エンタープライズ証明機関 (CA) をサポートするために使用します)。

szwLPWSTRin証明書要求に追加される証明書テンプレートの完全修飾名。この値は証明機関によって解釈されます。

戻り値

戻り値は HRESULT で、呼び出しが成功した場合は S_OK が返されます。

解説(Remarks)

要求に対して複数の証明書テンプレートが必要な場合は、このメソッドを複数回呼び出すことができます。

vtbl 69 HRESULT AddNameValuePairToSignatureWStr(LPWSTR Name, LPWSTR Value)

属性の認証済み名前と値のペアを要求に追加します。名前と値のペアの意味は証明機関 (CA) が解釈します。

NameLPWSTRin属性の名前を格納する、null で終わる Unicode 文字列。たとえば、国/地域名を表す "2.5.4.6" などです。
ValueLPWSTRin属性の値を格納する、null で終わる Unicode 文字列。たとえば、"US" や "DomainName\UserID" などです。

戻り値

戻り値は HRESULT で、呼び出しが成功した場合は S_OK が返されます。

解説(Remarks)

AddNameValuePairToSignatureWStr メソッドは、要求に属性を追加するために使用します。

vtbl 70 HRESULT AddExtensionsToRequest(CERT_EXTENSIONS* pCertExtensions)

AddExtensionsToRequest メソッドは、証明書要求に拡張を追加します。このメソッドは IEnroll インターフェースで最初に定義されました。

pCertExtensionsCERT_EXTENSIONS*inout要求に追加する拡張を表す CERT_EXTENSIONS 構造体へのポインター。

戻り値

戻り値は HRESULT で、呼び出しが成功した場合は S_OK が返されます。

vtbl 71 HRESULT AddAuthenticatedAttributesToPKCS7Request(CRYPT_ATTRIBUTES* pAttributes)

AddAuthenticatedAttributesToPKCS7Request メソッドは、認証済み属性を PKCS に追加します。

pAttributesCRYPT_ATTRIBUTES*inoutPKCS #7 証明書要求に追加する認証済み属性を表す CRYPT_ATTRIBUTES 構造体へのポインター。

戻り値

戻り値は HRESULT で、呼び出しが成功した場合は S_OK が返されます。

vtbl 72 HRESULT CreatePKCS7RequestFromRequest(CRYPT_INTEGER_BLOB* pRequest, CERT_CONTEXT* pSigningCertContext, CRYPT_INTEGER_BLOB* pPkcs7Blob)

CreatePKCS7RequestFromRequest メソッドは、PKCS を作成します。

pRequestCRYPT_INTEGER_BLOB*inout既存の要求を表す CRYPT_DATA_BLOB 構造体へのポインター。
pSigningCertContextCERT_CONTEXT*in要求への署名に使用する証明書を表す CERT_CONTEXT 構造体へのポインター。
pPkcs7BlobCRYPT_INTEGER_BLOB*inout

返される PKCS #7 証明書要求を受け取る CRYPT_DATA_BLOB 構造体へのポインター。

このメモリの使用が終わったら、この構造体の pbData メンバーを CoTaskMemFree 関数に渡して解放してください。

戻り値

メソッドが成功した場合、S_OK を返します。

メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_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 方式にも切替可。