私密金鑰和公開金鑰函式

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

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

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

UseExistingKeySet

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

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

將Xenroll.dll對應至CertEnroll.dll