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

ICEnroll4

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IIDc1f1188a-2eb5-4a80-841b-7e729a356d90継承元ICEnroll3呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl83

公式ドキュメント

ICEnroll4 インターフェイスは、証明書登録コントロール (Certificate Enrollment Control) を表す複数のインターフェイスの 1 つです。

メソッド 33

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 83 HRESULT put_PrivateKeyArchiveCertificate(LPWSTR bstrCert)

PKCS で秘密キーをアーカイブするために使用される証明書を設定または取得します。(Put)

bstrCertLPWSTRin秘密キーアーカイブ(キーリカバリ)に使用する CA の暗号化証明書を Base64 文字列として渡す。
vtbl 84 HRESULT get_PrivateKeyArchiveCertificate(LPWSTR* pbstrCert)

PKCS で秘密キーをアーカイブするために使用される証明書を設定または取得します。(Get)

pbstrCertLPWSTR*out秘密キーアーカイブに使用する証明書を Base64 文字列として受け取る LPWSTR へのポインタである。
vtbl 85 HRESULT put_ThumbPrint(LPWSTR bstrThumbPrint)

証明書データのハッシュを設定または取得します。(Put)

bstrThumbPrintLPWSTRin保留中要求を識別する証明書のサムプリント(拇印)を文字列として渡す。

解説(Remarks)

拇印 (thumbprint) は、保留中の証明書を指し示すために使用されます。

vtbl 86 HRESULT get_ThumbPrint(LPWSTR* pbstrThumbPrint)

証明書データのハッシュを設定または取得します。(Get)

pbstrThumbPrintLPWSTR*out現在設定されている証明書のサムプリントを文字列として受け取る LPWSTR へのポインタである。

解説(Remarks)

拇印 (thumbprint) は、保留中の証明書を指し示すために使用されます。

vtbl 87 HRESULT binaryToString(INT Flags, LPWSTR strBinary, LPWSTR* pstrEncoded)

バイナリデータの BLOB を文字列に変換します。このメソッドは ICEnroll4 インターフェイスで初めて定義されました。

FlagsINTinCryptBinaryToString 関数の dwFlags パラメーターに渡される値。指定可能な値の説明については、 CryptBinaryToString を参照してください。
strBinaryLPWSTRin文字列に変換するバイナリデータの BLOB。
pstrEncodedLPWSTR*outエンコードされたデータを受け取る BSTR へのポインター。BSTR の使用を終えたら、SysFreeString 関数を呼び出して解放してください。

戻り値

C++

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

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

VB

戻り値はバイナリデータを表す文字列です。
vtbl 88 HRESULT stringToBinary(INT Flags, LPWSTR strEncoded, LPWSTR* pstrBinary)

エンコードされた文字列をバイナリデータの BLOB に変換します。このメソッドは ICEnroll4 インターフェイスで初めて定義されました。

FlagsINTinCryptStringToBinary 関数の dwFlags パラメーターに渡される値。有効な値については、 CryptStringToBinary を参照してください。
strEncodedLPWSTRinバイナリデータの BLOB に変換するエンコードされた文字列。
pstrBinaryLPWSTR*outバイナリデータを受け取る BSTR へのポインター。BSTR の使用を終えたら、SysFreeString 関数を呼び出して解放してください。

戻り値

C++

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

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

VB

戻り値はバイナリデータを含む文字列です。
vtbl 89 HRESULT addExtensionToRequest(INT Flags, LPWSTR strName, LPWSTR strValue)

ICEnroll4::addExtensionToRequest メソッドは、要求に拡張を追加します。

FlagsINTin

拡張が critical (重要) かどうかを指定します。 TRUE の場合、追加される拡張は critical です。FALSE の場合は critical ではありません。

TRUE は (Microsoft のヘッダーファイルにおいて) C/C++ プログラマー向けには 1 として定義されていますが、Visual Basic では True キーワードが -1 として定義されている点に注意してください。そのため、Visual Basic 開発者は、このパラメーターを TRUE に設定するには (True ではなく) 1 を使用する必要があります。ただし、このパラメーターを FALSE に設定するには、Visual Basic 開発者は 0 または False を使用できます。

strNameLPWSTRin拡張名を表す オブジェクト識別子 (OID)。
strValueLPWSTRinbase64 でエンコードされた、またはバイナリの拡張値。

戻り値

VB

戻り値は HRESULT で、呼び出しが成功した場合は S_OK が返されます。
vtbl 90 HRESULT addAttributeToRequest(INT Flags, LPWSTR strName, LPWSTR strValue)

