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

IEnroll2

COM
IIDc080e199-b7df-11d2-a421-00c04f79fe8e継承元IEnroll自前メソッド開始 vtbl73

公式ドキュメント

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

メソッド 18

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

vtbl 73 HRESULT InstallPKCS7Blob(CRYPT_INTEGER_BLOB* pBlobPKCS7)

証明書または証明書チェーンを処理し、適切な証明書ストアに格納します。このメソッドは、InstallPKCS7Blob が要求証明書を受け取らない点で acceptPKCS7Blob メソッドと異なります。

pBlobPKCS7CRYPT_INTEGER_BLOB*inout証明書または証明書チェーンを含む CRYPT_DATA_BLOB 構造体へのポインター。

戻り値

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

vtbl 74 HRESULT Reset()

証明書登録(エンロール)コントロールオブジェクトを初期状態に戻し、コントロールを再利用できるようにします。

戻り値

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

vtbl 75 HRESULT GetSupportedKeySpec(INT* pdwKeySpec)

現在の暗号化サービスプロバイダー(CSP)による署名操作および/または交換操作のサポートに関する情報を取得します。

pdwKeySpecINT*inout現在の CSP が 交換キーおよび/または署名キーをサポートしているかどうかを示すビットフラグを受け取る LONG へのポインター。

戻り値

戻り値は HRESULT です。S_OK は成功を示します。CSP がこのメソッドをサポートしていない場合はエラーが返されます。

解説(Remarks)

現在の CSP が交換キー、署名キー、またはその両方をサポートしているかどうかを判定するには、このメソッドを呼び出します。pdwKeySpec パラメーターには、次の定数(Wincrypt.h で定義)のうち 1 つ以上が格納されます。

vtbl 76 HRESULT GetKeyLen(BOOL fMin, BOOL fExchange, INT* pdwKeySize)

IEnroll4::GetKeyLen メソッドは、署名キーおよび交換キーの最小および最大のキー長を取得します。

fMinBOOLin取得するキー長(最小または最大)を示すブール値。fMinTRUE の場合は最小キー長が、FALSE の場合は最大キー長が取得されます。
fExchangeBOOLinキーの種類を示すブール値。fExchangeTRUE の場合は交換キーのキー長が、FALSE の場合は署名キーのキー長が取得されます。
pdwKeySizeINT*inoutキーの最小または最大のキー長(ビット単位)を受け取るポインター。

戻り値

戻り値は HRESULT です。S_OK は成功を示し、*pdwKeySize はキーの最小または最大のキー長(ビット単位)を表す値になります。

解説(Remarks)

最小および最大のキー長を判定するには、このメソッドを呼び出します。CSP がこのメソッドをサポートしていない場合はエラーが返されます。

vtbl 77 HRESULT EnumAlgs(INT dwIndex, INT algClass, INT* pdwAlgID)

指定したアルゴリズムクラスに属し、現在の暗号化サービスプロバイダー(CSP)がサポートする暗号化アルゴリズムの ID を取得します。

dwIndexINTinID を取得するアルゴリズムの序数位置を指定します。最初のアルゴリズムには 0 を指定します。
algClassINTin

暗号化アルゴリズムのクラス。このメソッドが返す ID は、指定したクラスに属するものになります。次のいずれかを指定します。

pdwAlgIDINT*inout現在の CSP がサポートする暗号化アルゴリズム ID を受け取る LONG へのポインター。

戻り値

戻り値は HRESULT です。S_OK は成功を示します。列挙するアルゴリズムがそれ以上ない場合は、値 ERROR_NO_MORE_ITEMS が返されます。

解説(Remarks)

このメソッドで使用するアルゴリズム ID とクラスの定数については、Wincrypt.h を参照してください。

vtbl 78 HRESULT GetAlgNameWStr(INT algID, LPWSTR* ppwsz)

暗号化アルゴリズムの ID からその名前を取得します。このメソッドが取得する値は、現在の暗号化サービスプロバイダー(CSP)によって異なります。

algIDINTinWincrypt.h で定義されている、暗号化アルゴリズムを表す値。たとえば CALG_MD2 は定義済みのアルゴリズム識別子です。このメソッドが成功するには、現在の CSP が algID アルゴリズムをサポートしている必要があります。
ppwszLPWSTR*inout成功した場合、algID で指定されたアルゴリズムの名前を表す LPWSTR へのポインター。

戻り値

戻り値は HRESULT です。S_OK は成功を示します。CSP がこのメソッドをサポートしていない場合、または algID の暗号化アルゴリズムをサポートしていない場合は、エラーが返されます。

解説(Remarks)

このメソッドは、 EnumAlgs を呼び出して取得した ID を持つアルゴリズムの名前を表示するために使用できます。

