IX509CertificateRequestPkcs10V2::InitializeFromPrivateKeyTemplate メソッド (certenroll.h)
InitializeFromPrivateKeyTemplate メソッドは、IX509PrivateKey オブジェクトと証明書テンプレートを使用して証明書要求を初期化します。
構文
HRESULT InitializeFromPrivateKeyTemplate(
[in] X509CertificateEnrollmentContext Context,
[in] IX509PrivateKey *pPrivateKey,
[in] IX509EnrollmentPolicyServer *pPolicyServer,
[in] IX509CertificateTemplate *pTemplate
);
パラメーター
[in] Context
要求された証明書がエンド ユーザー、コンピューター、またはコンピューターの代わりに動作する管理者を対象としているかどうかを指定する X509CertificateEnrollmentContext 列挙値。 これには、次のいずれかの値を指定できます。 ただし、秘密キーの MachineContext プロパティが設定されている場合は、ContextMachine 列挙値を指定する必要があります。
値 | 意味 |
---|---|
|
エンド ユーザーに対して証明書が要求されています。 |
|
コンピューターに対して証明書が要求されています。 |
|
証明書は、コンピューターの代わりに機能する管理者によって要求されています。 |
[in] pPrivateKey
秘密キーを表す IX509PrivateKey インターフェイスへのポインター。
[in] pPolicyServer
pTemplate パラメーターで指定されたテンプレートを含む証明書登録ポリシー (CEP) サーバーを表す IX509EnrollmentPolicyServer オブジェクトへのポインター。
[in] pTemplate
初期化時に使用するテンプレートを表す IX509CertificateTemplate オブジェクトへのポインター。
戻り値
関数が成功した場合、関数は S_OKを返します。
関数が失敗した場合は、エラーを示す HRESULT 値を返します。 有効な値を次の表に示しますが、これ以外にもあります。 一般的なエラー コードの一覧については、「 共通の HRESULT 値」を参照してください。
リターン コード | 説明 |
---|---|
|
pPrivateKey、pPolicyServer、または pTemplate パラメーターは NULL です。 |
|
証明書要求オブジェクトは既に初期化されています。 |
注釈
InitializeFromPrivateKeyTemplate メソッドは、次のアクションを実行します。
- テンプレートで指定された拡張機能を IX509Extensions コレクションに追加します 。
- IObjectIds コレクションを作成し、既定のXCN_OID_KEY_USAGEとXCN_OID_BASIC_CONSTRAINTS2オブジェクト識別子を設定します。 テンプレートがこれらの OID が重要ではないことを示す場合、それらはコレクションから削除されます。 テンプレートによってクリティカルとマークされた OID が追加されます。
- テンプレートが対称アルゴリズムをサポートしている場合 は、SmimeCapabilities プロパティを設定します。
- テンプレートに個別署名アルゴリズム OID が必要な場合 は、AlternateSignatureAlgorithm プロパティを設定します。
- IX509SignatureInformation オブジェクトを作成します。
- アルゴリズムがテンプレートで指定され、 IX509SignatureInformation オブジェクトに設定されている場合は、ハッシュ アルゴリズム OID を作成します。
- 非対称暗号化アルゴリズム OID (存在する場合) をテンプレートから取得し、 IX509SignatureInformation オブジェクトに設定します。
- テンプレート設定から IX509PrivateKey プロパティの多くを設定します。
CSPInformations プロパティが指定されていない場合、 メソッドは、コンピューターにインストールされているプロバイダーから ICspInformations コレクションを作成します。
この時点では秘密キーは作成されません。 メソッドに渡された IX509PrivateKey オブジェクトが既存のキーを表していない場合は、 Encode メソッドが呼び出されたときにキーが作成されます。 テンプレートが指定されておらず、IX509PrivateKey の ProviderName プロパティが設定されていない場合は、既定のプロバイダーを使用してキーが作成されます。 秘密キーが存在する場合は、 PrivateKey プロパティに設定されます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 7 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 R2 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | certenroll.h |