証明書要求に属性を追加します。このメソッドは ICEnroll4 インターフェイスで初めて定義されました。

FlagsINTinこのパラメーターは将来の使用のために予約されており、0 に設定する必要があります。
strNameLPWSTRin属性名を表す オブジェクト識別子 (OID)。
strValueLPWSTRinbase64 でエンコードされた、またはバイナリの属性値。

戻り値

VB

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

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

vtbl 91 HRESULT addNameValuePairToRequest(INT Flags, LPWSTR strName, LPWSTR strValue)

認証されていない名前と値の文字列ペアを要求に追加します。このメソッドは ICEnroll4 インターフェイスで初めて定義されました。

FlagsINTinこのパラメーターは将来の使用のために予約されており、0 に設定する必要があります。
strNameLPWSTRin名前と値のペアのうち、名前の部分。
strValueLPWSTRin名前と値のペアのうち、値の部分。

戻り値

VB

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

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

vtbl 92 HRESULT resetExtensions()

要求からすべての拡張を削除します。このメソッドは ICEnroll4 インターフェイスで初めて定義されました。

戻り値

VB

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

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

vtbl 93 HRESULT resetAttributes()

要求からすべての属性を削除します。このメソッドは ICEnroll4 インターフェイスで初めて定義されました。

戻り値

VB

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

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

vtbl 94 HRESULT createRequest(CERT_CREATE_REQUEST_FLAGS Flags, LPWSTR strDNName, LPWSTR Usage, LPWSTR* pstrRequest)

PKCS を作成します。(ICEnroll4.createRequest)

FlagsCERT_CREATE_REQUEST_FLAGSin

作成する証明書要求の種類を指定する値。次のいずれかの値を指定できます。

意味
XECR_CMC
完全な CMC
XECR_PKCS10_V1_5
PKCS 10
XECR_PKCS10_V2_0
PKCS 10 バージョン 2
XECR_PKCS7
PKCS 7
strDNNameLPWSTRinこのパラメーターは NULL にできます。それ以外の場合、このパラメーターは要求の対象となるエンティティの識別名 (DN) を指定します。DN 名は X.500 の命名規則に従う必要があります (例: "CN=User, O=Microsoft")。2 文字のプレフィックスが存在しない場合は、代わりに OID を指定できます。
UsageLPWSTRin生成される証明書の目的を表す オブジェクト識別子 (OID)。たとえば、個人用または商用の Authenticode 証明書、クライアント認証などです。複数の OID をコンマで区切って指定することもできます。
pstrRequestLPWSTR*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();
vtbl 95 HRESULT createFileRequest(CERT_CREATE_REQUEST_FLAGS Flags, LPWSTR strDNName, LPWSTR strUsage, LPWSTR strRequestFileName)

PKCS を作成します。(ICEnroll4.createFileRequest)

FlagsCERT_CREATE_REQUEST_FLAGSin

作成する証明書の種類を指定する値。次のいずれかの値を指定できます。

意味
XECR_CMC
完全な CMC
XECR_PKCS10_V1_5
PKCS 10
XECR_PKCS10_V2_0
PKCS 10 バージョン 2
XECR_PKCS7
PKCS 7
strDNNameLPWSTRinこのパラメーターは NULL にできます。それ以外の場合、このパラメーターは要求の対象となるエンティティの識別名 (DN) を指定します。DN 名は X.500 の命名規則に従う必要があります (例: "CN=User, O=Microsoft")。2 文字のプレフィックスが存在しない場合は、代わりに OID を指定できます。
strUsageLPWSTRin生成される要求の目的を表す オブジェクト識別子 (OID)。たとえば、個人用または商用の Authenticode 証明書、クライアント認証などです。複数の OID をコンマで区切って指定することもできます。
strRequestFileNameLPWSTRin要求を受け取るファイルの名前。

戻り値

VB

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

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

解説(Remarks)

このメソッドがスクリプトから呼び出されると、証明書要求の作成をユーザーが許可するかどうか、およびファイルシステムへの書き込み操作をユーザーが許可するかどうかを尋ねるユーザーインターフェイスが表示されます。

vtbl 96 HRESULT acceptResponse(LPWSTR strResponse)

以前の createRequest の呼び出しに応答して発行された資格情報の配信を受け入れ、その資格情報を適切なストアに格納します。

strResponseLPWSTRinbase64 でエンコードされた応答を表す文字列。

戻り値

VB

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

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

解説(Remarks)

応答には証明書がちょうど 1 つだけ含まれている必要があります。子証明書を含めることはできません。

