共用方式為


ICertPropertyRenewal::InitializeFromCertificateHash 方法 (certenroll.h)

InitializeFromCertificateHash 方法會從新的憑證初始化 物件。

語法

HRESULT InitializeFromCertificateHash(
  [in] VARIANT_BOOL MachineContext,
  [in] EncodingType Encoding,
  [in] BSTR         strCertificate
);

參數

[in] MachineContext

VARIANT_BOOL值,指出證書存儲是針對本機計算機還是目前使用者。 為計算機指定 VARIANT_TRUE ,併為使用者 指定VARIANT_FALSE

[in] Encoding

EncodingType 列舉值,指定套用至包含 DER 編碼憑證之輸入字串的 Unicode 編碼類型。

[in] strCertificate

包含 DER 編碼憑證的 BSTR 變數。

從 Windows 7 和 Windows Server 2008 R2 開始,您可以指定憑證指紋或序號,而不是編碼的憑證。 這樣做會導致函式搜尋適當的本地存儲以尋找相符的憑證。 請記住下列幾點:

  • BSTR 必須是偶數十六進位數位。
  • 忽略十六進位組之間的空格符。
  • Encoding 參數必須設定為 XCN_CRYPT_STRING_HEXRAW
  • MachineContext 參數會決定是否要搜尋使用者或電腦存放區或兩者。
  • 如果需要私鑰,則只會搜尋個人和要求存放區。
  • 如果不需要私鑰,也會搜尋根和中繼 CA 存放區。

傳回值

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

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

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

備註

這個方法會使用指定的憑證來建立SHA-1哈希。 憑證必須使用 可辨別編碼規則 ( DER) 編碼,如抽象語法表示法一 (ASN.1) 標準所定義。 您也必須指定套用至包含 DER 編碼憑證之字串的 Unicode 編碼類型。

ICertPropertyRenewal 物件通常會在註冊程式期間初始化。 您可以在IX509Enrollment 介面上呼叫 Certificate 屬性,以擷取註冊期間使用的憑證。

呼叫 SetValueOnCertificate 方法,將屬性與憑證產生關聯。 呼叫 Renewal 屬性以擷取哈希。

規格需求

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

另請參閱

ICertPropertyRenewal