暗号化アルゴリズムの定数は Wincrypt.h で定義されています。

vtbl 79 HRESULT put_ReuseHardwareKeyIfUnableToGenNew(BOOL fReuseHardwareKeyIfUnableToGenNew)

IEnroll4 の ReuseHardwareKeyIfUnableToGenNew プロパティは、新しいキーの生成時にエラーが発生した場合に証明書登録(エンロール)コントロールオブジェクトが行う動作を決定するブール値を設定または取得します。(Put)

fReuseHardwareKeyIfUnableToGenNewBOOLin新規キーを生成できない場合に既存のハードウェアキーを再利用するかどうかを指定する BOOL 値を渡す。

解説(Remarks)

このプロパティはブール値です。このプロパティは、NTE_TOKEN_KEYSET_STORAGE_FULL を返す暗号化サービスプロバイダー(CSP)にのみ影響します。これらの CSP は通常ハードウェアベースであり、スマートカードがその一例です。このプロパティが TRUE で、新しいキーの生成中にエラーが発生した場合、証明書登録(エンロール)コントロールオブジェクトは既存のハードウェアキーを再利用します。このプロパティが FALSE で、新しいキーの生成中にエラーが発生した場合、証明書登録(エンロール)コントロールオブジェクトは既存のハードウェアキーを再利用せず、代わりに呼び出し元にエラーを渡します。

vtbl 80 HRESULT get_ReuseHardwareKeyIfUnableToGenNew(BOOL* fReuseHardwareKeyIfUnableToGenNew)

IEnroll4 の ReuseHardwareKeyIfUnableToGenNew プロパティは、新しいキーの生成時にエラーが発生した場合に証明書登録(エンロール)コントロールオブジェクトが行う動作を決定するブール値を設定または取得します。(Get)

fReuseHardwareKeyIfUnableToGenNewBOOL*inout新規キーを生成できない場合に既存のハードウェアキーを再利用するかどうかを受け取る BOOL へのポインタである。

解説(Remarks)

このプロパティはブール値です。このプロパティは、NTE_TOKEN_KEYSET_STORAGE_FULL を返す暗号化サービスプロバイダー(CSP)にのみ影響します。これらの CSP は通常ハードウェアベースであり、スマートカードがその一例です。このプロパティが TRUE で、新しいキーの生成中にエラーが発生した場合、証明書登録(エンロール)コントロールオブジェクトは既存のハードウェアキーを再利用します。このプロパティが FALSE で、新しいキーの生成中にエラーが発生した場合、証明書登録(エンロール)コントロールオブジェクトは既存のハードウェアキーを再利用せず、代わりに呼び出し元にエラーを渡します。

vtbl 81 HRESULT put_HashAlgID(INT hashAlgID)

IEnroll4 の HashAlgID プロパティは、PKCS の署名時に使用するハッシュアルゴリズムを設定または取得します。(Put)

hashAlgIDINTin使用するハッシュアルゴリズムの ID を渡す。

解説(Remarks)

このプロパティの値は、 EnumAlgs メソッドが返すようなハッシュアルゴリズムの ID です。HashAlgID プロパティと HashAlgorithmWStr プロパティの両方が設定されている場合は、より新しく更新された方が、PKCS #10 要求の署名に使用されるハッシュアルゴリズムを決定します。

vtbl 82 HRESULT get_HashAlgID(INT* hashAlgID)

IEnroll4 の HashAlgID プロパティは、PKCS の署名時に使用するハッシュアルゴリズムを設定または取得します。(Get)

hashAlgIDINT*inout現在のハッシュアルゴリズム ID を受け取る INT へのポインタである。

解説(Remarks)

このプロパティの値は、 EnumAlgs メソッドが返すようなハッシュアルゴリズムの ID です。HashAlgID プロパティと HashAlgorithmWStr プロパティの両方が設定されている場合は、より新しく更新された方が、PKCS #10 要求の署名に使用されるハッシュアルゴリズムを決定します。

vtbl 83 HRESULT SetHStoreMy(HCERTSTORE hStore)

SetHStoreMy メソッドは、MY ストアに使用するハンドルを指定します。このメソッドは IEnroll2 インターフェイスで初めて定義されました。

hStoreHCERTSTOREinMY ストアに使用する証明書ストアのハンドル。

戻り値

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

vtbl 84 HRESULT SetHStoreCA(HCERTSTORE hStore)

SetHStoreCA メソッドは、CA ストアに使用するハンドルを指定します。このメソッドは IEnroll2 インターフェイスで初めて定義されました。

hStoreHCERTSTOREinCA ストアに使用する証明書ストアのハンドル。

戻り値

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

vtbl 85 HRESULT SetHStoreROOT(HCERTSTORE hStore)