応答は PKCS #7 または完全な CMC 応答のいずれかです。ただし、完全な CMC 応答を受け入れるには、暗号化サービスプロバイダー が CMC 構造の Abstract Syntax Notation One (ASN.1) エンコードをサポートしている必要があります。

このメソッドがスクリプトから呼び出されると、証明書のインストールをユーザーが許可するかどうかを尋ねるユーザーインターフェイスが表示されます。

vtbl 97 HRESULT acceptFileResponse(LPWSTR strResponseFileName)

以前の createFileRequest の呼び出しに応答して発行された資格情報の配信を受け入れ、その資格情報を適切なストアに格納します。

strResponseFileNameLPWSTRinbase64 でエンコードされた応答を含むファイルの名前を指定します。

戻り値

VB

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

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

解説(Remarks)

strResponseFileName パラメーターで指定される応答には、証明書がちょうど 1 つだけ含まれている必要があります。子証明書を含めることはできません。

応答は PKCS #7 または完全な CMC 応答のいずれかです。ただし、完全な CMC 応答を受け入れるには、暗号化サービスプロバイダー が CMC 構造の Abstract Syntax Notation One (ASN.1) エンコードをサポートしている必要があります。

このメソッドがスクリプトから呼び出されると、証明書のインストールをユーザーが許可するかどうか、およびファイルシステムからの読み取り操作をユーザーが許可するかどうかを尋ねるユーザーインターフェイスが表示されます。

vtbl 98 HRESULT getCertFromResponse(LPWSTR strResponse, LPWSTR* pstrCert)

証明機関 (CA) の応答から証明書を取得します。このメソッドは ICEnroll4 インターフェイスで初めて定義されました。

strResponseLPWSTRinbase64 でエンコードされた応答。
pstrCertLPWSTR*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) エンコードをサポートしている必要があります。

vtbl 99 HRESULT getCertFromFileResponse(LPWSTR strResponseFileName, LPWSTR* pstrCert)

証明機関 (CA) からの応答を含むファイルから証明書を取得します。このメソッドは ICEnroll4 インターフェイスで初めて定義されました。

strResponseFileNameLPWSTRin応答を含むファイルの名前を指定します。
pstrCertLPWSTR*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) エンコードをサポートしている必要があります。

このメソッドがスクリプトから呼び出されると、ファイルシステムからの読み取り操作をユーザーが許可するかどうかを尋ねるユーザーインターフェイスが表示されます。

vtbl 100 HRESULT createPFX(LPWSTR strPassword, LPWSTR* pstrPFX)

受け入れた証明書チェーンと秘密キーを Personal Information Exchange (PFX) 形式の文字列に保存します。PFX 形式は PKCS とも呼ばれます。(ICEnroll4.createPFX)

strPasswordLPWSTRinPFX 形式のメッセージのパスワード。パスワードを使用しないことを示すために、この値は空または NULL にできます。パスワードの使用を終えたら、SecureZeroMemory 関数を呼び出してメモリからクリアしてください。パスワードの保護の詳細については、Handling Passwords を参照してください。
pstrPFXLPWSTR*outbase64 でエンコードされた PFX 形式の証明書情報を受け取る BSTR へのポインター。BSTR の使用を終えたら、SysFreeString 関数を呼び出して解放してください。

戻り値

C++

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

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

VB

戻り値は PFX 形式の証明書情報を含む String です。

解説(Remarks)

このメソッドは、証明書登録コントロール (Certificate Enrollment Control) がスクリプト化されたコントロールとして実行される場合は無効になります。

vtbl 101 HRESULT createFilePFX(LPWSTR strPassword, LPWSTR strPFXFileName)

受け入れた証明書チェーンと秘密キーを Personal Information Exchange (PFX) 形式でファイルに保存します。このメソッドは ICEnroll4 インターフェイスで初めて定義されました。

strPasswordLPWSTRinPFX のパスワード。パスワードを使用しないことを示すために、この値は空 (または NULL) にできます。パスワードの使用を終えたら、SecureZeroMemory 関数を呼び出してメモリからクリアしてください。パスワードの取り扱いの詳細については、Handling Passwords を参照してください。
strPFXFileNameLPWSTRinbase64 でエンコードされた PFX データを受け取るファイルの名前。

戻り値

VB

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

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

解説(Remarks)

このメソッドがスクリプトから呼び出されると、ファイルシステムへの書き込み操作をユーザーが許可するかどうかを尋ねるユーザーインターフェイスが表示されます。

vtbl 102 HRESULT setPendingRequestInfo(INT lRequestID, LPWSTR strCADNS, LPWSTR strCAName, LPWSTR strFriendlyName)

