IX509CertificateRequestPkcs10::InitializeFromPublicKey 方法 (certenroll.h)

InitializeFromPublicKey 方法會使用 IX509PublicKey 物件以及選擇性的範本,初始化 Null 簽署的憑證要求。

語法

HRESULT InitializeFromPublicKey(
  [in]           X509CertificateEnrollmentContext Context,
  [in]           IX509PublicKey                   *pPublicKey,
  [in, optional] BSTR                             strTemplateName
);

參數

[in] Context

X509CertificateEnrollmentContext 列舉值,指定要求的憑證是否適用於使用者、計算機或代表計算機的系統管理員。

[in] pPublicKey

代表公鑰的 IX509PublicKey 介面指標。

[in, optional] strTemplateName

BSTR 變數,其中包含範本出現在 Active Directory 或虛線十進位物件識別碼中的一般名稱 (CN) 。 這是選擇性參數。

傳回值

如果函式成功,函式會傳回 S_OK

如果函式失敗,它會傳回 指出錯誤的 HRESULT 值。 可能的值包括 (但不限於) 下表中的這些值。 如需常見錯誤碼的清單,請參閱 一般 HRESULT 值

傳回碼/值 Description
HRESULT_FROM_WIN32 (ERROR_ALREADY_INITIALIZED)
憑證要求對象已經初始化。

備註

如果您指定範本, InitializeFromPublicKey 方法會執行下列動作:

  • 將選擇性範本中指定的延伸模組新增至 IX509Extensions 集合。
  • 建立 CriticalExtensions 集合, 並填入預設XCN_OID_KEY_USAGE和XCN_OID_BASIC_CONSTRAINTS2對象識別碼。 如果指定範本並指出這些 OID 不重要,則會從集合中移除它們。 範本標示為重大的 OID,如果有的話,就會新增。
  • 如果範本支援對稱演算法,請設定 SmimeCapabilities 屬性。
  • 如果範本需要離散簽章演算法 OID,請設定 AlternateSignatureAlgorithm 屬性。
  • 建立 IX509SignatureInformation 物件。
  • 如果在範本中指定演算法,並在 IX509SignatureInformation 對象上設定該演算法,則會建立哈希演算法 OID。
  • 如果在範本中指定演算法,並在 IX509SignatureInformation 對象上設定該演算法,則會建立非對稱加密演算法 OID。

不論您是否指定範本,如果未指定 CSPInformations 屬性,此方法就會從電腦上安裝的提供者建立 ICspInformations 集合。

方法不會建立私鑰。 這個方法的使用表示要求是以 Null 簽署。 因此,方法會在IX509SignatureInformation 對象上設定 NullSigned 屬性。

規格需求

需求
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平台 Windows
標頭 certenroll.h
Dll CertEnroll.dll

另請參閱

IX509CertificateRequestPkcs10