SetHStoreROOT メソッドは、Root ストアに使用するハンドルを指定します。このメソッドは IEnroll2 インターフェイスで初めて定義されました。

hStoreHCERTSTOREinRoot ストアに使用する証明書ストアのハンドル。

戻り値

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

vtbl 86 HRESULT SetHStoreRequest(HCERTSTORE hStore)

SetHStoreRequest メソッドは、要求ストアに使用するハンドルを指定します。このメソッドは IEnroll2 インターフェイスで初めて定義されました。

hStoreHCERTSTOREin要求ストアに使用する証明書ストアのハンドル。

戻り値

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

vtbl 87 HRESULT put_LimitExchangeKeyToEncipherment(BOOL fLimitExchangeKeyToEncipherment)

IEnroll4 の LimitExchangeKeyToEncipherment プロパティは、AT_KEYEXCHANGE 要求にデジタル署名および否認防止のキー用途が含まれるかどうかを決定するブール値を設定または取得します。(Put)

fLimitExchangeKeyToEnciphermentBOOLin鍵交換キーの用途を暗号化のみに制限するかどうかを指定する BOOL 値を渡す。

解説(Remarks)

このプロパティはブール値であり、AT_KEYEXCHANGE 要求にのみ影響します。AT_SIGNATURE 要求には影響しません。

このプロパティの値が FALSE の場合、AT_KEYEXCHANGE 要求には次のキー用途が含まれます。

このプロパティの値が TRUE の場合、AT_KEYEXCHANGE 要求には次のキー用途が含まれます。

vtbl 88 HRESULT get_LimitExchangeKeyToEncipherment(BOOL* fLimitExchangeKeyToEncipherment)

IEnroll4 の LimitExchangeKeyToEncipherment プロパティは、AT_KEYEXCHANGE 要求にデジタル署名および否認防止のキー用途が含まれるかどうかを決定するブール値を設定または取得します。(Get)

fLimitExchangeKeyToEnciphermentBOOL*inout鍵交換キーの用途を暗号化のみに制限するかどうかを受け取る BOOL へのポインタである。

解説(Remarks)

このプロパティはブール値であり、AT_KEYEXCHANGE 要求にのみ影響します。AT_SIGNATURE 要求には影響しません。

このプロパティの値が FALSE の場合、AT_KEYEXCHANGE 要求には次のキー用途が含まれます。

このプロパティの値が TRUE の場合、AT_KEYEXCHANGE 要求には次のキー用途が含まれます。

vtbl 89 HRESULT put_EnableSMIMECapabilities(BOOL fEnableSMIMECapabilities)

PKCS を有効にするかどうかを制御します。(Put)

fEnableSMIMECapabilitiesBOOLinS/MIME 機能属性を要求に含めるかどうかを指定する BOOL 値を渡す。
vtbl 90 HRESULT get_EnableSMIMECapabilities(BOOL* fEnableSMIMECapabilities)

PKCS を有効にするかどうかを制御します。(Get)

fEnableSMIMECapabilitiesBOOL*inoutS/MIME 機能属性を要求に含めるかどうかを受け取る BOOL へのポインタである。
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IEnroll2 "{C080E199-B7DF-11D2-A421-00C04F79FE8E}"
#usecom global IEnroll2 IID_IEnroll2 "{}"
#comfunc global IEnroll2_InstallPKCS7Blob                      73 var
#comfunc global IEnroll2_Reset                                 74
#comfunc global IEnroll2_GetSupportedKeySpec                   75 var
#comfunc global IEnroll2_GetKeyLen                             76 int,int,var
#comfunc global IEnroll2_EnumAlgs                              77 int,int,var
#comfunc global IEnroll2_GetAlgNameWStr                        78 int,var
#comfunc global IEnroll2_put_ReuseHardwareKeyIfUnableToGenNew  79 int
#comfunc global IEnroll2_get_ReuseHardwareKeyIfUnableToGenNew  80 var
#comfunc global IEnroll2_put_HashAlgID                         81 int
#comfunc global IEnroll2_get_HashAlgID                         82 var
#comfunc global IEnroll2_SetHStoreMy                           83 sptr
#comfunc global IEnroll2_SetHStoreCA                           84 sptr
#comfunc global IEnroll2_SetHStoreROOT                         85 sptr
#comfunc global IEnroll2_SetHStoreRequest                      86 sptr
#comfunc global IEnroll2_put_LimitExchangeKeyToEncipherment    87 int
#comfunc global IEnroll2_get_LimitExchangeKeyToEncipherment    88 var
#comfunc global IEnroll2_put_EnableSMIMECapabilities           89 int
#comfunc global IEnroll2_get_EnableSMIMECapabilities           90 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。