保留中の要求のプロパティを設定します。このメソッドは ICEnroll4 インターフェイスで初めて定義されました。

lRequestIDINTin証明機関 (CA) によって割り当てられた要求の識別子。
strCADNSLPWSTRin証明機関 (CA) の Domain Name System (DNS) 名。strCADNS パラメーターを NULL にすることはできません。
strCANameLPWSTRin証明機関 (CA) の名前。strCAName パラメーターを NULL にすることはできません。
strFriendlyNameLPWSTRin証明機関 (CA) の表示名。strFriendlyName パラメーターは NULL にできます。

戻り値

VB

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

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

vtbl 103 HRESULT enumPendingRequest(INT lIndex, PENDING_REQUEST_DESIRED_PROPERTY lDesiredProperty, VARIANT* pvarProperty)

保留中の証明書要求を列挙し、それぞれから指定されたプロパティを取得します。このメソッドは ICEnroll4 インターフェイスで初めて定義されました。

lIndexINTinプロパティを取得する保留中の要求の序数位置を指定します。最初の要求には 0 を指定します。
lDesiredPropertyPENDING_REQUEST_DESIRED_PROPERTYin

取得するプロパティの識別子。このパラメーターには次のいずれかの値を指定できます。

意味
XEPR_CADNS
証明機関 (CA) の DNS 名。
XEPR_CAFRIENDLYNAME
CA の表示名。
XEPR_CANAME
CA の名前。
XEPR_HASH
要求のハッシュ値。
XEPR_REQUESTID
証明書要求 ID。
pvarPropertyVARIANT*out

取得したプロパティの値を受け取る VARIANT へのポインター。

VARIANT の使用を終えたら、VariantClear 関数を呼び出して解放してください。

戻り値

C++

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

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

lDesiredProperty に次の値が指定された場合、このメソッドは E_NOTIMPL を返します。

lDesiredProperty にその他の値を指定した場合、このメソッドは E_INVALIDARG を返します。

VB

保留中の要求のプロパティを含む Variant を返します。

解説(Remarks)

このメソッドは、証明書登録コントロール (Certificate Enrollment Control) がスクリプト化されたコントロールとして実行される場合は無効になります。

vtbl 104 HRESULT removePendingRequest(LPWSTR strThumbprint)

クライアントの要求ストアから保留中の要求を削除します。このメソッドは ICEnroll4 インターフェイスで初めて定義されました。

strThumbprintLPWSTRin証明書データの拇印 (thumbprint)、すなわち ハッシュ

戻り値

VB

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

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

vtbl 105 HRESULT GetKeyLenEx(XEKL_KEYSIZE lSizeSpec, XEKL_KEYSPEC lKeySpec, INT* pdwKeySize)

署名キーおよび交換キーのサイズ情報を取得します。このメソッドは ICEnroll4 インターフェイスで初めて定義されました。

lSizeSpecXEKL_KEYSIZEin

取得するサイズ情報の種類を示す値。このパラメーターには次のいずれかの値を指定できます。

意味
XEKL_KEYSIZE_MIN
キーサイズの最小値。
XEKL_KEYSIZE_MAX
キーサイズの最大値。
XEKL_KEYSIZE_INC
キーの増分サイズ。詳細については「解説」を参照してください。
lKeySpecXEKL_KEYSPECin

サイズ情報を返す対象のキーを指定します。このパラメーターには次のいずれかの値を指定できます。

意味
XEKL_KEYSPEC_KEYX
交換キー
XEKL_KEYSPEC_SIG
署名キー
pdwKeySizeINT*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 );
vtbl 106 HRESULT InstallPKCS7Ex(LPWSTR PKCS7, INT* plCertInstalled)

証明書または証明書のチェーンを処理し、適切な証明書ストアに格納します。ローカルストアに実際にインストールされた証明書の数を返す点を除いて InstallPKCS7 と同じです。

PKCS7LPWSTRin証明書または証明書のチェーンを含む文字列。
plCertInstalledINT*outローカルストアにインストールされた証明書の数を返します。

戻り値

C++

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

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

VB

ローカルストアにインストールされた証明書の数を含む Long

解説(Remarks)

このメソッドがスクリプトから呼び出されると、証明書のインストールをユーザーが許可するかどうかを尋ねるユーザーインターフェイスが表示されます。

vtbl 107 HRESULT addCertTypeToRequestEx(ADDED_CERT_TYPE lType, LPWSTR bstrOIDOrName, INT lMajorVersion, BOOL fMinorVersion, INT lMinorVersion)

