共用方式為


私鑰和公鑰函式

CertEnroll.dll 實作 IX509PrivateKeyIX509PublicKey 介面。 例如,您可以使用 IX509PrivateKey 介面,在 私鑰上執行下列動作:

  • 建立、開啟、關閉、匯入、匯出和刪除金鑰。
  • 指定或擷取公鑰演演算法。
  • 指定或擷取支援公鑰演演算法之可用 密碼編譯服務提供者 (CSP) 的相關信息。
  • 指定或擷取與 私鑰相關聯的 憑證
  • 指定或擷取 金鑰容器的名稱,
  • 指定或擷取的描述,以及索引鍵的顯示名稱。
  • 指定或擷取私鑰上的匯出條件約束。
  • 指定或擷取布爾值,指出索引鍵是否存在。
  • 指定或擷取值,指出密鑰在使用前如何受到保護。
  • 指定或擷取值,指出金鑰是否可以用於簽署、加密或兩者。
  • 指定或擷取值,以識別可以使用密鑰的特定用途。
  • 指定或擷取索引鍵的長度。
  • 指定或擷取值,指出金鑰是用於電腦或使用者的內容中還是儲存。
  • 擷取布爾值,指定索引鍵是否已開啟。
  • 指定個人識別碼,以存取 智慧卡上的私密金鑰
  • 指定或擷取與金鑰相關聯的 CSP 名稱。
  • 指定或擷取金鑰安全性描述元。

下列各節會識別 Xenroll.dll 導出的函式,可用來管理 密碼編譯密鑰。 每個主題也會討論如何使用 CertEnroll.dll 來取代 函式,或指出兩個連結庫之間沒有對應:

ContainerNameWStr

Xenroll.dll 中的 ContainerNameWStr 函式會指定或擷取 金鑰容器的名稱

使用 CertEnroll.dll時,您可以執行下列動作來擷取金鑰容器的名稱:

  1. 在現有的 IX509Enrollment 物件上呼叫 Request 屬性。
  2. 在步驟 1 傳回的要求上呼叫 GetInnerRequest 方法,以擷取最內部的要求。
  3. 在從步驟 2 傳回 IX509CertificateRequest 物件上呼叫 queryInterface,以轉換成 IX509CertificateRequestPkcs10 物件。
  4. 在 PKCS #10 要求上呼叫 PrivateKey 屬性。
  5. 在從步驟 4 擷取的 IX509PrivateKey 物件上,呼叫 ContainerName 屬性。

GenKeyFlags

Xenroll.dll 中定義的 GenKeyFlags 函式會指定或擷取用來產生私鑰或 公開/私鑰組的旗標,

使用 CertEnroll.dll時,您可以指定數個不同的屬性,以決定私鑰的建立方式。 如需詳細資訊,請參閱 建立

GetKeyLen

Xenroll.dll 中定義的 GetKeyLen 函式會擷取加密金鑰的最大或最小密鑰大小。

使用 CertEnroll.dll時,您可以在 IX509PrivateKeyIX509PublicKey 物件上呼叫 Length 属性,以位為單位擷取密鑰大小。

GetKeyLenEx

Xenroll.dll 中定義的 GetKeyLenEx 函式會擷取金鑰大小上限或最小值或加密密鑰的遞增長度。

使用 CertEnroll.dll時,您可以在 IX509PrivateKeyIX509PublicKey 物件上呼叫 Length 属性,以位為單位擷取密鑰大小。 如果演算法支援累加密鑰長度,您可以在 ICspAlgorithm 物件上呼叫 IncrementLength 属性,以擷取遞增值。 您也可以呼叫 MinLengthMaxLength 屬性,以擷取最小和最大索引鍵大小。

GetSupportedKeySpec

Xenroll.dll 中定義的 GetSupportedKeySpec 函式會擷取值,指出 CSP 是否支援交換密鑰、簽署金鑰或兩者。

使用 CertEnroll.dll時,您可以在 IX509PrivateKeyICspInformation 物件上呼叫 KeySpec 属性,以擷取密鑰支援的作業。

KeySpec

Xenroll.dll 中定義的 KeySpec 函式會指定或擷取金鑰類型。

使用 CertEnroll.dll時,您可以在 IX509PrivateKey 物件上呼叫 KeySpec 屬性,以擷取密鑰支援的作業。

LimitExchangeKeyToEncipherment

Xenroll.dll 中定義的 LimitExchangeKeyToEncipherment 函式會指定或擷取布爾值,指出加密密鑰只能用於數據或密鑰加密。

CertEnroll.dll 不包含此函式的直接對等專案。 不過,您可以藉由指定 IX509ExtensionKeyUsage 物件,並將其新增至憑證要求,來達成幾乎相等的結果。

PVKFileNameWStr

Xenroll.dll 中定義的 PVKFileNameWStr 函式會指定或擷取包含導出密鑰的檔名。

使用 CertEnroll.dll時,您可以在 IX509PrivateKey 物件上呼叫 Export 方法,將索引鍵匯出至 BSTR。 您可以呼叫 ExportPublicKey 方法來匯出非對稱密鑰組部分公鑰。

ReuseHardwareKeyIfUnableToGenNew

ReuseHardwareKeyIfUnableToGenNew 函數定義於 Xenroll.dll 指定或擷取布爾值,指出在產生新密鑰時發生錯誤時,是否重複使用現有的索引鍵。

使用 CertEnroll.dll時,您可以在 IX509CertificateRequestPkcs10 物件上呼叫 InitializeFromCertificate 方法,並指定 X509RequestInheritOptions 列舉類型的值,以重複使用現有的私鑰。

UseExistingKeySet

Xenroll.dll 中定義的 UseExistingKeySet 函式會指定或擷取布爾值,指出是否要使用現有的索引鍵。

使用 CertEnroll.dll時,您可以在 IX509CertificateRequestPkcs10 物件上呼叫 InitializeFromCertificate 方法,並指定 X509RequestInheritOptions 列舉類型的值,以重複使用現有的私鑰和公鑰。

對應 Xenroll.dll 至 CertEnroll.dll