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
IX509EnrollmentPolicyServer 物件的指標,代表包含 pTemplate 參數所指定範本的憑證註冊原則 (CEP) 伺服器。
[in] pTemplate
IX509CertificateTemplate 物件的指標,代表初始化期間要使用的範本。
傳回值
如果函式成功,函式會傳回 S_OK。
如果函式失敗,它會傳回 指出錯誤的 HRESULT 值。 可能的值包括 (但不限於) 下表中的這些值。 如需常見錯誤碼的清單,請參閱 一般 HRESULT 值。
傳回碼 | Description |
---|---|
|
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 |