証明書テンプレート (または "証明書の種類") を要求に追加します。

lTypeADDED_CERT_TYPEin

テンプレート拡張のバージョンの種類を示します。次のいずれかの値を指定できます。

意味
XECT_EXTENSION_V1
バージョン 1 の拡張を使用します
XECT_EXTENSION_V2
バージョン 2 の拡張を使用します
bstrOIDOrNameLPWSTRin証明書要求に追加される証明書テンプレートの完全修飾名。この値は 証明機関 (CA) によって解釈されます。
lMajorVersionINTinテンプレートのメジャーバージョンを設定します。lFlag が XECT_EXTENSION_V! の場合、このパラメーターは無視されます。
fMinorVersionBOOLinテンプレートのマイナーバージョンを使用するかどうかを示します。lFlag が XECT_EXTENSION_V! の場合、このパラメーターは無視されます。
lMinorVersionINTinテンプレートのマイナーバージョンを設定します。lFlagXECT_EXTENSION_V1 の場合、または fMinorVersionFALSE の場合、このパラメーターは無視されます。

戻り値

VB

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

解説(Remarks)

このメソッドは新しい要求メソッドである createRequest のみをサポートします。 createPKCS10 メソッドはサポートしません。

このメソッドを複数回呼び出して、要求に対して複数の証明書テンプレートを設定できます。

vtbl 108 HRESULT getProviderType(LPWSTR strProvName, INT* plProvType)

指定された暗号化サービスプロバイダー (CSP) の種類を取得します。このメソッドは ICEnroll4 インターフェイスで初めて定義されました。

strProvNameLPWSTRin種類を要求する対象の CSP の名前を指定する文字列値。
plProvTypeINT*out

CSP の種類を受け取る LONG 値へのポインター。CSP の種類は次のいずれかの値です。

戻り値

C++

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

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

VB

strProvName で指定されたプロバイダーのプロバイダーの種類を表す値。次のいずれかの値になります。
vtbl 109 HRESULT put_SignerCertificate(LPWSTR bstrCert)

署名者の証明書を設定します。

bstrCertLPWSTRin要求への署名に使用する署名者証明書を Base64 文字列として渡す。
vtbl 110 HRESULT put_ClientId(INT lClientId)

クライアント ID 要求属性を設定または取得します。クライアント ID 要求属性は、証明書要求の発生元を示します。このプロパティは ICEnroll4 インターフェイスで初めて定義されました。(Put)

lClientIdINTin登録要求を発行するクライアントを識別するクライアント ID を渡す。
vtbl 111 HRESULT get_ClientId(INT* plClientId)

クライアント ID 要求属性を設定または取得します。クライアント ID 要求属性は、証明書要求の発生元を示します。このプロパティは ICEnroll4 インターフェイスで初めて定義されました。(Get)

plClientIdINT*out現在のクライアント ID を受け取る INT へのポインタである。
vtbl 112 HRESULT addBlobPropertyToCertificate(INT lPropertyId, INT lReserved, LPWSTR bstrProperty)

証明書に BLOB プロパティを追加します。

lPropertyIdINTin証明書に追加する BLOB プロパティの識別子。
lReservedINTinこのパラメーターは予約されており、0 にする必要があります。
bstrPropertyLPWSTRin

BLOB プロパティに関連付けられるデータ。このパラメーターには次のいずれかの値を指定できます。

意味
CERT_PVK_FILE_PROP_ID
証明書の公開キーに関連付けられた秘密キーを含むファイルの名前。
CERT_FRIENDLY_NAME_PROP_ID
証明書の表示名。
CERT_DESCRIPTION_PROP_ID
証明書 UI によって表示されるプロパティ。このプロパティを使用すると、ユーザーは証明書の用途を記述できます。
CERT_RENEWAL_PROP_ID
更新された証明書のハッシュ。
vtbl 113 HRESULT resetBlobProperties()

BLOB のプロパティをリセットします。

vtbl 114 HRESULT put_IncludeSubjectKeyID(BOOL fInclude)

生成される証明書要求にサブジェクトキー ID 拡張を追加するかどうかを決定します。(Put)

fIncludeBOOLin要求にサブジェクトキー識別子(Subject Key ID)を含めるかどうかを指定する BOOL 値を渡す。
vtbl 115 HRESULT get_IncludeSubjectKeyID(BOOL* pfInclude)

生成される証明書要求にサブジェクトキー ID 拡張を追加するかどうかを決定します。(Get)

pfIncludeBOOL*out要求にサブジェクトキー識別子を含めるかどうかを受け取る 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_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 不要)。